|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
环境使用的是Ubuntu 18.4 ,vivado 2019.1 VCS 2018
当仿真MULT_MACRO时,如果LATENCY配置为2时,乘法器结果为0,当LATENCY配置为 >=3时,可以正常给出乘法结果
//VCS此模块的P输出为0
//modelsim此模块的P输出正确
MULT_MACRO #(
.DEVICE("7SERIES"), . Target Device: "7SERIES"
.LATENCY(2), // Desired clock cycle latency, 0-4
.WIDTH_A(12), // Multiplier A-input bus width, 1-25
.WIDTH_B(7) // Multiplier B-input bus width, 1-18
) MULT_MACRO_inst_tb (
.P(O_p ), // Multiplier output bus, width determined by WIDTH_P parameter
.A({1'b0,I_a[11:1]} ), // Multiplier input A bus, width determined by WIDTH_A parameter
.B({1'b0,I_b[6:1]} ), // Multiplier input B bus, width determined by WIDTH_B parameter
.CE(1'b1 ), // 1-bit active high input clock enable
.CLK(i_clk), // 1-bit positive edge clock input
.RST(1'b0) // 1-bit input active high reset
);
//VCS/modelsim 此模块的输出结果正确
MULT_MACRO #(
.DEVICE("7SERIES"), // Target Device: "7SERIES"
.LATENCY(3), // Desired clock cycle latency, 0-4
.WIDTH_A(12), // Multiplier A-input bus width, 1-25
.WIDTH_B(7) // Multiplier B-input bus width, 1-18
) MULT_MACRO_inst_tb1 (
.P(O_p1 ), // Multiplier output bus, width determined by WIDTH_P parameter
.A(I_a ), // Multiplier input A bus, width determined by WIDTH_A parameter
.B(I_b ), // Multiplier input B bus, width determined by WIDTH_B parameter
.CE(1'b1 ), // 1-bit active high input clock enable
.CLK(i_clk), // 1-bit positive edge clock input
.RST(1'b0) // 1-bit input active high reset
);
我也查了下资源,应该是如果使用DSP乘法器的核,延时应该至少3拍,如果是组合逻辑延时值可以配置成0~4,但为modelsim仿真时,latency=2时,结果可以正确得出,不明白为什么VCS和modelsim对同一个模块型出来的结果不一样呢?
有没有碰到过类似问题的?
|
|