数字逻辑电路第二章ch02_第1页
数字逻辑电路第二章ch02_第2页
数字逻辑电路第二章ch02_第3页
数字逻辑电路第二章ch02_第4页
数字逻辑电路第二章ch02_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 2.3.1 Verilog的基本语法规则 2.3.2 变量的数据类型 2.3.3 Verilog程序的基本结构 2.3.4 逻辑功能的仿真与测试2.3 硬件描述语言Verilog HDL基础硬件描述语言HDL(Hardware Description Language )类似于高级程序设计语言。它是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,复杂数字逻辑系统所的逻辑功能。HDL是高层次自动化设计的起点和基础.2.3 硬件描述语言Verilog HDL基础什么是硬件描述语言HDL具有特殊结构能够对硬件逻辑电路的功能进行描述的一种高级编程语言这种特殊结

2、构能够:描述电路的连接描述电路的功能在不同抽象级上描述电路描述电路的时序表达具有并行性HDL主要有两种:Verilog和VHDLVerilog起源于C语言,因此非常类似于C语言,容易掌握VHDL起源于ADA语言,格式严谨,不易学习。VHDL出现较晚,但标准化早。IEEE 1706-1985标准。为什么使用HDL使用HDL描述设计具有下列优点:设计在高层次进行,与具体实现无关设计开发更加容易早在设计期间就能发现问题能够自动的将高级描述映射到具体工艺实现在具体实现时才做出某些决定HDL具有更大的灵活性可重用可以选择工具及生产厂HDL能够利用先进的软件更快的输入易于管理Verilog的历史Veril

3、og HDL是在1983年由GDA(GateWay Design Automation)公司的Phil Moorby所创。Phi Moorby后来成为Verilog-XL的主要设计者和Cadence公司的第一个合伙人。在19841985年间,Moorby设计出了第一个Verilog-XL的仿真器。1986年,Moorby提出了用于快速门级仿真的XL算法。1990年,Cadence公司收购了GDA公司1991年,Cadence公司公开发表Verilog语言,成立了OVI(Open Verilog International)组织来负责Verilog HDL语言的发展。1995年制定了Verilo

4、g HDL的IEEE标准,即IEEE1364。计算机对HDL的处理:逻辑综合 是指从HDL描述的数字逻辑电路模型中导出电路基本元件列表以及元件之间的连接关系(常称为门级网表)的过程。类似对高级程序语言设计进行编译产生目标代码的过程.产生门级元件及其连接关系的数据库,根据这个数据库可以制作出集成电路或印刷电路板PCB。逻辑仿真 是指用计算机仿真软件对数字逻辑电路的结构和行为进行预测。仿真器对HDL描述进行解释,以文本形式或时序波形图形式给出电路的输出。在仿真期间如发现设计中存在错误,就再要对HDL描述进行及时修改。2.3.1 Verilog语言的基本语法规则为对数字电路进行描述(常称为建模),V

5、erilog语言规定了一套完整的语法结构。1间隔符: Verilog 的间隔符主要起分隔文本的作用,可以使文本错落有致,便于阅读与修改。间隔符包括空格符(b)、Tab 键(t)、换行符(n)及换页符。2注释符:注释只是为了改善程序的可读性,在编译时不起作用。多行注释符(用于写多行注释): /* - */;单行注释符 :以/开始到行尾结束为注释文字。为了表示数字逻辑电路的逻辑状态,Verilog语言规定了4种基本的逻辑值。 0逻辑0、逻辑假 1逻辑1、逻辑真 x或X不确定的值(未知状态) z或Z高阻态标识符:给对象(如模块名、电路的输入与输出端口、变量等)取名所用的字符串。以英文字母或下划线开始

6、如,clk、counter8、_net、bus_A 。关键词:是Verilog语言本身规定的特殊字符串,用来定义语言的结构。例如,module、endmodule、input、output、wire、reg、and等都是关键词。关键词都是小写,关键词不能作为标识符使用 。4逻辑值集合3标识符和关键词5常量及其表示实数型常量十进制记数法 如: 0.1、2.0、5.67科学记数法 如: 23_5.1e2、5E4 23510.0、 0.0005Verilog允许用参数定义语句定义一个标识符来代表一个常量,称为符号常量。定义的格式为:parameter 参数名1常量表达式1,参数名2常量表达式2,;如

7、 parameter BIT=1, BYTE=8, PI=3.14;6字符串:字符串是双撇号内的字符序列常量十进制数的形式的表示方法:表示有符号常量例如:30、2带基数的形式的表示方法: 表示常量格式为:整数型例如:3b101、5o37、8he3,8b1001_0011 2.3.2 变量的数据类型1.线网类型:是指输出始终根据输入的变化而更新其值的变量,它一般指的是硬件电路中的各种物理连接. 例:wire L; /将上述电路的输出信号L声明为网络型变量 wire 7:0 data bus; /声明一个8-bit宽的网络型总线变量常用的网络类型由关键词wire定义wire型变量的定义格式如下:w

8、ire n-1:0 变量名1,变量名2,变量名n;变量宽度例:网络型变量L的值由与门的驱动信号a和b所决定,即La&b。a、b的值发生变化,线网L的值会立即跟着变化。 & b a L 寄存器型变量对应的是具有状态保持作用的电路元件,如触发器寄存器。寄存器型变量只能在initial或always内部被赋值。2.寄存器类型寄存器类型功能说明reg常用的寄存器型变量integer32位带符号的整数型变量real64位带符号的实数型变量time64位无符号的时间变量4种寄存器类型的变量例 reg clock;/定义一个1位寄存器变量 reg 3:0 counter; /定义一个4位寄存器变量抽象描述,

9、不对应具体硬件2.每个模块先要进行端口的定义,并说明输入(input)和输出(output),然后对模块功能进行描述。2.3.3 Verilog程序的基本结构Verilog使用大约100个预定义的关键词定义该语言的结构1. Verilog的HDL程序由模块构成。每个模块的内容都是嵌在关键词module和endmodule两个语句之间。每个模块实现特定的功能。3.除了endmodule语句外,每个语句后必须有分号。4.可以用/* - */和/.对Verilog HDL程序的任何部分做注释。模块定义的一般语法结构如下:端口类型说明电路结构描述模块名数据类型说明例:用结构描述方式建立门电路Veril

10、og模型/Gate-level description of simple circuitmodule mux2to1(a, b, sel, out); input a, b, sel; /定义输入信号 output out; /定义输出信号 wire selnot, a1, b1 ; /定义内部节点信号数据类型/下面对电路的逻辑功能进行描述 not U1(selnot, sel); and U2(a1, a, selnot); and U3(b1, b, sel); or U4(out, a1, b1);endmodule 2.3.4 逻辑功能的仿真与测试逻辑电路的设计块完成后,就要测试这个

11、设计块描述的逻辑功能是否正确。为此必须在输入端口加入测试信号,而从其输出端口检测其结果是否正确,这一过程常称为搭建测试平台。根据仿真软件的不同,搭建测试平台的方法也不同。数字钟的仿真波形Verilog的用途Verilog的主要应用包括:ASIC和FPGA工程师编写可综合的RTL代码高抽象级系统仿真进行系统结构开发测试工程师用于编写各种层次的测试程序用于ASIC和FPGA单元或更高层次的模块的模型开发Verilog与C的主要不同点 Verilog 有许多语法规则与 C 语言一致。 但与 C 语言有根本的区别:- 并行性- 块的含义: initial 块 和 always块两种赋值语句: 阻塞 赋

12、值 “ = ” 非阻塞赋值 “= ”抽象级(Levels of Abstraction)Verilog既是一种行为描述的语言也是一种结构描述语言。Verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别包括:系统说明-设计文档/算法描述RTL/功能级-Verilog门级/结构级-Verilog版图/物理级-几何图形行为综合综合前仿真逻辑综合综合后仿真版图抽象级(Levels of Abstraction)在抽象级上需要进行折衷系统说明-设计文档/算术描述RTL/功能级-Verilog门级/结构级-Verilog版图/物理级-几何图形详细程度 低 高输入/仿真速度 高 低抽象级(Leve

13、ls of Abstraction)Verilog可以在三种抽象级上进行描述行为级 用功能块之间的数据流对系统进行描述 在需要时在函数块之间进行调度赋值。RTL级/功能级用功能块内部或功能块之间的数据流和控制信号描述系统基于一个已定义的时钟的周期来定义系统模型结构级/门级用基本单元(primitive)或低层元件(component)的连接来描述系统以得到更高的精确性,特别是时序方面。在综合时用特定工艺和低层元件将RTL描述映射到门级网表抽象级(Levels of Abstraction)设计工程师在不同的设计阶段采用不同的抽象级首先在行为级描述各功能块,以降低描述难度,提高仿真速度。在综合前

14、将各功能模块进行RTL级描述。用于综合的库中的大多数单元采用结构级描述。在本课程中的结构级描述部分将对结构级(门级)描述进行更详细的说明。Verilog还有一定的晶体管级描述能力及算法级描述能力行为级和RTL级MUX的行为可以描述为:只要信号a或b或sel发生变化,如果sel为0则选择a输出;否则选择b输出。module muxtwo (out, a, b, sel); input a, b, sel; output out; reg out; always ( sel or a or b) if (! sel) out = a; else out = b; endmodule这个行为级RTL

15、描述不处理X和Z状态输入,并且没有延时。在行为级模型中,逻辑功能描述采用高级语言结构,如, while,wait,if, case。Testbench(test fixture)通常采用行为级描述。所有行为级结构在testbench描述中都可以采用。RTL模型中数据流都是基于时钟的。任何时钟元件在时钟沿处的行为都要精确描述。RTL级描述是行为级Verilog的子集。结构级描述结构级Verilog适合开发小规模元件,如ASIC和FPGA的单元Verilog内部带有描述基本逻辑功能的基本单元(primitive),如and门。用户可以定义自己的基本单元UDP(User Defined Privitives)综合产生的结果网表通常是结构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论