2014-12-04 284 views
0

我是新的verilog編碼..我只是想描述一個與時鐘的SR-Latch與與非門在verylog描述,但只要我模擬它,所有的輸出成爲Z和我不知道原因是什麼?有任何想法嗎?? 預先感謝... Verilog代碼和測試平臺:描述時鐘SR鎖存器與verilog

module CLOCKED_SR(input clk, s, r, output q, qbar); 
    wire i, j; 
    nand #20 (s, clk, i); 
    nand #20 (r, clk, j); 
    nand #20 (qbar, j, q); 
    nand #20 (q, i, qbar); 
endmodule 

module Q1_test(); 
    reg clk, s, r; 
    wire qbar, q; 
    CLOCKED_SR T_SR(clk, s, r, qbar, q); 
    initial begin 
    #20 clk = 1; 
    #50 s = 0; r = 0; 
    #50 s = 0; r = 1; 
    #50 s = 1; r = 0; 
    #50 $stop; 
    end 
endmodule 

回答

1

當使用以Verilog柵極原語,輸出總是在實例列表中的第一個值。所以你在NAND門的第一級ij作爲輸入,而不是輸出。

你需要確保門的輸出是第一:

module CLOCKED_SR(input clk, s, r, output q, qbar); 
    wire i, j; 
    nand #20 (i, clk, s); 
    nand #20 (j, clk, r); 
    nand #20 (qbar, j, q); 
    nand #20 (q, i, qbar); 
endmodule