概述
//`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
运行效果,正好是一个脉冲加一。
最后
以上就是迅速豌豆为你收集整理的脉动计算机没有指令计数器,四位脉动进位计数器 - uniCorer's Blog - uniCore is our mission...的全部内容,希望文章能够帮你解决脉动计算机没有指令计数器,四位脉动进位计数器 - uniCorer's Blog - uniCore is our mission...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复