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

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

3天内不再提示

看看两个使用Verilog HDL设计的简单电路

冬至子 来源:电子技术实验XJTU 作者:孙敏 2023-09-17 15:03 次阅读

举例:与非门

与非门的Verilog 描述如下图所示,源程序文件的后缀为.v。

图片

Verilog语言的基本描述单元是模块,也就是module。可以看到每一个功能模块都是以module开始,endmodule结束的。一个.v文件可以同时包含多个这样的模块。但是,我们建议大家一个.v文件只包含一个模块,这样便于程序的管理、调试以及复用。

在模块声明中还包含这个模块的名称,以及端口列表,模块就是通过这些端口与其他功能模块进行通信的。我们可以将模块看作一个具有特定功能的电路或集成芯片,端口就相当于这个电路的引脚。

这个与非门模块包含了abc三个端口,那么这些端口哪些是输入,哪些是输出呢,我们需要对其进行声明。并且还要声明这些端口的类型,最常用的就是wire和reg两种类型,其中wire是默认类型,可以省略。后续我们会详细讲解,这里不多做介绍。接下来就是模块的主体部分“逻辑功能描述”,这里使用的是组合逻辑常用assign连续赋值语句。

举例:D触发器

再来看一个简单的上升沿d触发器的例子,如下图所示。

图片

D触发器是时序电路的基本组成单元。可以看到模块声明和刚才的格式略有不同(两种格式均可),但整个模块仍然是以module开始,endmodule结束的。module后面是模块名,这里模块名后面的括号中将端口声明和端口类型声明放在了一起,这是vivado自动生成的格式。

这里的clk和d_i是输入信号,没有指明类型,则默认为wire型。q_o是一个reg类型的输出端口。接下来就是逻辑功能描述,这里采用了时序逻辑主要使用的always语句。

两种端口声明格式

下面是与非门模块的两种描述格式。

图片

图片

总结

  1. 一个Verilog HDL模块是以module开始,endmodule结束的。
  2. module后面是模块名,是所设计电路的标识符。
  3. 模块名后面的括号中是模块的端口名,使用逗号隔开,最后一个端口后面没有标点符号。
  4. 端口及其类型声明:端口还需要定义是输入还是输出,以及端口信号的类型是wire型还是reg型,这些都可以放在端口名后面的括号中一起声明。此外,在模块中所使用的一些内部信号和数据对象也要进行数据类型声明。

一般使用assign赋值的信号声明为wire型,在always或initial语句中赋值的信号声明为reg型。还可以使用参数来定义常量,增加程序的可读性。Verilog的数据类型有很多,但80%的情况只用到这三种。

  1. 模块的主体用于描述模块的逻辑功能。常用的有:① assign连续赋值语句,多用于描述组合电路。② always语句可以描述时序逻辑也可以描述组合逻辑。③ 还可以通过实例化已有的模块的方式来建立新的模块,像搭积木一样快速搭建一个系统。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • D触发器
    +关注

    关注

    3

    文章

    164

    浏览量

    47905
  • 时序逻辑电路

    关注

    2

    文章

    94

    浏览量

    16538
  • Module
    +关注

    关注

    0

    文章

    68

    浏览量

    12851
  • CLK
    CLK
    +关注

    关注

    0

    文章

    127

    浏览量

    17159
  • Verilog语言
    +关注

    关注

    0

    文章

    113

    浏览量

    8224
收藏 人收藏

    评论

    相关推荐

    Verilog HDL语言是什么

    的工业标准来统一对数字逻辑电路及系统的描述,这样就能把系统设计工作分解为逻辑设计(前端)和电路实现(后端)两个互相独立而又相关的部分。由于逻辑设计的相对独立性就可以把专家们设计的各种常用数字逻辑
    发表于 11-08 09:30

    Verilog-HDL实践与应用系统设计

    Verilog-HDL实践与应用系统设计本书从实用的角度介绍了硬件描述语言Verilog-HDL。通过动手实践,体验Verilog-HDL的语法结构、功能等内涵。在前五章,以简单的实例
    发表于 11-14 22:57 147次下载
    <b class='flag-5'>Verilog-HDL</b>实践与应用系统设计

    Verilog HDL程序基本结构与程序入门

    Verilog HDL程序基本结构与程序入门 Verilog HDL程序基本结构  Verilog
    发表于 02-08 11:43 2302次阅读

    Verilog HDL语言实现时序逻辑电路

    Verilog HDL语言实现时序逻辑电路Verilog HDL语言中,时序逻辑电路使用a
    发表于 02-08 11:46 4710次阅读

    Verilog HDL电路设计指导书—华为

    Verilog HDL电路设计指导书共包括典型电路和常用电路两个章节。如果是初学者建议从常用
    发表于 09-07 16:20 0次下载
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b><b class='flag-5'>电路</b>设计指导书—华为

    Verilog_HDL教程

    Verilog_HDL教程,又需要的朋友下来看看
    发表于 05-11 17:30 0次下载

    Verilog+HDL实用教程-电科

    Verilog+HDL实用教程-电科,下来看看
    发表于 05-11 17:30 34次下载

    Verilog HDL入门教程

    本文主要介绍了Verilog HDL 语言的一些基本知识,目的是使初学者能够迅速掌握HDL设计方法,初步了解并掌握Verilog HDL语言
    发表于 07-15 15:27 0次下载

    Verilog HDL入门教程之Verilog HDL数字系统设计教程

    本文档的主要内容详细介绍的是Verilog HDL入门教程之Verilog HDL数字系统设计教程。
    发表于 09-20 15:51 83次下载
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>入门教程之<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>数字系统设计教程

    Verilog HDL入门教程

    本文主要介绍了Verilog HDL 语言的一些基本知识,目的是使初学者能够迅速掌握HDL 设计方法,初步了解并掌握Verilog HDL
    发表于 02-11 08:00 99次下载
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>入门教程

    如何使用Verilog HDL描述可综合电路

    1、如何使用Verilog HDL描述可综合电路 Verilog 有什么奇技淫巧?我想最重要的是理解其硬件特性。Verilog
    的头像 发表于 04-04 11:19 4207次阅读
    如何使用<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>描述可综合<b class='flag-5'>电路</b>?

    Verilog HDL的礼物-Verilog HDL扫盲文下载

    很多进入FPGA世界不久得朋友,第一要学习当然是HDL语言,在网上流行的有Verilog和VDL这两个HDL语言。如果读者是 VDL
    发表于 04-30 09:24 28次下载

    Verilog HDL基础语法入门

    简单介绍Verilog HDL语言和仿真工具。
    发表于 05-06 16:17 618次下载

    Verilog HDL verilog hdl和vhdl的区别

    Verilog HDL是一种以文本形式描述数字系统硬件的结构和行为的硬件描述语言,也可描述逻辑电路图、逻辑表达式等。Verilog HDL
    的头像 发表于 07-23 14:36 1.1w次阅读

    Verilog HDL入门教程-Verilog HDL的基本语法

    Verilog HDL入门教程-Verilog HDL的基本语法
    发表于 01-07 09:23 179次下载