0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探讨VHDL和Verilog模块互相调用的问题

FPGA之家 来源:Aries FPGA开源 作者:Aries FPGA开源 2021-04-30 14:06 次阅读

1、关于如何在VHDL模块调用一个Verilog模块

在VHDL模块声明一个要与调用的Verilog模块相同名称的元件(component),元件的名称和端口模式应与Verilog模块的名称和输入/输出模式相同。注意Verilog区分大小写,VHDL不区分,所以模块名字一定要完全一致,不能搞混。

举个例子:下面是一个VHDL模块,在里面声明了一个元件(component)

cb372b9a-a95f-11eb-9728-12bb97331649.png

看Verilog模块再

cb4b3734-a95f-11eb-9728-12bb97331649.png

VHDL的模块就是通过声明一个元件(component)来调用这个Verilog模块,将元件声明提出来讲,如下图:

cb5e3e6a-a95f-11eb-9728-12bb97331649.png

对比这个Verilog模块和VHDL中声明的元件不难发现,模块名/端口/输入输出模式完全一样,这和VHDL自己调用用VHDL的元件(component)基本一样。

2、关于如何在Verilog中调用VHDL模块

在Verilog中,通过在Verilog模块中输入其名称(标识符)及端口来调用VHDL实体。模块的参数应该与实体的类型和端口的方向匹配,可以映射到Verilog模块的VHDL端口为:in,out和inout;在某些模拟器中,不允许使用缓冲区。Verilog模块只能使整个VHDL实体可见。

举个例子:下图是一个Verilog模块调用了VHDL模块(高亮处)

cb6f7040-a95f-11eb-9728-12bb97331649.png

下图是一个VHDL模块

cb7d681c-a95f-11eb-9728-12bb97331649.png

Simulator(模拟器,注:这个是英文原版使用的词语,我的理解就是一些EDA)首先在Verilog模块中查找,以查看是否有任何名为VHD_enty的Verilog模块。如果找不到,模拟器将在VHDL实体中查找。当模拟器找到名称为VHD_enty的实体时,它将该实体绑定到Verilog模块。在代码中,输入a被传递到输入端口x;输入b传递给输入y。VHDL实体计算输出O1和O2;这两个输出分别传递到Verilog输出c和d。调用VHDL模块与调用功能或任务非常相似。

例子举完了,下面验证一下

验证:在Verilog中调用VHDL模块实体(VHDL调用Verilog考虑到比较简单,大家用的更多是Verilog,就不举例子了)

验证内容:使用Verilog调用两个VHDL写的D触发器模块实现打两拍。

cb94f78e-a95f-11eb-9728-12bb97331649.png

这个代码是一个用VHDL语言写的D触发器模块,在FIFO中也写过。

cbcaf12c-a95f-11eb-9728-12bb97331649.png

这个代码是Verilog写的,在内部调用两个由VHDL写的D触发器,实现两级D触发器。

cbd45aa0-a95f-11eb-9728-12bb97331649.png

上图是VHDL写的D触发器综合出的原理图,注意对应的端口。

cbe2e0de-a95f-11eb-9728-12bb97331649.png

上图是Verilog代码综合出来的原理图,从代码上看,定义了vclk、x、y三个端口,连接VHDL写的两个D触发器,基本的调用过程就是这样。

总结:两者的互相调用过程都不复杂,举个基础的例子只是为了大家熟悉这个过程。在实际中难免会遇到有互相调用的地方。

编辑:jq

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

    关注

    1602

    文章

    21307

    浏览量

    593113
  • vhdl
    +关注

    关注

    30

    文章

    815

    浏览量

    127678
  • 触发器
    +关注

    关注

    14

    文章

    1677

    浏览量

    60392

原文标题:关于VHDL和Verilog模块互相调用的问题

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问Systemverilog中如何使用VHDL的package?

    现在需要使用system verilog写代码,但是想复用之前VHDL的package,里面有写的现成的function等,请问如何调用呢。总是报错说找不到_pkg
    发表于 03-12 15:37

    verilog中端口类型有哪三种

    Verilog 中,端口类型有三种:输入端口(input)、输出端口(output)和双向端口(inout)。 输入端口(input)用于接收来自其他模块的信号。在一个模块中,输入端口是被
    的头像 发表于 02-23 10:28 492次阅读

    verilog调用模块端口对应方式

    Verilog是一种硬件描述语言(HDL),广泛应用于数字电路设计和硬件验证。在Verilog中,模块是构建电路的基本单元,而模块端口对应方式则用于描述
    的头像 发表于 02-23 10:20 380次阅读

    verilog如何调用其他module

    第一部分:简介 1.1 什么是Verilog模块? 在Verilog中,模块是其设计层次结构的基本单元。模块是一个用于实现特定功能的单独的硬
    的头像 发表于 02-22 15:56 1088次阅读

    例说Verilog HDL和VHDL区别

    VerilogVHDL之间的区别将在本文中通过示例进行详细说明。对优点和缺点的VerilogVHDL进行了讨论。
    的头像 发表于 12-20 09:03 645次阅读
    例说<b class='flag-5'>Verilog</b> HDL和<b class='flag-5'>VHDL</b>区别

    Verilog 模块基本结构

    verilog极简语法手册
    发表于 10-23 09:28 0次下载

    仿真测试2:全加器(模块调用

    做任何模块前,要确定输入输出端口有哪些,有一个整体的概念;方便以后模块调用
    的头像 发表于 10-10 14:10 377次阅读
    仿真测试2:全加器(<b class='flag-5'>模块</b><b class='flag-5'>调用</b>)

    VHDLVerilog硬件描述语言TestBench的编写

    VHDLVerilog硬件描述语言在数字电路的设计中使用的非常普遍,无论是哪种语言,仿真都是必不可少的。而且随着设计复杂度的提高,仿真工具的重要性就越来越凸显出来。在一些
    的头像 发表于 09-09 10:16 883次阅读
    <b class='flag-5'>VHDL</b>与<b class='flag-5'>Verilog</b>硬件描述语言TestBench的编写

    System Verilog的概念以及与Verilog的对比

    Verilog模块之间的连接是通过模块端口进行的。 为了给组成设计的各个模块定义端口,我们必须对期望的硬件设计有一个详细的认识。 不幸的是,在设计的早期,我们很难把握设计的细节。 而且
    的头像 发表于 06-12 10:05 773次阅读

    Verilog中跨模块调用的两种不同方式的优缺点讨论

    在写Verilog TestBench,为了更方便更抽象地对底层模块内部的信号进行控制,经常会使用到跨模块调用的方式,这个就叫做Cross Module Reference,缩写为XM
    的头像 发表于 06-06 16:00 3357次阅读
    <b class='flag-5'>Verilog</b>中跨<b class='flag-5'>模块</b><b class='flag-5'>调用</b>的两种不同方式的优缺点讨论

    Verilog仿真激励举例

    Verilog 代码设计完成后,还需要进行重要的步骤,即逻辑功能仿真。仿真激励文件称之为 testbench,放在各设计模块的顶层,以便对模块进行系统性的例化调用进行仿真。
    的头像 发表于 06-02 11:35 1125次阅读
    <b class='flag-5'>Verilog</b>仿真激励举例

    谈谈Verilog/System Verilog和C的几种交互模式

    PLI全称 Program Language Interface,程序员可以通过PLI在verilog调用C函数,这种访问是双向的。
    的头像 发表于 06-01 17:32 917次阅读
    谈谈<b class='flag-5'>Verilog</b>/System <b class='flag-5'>Verilog</b>和C的几种交互模式

    Verilog的设计方法介绍

    Verilog 的设计多采用自上而下的设计方法(top-down)。即先定义顶层模块功能,进而分析要构成顶层模块的必要子模块
    的头像 发表于 05-29 15:44 1028次阅读
    <b class='flag-5'>Verilog</b>的设计方法介绍

    FPGA编程语言之verilog语法2

    Verilog HDL是一种用于数字系统设计的语言。用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型也称为模块Veri
    的头像 发表于 05-22 15:53 563次阅读
    FPGA编程语言之<b class='flag-5'>verilog</b>语法2

    FPGA编程语言之verilog语法1

    Verilog HDL是一种用于数字系统设计的语言。用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型也称为模块Veri
    的头像 发表于 05-22 15:52 590次阅读
    FPGA编程语言之<b class='flag-5'>verilog</b>语法1