您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页实验35 数字集成电路的Verilog描述与仿真

实验35 数字集成电路的Verilog描述与仿真

来源:飒榕旅游知识分享网


实验35 数字集成电路的Verilog描述与仿真

在集成电路中,数字集成电路占据相当大的份额,起着重要作用。采用硬件描述语言对数字集成电路进行行为描述和功能仿真,是一种重要的数字集成电路设计手段,是设计过程中的重要环节之一。它可以有效地回避数字集成电路内部晶体管级的复杂细节,能够极大地提高设计者对集成电路宏观的把握能力。

数字集成电路单元的Verilog语言描述和模拟分析是微电子和集成电路技术专业学生必要的基本技能之一。本实验要求学生对几个数字集成电路单元,能够完成电路的功能分析、语言描述、行为模拟、时序验证和结果处理等工作。

数字集成电路单元的Verilog语言描述实验是《场效应器件物理》、《数字集成电路设计》、《硬件描述语言》和《集成电路制造技术》等理论课程的重要实践。通过该实验锻炼和提高学生对数字集成电路的语言描述与仿真分析能力,强化学生理论联系实际和灵活应用所学知识的能力。

一、实验原理

1. Verilog HDL语言简介

Verilog HDL语言是从C语言发展而来的一种模块化的数字集成电路行为描述和仿真分析语言,有着广泛的应用。数字集成电路设计者的设计工作可以从行为、功能级开始,向着高层次发展。采用这种高级语言进行数字集成电路的设计和开发工作,可以有效地提高设计工作的效率,降低设计成本,减少设计重复的次数,缩短设计周期。

2 模块及其描述方式

和其它语言一样,Verilog HDL语言也是以模块集合的形式来描述数字系统的。模块(Module)是Verilog HDL语言的基本单元,它用于描述某个设计的功能或结构及其与其他模块通信的外部端口。下面给出模块的基本语法:

module 模块名(端口列表)

端口说明(input, output, inout) 参数定义 数据类型定义 连续赋值语句(assign) 过程块(initial和always)

行为描述语句 底层模块实例 任务和函数

166

延时说明块 endmodule

其中模块名是模块唯一性的标识符;端口列表由模块各个输入、输出和双向端口组成,用于进行模块内部及其与其他模块进行通信的连接;数据类型主要有寄存器型、存储器型或连线型;行为描述语句只能出现在initial和always过程块中;延时说明块是用于对模块各个输入和输出端口间的路径延时进行说明。

Verilog模块代表硬件上的逻辑实体,范围可以从简单的门到整个电路系统。模块描述方式有行为描述、结构描述等两种主要描述方式。行为描述是采用与高级语言类似的方式,具有很强的通用性和有效性,通过行为语言实现。行为描述可以使用initial和always过程语句结构描述。结构描述是引用预定义的基本元件实例进行描述的方法,通过监控实例的输入,一旦其中任何一个发生变化,便重新运算并输出。下表给出了行为描述和结构描述的实例。

行为描述实例 module adder(a, b, sum, cout); input a, b; output sum, cout; reg sum, cout; always @ (a or b) begin sum=a^b; cout=a&b; end endmodule 结构描述实例 module adder(a, b, sum, cout); input a, b; output sum, cout; reg sum, cout; wire w1; xor xor1(sum, a, b); nand nand1(w1, a, b); not not1(cout, w1); endmodule 3 设计的仿真和验证

编写完成Verilog HDL程序之后,需要对它进行验证。Verilog HDL语言提供了对激励、控制、存储响应和设计验证的建模功能。验证中使用的激励和控制可用初始化语句产生,验证运行过程中的响应可以作为“变化时保存”或作为选通的数据存储。测试信号可以采用过程块产生。下表给出高层模块测试的例子。

行为描述仿真实例 module adder_test; reg a, b; initial begin #5 a=0; b=0; #5 a=1; #5 b=1; #5 a=0; #5 a=1; #5 b=0; #5 a=0; end adder add1(a, b, sum, cout); endmodule

结构描述仿真实例 module adder_test; reg a, b; initial begin a=1; b=0; #5 a=1; #5 a=0; #5 a=1; #5 a=1; #5 a=0; end always #5 b=~b; adder add1(a, b, sum, cout); endmodule 167

二、实验内容

1. 图35.1给出一个由三个基本门组成的数字电路单元及其输入波形,完成各逻辑门的功能分析,采用行为描述方法,逐级描述完成整个电路源程序的编写,编写测试模块对完整的电路进行仿真验证;

图35.1 电路原理图和输入激励波形

2. 图35.2给出了一个由七个基本门组成的数字电路单元及其输入波形,完各逻辑门的功能分析,采用结构描述方法,逐级描述完成整个电路源程序的编写,编写测试模块对完整的电路进行仿真验证;

图35.2 电路原理图和输入激励波形

3. 图35.3示出了一个由五个基本门组成的数字电路单元和输入波形,完成整体电路的逻辑功能分析,分别采用行为描述和结构描述方法,逐级描述完成整个电路源程序的编写,编写测试模块对完整的电路进行仿真验证;

168

图35.3 电路原理图和输入激励波形

4. 图35.4示出了一个数字集成电路单元的状态机,完成电路逻辑描述和测试模块编写,根据仿真波形分析该电路的逻辑功能。

图35.4 电路状态机

三、数据处理和分析

1. 描述各数字集成电路单元的基本门类、逻辑构成和完整功能; 2. 画出各数字电路单元输入输出波形和真值表; 3. 完成图35.4电路原理图设计。

四、实验思考题

1. 对多输入数字电路单元进行设计时如何考虑各信号的传输延迟? 2. 在CMOS数字集成电路中,设计上升和下降时间相等的一个两输入与非门,对晶体管的尺寸有何要求?如何实现?

3. 在数字集成电路系统中,各信号之间传输延时出现较大差异时,如何缩小传输延时?存在哪些措施?

五、参考文献

[1] 袁俊泉等编著,《Verilog HDL数字系统设计及其应用》,西安电子科技大学出版社,2002年11月;

[2]. 宋莫康等著,《CMOS数字集成电路:分析与设计(第三版)》,电子工业出版社,2005。

169

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务