对modelsim中带参数的模块进行仿真

本文介绍如何在ModelSim中对带有参数的FPGA模块进行仿真,强调了复位信号的重要性,指出复位信号需足够长以确保子模块能正确启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、模块代码

module setting_reg
  #(parameter my_addr = 0, 
    parameter width = 32,
    parameter at_reset=32'd0)
    (input clk, input rst, input strobe, input wire [7:0] addr,
     input wire [31:0] in, output reg [width-1:0] out, output reg changed);
   
   always @(posedge clk)
     if(rst)
       begin
	  out <= at_reset;
	  changed <= 1'b0;
       end
     else
       if(strobe & (my_addr==addr))
	 begin
	    out <= in;
	    changed <= 1'b1;
	 end
       else
	 changed <= 1'b0;
   
endmodule // setting_re

二、例化模块:

setting_reg #(.my_addr(0), .width(32), .at_reset(32'd1)) setting_reg_inst(
	.clk(clk),
	.rst(rst),
	.strobe(strobe),
	.addr(addr),
	.in(in),
	.out(out),
	.changed(changed)
);


这个方法证明可以使用了,如果子模块没有数据,很可能是没有接到复位信号,复位信号要足够长,子模块才能接收到,正常模块都要经过复位,才能开始正常的状态运转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youzjuer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值