Verilog HDL逻辑功能定义

1.在Verilog 模块中有3种方法可以描述电路的逻辑功能:

  • 用assign 连续赋值语句,常用于描述组合逻辑

    assign x = ( b & ~c );
    
  • 用元件例化(instantiate)
    and myand3( f,a,b,c);// 门元件例化
    /*and 门元件关键字; myand3例化元件名*/
    

    注1:元件例化即是调用Verilog HDL提供的元件;
    注2:元件例化包括门元件例化和模块元件例化;
    注3:每个实例元件的名字必须唯一!以避免与其它调用元件的实例相混淆。
    注4:例化元件名也可以省略!

  • 用 “always” 块语句,结构说明语句
      always @(posedge clk) // 每当时钟上升沿到来时执行一遍块内语句beginif(load)out = data;      // 同步预置数据elseout = data + 1 + cin;  // 加1计数end
    

    注1:“always” 块语句常用于描述时序逻辑,也可描述组合逻辑。
    注2:“always” 块可用多种手段来表达逻辑关系,如用if-else语句或case语句。
    注3: “always” 块语句与assign语句是并发执行的, assign语句一定要放在“always” 块语句之外!

2. Verilog HDL基本结构

Verilog HDL模块的模板(仅考虑用于逻辑综合的部分)

module <顶层模块名> (< 输入输出端口列表>) ;output 输出端口列表;input 输入端口列表;
//(1)使用assign语句定义逻辑功能wire 结果信号名;assign <结果信号名> = 表达式 ;
//(2)使用always块定义逻辑功能always @(<敏感信号表达式>)begin//过程赋值语句//if语句// case语句// while,repeat,for循环语句// task,function调用end
// (3)元件例化< module_name > < instance_name > (<port_list>);        // 模块元件例化<gate_type_keyword> < instance_name > (<port_list>); // 门元件例化
endmodule

3. 关键字

关键字——事先定义好的确认符,用来组织语言结构;或者用于定义Verilog HDL提供的门元件(如and,not,or,buf)。 用小写字母定义!

always,assign,begin,case,casex,else,end,for
function,if,input,output,repeat,table,time,while,wire

4. 标识符

  • 任何用Verilog HDL语言描述的“东西”都通过其名字来识别,这个名字被称为标识符。如源文件名、模块名、端口名、变量名、常量名、实例名等。
  • 标识符可由字母、数字、下划线和 $ 符号构成;但第一个字符必须是字母或下划线,不能是数字或 $ 符号!
  • 在Verilog HDL中变量名是区分大小写的!
  • 合法的名字:

    A_99_Z
    Reset
    _54MHz_Clock$
    Module

  • 不合法的名字:

    123a
    $data
    module
    7seg.v

五分钟快速过完Verilog HDL基本概念(3)语法讲解相关推荐

  1. 五分钟快速过完Verilog HDL基本概念(5)数据类型

    数据类型 数据类型是用来表示数字电路中的数据存储和传送单元. Verilog HDL中共有19种数据类型:其中4个最基本的数据类型为: integer型 parameter型 reg型 wire型 其 ...

  2. 五分钟快速过完Verilog HDL基本概念(4)代码的编写标准

    每个Verilog HDL源文件中只准编写一个顶层模块,也不能把一个顶层模块分成几部分写在几个源文件中. 若一个源文件中有多个模块,则其中只能有一个顶层模块(其名与文件同名),其它为子模块:而且应在顶 ...

  3. 五分钟快速过完Verilog HDL基本概念(2)

    Verilog 用于模块的测试 如何检查上述例子其功能是否正确? 需要有测试激励信号输入到被测模块 需要记录被测模块的输出信号 需要把用功能和行为描述的Verilog模块转换为门级电路互连的电路结构( ...

  4. 五分钟快速过完Verilog HDL基本概念(1)

    Verilog既是一种行为描述的语言也是一种结构描述语言.Verilog模型可以是实际电路的不同级别的抽象.这些抽象的级别包括: 系统级(system):用高级语言结构实现设计模块的外部性能的模型. ...

  5. 【五分钟】看完一道有装逼解法的算法题

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 程序员小吴 来源 | 五分钟学算法 题目来源于 LeetCode 上第 342 号问题:4 的幂.题目难度为 Easy,目前通过率为 ...

  6. markdown 本地链接_五分钟快速入门Markdown

    前言 开篇第一问,什么是markdown?我为什么选择用它而不是用word? markdown是一种极为简洁的标记语言,使用markdown可以更集中于写作内容本身而不必过分纠结于格式排版问题,可以把 ...

  7. 微信公众号消息推送【专属早安】,五分钟快速实现,不会编程也可以 【--网站已修复】

    效果演示 提前准备 申请一个微信公众号测试号.地址:测试号申请 扫码登陆注册,注册成功后就会生成微信公号的appID和appsecret.[最后步骤需要] 页面往下滑 有一个测试号二维码,[需要接收消 ...

  8. 【算法】五分钟快速了解代码复杂度

    所谓的代码复杂度,就是"快"和"省"的问题,快就是代码算法运行的时间短,省就是代码算法使用的内存少,也就是说,衡量代码执行效率,主要有两个维度,时间.空间复杂度 ...

  9. Palo Doris版五分钟快速入门

    本文转载自百度开发者中心https://developer.baidu.com/article/detail.html?id=294225 在本教程章节中,我将为大家介绍使用Palo UI快速体验和使 ...

最新文章

  1. 虚拟机下CentOS 6.5配置IP地址的三种方法
  2. FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系
  3. 文章17周项目2--通过基准线结合(三个数字排序(指针参数))
  4. JS里在光标位置插入字符
  5. LinbDesk --- 新的extjs4.2 desktop demo : 技术交流Q群:336584192
  6. 前端学习(2993):vue+element今日头条管理--加入git管理
  7. 【转】WebSocket API总结
  8. ubuntu18.04安装python3.8
  9. iptables 开启3306端口
  10. java校验入参的有效性的工具类
  11. FLEX自动完成组件.--AutoSuggest
  12. Linux的WIFI架构,Linux Wireless架构总结
  13. 2015到3020计算机参考文献,2015版参考文献著录规则新变
  14. Win10搭建gym运行atari游戏pong
  15. 报错:When executing step qmake
  16. Java基础系列:判断空指针的三种方式
  17. 微信播放在服务器视频无法播放音乐,解决ios微信浏览器中audio和video音乐视频无法自动播放等问题...
  18. 幸运抽奖,完成注册,登陆和抽奖功能
  19. spring cloud-使用Hystrix实现单个方法的fallback
  20. 别告诉我你懂PPT 让你的PPT会说话

热门文章

  1. python接口自动化参数化_python接口自动化-参数化
  2. 自考运筹学第三章课后题
  3. DOM介绍~超好理解的哦
  4. Redis--五种基础数据结构及应用场景
  5. Vue将echarts数据导出成excel文件
  6. Python笔记:变量的作用域
  7. 服务器无限关机重启,服务器反复关机重启
  8. 数据库设计:范式与反范式
  9. 什么叫做展望_开学季:有一种爱, 叫做爸妈给你塞的行李箱!(附大学新生行李箱应怎么选?)...
  10. 对象创建的过程 java_Java 对象创建过程