《硬件描述语言简介》ppt课件

上传人:tia****nde 文档编号:70579369 上传时间:2019-01-17 格式:PPT 页数:33 大小:750.13KB
返回 下载 相关 举报
《硬件描述语言简介》ppt课件_第1页
第1页 / 共33页
《硬件描述语言简介》ppt课件_第2页
第2页 / 共33页
《硬件描述语言简介》ppt课件_第3页
第3页 / 共33页
《硬件描述语言简介》ppt课件_第4页
第4页 / 共33页
《硬件描述语言简介》ppt课件_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《《硬件描述语言简介》ppt课件》由会员分享,可在线阅读,更多相关《《硬件描述语言简介》ppt课件(33页珍藏版)》请在金锄头文库上搜索。

1、2019/1/17,1,第九章 硬件描述语言简介,9.1 概述 9.2 Verilog HDL简介 9.3 用Verilog HDL描述逻辑电路的实例,2019/1/17,2,9.1 概述,硬件描述语言HDL(Hardware Description Language )是一种用形式化方法来描述数字电路和数字逻辑系统的语言。数字逻辑电路设计者可利用这种语言来描述自己的设计思想,然后利用EDA工具进行仿真,再自动综合到门级电路,最后用ASIC或FPGA实现其功能。,2019/1/17,3,举个例子,在传统的设计方法中,对2输入的与门,我们可能需到标准器件库中调个74系列的器件出来,但在硬件描述语

2、言中,“& ”就是一个与门的形式描述,“C = A & B”就是一个2输入与门的描述。而“and”就是一个与门器件。,硬件描述语言发展至今已有二十多年历史,当今业界的标准中(IEEE标准)主要有VHDL和Verilog HDL 这两种硬件描述语言。,2019/1/17,4,在数字电路设计中,数字电路可简单归纳为两种要素:线和器件。线是器件管脚之间的物理连线;器件也可简单归纳为组合逻辑器件(如与或非门等)和时序逻辑器件(如寄存器、锁存器、RAM等)。一个数字系统(硬件)就是多个器件通过一定的连线关系组合在一块的。因此,Verilog HDL的建模实际上就是如何使用HDL语言对数字电路的两种基本要

3、素的特性及相互之间的关系进行描述的过程。,9.2 Verilog HDL 简介,2019/1/17,5,模块(module)是Verilog 的基本描述单位,用于描述某个设计的功能或结构及与其他模块通信的外部端口。 模块在概念上可等同一个器件就如我们调用通用器件(与门、三态门等)或通用宏单元(计数器、ALU、CPU)等,因此,一个模块可在另一个模块中调用。 一个电路设计可由多个模块组合而成,因此一个模块的设计只是一个系统设计中的某个层次设计,模块设计可采用多种建模方式。,模 块 (module),2019/1/17,6,三个描述层次,开关级描述:描述电阻、晶体管以及它们之间的相互连线关系。 门

4、级描述:描述基本逻辑门、触发器以及相互连线关系。 寄存器传输级(RTL)描述:描述寄存器以及它们之间的数据传递关系。,2019/1/17,7,Verilog HDL 允许一个设计中每个模块均在不同设计层次上建模。,2019/1/17,8,9.2.1 基本程序结构,module (); endmodule,2019/1/17,9,几个简单事例:,例1 加法器 module addr (a, b, cin, cout, sum); input 2:0 a; input 2:0 b; input cin; output cout; output 2:0 sum; assign cout,sum =

5、a +b + cin; endmodule,2019/1/17,10,例2 比较器 module compare (equal,a,b); input 1:0 a,b; / declare the input signal ; output equare ; / declare the output signal; assign equare = (a = b) ? 1:0 ; / * if a = b , output 1, otherwise 0;*/ endmodule,几个简单事例:,2019/1/17,11,module mytri (din, d_en, d_out); input

6、 din; input d_en; output d_out; assign d_out = d_en ? din :bz; endmodule,module trist (din, d_en, d_out); input din; input d_en; output d_out; mytri u_mytri(din,d_en,d_out); Endmodule,例3 三态驱动器,几个简单事例:,2019/1/17,12,通过上面的实例可看出,一个设计是由一个个模块(module)构成的。一个模块的设计如下: 1、模块内容是嵌在module 和endmodule两个语句之间。每个模块实现特定

7、的功能,模块可进行层次的嵌套,因此可以将大型的数字电路设计分割成大小不一的小模块来实现特定的功能,最后通过由顶层模块调用子模块来实现整体功能,这就是Top-Down的设计思想,如例3。 2、模块包括接口描述部分和逻辑功能描述部分。这可以把模块与器件相类比。,模块的结构:,2019/1/17,13,模块的端口定义部分: 如上例: module addr (a, b, cin, count, sum); 其中module 是模块的保留字,addr 是模块的名字,相当于器件名。()内是该模块的端口声明,定义了该模块的管脚名,是该模块与其他模块通讯的外部接口,相当于器件的pin。 模块的内容,包括I/

8、O说明,内部信号、调用模块等的声明语句和功能定义语句。 I/O说明语句如: input 2:0 a; input 2:0 b; input cin; output count; 其中的input 、output、inout 是保留字,定义了管脚信号的流向,n:0表示该信号的位宽(总线或单根信号线)。,2019/1/17,14,逻辑功能描述部分如: assign d_out = d_en ? din :bz; mytri u_mytri(din,d_en,d_out); 功能描述用来产生各种逻辑(主要是组合逻辑和时序逻辑,可用多种方法进行描述。还可用来实例化一个器件,该器件可以是厂家的器件库也可

9、以是我们自己用HDL设计的模块(相当于在原理图输入时调用一个库元件)。在逻辑功能描述中,主要用到assign 和always 两个语句。,2019/1/17,15,3、对每个模块都要进行端口定义,并说明输入、输出口,然后对模块的功能进行逻辑描述,当然,对测试模块,可以没有输入输出口。 4、Verilog HDL 的书写格式自由,一行可以写几个语句,也可以一个语句分几行写。 5、除endmodule 语句外,每个语句后面需有分号表示该语句结束。,模块的结构:,2019/1/17,16,9.2.2 词法构成,1、间隔符与注释符,在 Verilog HDL里有两种形式的注释: / 是单行注释 /*

10、*/ 是多行注释 白空(新行、制表符、空格)没有特殊意义。 书写规范建议: 一个语句一行。 采用空四格的table 键进行缩进。,2019/1/17,17,2、操作符, Arithmetic: +, - ! * / Binary operators: &, |, , , ! Shift: Relational: , =, =, != Logical: &, |,9.2.2 词法构成,2019/1/17,18,Examples: 549 / 十进制 h 8FF / 十六进制 o765 / 八进制 4 b11 / 4位二进制数 0011 3 b10x / 3位二进制数,最低位不确定 5 d3 /

11、5位十进制数00003 -4b11 / 4位二进制数0011的补码,1101,9.2.2 词法构成,3、数值常量,size base value,size 定义以位计的常量的位长;base 为o 或O(表示八进制),b 或B(表示二进制),d 或D (表示十进制),h 或H (表示十六进制)之一;value 是基于base 的值的数字序列。值x 和z 以及 十六进制中的a 到f 不区分大小写。,2019/1/17,19,Verilog HDL中规定了四种基本的值类型: 0:逻辑0或“假”; 1:逻辑1或“真”; X:未知值; Z:高阻。 注意这四种值的解释都内置于语言中。如一个为z 的值总是意

12、味着高阻抗,一个为0 的值通常是指逻辑0 。 此外,x 值和z 值都不分大小写。,9.2.2 词法构成,3、数值常量,2019/1/17,20,9.2.2 词法构成,4、字符串,5、标识符,6、关键字,字符串是双引号内的字符序列。字符串不能分成多行书写。,标识符是模块、寄存器、端口、连线、示例和begin end 等 元素的名称,是赋给对象的唯一的名称。,2019/1/17,21,数据类型,数据类型有 wire 和 reg 。,wire 用于对结构化器件之间的物理连线的建模。如器件的管脚,内部器件如与门的输出等。 由于线网类型代表的是物理连接线,因此它不存贮逻辑值。必须由器件所驱动。通常由as

13、sign进行赋值。 如 assign A = B C; 当一个wire 类型的信号没有被驱动时,缺省值为Z(高阻)。 信号没有定义数据类型时,缺省为 wire 类型。,2019/1/17,22,数据类型,数据类型有 wire 和 reg 。,reg 是最常用的寄存器类型,寄存器类型通常用于对存储单元的描述,如D型触发器、ROM等。 存储器类型的信号当在某种触发机制下分配了一个值,在分配下一个值之时保留原值。 但必须注意的是,reg 类型的变量,不一定是存储单元,如在always 语句中进行描述的必须用reg 类型的变量。,2019/1/17,23,简单事例:,reg A; always (B

14、or C) begin A = B end,always (B or C) begin X = B ,“=”用于组合逻辑器件的赋值,“=”用于时序逻辑器件的赋值,2019/1/17,24,简单事例:,/ 与非门模块 module NAND(in1, in2, out); input in1, in2; output out; assign out = (in1 endmodule,2019/1/17,25,简单事例:,/ 用两个与非门构成与门模块 module AND(in1, in2, out); input in1, in2; output out; wire w1; NAND NAND1

15、(in1, in2, w1); NAND NAND2(w1, w1, out); endmodule,2019/1/17,26,更多结构事例:,2019/1/17,27,9.2.3 模块的描述方式,1、行为描述方式,行为描述方式是通过行为语句来描述电路要实现的功能,表示输入与输出间转换的行为,不涉及具体结构。 从这个意义上讲,行为建模是一种“高级”的描述方式。,例:一位2选1的数据选择器 module mux_2_to_1(a, b, out,outbar,sel); input a, b, sel ; output out,outbar ; assign out = sel? a : b ;

16、 assign outbar= out ; endmodule,2019/1/17,28,例:一位全加器的行为建模,module FA_behav1(A, B, Cin, Sum, Cout ); input A,B,Cin; output Sum,Cout; reg Sum, Cout; reg T1,T2,T3; always ( A or B or Cin ) begin Sum = (A B) Cin ; T1 = A end endmodule,2019/1/17,29,2、结构描述方式,结构化的建模方式就是通过对电路结构的描述来建模,即通过对器件的调用(HDL概念称为例化),并使用线网来连接各器件的描述方式。 这里的器件包括Verilog HDL的内置门如与门and,异或门xor等,也可以是用户的一个设计

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号