我試圖編寫一個代碼來檢查Verilog中的奇偶校驗。Verilog中的奇偶校驗器
`timescale 1ns/1ps
module ParityChecker(
input [7:0] bitt,
output reg ans
);
integer count = 0;
integer i = 0;
initial
begin
count = 0;
for(i=0; i<=7; i=i+1)
begin
if(bitt[i]==1)
count = count + 1;
end
if(count%2==0) //even parity
ans = 1;
else
ans = 0;
end
endmodule
下面是測試平臺代碼:
module ParityChecker_tb;
reg [7:0] bitToSend;
wire answer;
SecondQuestion mygate(.bitt(bitToSend), .ans(answer));
initial
begin
$monitor(bitToSend, answer);
bitToSend = 8'b11111101;
#10
bitToSend = 8'b11111100;
#10
bitToSend = 8'b1111111;
end
endmodule
不過,我只得到一個作爲變量answer輸出,不管是什麼。邏輯部分似乎存在一些問題。可能是什麼?
你已經把所有的代碼到'initial'塊。在某個地方應該有一個「永遠」的區塊......你應該得到一本好的Verilog書籍,並提高你對概念的理解。 –