我正在研究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_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;
当试图调试设计时,每个块的一些输入信号没有出现,即第一个信号,llrs_in,llrs_valid ......
为了使它更奇怪,第一个块(对于i = 0,inst_upper_algorithmic_block)具有其所有输入,其余块则没有。
我尝试重新启动计算机,重新启动modelSim,关闭并打开项目毫无用处。
我尝试使用和不使用优化运行设计,得到了相同的结果。
感谢任何帮助:)
答案 0 :(得分:0)
尝试使用-novopt -O0
编译您的设计。
另外,我相信你可以通过Tcl命令手动将信号添加到波形中(需要测试,据我记得,这适用于对象列表中缺失的信号。):
add wave "sim:/<testbench_name>/inst_upper_algorithmic_block/clk"
ModelSim将添加信号或告诉您无法添加信号的原因。
但是因为事情“开始工作”,我相信你“修复”了你的设计(有时ModelSim不能帮助我们理解错误)。
答案 1 :(得分:0)
删除'模拟'目录 - &gt; close modelsim - &gt;重新打开并模拟。
它向我展示了缺失的信号。