T触发器Verilog
我无法从D触发器中获得T触发器,即使它直接来自课堂笔记,也无法在Modelsim中工作。一定是我忽略了一些简单的事情T触发器Verilog,verilog,modelsim,Verilog,Modelsim,我无法从D触发器中获得T触发器,即使它直接来自课堂笔记,也无法在Modelsim中工作。一定是我忽略了一些简单的事情 module D_FF (q, Clk, reset_n,d); output q; input Clk, reset_n, d; reg q; always @(posedge reset_n or negedge Clk) if (~reset_n) q <= 1'b0; else
module D_FF (q, Clk, reset_n,d);
output q;
input Clk, reset_n, d;
reg q;
always @(posedge reset_n or negedge Clk)
if (~reset_n)
q <= 1'b0;
else
q <= d;
endmodule
module T_ff (q, Clk, reset_n);
output q;
input Clk, reset_n;
wire d;
D_FF DFF0 (q, Clk, reset_n, Vcc);
not n1 (d,q);
endmodule
模块D\u FF(q、Clk、复位n、D);
输出q;
输入时钟,复位,d;
reg q;
始终@(posedge重置或negedge时钟)
如果(~reset\n)
qHi有两个问题:
1.您的重置处于低激活状态,因此它应该对时钟的下降沿敏感。
2.那个VCC是什么?你应该在那里用d。
这是正确的版本
D_FF:
T触发器的功能不正确:Greg是正确的,还有其他一些东西。首先,您的DFF应该使用negedge reset\n
,因为它是一个断言的低重置。其次,您正在将DFF的d
线连接到不存在的导线Vcc
(除非在其他地方将其定义为常量1'b1
,但这仍然没有帮助)
module D_FF (q, Clk, reset_n,d);
output q;
input Clk, reset_n, d;
reg q;
always @(negedge reset_n or posedge Clk)
if (~reset_n)
q <= 1'b0;
else
q <= d;
endmodule
module T_FF (q, Clk, reset_n);
output q;
input Clk, reset_n;
wire d;
D_FF DFF0 (q, Clk, reset_n, d);
not n1 (d,q);
endmodule