五分钟快速过完Verilog HDL基本概念(3)语法讲解
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)语法讲解相关推荐
- 五分钟快速过完Verilog HDL基本概念(5)数据类型
数据类型 数据类型是用来表示数字电路中的数据存储和传送单元. Verilog HDL中共有19种数据类型:其中4个最基本的数据类型为: integer型 parameter型 reg型 wire型 其 ...
- 五分钟快速过完Verilog HDL基本概念(4)代码的编写标准
每个Verilog HDL源文件中只准编写一个顶层模块,也不能把一个顶层模块分成几部分写在几个源文件中. 若一个源文件中有多个模块,则其中只能有一个顶层模块(其名与文件同名),其它为子模块:而且应在顶 ...
- 五分钟快速过完Verilog HDL基本概念(2)
Verilog 用于模块的测试 如何检查上述例子其功能是否正确? 需要有测试激励信号输入到被测模块 需要记录被测模块的输出信号 需要把用功能和行为描述的Verilog模块转换为门级电路互连的电路结构( ...
- 五分钟快速过完Verilog HDL基本概念(1)
Verilog既是一种行为描述的语言也是一种结构描述语言.Verilog模型可以是实际电路的不同级别的抽象.这些抽象的级别包括: 系统级(system):用高级语言结构实现设计模块的外部性能的模型. ...
- 【五分钟】看完一道有装逼解法的算法题
戳蓝字"CSDN云计算"关注我们哦! 作者 | 程序员小吴 来源 | 五分钟学算法 题目来源于 LeetCode 上第 342 号问题:4 的幂.题目难度为 Easy,目前通过率为 ...
- markdown 本地链接_五分钟快速入门Markdown
前言 开篇第一问,什么是markdown?我为什么选择用它而不是用word? markdown是一种极为简洁的标记语言,使用markdown可以更集中于写作内容本身而不必过分纠结于格式排版问题,可以把 ...
- 微信公众号消息推送【专属早安】,五分钟快速实现,不会编程也可以 【--网站已修复】
效果演示 提前准备 申请一个微信公众号测试号.地址:测试号申请 扫码登陆注册,注册成功后就会生成微信公号的appID和appsecret.[最后步骤需要] 页面往下滑 有一个测试号二维码,[需要接收消 ...
- 【算法】五分钟快速了解代码复杂度
所谓的代码复杂度,就是"快"和"省"的问题,快就是代码算法运行的时间短,省就是代码算法使用的内存少,也就是说,衡量代码执行效率,主要有两个维度,时间.空间复杂度 ...
- Palo Doris版五分钟快速入门
本文转载自百度开发者中心https://developer.baidu.com/article/detail.html?id=294225 在本教程章节中,我将为大家介绍使用Palo UI快速体验和使 ...
最新文章
- 虚拟机下CentOS 6.5配置IP地址的三种方法
- FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系
- 文章17周项目2--通过基准线结合(三个数字排序(指针参数))
- JS里在光标位置插入字符
- LinbDesk --- 新的extjs4.2 desktop demo : 技术交流Q群:336584192
- 前端学习(2993):vue+element今日头条管理--加入git管理
- 【转】WebSocket API总结
- ubuntu18.04安装python3.8
- iptables 开启3306端口
- java校验入参的有效性的工具类
- FLEX自动完成组件.--AutoSuggest
- Linux的WIFI架构,Linux Wireless架构总结
- 2015到3020计算机参考文献,2015版参考文献著录规则新变
- Win10搭建gym运行atari游戏pong
- 报错:When executing step qmake
- Java基础系列:判断空指针的三种方式
- 微信播放在服务器视频无法播放音乐,解决ios微信浏览器中audio和video音乐视频无法自动播放等问题...
- 幸运抽奖,完成注册,登陆和抽奖功能
- spring cloud-使用Hystrix实现单个方法的fallback
- 别告诉我你懂PPT 让你的PPT会说话