Как мне кодировать основной триггер в Verilog Pro? - PullRequest
0 голосов
/ 10 августа 2010

Я пытался закодировать базовый триггер с использованием NAND-вентилей в Verilog Pro, но форма волны, которую я получаю, невернаПожалуйста, посмотрите, что с ним не так.

//design module
module rstt(s,r,q,qbar);
input r,s;
output q,qbar;
nand n1(q,r,qbar);
nand n2(qbar,s,q);
endmodule

//stimulus module 
module test;
reg r,s;
wire q,qbar;
initial begin
r=1'b1;
s=1'b0;
#25 r=1'b0;
  s=1'b1;
#25 r=1'b1;
  s=1'b1;
#100 $finish;
end
endmodule

1 Ответ

2 голосов
/ 10 августа 2010

Вы не создали экземпляр модуля rstt внутри модуля test. Это означает, что провода (q и qbar) внутри модуля test не повреждены. Вот почему они остаются прямыми, а не переключаются. В соответствии со стандартом IEEE Verilog для ненарушенного wire по умолчанию будет 1'bz.

Попробуйте что-то вроде этого:

//design module
module rstt(s,r,q,qbar);
input r,s;
output q,qbar;
nand n1(q,r,qbar);
nand n2(qbar,s,q);
endmodule

//stimulus module 
module test;
reg r,s;
wire q,qbar;

rstt i0 (
    .s    (s),
    .r    (r),
    .q    (q),
    .qbar (qbar)
);

initial begin
r=1'b1;
s=1'b0;
#25 r=1'b0;
  s=1'b1;
#25 r=1'b1;
  s=1'b1;
#100 $finish;
end
endmodule

Обратите внимание, что ваша проблема не связана с каким-либо симулятором.

...