脉动计算机没有指令计数器,四位脉动进位计数器 - uniCorer's Blog - uniCore is our mission...

//`timescale 1ns/1ns;

module D_FF(q,d,clk,reset);

output q;

input d,clk,reset;

reg q;

always@(posedge reset or negedge clk)

if(reset)

q<=1'b0;

else

q<=d;

endmodule

module T_FF(q,clk,reset);

output q;

input clk,reset;

wire d;

D_FF dff0(q,d,clk,reset);

not n1(d,q);

endmodule

module ripple_carry_counter(q,clk,reset);

output [3:0] q;

input clk,reset;

T_FF tff0(q[0],clk,reset);

T_FF tff1(q[1],q[0],reset);

T_FF tff2(q[2],q[1],reset);

T_FF tff3(q[3],q[2],reset);

endmodule

//

module stimulus;

reg clk;

reg reset;

wire[3:0] q;

ripple_carry_counter r1(q,clk,reset);

initial

clk=1'b0;

always

#5 clk=~clk;

initial

begin

reset=1'b1;

#15 reset=1'b0;

#180 reset=1'b1;

#10 reset=1'b0;

#20 $finish;

end

initial

$monitor($time," Output q=%d",q);

//$dumpfile("stimulus.dump");

//$dumpvars(0, stimulus.clk);

//$dumpvars(1, stimulus.reset);

//$dumpvars(2, stimulus.q[0]);

//$dumpvars(3, stimulus.q[1]);

//$dumpvars(4, stimulus.q[2]);

//$dumpvars(5, stimulus.q[3]);

endmodule

运行效果,正好是一个脉冲加一。

286ada70ade24dccc920b77950cc6ec1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值