【发布时间】: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