Vivado Simulator不编译模块,即使它包含在项目中并标记为在仿真中使用

描述

综合后功能仿真在静态细化期间参考sp_ram模块生成以下警告:

[VRFC 10-122] sp_ram仍然是一个黑盒子,因为它没有绑定实体[“/ project1/project_1.srcs/sim_1/imports/src/behav.vhd”:81]

该模块在名为sp_sync_ram.vhd的文件中定义,该文件已添加到设计源下并标记为在综合和仿真中使用。

因此,此模块被视为黑盒子,模块的输出显示所有未定义的“U”值。

当current_project的SOURCE_MGMT_MODE属性设置为DisplayOnly时,通常会出现此问题。 (Sources窗口弹出菜单命令“Hierarchy Update”设置为“Automatic Update,Manual Compile Order”。)

对于DisplayOnly模式下的综合后仿真,设计图计算simset和网表中的所有文件。

不执行在DisplayOnly模式下从源文件集自动计算辅助文件。因此,如果文件未包含在simset中,则它不包含在.prj中,也不会传递给Vivado Simulator进行编译。

作为解决方法,您需要手动将缺少的文件添加到仿真文件集,并将used_in值设置如下:

add_files -fileset sim_1 -norecurse /project_1/project_1.srcs/sources_1/imports/src/sp_sync_ram.vhd
set_property used_in {simulation testbench} [get_files sp_sync_ram.vhd -of_objects [current_fileset -simset]]
set_property used_in_simulation 1 [get_files sp_sync_ram.vhd -of_objects [current_fileset -simset]]

或者,用户可以将“层次结构更新”设置为“自动更新和编译顺序”,它等效地将SOURCE_MGMT_MODE设置为ALL。

来自源文件集的那些文件将在综合后或实现后仿真中自动获取。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-30 20:44:01 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它