modelSim VHDL某些输入信号未出现在对象窗口中
我在用vhdl做一个turbo解码系统。系统没有输出预期的结果,因此我需要对其进行调试。在我的解码器系统的架构中,我将块组件实例化如下:modelSim VHDL某些输入信号未出现在对象窗口中,vhdl,modelsim,Vhdl,Modelsim,我在用vhdl做一个turbo解码系统。系统没有输出预期的结果,因此我需要对其进行调试。在我的解码器系统的架构中,我将块组件实例化如下: inst_decoder : for i in 0 to MAX_BSIZE -1 generate signal llrs_valid_upper: std_logic ; signal llrs_in_upper : llrs_rec; signal llrs_valid_lower: std_logic; signal llrs_in_
inst_decoder : for i in 0 to MAX_BSIZE -1 generate
signal llrs_valid_upper: std_logic ;
signal llrs_in_upper : llrs_rec;
signal llrs_valid_lower: std_logic;
signal llrs_in_lower: llrs_rec;
begin
-- get the corresponding llrs from the input_llr buffer, and set the llrs_valid to 1
llrs_in_upper.system_llr <= input_llr(i);
llrs_in_upper.parity_llr <= input_llr(MAX_BSIZE+NUM_ENC_REGS+i);
llrs_in_upper.extr_llr <= extr_upper_int(i);
llrs_valid_upper <= input_llr_valid;
inst_upper_algorithmic_block: component tcdec_algorithmic_block
port map (
clk => clk,
rst => rst,
en => en_int,
alpha_in => alpha_upper_int(i),
beta_in => beta_upper_int(i+1),
llrs_valid => llrs_valid_upper,
llrs_in => llrs_in_upper,
init => init,
alpha_init => ALL_ZEROS,
beta_init => ALL_ZEROS,
extr_out => extr_lower_int(de_il_table(i)),
alpha_out => alpha_upper_int(i+1),
beta_out => beta_upper_int(i)
);
llrs_in_lower.system_llr <= input_llr(il_table(i));
llrs_in_lower.parity_llr <= input_llr(2*(MAX_BSIZE+NUM_ENC_REGS) + NUM_ENC_REGS + i);
llrs_in_lower.extr_llr <= extr_lower_int(i);
llrs_valid_lower <= input_llr_valid;
inst_lower_algorithmic_block: component tcdec_algorithmic_block
port map(
clk => clk,
rst => rst,
en => en_int,
alpha_in => alpha_lower_int(i),
beta_in => beta_lower_int(i+1),
llrs_valid => llrs_valid_lower,
llrs_in => llrs_in_lower,
init => init,
alpha_init => ALL_ZEROS,
beta_init => ALL_ZEROS,
extr_out => extr_upper_int(il_table(i)),
alpha_out => alpha_lower_int(i+1),
beta_out => beta_lower_int(i)
);
end generate inst_decoder;
inst_解码器:为0中的i生成最大尺寸-1
信号llrs_有效_上限:标准_逻辑;
信号llrs\U在上:llrs\U rec;
信号llrs\U有效\U低:标准\U逻辑;
信号llrs_in_lower:llrs_rec;
开始
--从输入llr缓冲区获取相应的llr,并将llr\u valid设置为1
llrs_in_upper.system_llr alpha_upper_int(i),
beta_in=>beta_upper_int(i+1),
llrs\U valid=>llrs\U valid\U上限,
llrs\U in=>llrs\U in\U上部,
init=>init,
alpha_init=>所有零,
beta_init=>所有零,
extr_out=>extr_lower_int(表(i)),
alpha_out=>alpha_upper_int(i+1),
beta\u out=>beta\u upper\u int(i)
);
llr_in_lower.system_llr alpha_lower_int(i),
beta_in=>beta_lower_int(i+1),
llrs\u valid=>llrs\u valid\u lower,
llrs_in=>llrs_in_lower,
init=>init,
alpha_init=>所有零,
beta_init=>所有零,
extr_out=>extr_upper_int(il_表(i)),
alpha_out=>alpha_lower_int(i+1),
beta\u out=>beta\u lower\u int(i)
);
终端生成指令解码器;
当试图调试设计时,每个模块的一些输入信号没有出现,即rst信号、llrs_输入、llrs_有效更奇怪的是,第一个块(对于i=0,inst_upper_algorithmic_块)有所有的输入,其余的没有
我尝试重新启动计算机,重新启动modelSim,关闭和打开项目,但没有任何用处
我也试着运行有优化和没有优化的设计,得到了相同的结果
感谢您的帮助:)尝试使用
-novopt-O0
编译您的设计。
此外,我相信您可以通过Tcl命令手动将信号添加到波形中(据我所知,需要测试对象列表中缺少的信号):
addwave”sim://inst_upper_algorithmic_block/clk"
ModelSim将添加信号或告诉您无法添加信号的原因
但既然事情“开始起作用”,我相信你“修复”了你的设计(有时ModelSim不能帮助我们理解问题所在)。删除“模拟”目录->关闭ModelSim->重新打开并模拟
它为我显示了丢失的信号。您可以添加一个屏幕截图和modelsim版本号吗?请确保您在没有优化的情况下进行模拟:-启动模拟时在命令行上单击novopt,或者在通过GUI时取消选中optimization。可能只是rst和其他信号在您的测试台上有一个常量值,因此它们会被优化,因此无法在模拟中显示。好吧,那么突然一切都恢复正常,我现在可以看到所有的输入了!我已经有这个问题两天了,但只有当我在stackoverflow上发布这个问题时,它才被自己解决了:p正如我已经提到的,我尝试了无优化选项,但它不起作用。
add wave "sim:/<testbench_name>/inst_upper_algorithmic_block/clk"