【发布时间】:2018-12-04 21:41:05
【问题描述】:
我有一个系统,它有一些以秒为单位的超时,出于模拟的目的,我想将它们减少到微秒或毫秒。
我根据我的 FPGA 时钟的时钟周期数定义了这些超时。举个例子
package time_pkg
parameter EXT_EN_SIG_TIMEOUT = 32'h12345678;
...
endpackage
我将计数器与常量全局参数 EXT_EN_SIG_TIMEOUT 进行比较,以确定是否是断言启用信号的正确时间。
我想在一个名为time_pkg 的包中定义这个参数(以及一堆其他参数),并在一个名为time_pkg.v 的文件中使用这个包进行综合。
但是当我在 Riviera Pro(或 Modelsim)中模拟我的设计时,我希望在名为 time_pkg_sim.v 的文件中定义第二个参数,该文件在 time_pkg.v 之后导入,并覆盖与已在time_pkg 中定义。
如果我只是简单地创建一个 time_pkg_sim.v,其中包含一个同名的包 (time_pkg),那么 Riviera 会抱怨,因为我试图重新声明一个已经声明的包。
我不想在我的 hdl 中乱扔语句来检查是否设置了模拟标志,以便决定是否将计数器与 EXT_EN_SIG_TIMEOUT 或 EXT_EN_SIG_TIMEOUT_SIM 进行比较
在使用模拟工具时,是否有允许重新定义包内参数的标准方法?
【问题讨论】:
标签: verilog fpga system-verilog modelsim