//`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...的全部内容,更多相关脉动计算机没有指令计数器,四位脉动进位计数器内容请搜索靠谱客的其他文章。
发表评论 取消回复