VERILOG HDL基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章Verilog-HDL基础知识
1.Verilog-HDL概述
1.1什么是硬件描述语言(HDL)
HDL:Hardware Description Language
硬件描述语言HDL是一种用形式化方法描述数字电路和系统的语言,可以描述硬件电路的功能、信号连接关系和定时关系。
1.2使用HDL的优点
▪电路的逻辑功能容易理解;
▪便于计算机对逻辑进行分析处理;
▪把逻辑设计与具体电路的实现分成两个独立的阶段来操作;
▪逻辑设计与实现的工艺无关;
▪逻辑设计的资源积累可以重复利用;
▪可以由多人共同更好更快地设计非常复杂的逻辑电路(几十万门以上的逻辑系统)。
1.3Top_Down设计思想
1.4Verilog-HDL简介
1.4.1Verilog HDL的发展
1.4.2Verilog-HDL与VHDL的比较
☆VHDL-VHSIC Hardware Description Language。VHDL于1987年成为IEEE标准。
☆Verilog-HDL简单易学,语法比较灵活。VHDL语法严谨,需要较长的时间学会。
☆Verilog-HDL在系统抽象方面比VHDL略差,但在门级开关电路描述方面比VHDL强。
1.4.3Verilog-HDL的应用
♦ASIC和FPGA设计师可用它来编写可综合的代码。
♦描述系统的结构,做高层次的仿真。
♦验证工程师编写各种层次的测试模块对具体电路设计工程师所设计的模块进行全面细致的验证。
♦库模型的设计:可以用于描述ASIC和FPGA的基本单元(Cell)部件,也可以描述复杂的宏单元(Macro Cell)。
1.4.4Verilog-HDL的抽象级别
用Verilog-HDL描述的电路设计就是该电路的Verilog HDL模型,这些模型可以是实际电路的不同级别的抽象,这些抽象的级别和它们对应的模型类型共有以下五种:▪系统级(system):用高级语言结构实现设计模块的外部性能的模型。
▪算法级(algorithmic):用高级语言结构实现设计算法的模型。
▪RTL级(Register Transfer Level):描述数据在寄存器之间流动和如何处理这些数据的模型。
▪门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。
▪开关级(switch-level):描述器件中三极管和储存节点以及它们之间连接的模型。
2.Verilog-HDL的模块
2.1模块的结构
Verilog的基本设计单元是“模块”。一个模块由两部分组成,一部分描述接口;另一部分描述逻辑功能,即定义输入是如何影响输出的。
2.1.1模块的端口定义
▪模块的端口声明了模块的输入输出口。
▪其格式如下:
module模块名(端口1,端口2,端口3,...);
2.1.2模块的内容
模块内容包括I/O说明、内部信号声明和功能定义及描述。每一条语句必须都以;结束。
2.1.2.1I/O说明
☆I/O说明的格式如下:
input端口1,端口2….;//输入端口
output端口1,端口2….;//输出端口
inout端口1,端口2….;//双向端口
☆也可以写在端口声明语句中,如module XXX(input port1,output port2…);
2.1.2.2功能定义
▪用assign声明语句assign a=b&c;
▪用实例化元件and u1(q,a,b);
▪用always语句块或者initial语句块
always@(posedge clk)
beigin
if(clr)q<=1’b0;
else q<=a;
end
2.1.2.3补充内容
☆标识符
1.标识符就是用户为程序描述中的Verilog对象所起的名字。模块名、端口名和实例名都是标识符。
2.标识符必须以英语字母(a-z,A-Z)起头,或者用下横线符(_)起头。其中可以包含数字、$符和下横线符。
3.标识符最长可以达到1023个字符。
4.Verilog语言是大小写敏感的,所有的Verilog关键词都是小写的。
☆空格和注释
1.空格在文本中起一个分离符的作用,别的没有其他用处。
2.单行注释符用//*********,与C语言一致。
3.多行注释符用/*---------
---------*/与C语言一致。
☺注意养成写注释的习惯,便于程序调试和以后程序的利用。
2.2模块的例化
一个模块可以由几个子模块构成,一个模块也可以调用其他模块,形成层次结构。对低层次模块的调用称为模块的例化。
2.3模块的测试
♦需要有测试激励信号输入到被测模块。
♦需要记录被测模块的输出信号。
♦需要把用功能和行为描述的Verilog模块转换为门级电路互连的电路结构(综合)。
♦需要对已经转换为门级电路结构的逻辑进行测试(门级电路仿真)。
♦需要对布局布线后的电路结构进行测试。(布局布线后仿真)。
3.数据类型
3.1Verilog的四种逻辑值
0、低、伪、逻辑低
1、高、真、逻辑高
X、不确定:逻辑冲突无法确定其逻辑值
HiZ、高阻抗、三态、无驱动源
注:x和X、z和Z不区别大小写。Z有时候也用?代替。
3.2总括
Verilog HDL中共有19种数据类型,分成常量和变量。
最基本最常用的4种:
寄存器型reg
线网型wire