使用Vivado仿真器进行混合语言仿真的一些要点

电子说

1.3w人已加入

描述

Vivado 仿真器支持混合语言项目文件及混合语言仿真。这有助于您在 VHDL 设计中包含 Verilog 模块,反过来也是一样。

本文主要介绍使用 Vivado 仿真器进行混合语言仿真的一些要点。

仿真过程中混合语言的限制

注意:不支持将整个 VHDL 记录对象连接至 Verilog 对象。但是,支持类型的 VHDL 记录元件可以连接至兼容的 Verilog 端口。

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 用户指南:逻辑仿真中找到。

Verilog/SV 层级参考无法引用 VHDL 单元,VHDL 扩展或选定名称也无法引用 Verilog/SV 单元。但 Verilog/SV 单元可以使用 Verilog 层级参考穿越中间 VHDL 实例进入另一个 Verilog/SV 单元。

绑定和搜索规则

当在 VHDL 架构中的 Verilog/SV 模块或 Verilog/SV 模块中实例化 VHDL 组件时,xelab 命令会执行以下任务:

注意:在使用 Vivado IDE 时,会自动指定库搜索顺序。用户无需干预,也无法干预。

首先搜索与实例化设计单元相同的语言单元。

如果没有找到相同语言的单元,则 xelab 会在 -L 选项指定的库中搜索跨语言设计单元。

搜索顺序与 xelab 命令行上的库出现的顺序相同。

混合语言组件的实例化

在 VHDL 设计单元中实例化 Verilog 模块:

1. 以相同名称断言 VHDL 组件,并使用与要实例化的 Verilog 模块相同的实例。

2. 使用命名或位置关联来实例化 Verilog 模块。

在 Verilog/SV 设计单元中实例化 VHDL 组件:

要在 Verilog/SV 设计单元中实例化 VHDL 组件,请像 Verilog/SV 模块那样实例化 VHDL 组件。

编辑:jq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分