2014-12-04 287 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