硬件描述语言简介

上传人:aa****6 文档编号:51416206 上传时间:2018-08-14 格式:PPT 页数:33 大小:361.50KB
返回 下载 相关 举报
硬件描述语言简介_第1页
第1页 / 共33页
硬件描述语言简介_第2页
第2页 / 共33页
硬件描述语言简介_第3页
第3页 / 共33页
硬件描述语言简介_第4页
第4页 / 共33页
硬件描述语言简介_第5页
第5页 / 共33页
点击查看更多>>
资源描述

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

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

2、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 = a +b + cin;endmoduleDate9例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 =

3、 b , output 1, otherwise 0;*/endmodule几个简单事例:Date10module mytri (din, d_en, d_out);input din;input d_en;output d_out;assign d_out = d_en ? din :bz;endmodulemodule trist (din, d_en, d_out);input din;input d_en;output d_out;mytri u_mytri(din,d_en,d_out);Endmodule例3 三态驱动器几个简单事例:Date11通过上面的实例可看出,一个设计是由一

4、个个模块(module)构成的。一个模块的设计如下:1、模块内容是嵌在module 和endmodule两个语句之间。每个模块实现特定的功能,模块可进行层次的嵌套,因此可以将大型的数字电路设计分割成大小不一的小模块来实现特定的功能,最后通过由顶层模块调用子模块来实现整 体功能,这就是Top-Down的设计思想,如例3。2、模块包括接口描述部分和逻辑功能描述部分。这可以把模块与器件相类比。模块的结构:Date12模块的端口定义部分:如上例: module addr (a, b, cin, count, sum); 其中module 是模块的保留字,addr 是模块的名字,相当于器件名。()内是该

5、模块的端口声明,定义了该模块的管脚名,是 该模块与其他模块通讯的外部接口,相当于器件的pin。模块的内容,包括I/O说明,内部信号、调用模块等的声明语句和功能定义语句。I/O说明语句如: input 2:0 a; input 2:0 b; input cin; output count; 其中的input 、output、inout 是保留字,定义了管脚信号的流向,n:0表示该信号的位宽(总线或单根信号线)。Date13逻辑功能描述部分如: assign d_out = d_en ? din :bz;mytri u_mytri(din,d_en,d_out);功能描述用来产生各种逻辑(主要是组

6、合逻辑和时序逻辑,可用多种方法进行描述。还可用来实例化一个器件,该器件可以是厂家的器件库也可以是我们自己用HDL设计的模块(相当于在原理图输入时调用一个库元件)。在逻辑功能描述中,主要用到assign 和always 两个语句。Date143、对每个模块都要进行端口定义,并说明输入、输出口,然后对模块的功能进行逻辑描述,当然,对测试模块,可以没有输入输出口。4、Verilog HDL 的书写格式自由,一行可以写几个语句,也可以一个语句分几行写。5、除endmodule 语句外,每个语句后面需有分号表示该语句结束。模块的结构:Date159.2.2 词法构成1、间隔符与注释符 在 Verilog

7、 HDL里有两种形式的注释:/ 是单行注释/* */ 是多行注释 白空(新行、制表符、空格)没有特殊意义。书写规范建议:一个语句一行。采用空四格的table 键进行缩进。Date162、操作符 Arithmetic: +, - ! * / Binary operators: always (B or C) beginA = B endalways (B or C) begin X = B endalways (posedge Clk) Y = B always (negedge Clk) Z = B “=”用于组合逻辑器件的赋值“=”用于时序逻辑器件的赋值Date23简单事例:/ 与非门模块m

8、odule NAND(in1, in2, out);input in1, in2;output out;assign out = (in1 endmoduleDate24简单事例:/ 用两个与非门构成与门模块module AND(in1, in2, out);input in1, in2;output out;wire w1;NAND NAND1(in1, in2, w1);NAND NAND2(w1, w1, out);endmoduleDate25更多结构事例:Date269.2.3 模块的描述方式1、行为描述方式行为描述方式是通过行为语句来描述电路要实现的功能,表示输入与输出间转换的行为

9、,不涉及具体结构。从这个意义上讲,行为建模是一种“高级”的描述方式。例:一位2选1的数据选择器module mux_2_to_1(a, b, out,outbar,sel);input a, b, sel ;output out,outbar ;assign out = sel? a : b ;assign outbar= out ;endmoduleDate27例:一位全加器的行为建模module FA_behav1(A, B, Cin, Sum, Cout ); input A,B,Cin; output Sum,Cout; reg Sum, Cout; reg T1,T2,T3; alw

10、ays ( A or B or Cin ) begin Sum = (A B) Cin ; T1 = A T2 = B T3 = A Cout = (T1| T2) | T3; end endmoduleDate282、结构描述方式结构化的建模方式就是通过对电路结构的描述来建模,即通过对器件的调用(HDL概念称为例化),并使用线网来连接各器件的描述方式。这里的器件包括Verilog HDL的内置门如与门and,异或门xor等,也可以是用户的一个设计。结构化的描述方式反映了一个设计的层次结构。Date29例:一位全加器的结构建模module FA_struct (A, B, Cin, Sum,

11、Count); input A; input B; input Cin; output Sum; output Count; wire S1, T1, T2, T3; xor x1 (S1, A, B); xor x2 (Sum, S1, Cin); and A1 (T3, A, B ); and A2 (T2, B, Cin); and A3 (T1, A, Cin); or O1 (Cout, T1, T2, T3 ); endmoduleDate30通过具体实例来说明如何用HDL来进行系统设计在该系统中,我们划分成如下三个部分:2输入与门模块,LED显示模块,4位计数器模块。系统的层次描述如下:例:一个频率计数系统顶层模块 CNT_BCD,文件名 CNT_BCD.v,该模块调用了底层模块 AND2、CNT_4b 和 HEX2LED 。Date31系统的电路结构图如下:系统的设计文档Date32Date33

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

当前位置:首页 > 学术论文 > 毕业论文

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