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 单元可以使用 Verilog 层级参考穿越中间 VHDL 实例进入另一个 Verilog/SV 单元。
  • 绑定和搜索规则

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

  • 首先搜索与实例化设计单元相同的语言单元。
  • 如果没有找到相同语言的单元,则 xelab 会在 -L 选项指定的库中搜索跨语言设计单元。
  • 搜索顺序与 xelab 命令行上的库出现的顺序相同。

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

    混合语言组件的实例化

    在 VHDL 设计单元中实例化 Verilog 模块:
    1. 以相同名称断言 VHDL 组件,并使用与要实例化的 Verilog 模块相同的实例。
    2. 使用命名或位置关联来实例化 Verilog 模块。

    在 Verilog/SV 设计单元中实例化 VHDL 组件:
    要在 Verilog/SV 设计单元中实例化 VHDL 组件,请像 Verilog/SV 模块那样实例化 VHDL 组件。
    为确保您正确匹配端口类型,请查看 (UG900) Vivado Design Suite 用户指南:逻辑仿真中的“端口映射”和“支持的端口类型”表

    最新文章

    最新文章