Vivado仿真器 - 使用混合语言仿真

描述

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模块:
  1. 使用与要实例化的Verilog模块相同的名称和相同的大小写声明VHDL组件。
  2. 使用命名或位置关联来实例化Verilog模块。

在Verilog / SV设计单元中实例化VHDL组件:
要在Verilog / SV设计单元中实例化VHDL组件,请将VHDL组件实例化为Verilog / SV模块。

要确保正确匹配端口类型,请查看(UG900) Vivado Design Suite用户指南:逻辑仿真中的端口映射和支持的端口类型表。
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-30 20:49:30 +0800

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

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