Verilog和VHDL的混合使用

       有时,同一个设计中即需要使用Verilog语言,又需要使用VHDL语言。由于一些原因,一个设计团队可能在做下一个项目时切换到使用另一种语言,但是会复用现有的一些功能模块。现有的这些功能模块经常是用不同语言编写的第三方IP核,这使得设计中使用了不止一种语言。Xilinx的Microblaze处理器就是一个这样的例子,其多数外设采用VHDL编写,需要集成进Verilog项目中。

Xilinx的XST综合工具和ISIM模拟器完全支持混合使用Verilog/VHDL的项目。

      下面这个简单的例子说明了Verilog和VHDL是如何使用的。模块Ifsr counter采用VHDL编写,在Verilog编写的模块top中例化。Verilog模块也可以在VHDL中例化。

Verilog和VHDL的混合使用_第1张图片

Verilog和VHDL的混合使用_第2张图片

       只要所有边界规则得以满足,Verilog和VHDL模块就能直接在一起使用。每个综合工具的规则和限制可能稍微有所不同。Xilinx的XST用户指南定义了下面这些规则:

  • VHDL和 Verilog的混合使用仅仅只限于设计单元的例化。VHDL设计中可以例化Verilog模块,Verilog设计中也可以例化VHDL实体。任何VHDL和 Verilog之间的其他类型混用是不被支持的。

  • 在 VHDL设计中,VHDL类型的受约束子集、类属和端口允许用于连接到Verilog模块的边界上。同样,在 Verilog设计中, Verilog类型的受约束子集、参数和端口也允许用于连接到 VHDL实体或配置的边界上。

  • ·在VHDL 中例化 Verilog模块时不支持配置规范(configuration   specification)、直接例化和元件配置。

  • VHDL和 Verilog 库是逻辑统一的。

  • 为了例化 Verilog模块中的 VHDL 实体,将模块名定义为与想要例化的 VHDL实体相同,并且执行常规的Verilog例化。名称是大小写敏感的。

  • 为了在 VHDL 设计中例化 Verilog模块,定义 VHDL元件名与想要例化的Verilog模块相同,例化 Verilog 元件类似于例化 VHDL元件。

需要注意的是,使用商业模拟器模拟混合语言的设计可能需要单独的授权

更多有趣的话题请看链接:

FPGA知识汇集-FPGA项目开发包含那些任务?

FPGA知识汇集--FPGA结构(1)

FPGA的应用

FPGA知识汇集-在命令行模式下使用Xilinx工具

FPGA知识汇集-ISE的这些有用的工具您知道吗?

FPGA知识汇集-FPGA设计开发需要熟悉哪些EDA工具呢?

FPGA知识汇集-值得收藏的FPGA代码命名规范?

FPGA 知识汇集--Linux下ISE的环境变量设置

FPGA知识汇集-值得收藏的Verilog代码风格1

FPGA知识汇集-值得收藏的Verilog代码风格2

FPGA知识汇集-编写可综合代码(RTL)需要注意的规则总结

你可能感兴趣的:(FPGA,硬件设计,硬件原理设计,fpga开发)