描述
Vivado仿真器支持混合语言项目文件和混合语言仿真。
这允许您在VHDL设计中包含Verilog模块,反之亦然。
本文重点介绍了使用Vivado仿真器进行混合语言仿真的一些要点。
解
仿真中混合语言的限制
- VHDL设计可以实例化Verilog / System Verilog(SV)模块,Verilog / SV设计可以实例化VHDL组件。
基于组件实例化的默认绑定用于将Verilog / SV模块绑定到VHDL组件。
具体而言,VHDL组件内实例化的Verilog / SV模块不支持配置规范和直接实例化。
不支持VHDL和Verilog的任何其他类型的混合使用,例如调用Verilog函数的VHDL进程。
- 在Verilog / SV模块的边界上允许VHDL类型,泛型和端口的子集。
类似地,在VHDL组件的边界上允许Verilog / SV类型,参数和端口的子集。
支持的数据类型可在(UG900) Vivado Design Suite用户指南:逻辑仿真中找到 。
注意 :不支持将整个VHDL记录对象连接到Verilog对象。
但是,支持类型的VHDL记录元件可以连接到兼容的Verilog端口。
- Verilog / SV分层参考不能引用VHDL单元,VHDL扩展或选择名称也不能引用Verilog / SV单元。
但是,Verilog / SV单元可以遍历中间VHDL实例,使用Verilog分层参考进入另一个Verilog / SV单元。
绑定和搜索规则
在VHDL体系结构中实例化Verilog / SV模块或Verilog / SV模块中的VHDL组件时,xelab命令执行以下操作:
- 首先搜索与实例化设计单元的语言相同的单元。
- 如果找不到相同语言的单元,xelab将在-L选项指定的库中搜索跨语言设计单元。
搜索顺序与xelab命令行上库的外观顺序相同。
注意 :使用Vivado IDE时,会自动指定库搜索顺序。
无需用户干预。
无需用户干预。
混合语言组件的实例化
在VHDL设计单元中实例化Verilog模块:
- 使用与要实例化的Verilog模块相同的名称和相同的大小写声明VHDL组件。
- 使用命名或位置关联来实例化Verilog模块。
在Verilog / SV设计单元中实例化VHDL组件:
要在Verilog / SV设计单元中实例化VHDL组件,请将VHDL组件实例化为Verilog / SV模块。
要确保正确匹配端口类型,请查看(UG900) Vivado Design Suite用户指南:逻辑仿真中的端口映射和支持的端口类型表。
没有回复内容