2014-01-07 107 views
0

例如,在這裏:在Verilog中,索引之後的加號/減號是做什麼的?

a = b[16:0] + c[0+:WIDTH]; 

是什麼的+號怎麼辦? 假設b是16'h1234,c是16'ABCD。

+0

這是WIDTH的價值? – toolic

+0

IEEE Std 1800-2012,11.5.1向量位選擇和部分選擇尋址 – toolic

+1

很久以前我問過什麼是+的意思: 這裏是鏈接 http://stackoverflow.com/questions/18067571/索引向量和陣列-用。 在這種情況下,B和C將是總和 – DOS

回答

2

reg1 [a +:b]表示以「a」開始並增加索引直到「b」個單元格。

reg1 [a-:b]表示以「a」開始,並將索引遞減至「b」個單元格。

所以

REG1 [0+:8]等於REG1 [0:7]

REG1 [7-:8]等於REG1 [7:0]

+1

值得一提的是爲什麼這很重要:編譯器將此解釋爲可變寬度片,因此無法以reg1 [i:i + 8]的形式執行切片。因此,如果試圖使用可變偏移量對一個向量進行切片(例如在循環中),則必須使用此記號。 – Chiggs

相關問題