概述
A.14 时序逻辑实例一:触发器
设计模块
D触发器
//文件路径:a.14/src/dff.v
module dff(clk,din,dout);
input clk;
input din;
output reg dout;
always@(posedge clk)begin
dout <= din;
end
endmodule
带低电平复位的D触发器
//文件路径:a.14/src/dff_rst.v
module dff_rst(clk,rst_n,din,dout);
input clk;
input rst_n;
input din;
output reg dout;
always@(posedge clk)begin
if(!rst_n)
dout <= 1'b0;
else
dout <= din;
end
endmodule
测试模块
//文件路径:a.14/sim/testbench/demo_tb.sv
module top;
logic clk;
logic rst_n;
logic dff_din;
logic dff_dout;
logic dff_rst_dout;
dff DUT_dff(.clk(clk),.din(dff_din),.dout(dff_dout));
dff_rst DUT_dff_rst(.clk(clk),.rst_n(rst_n),.din(dff_din),.dout(dff_rst_dout));
initial begin
clk = 0;
forever begin
#10;
clk = ~clk;
end
end
initial begin
rst_n = 0;
#5;
rst_n = 1;
#250;
rst_n = 0;
end
initial begin
int random_delay;
$display("%t -> Start!!!",$time);
repeat(10)begin
dff_din = $urandom_range(1,0);
random_delay = $urandom_range(50,0);
$display("%t -> random delay is %0d",$time,random_delay);
#random_delay;
end
#100;
$display("%t -> Finish!!!",$time);
$finish;
end
endmodule : top
仿真结果
运行./run.do脚本后,查看仿真日志sim.log,然后打开dve查看波形。
公众号:程序员Marshall
最后
以上就是顺利蜜蜂为你收集整理的数电和Verilog-时序逻辑实例一:触发器的全部内容,希望文章能够帮你解决数电和Verilog-时序逻辑实例一:触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复