0

我是 TinyFPGA 的新手,所以我需要一点帮助!我正在为传感器和执行器开发一个 Tiny FPGA 项目,其中每个 tinyFPGA 提供一个 8 位数字传感器输入,以及一个具有不同操作模式(开/关、PWM 和脉冲)的 4 个执行器输出——它们在使用 WS2811 像素“协议的环,并被 ESP32 拦截。我已经成功构建了一个相当不错的系统模拟测试台,它成功地验证了 RTL 级别的 3 个互连设计实例(使用我全新的 RYZEN 需要 4 小时才能完成) 7 台机器:-). 接下来我要做的是进行布线后仿真以验证时序-在这里我卡住了。我正在使用 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 设计(最终我希望所有三个都用时序进行仿真,但当时有一个问题)。

现在我收到以下错误:...</p>

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多个这样的错误......但是当我看到第一个错误时:“未能找到实例'SLICE_303'”我不明白这个问题,我可以清楚地看到“genericIOSatelite_impl1_vo中的'SLICE_303'实例。 sdf”和“genericIOSatelite_impl1_vo.vo”:

“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 的周期时间.

最好的问候/乔纳斯

4

1 回答 1

0

它似乎是 ModelSim 中的错误,如以下文章中所建议:https ://www.intel.com/content/www/us/en/support/programmable/articles/000084538.html -sdfnoerror -sdfnowarn 似乎修复了问题 - 但不是很确定只是压制问题:-(

于 2021-10-02T17:52:14.517 回答