VerilogHDL模型的不同抽象级别教学内容
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
nand
Байду номын сангаас
与非门
nor 或非门
or 或门
xor 异或门
xnor
异或非门
buf 缓冲器
not 非门
9.1.1.与非门、或门和反向器等及其说明语法
门与开关的说明语法可以用标准的声明语句格式和一 个简单的实例引用加以说明。
➢ 门声明语句的格式如下:
<门的类型> [<驱动能力><延时>] <门实例1> [,<门 实例2>,…<门实例n>];
系统级(system) 算法级(algorithmic) RTL级(RegisterTransferLevel): 门级(gate-level): 开关级(switch-level)
前言:
系统级、算法级和RTL级是属于行为级的 门级是属于结构级的。
对于数字系统的逻辑设计工程师而言,熟练地掌握门 级、RTL级、算法级、系统级是非常重要的
序言:
在前面8章里我们学习了Verilog 硬件描述语言的发展 历史、主要用途、基本概念和基本语法。在设计和验 证部分(9--18章)里我们将通过许多简单和容易理解 的例子分成十章由浅入深地讲解:
序言:
不同抽象级别的Verilog模型和他们的作用 如何编写和验证简单的纯组合逻辑模块; 如何编写和验证简单的时序逻辑模块; 可综合模块的标准风格和注意事项; 如何对简单电路模块进行功能的全面测试; 复杂的数字系统是如何构成的; 怎样根据系统需求,把组合逻辑和时序逻辑配合起来
对于电路基本部件(如:与或非门、缓冲器、驱动器 等)库的设计者而言,则需要掌握用户自定义源语元 件(UDP)和开关级的描述
前言:
复杂电路的完整Verilog HDL模型是由若干个Verilog HDL模块构成的,每一个模块又可以由若干个子模块 构成。
这些模块可以分别用不同抽象级别的Verilog HDL模 块描述,在一个模块中也可以有多种级别的描述。
输入为data、clock和clear,输出为a,输出与输入的延时 为10个单位时间。 Verilog语法支持的基本逻辑部件其行为是由该基本逻 辑部件的原语(Primitive)提供的,Verilog编译或解 释器能正确地处理有关的语法现象。
9.1.2.用门级结构描述D触发器
用Verilog HDL语言描述的D型主从触发器模块:
设计复杂的数字系统模块; 怎样完整地验证所做的设计,以保证设计的正确性。
序言:
在阅读课本的基础上,同学们可以通过在计算机上自 己动手做一遍课本上的实验练习示例,再结合思考题 改进设计,并验证改进后的设计是否达到了要求,来 达到学习的目的。只有通过艰苦的练习才能够掌握设 计的诀窍。
前言:
Verilog模型可以是实际电路不同级别的抽象。
所谓不同的抽象级别,实际上是指同一个物理电路, 我们可以在不同的层次上用Verilog语言来描述它
只从行为和功能的角度来描述某一电路模块,就称它 为行为模块
从电路结构的角度来描述该电路模块,就称它为结构 模块
前言:
➢ 抽象的级别和它们对应的模块类型常可以分为以下五 种,Verilog语法支持数字电路系统的五种不同描述方 法:
nd2(b,ndata,clock), // 表示nd1 到nd8 都是nand(与非门)
nd4(d,c,b,clear),
nd5(e,c,nclock),
nd6(f,d,nclock),
nd8(qb,q,f,clear);
nand
#9
nd3(c,a,d),
nd7(q,e,qb);
not #10 iv1(ndata,data),
门的类型是门声明语句所必需的,它可以是Verilog HDL语法规定的26种门类型中的任意一种。
驱动能力和延时是可选项,可根据不同的情况选不同 的值或不选。
9.1.1.与非门、或门和反向器等及其说明语法
➢ 门类型的引用:
nand #10 nd1(a,data,clock,clear); 这说明在模块中引用了一个名为nd1的与非门(nand),
iv2(nclock,clock);
endmodule
9.1.2.用门级结构描述D触发器
在这个Verilog HDL 结构描述的模块中,flop定义了模块 名,设计上层模块时可以用模块名(flop)调用这个模块;
module, input, output, endmodule等都是关键字;
nand表示与非门,在Verilog语法中有这个基本逻辑单元 的行为,它由原语(Primitive)描述,这是一种类似真值 表的描述(见本章1.3节 用户定义的原语UDP);
#10表示10个单位时间的延时;
nd1, nd2,......, nd8, iv1, iv2分别为图9.1.2中的各个基本部 件
利用Verilog HDL语言提供的这种结构,我们就能以 这种清晰的模块层次构造来描述极其复杂的大型设计。
9.1.门级结构描述
一个逻辑电路是由许多逻辑门和开关所组成,因此用 基本逻辑门的模型来描述逻辑电路结构是最直观的。
Verilog HDL提供了一些门类型的关键字,可以用于 门级结构建模。
9.1.2.用门级结构描述D触发器
9.1.3.由已经设计成的模块来构成更高一层的模块
➢ 可以在另外的模块中引用已经编制的一个模块,引用 的方法与门类型的实例引用非常类似。
flop f1op_d( d1, clk, clrb, q, qn); flop flop_d
9.1.1.与非门、或门和反向器等及其说明语法
Verilog HDL中有关门类型的关键字共有26个之多, 在本教材中我们只介绍最基本的八个。
Verilog HDL中有关门类型的关键字共有26个之多, 在本教材中我们只介绍最基本的八个。
9.1.1.与非门、或门和反向器等及其说明语法
and
与门
[例1]用基本逻辑单元组成触发器。(文件名为:flop.v)
module input
flop(data,clock,clear,q,qb);
data,clock,clear;
output
q,qb;
nand #10 nd1(a,data,clock,clear), // 注意结束时用逗号,最后才 用分号