2017-01-30 66 views
1

我試圖實現與參數化寬度和係數的線性反饋移位寄存器的加權和:的Verilog:分配參數長度

// ... 
    parameter width = 16; 
    parameter [width-1:0] coeff = 16'b1110101100110110; 
// ... 

有一種方法來分配異或鏈到輸入觸發器,即什麼是一種明智的方式實施類似

assign input_wire = (coeff[0] & flops[0]) xor ... xor (coeff[width-1] & flops[width-1]); 

明顯但非法的方式將使用for循環。有沒有辦法做到這一點以外的總是塊?

由於

+0

你可以看看這個問題:http://stackoverflow.com/questions/17159397/verilog-adding-individual-bits-of-a-register-combinational-logic-register-wid它提供了一個解決方案你的問題。在「一行」中執行的一種方法是實現一個執行計算的參數化模塊 – Krouitch

回答

0

按位與和一元異或操作者達到目的:

assign input_wire = ^(coefficients[width-1:0] & flops[width-1:0]); 

按位並執行觸發器輸出的權重。