在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1721|回复: 2

[求助] synopsys vcs 2018 仿真xiilinx原语mult_macro时序不对问题

[复制链接]
发表于 2022-2-28 18:41:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

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对同一个模块型出来的结果不一样呢?
有没有碰到过类似问题的?


 楼主| 发表于 2022-3-1 09:58:32 | 显示全部楼层
问题已解决,做个分享:
vcs的option设置成了override_timescale=1ns/1ps
这样设置,代码所有的timescale会统一成1ns/1ps,包括vivado的ip
这样会使得仿真模型功能不正确,因为里面会用到组合逻辑,例如
assign p = #1 a,这样p就会比a延时1ns,而tb里面的时钟我设置成了 always #1 clk = ~clk;
和IP的模型对不上,总之慎用 override_timescale


发表于 2024-10-29 20:35:56 | 显示全部楼层
感谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-25 15:50 , Processed in 0.017980 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表