首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于xilinx/modelsim的综合/仿真的编译器指令的自动标志?

基于xilinx/modelsim的综合/仿真的编译器指令的自动标志?
EN

Stack Overflow用户
提问于 2013-05-25 07:04:08
回答 3查看 5.2K关注 0票数 0

我有一个大型的verilog项目,我正在将其合成到xilinx fpga上,并在modelsim中进行模拟。有几个模块,我想在其中模拟一个版本的模块,并合成另一个版本。例如,我有一个参数化的重置去保释器,它只有几毫秒。显然,对于模拟来说,这很烦人,所以在模拟之前,我将去抖动计数更改为大约10个时钟周期。目前我有一个标志(`定义模拟),我将其注释掉以进行合成。然后,在我的模块中,我使用像'ifdef‘这样的编译器指令来编译不同版本的断言,这取决于合成/模拟:

代码语言:javascript
复制
 `ifdef SIMULATION
   button_debouncer #(1,5, 24)
`else
   button_debouncer #(1,12000000,24)
`endif
   resetdebounce(/**/
         // Outputs
         .debounced     (reset),
         // Inputs
         .clk           (clk),
         .button        (~reset_button));

虽然这是可行的,但它要求我在每次从modlesim切换到ISE时注释入/出‘定义模拟’。我经常忘记,浪费时间,等等。

有没有一种自动的方法来确定正在使用的工具?例如,我可以说像ifdef XILINX orifdef MODELSIM这样的东西来代替我的‘ifdef模拟hack?非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-26 17:08:05

根据XILINX_ISIM用户指南(UG660,v14.3,第44页),ISIm预定义了宏XILINX_ISIM(值为1)。因此,只需使用XILINX_ISIM而不是模拟。

票数 4
EN

Stack Overflow用户

发布于 2013-05-25 08:20:03

Mentor图形模拟器(ModelSim和Questa)将定义MODEL_TECH预处理器宏。

所以你可以这样做:

代码语言:javascript
复制
`ifdef MODEL_TECH
  // code for simulation with modelsim
`else
  // code for synthesis
`endif
票数 5
EN

Stack Overflow用户

发布于 2013-05-25 08:42:03

尝试将+define+SIMULATION作为命令行参数传递给vlog。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16744740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档