-2
這裏是我的代碼:產生時鐘SR鎖存器有四個與非門
`timescale 1ns/1ns
module sr_latch (input s,r,clk ,output q,q_bar,w,w_bar);
wire i,j;
assign w=q;
assign w_bar=q_bar;
nand#7(i , r , clk);
nand#7(j , s , clk);
nand#7(q_bar,q,i);
nand#7(q , q_bar , j);
endmodule
module tb_sr_latch();
reg s,r,clk;
wire q,q_bar,w,w_bar;
sr_latch op(s , r , clk , q , q_bar ,w,w_bar);
initial begin
clk=1; s=0 ; r=1;
#50 r=0;
#50 s=1;
#50 r=1;
end
endmodule
我不知道爲什麼輸出s=1
和r=1
爲1。如果我用另一個測試平臺(例如添加q=0
在開始時)它會產生大量的「X」值!
我不知道這是不是一個有效的輸入,但我的Verilog代碼並不顯示!我不知道爲什麼。 – Farhood
它無效的原因是輸出無效。這並不意味着輸出會產生未知(X),但輸出**不能**,也不應該使用,因爲結果是不可預測的。 – wilcroft