经过Quartus2编译后的Verilog程序和激励代码,在ModelSim可以进行RTL级仿真,但是不能进行门级仿真???

上面是ModelSim中显示的错误激励文件是`timescale1ns/1nsmodulemod_m_bin_counter_tb;parameterT=20;//clo... 上面是ModelSim中显示的错误
激励文件是
`timescale 1ns/1ns
module mod_m_bin_counter_tb;
parameter T=20; // clock period
parameter M = 16;
parameter N = log2(M);
// global clock and asyn reset
reg clk, rst_n;
wire o_clk;
// counter interface
wire max_tick, min_tick;
wire [N-1:0] q;

// log2 constant function
function integer log2(input integer n);
integer i;
begin
log2 = 1;
for(i=0; 2**i<n; i = i + 1)
log2 = i + 1;
end
endfunction

// clcok
always
begin
clk = 1'b0;
#(T/2);
clk = 1'b1;
#(T/2);
end

// reset
initial
begin
rst_n = 1'b0;
#(T/2)
rst_n = 1'b1;
end

// inst
mod_m_bin_counter #(.M(M)) m_inst
(
.clk(clk),
.rst_n(rst_n),
.max_tick(max_tick),
.min_tick(min_tick),
.q(q)
);

// stimulus body
initial
begin
// initial input
@(posedge rst_n); // wait to deassert rst_n
@(negedge clk); // wait for a clock
// run 1024 cock cycle
repeat(1024) @(negedge clk); // last 1024 clock cycle
$stop;
end
endmodule

用这个激励文件做RTL仿真就没有问题!
没有多少财富值了,请一定帮帮忙!非常感谢!!!
展开
 我来答
匿名用户
2013-03-14
展开全部
是不是门级网表中这个器件没有参数 M 啊,综合之后参数可能被优化掉吧?
mod_m_bin_counter #(.M(M)) m_inst
(
.clk(clk),
.rst_n(rst_n),
.max_tick(max_tick),
.min_tick(min_tick),
.q(q)
);
检查一下门级网表,有帮助请采纳,谢谢!
更多追问追答
追问
这个应该怎么解决啊?我看了门级网表,貌似真的没有看到参数M
追答
不用参数啊,直接把参数值(常数)写入mod_m_bin_counter 中啊。
或者是添加端口 M[7:0]。
不要用参数传递到模块里面去啊
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式