0
我在想什麼是取8個1位輸入並計數1。然後代表那些1。在Verilog中,在8位輸入中計數並輸出1的個數?
01010111應該輸出0101(有來自輸入五1的)
module 8to4 (in,out,hold,clk,reset);
input [7:0] in; //1 bit inputs
reg [7:0] hold; //possible use for case statement
output [3:0] out; //Shows the count of bits
always @(clk)
begin
out = in[0] + in[1] + in[2] + in[3] + in[4] + in[5] + in[6] + in[7]; //Adds the inputs from testbench and outputs it
end
endmodule
問題:
- 是不是正確的方式有8個1位輸入?或者我需要將每個變量聲明爲一位ex:輸入A,B,C,D,E,F,G,H;
- 如果我上面的代碼是接近正確的,那是出去顯示1的計數的正確方法?我需要一個案例陳述嗎?
我對Verilog非常陌生,所以我甚至不想考慮一個測試平臺。
對不起,我還是新來此。你能否解釋一下'#(WIDTH-8)'?還有一堆谷歌搜索'整數二;'老實說,我不知道Verilog可以做這樣的整數,我不知道如何編寫一個測試臺。 –
對不起,這是一個錯字。我正在參數化您的模塊,以便它可以用於不同大小的輸入。當WIDTH = 8時,for循環與原始表達式完全相同。綜合工具將我的循環展開到您的表達式中。但是現在它已經被參數化了,你可以重寫'WIDTH'到16或者其他什麼。 –