【发布时间】:2015-12-18 06:01:07
【问题描述】:
在我的滤波器设计中,我使用定点算术并将 sfixed 用于信号。设计在满足所有时序的情况下进行综合,但我的功能仿真和后合成器/P&R 仿真在 arith 逻辑块之后不匹配。下面给出一个小例子,我看到 crf_int_r 在后合成器仿真中不匹配。有人可以帮我吗了解,无论是合成不正确还是功能和后合成仿真之间不匹配的其他问题..在 ISE 中使用 Xilinx ISE 14.7 和 VHDL 200X 选项。
signal add_alpha1_r : sfixed(5 downto -13) ;
signal add_alpha2_r : sfixed(6 downto -13) ;
signal crf_r : sfixed(17 downto -13) ;
signal crf_int_r : sfixed(17 downto -7) ;
signal alpha_log : sfixed(4 downto -13) ;
signal imgdel_r_d4 : sfixed(4 downto -13) ;
signal imgsum_d2 : sfixed(4 downto -13) ;
add_alpha1_r <= imgdel_r_d4 - imgsum_d2 ; --19.13
add_alpha2_r <= alpha_log + add_alpha1_r ; -- 20.13
crf_r <= add_alpha2_r * beta ; -- 31.13
crf_int_r <= crf_r(17 downto -7);
【问题讨论】:
-
声明、合成前和合成后操作数和结果二进制值会很好。你在使用非默认包泛型吗?
-
我使用的是 ieee 定点 pkg。使用 ieee_proposed.fixed_float_types.all;
-
在 post synth netlist 中,生成一些信号,声明为 std_logic_vector(5 downto -3)。此类信号会在 VCOM 中产生错误。我正在根据来自 xilinx 的信息将此类信号更改为 std_logic_vector1 类型。但我仍然得到一个不匹配,虽然我看到乘数已经被推断出来..
-
谁是模拟器?我问的原因是 cfr_r 分配 get 的绑定检查失败与 -2008 实例化包 ieee.fixed_generic_pkg。请在您的问题中添加新信息。您错过了 beta 声明,我将其设置为与 add_alpha2_r 相同。二进制操作数和结果值?
-
你需要写一个正确的问题。显示包含所有声明的代码,提供一组输入和相应的输出,并告诉我们输出与您的预期输出有何不同。如果输出在功能模拟中是正确的,而在 P&R 后的输出中是不正确的,那么请告诉我们确切的区别是什么。 “转换为整数并与 Matlab 比较”和“all -ve”对任何人都没有用。