`timescale 1ns/10ps
module m_gen(clk,res,y);
input clk;
input res;
output y;
reg[3:0] d;
assign y=d[0];
always@(posedge clk or negedge res)
if(~res) begin d<=4'b1111;
end
else begin d[2:0]<=d[3:1];
d[3]<=d[3]+d[0];
end
endmodule
module m_gen_tb;
reg clk,res;
wire y;
m_gen m_gen(.clk(clk),.res(res),.y(y));
initial begin
clk<=0;res<=0;
#17 res<=1;
#600 $stop;
end
always #5 clk<=~clk;
endmodule
verilog 9
最新推荐文章于 2024-10-25 19:19:10 发布
这篇博客详细介绍了使用Verilog HDL进行数字逻辑模块设计的过程,包括一个名为`m_gen`的模块及其测试平台`m_gen_tb`。`m_gen`模块在时钟边沿和复位信号的控制下更新内部寄存器`d`,并根据`d`的值生成输出`y`。测试平台`m_gen_tb`提供了时钟和复位信号,并在特定时间点激活复位,用于验证`m_gen`模块的功能。
摘要由CSDN通过智能技术生成