【问题标题】:Diamond/ModelSim post-route timing simulation problemsDiamond/ModelSim 布线后时序仿真问题
【发布时间】:2021-11-23 17:20:53
【问题描述】:

我是 TinyFPGA 的新手,所以我需要一点帮助! 我正在为传感器和执行器开发一个 Tiny FPGA 项目,其中每个 tinyFPGA 提供一个 8 位数字传感器输入,以及一个具有不同操作模式(开/关、PWM 和脉冲)的 4 个执行器输出——它们在使用 WS2811 像素“协议的环,并被 ESP32 拦截。 我已经成功地为系统仿真构建了一个相当不错的测试台,它成功地验证了 RTL 级别的 3 个互连设计实例(使用我全新的 RYZEN 7 机器需要 4 小时才能完成:-)。 接下来我想做的是做路由后仿真来验证时序——在这里我卡住了。我正在使用 Lattice Diamond 和“内置”ModelSim。 我希望所有的测试台逻辑都被 RTL 模拟,而实际的 FPGA 设计实例被后路由/时间模拟。 Lattice Diamond 生成的 modelsim 的 .mdo 脚本如下所示:

if {![file exists “C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/timing/timing.mpf”]} {
project new “C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/timing” timing
project addfile “C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/impl1/genericIOSatelite_impl1_vo.vo”
project addfile “C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/genericIOSatelite_TB.v”
vlib work
vdel -lib work -all
vlib work
vlog +incdir+C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/impl1 -work work “C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/impl1/genericIOSatelite_impl1_vo.vo”
vlog +incdir+C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2 -work work “C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/genericIOSatelite_TB.v”
} else {
project open “C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/timing/timing”
project compileoutofdate
}
vsim -L work -L pmi_work -L ovi_machxo2 +transport_path_delays +transport_int_delays genericIOSatelite_TB -sdfmax /genericIOSatelite_TB/DUT0=C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/impl1/genericIOSatelite_impl1_vo.sdf
view wave
add wave /*
run 1000ns

其中“genericIOSatelite_impl1_vo.vo”是我的布线和布局 FPGA 设计,“genericIOSatelite_TB.v”是我的测试平台,“genericIOSatelite_impl1_vo.sdf”是我的 FPGA 设计的时序数据库,“/genericIOSatelite_TB/DUT0”是其中之一FPGA 设计的三个测试台实例(最终我希望所有三个都用时序进行仿真,但当时有一个问题)。

现在我收到以下错误: …

Loading instances from C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/impl1/genericIOSatelite_impl1_vo.sdf
** Error (suppressible): (vsim-SDF-3250) C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/impl1/genericIOSatelite_impl1_vo.sdf(7071): Failed to find INSTANCE ‘SLICE_303’.
** Error (suppressible): (vsim-SDF-3250) C:/Users/jonas/OneDrive/Projects/ModelRailway/GenericJMRIdecoder/hardware/Satelites_CRC_2/impl1/genericIOSatelite_impl1_vo.sdf(7082): Failed to find INSTANCE ‘SLICE_304’.

还有 100 多个这样的错误…… 但是当我看到第一个错误:“Failed to find INSTANCE 'SLICE_303'”时,我不明白这个问题,我可以清楚地看到“genericIOSatelite_impl1_vo.sdf”和“genericIOSatelite_impl1_vo.vo”中的“SLICE_303”实例:

“genericIOSatelite_impl1_vo.sdf”:

.
.
.
(CELL
(CELLTYPE “SLICE_303”)
(INSTANCE SLICE_303)
(DELAY
(ABSOLUTE
(IOPATH B0 F1 (635:710:786)(635:710:786))
(IOPATH A0 F1 (635:710:786)(635:710:786))
(IOPATH FCI F1 (459:514:569)(459:514:569))
)
)
)
.
.
.

“genericIOSatelite_impl1_vo.vo”:

.
.
.
SLICE_303 SLICE_303( .B0(control_7_adj_1162), .A0(cnt_9_adj_1170),
.FCI(n4958), .F1(n312));
.
.
.

我非常想就我在这里做错了什么得到建议,使用具有 133 MHZ 频率的内置 OSCH,以及 7ns 的周期时间,我相信它会很适合令人放心的布线/布局后模拟@ 最糟糕的时机。

最好的问候/乔纳斯

【问题讨论】:

    标签: fpga modelsim lattice-diamond


    【解决方案1】:

    这似乎是 ModelSim 中的一个错误,如下文所述:https://www.intel.com/content/www/us/en/support/programmable/articles/000084538.html -sdfnoerror -sdfnowarn 似乎解决了这个问题 - 但不能保证只是解决问题:-(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多