试验一组合逻辑3线-8线译码器设计试验
一、试验目的
1、了解并初步掌握ModelSim软件的使用;
2、了解使用ModelSim进行组合数字电路设计的一般步骤;
3、掌握组合逻辑电路的设计方法;
4、掌握组合逻辑电路3线-8线译码器的原理;
5、掌握门级建模的方法;
二、试验原理
译码器(Decoder)的逻辑功能是将每个输入的二进制代码译成对应得输出高、低电平或另外一个代码。
因此,译码是编码的反操作。
常用的译码器电路有二进制译码器、二-十进制译码器和显示译码器等。
二进制译码器的输入是一组二进制代码,输出是一组与输入代码一一对应得高、低电平信号。
例如,典型的3线-8线译码器功能框图图1-1所示。
输入的3位二进制代码共有8种状态,译码器将每个输入代码译成对应的一根输出线上的高、低电平信号。
图1-1 3线-8线译码器框图
74HC138是用CMOS门电路组成的3线-8线译码器,它的逻辑图图1-2所示。
表1-1是74HC138的逻辑功能表。
当门电路G S的输出为高电平时,可以由逻辑图写出。
图1-2 74HC138逻辑功能图
表1-1 74HC138逻辑功能表
由上式可以看出,由''07Y Y -同时又是210,,A A A 这三个变量的全部最小项的译码输出,所以也将这种译码器称为最小项译码器。
74HC138有3个附加的控制端''
123,S S S 和。
当''123
S 1,S S 0=+=时,s G 输出为高电平,译码器处于工作状态。
否则,译码器被禁止,所有的输出端被封锁为高电
平。
这3个控制端也称为“片选”输入端,利用片选的作用可以将多片连接起来以扩展译码器的功能;
三、 预习要求
1、数字电子技术基础组合逻辑电路设计一般设计方法;
2、74HC138的逻辑功能;
3、门级建模的一般方法和基本语句;
4、ModelSim 软件的一般使用方法(ModelSim SE Tutorial);
四、 实验步骤
(一)、熟悉ModelSim 软件环境 1、建立一个新Project
1-1双击左面快捷方式或者电击[程序]/[ModelSim SE 6.1f]/[ModelSim]启动ModelSim 6.1(如图1-3);
注意:必须首先关闭IMPORTANT Information 对话框才能开始其它操作;
图1-3
1-2 [File]/[New]/[Project…]新建一个project,会弹出Create Project对话框(如图1-4);
图1-4
⏹Project Name(项目名称)需要填入你所建立的项目的名称;
⏹指定项目所在路径;如果所指定的目录不存在,会弹出对话框提示是否建立
这个目录;一般选择是;
⏹缺省的工作库名;
注意:1、路径一般不应包含汉字;2、逻辑应在ModelSim的安装目录下指定;3、缺省的工作库的名称一般不需要改动;
2、载入HDL元文件
2-1设定好1-2步骤的每项内容后,点击OK,弹出Add items to the Projects对话框;如图1-5所示。
图1-5
⏹Create New File 产生一个新的文件
⏹Add Existing File 将已存在的文件加入Project
⏹Create Simulation 产生一个模拟
⏹Create New Folder 产生一个文件夹
如果事先已经编辑好源文件可以选择Add Existing File,否则应该选择Create New File;我们选择Add Existing File。
将D:\Modeltech_6.1f\examples \tutorials\verilog\projects目录下的counter.v和tcounter.v加入到这个project,如图1-6,1-7所示
图1-6
通过Browse选择想要加入Project的文件名,同时选择Copy to project directory单选框;
●Reference from current location 文件在当前位置不变
●Copy to project directory 将文件拷贝到project所在目录;
注意:以上操作也可以选择[File]/[Add to Project]/[Existing Files]菜单完成,如图1-8所示。
图1-7
图1-8
3、编译compile
3-1 在project标签页内,选择任意文件,点击鼠标右键选择[Compile]/[Compile
All](如图1-9所示)或者选择菜单[Compile]/[Compile All]
图1-9
如果编译的源文件没有错误,那么project标签页的所有文件的status状态项会显示对号,如图1-10;
图1-10
如果源文件中有语法错误,Verilog会在Transcript窗口提供错误信息,用户需要对错误进行修改直到将文件中的全部错误消除为止。
注意:双击红色的出错信息,会有更详细的出错提示;
图1-11
4、模拟Simulate
4-1源文件正确编译后选择[Simulate]\[Start Simulation],弹出Start Simulation对话框。
如图1-12所示
图1-12
点击工作库前面的加号,选择最顶层模块作为Simulate的模块,这里我们选择test_counter作为仿真模块,点击OK按钮后弹出一系列的调试窗口(Debug Windows)。
4-2 如果没有弹出你希望使用的调试窗口,可以选择[View]/[Debug Windows]。
这里我们选择[View]/[Debug Windows]/[Wave],如图1-13所示。
4-3在Objects窗口选择需要加入到Wave窗口中的信号单击右键,选择[Add to Wave]\[Selected Signals],将输入和输出信号加入到Wave窗口。
4-4选择[Simulate]/[Run]/[Run All]开始模拟;可以在Wave窗口中查看仿真波形同时,可以在Transcript窗口观察仿真输出结果。
如图1-14所示。
图1-13
图1-14
(二)、3线-8线译码器设计
1.按照以上介绍的ModelSim软件的一般使用方法,编写Verilog源程序,设
计3线-8线译码器(门级描述);
module
decode38(s1,s2,s3,a0,a1,a2,y0bar,y1bar,y2bar,y3bar,y4bar,y5bar,y6bar,
y7bar);
input s1,s2,s3;
input a0,a1,a2;
output y0bar,y1bar,y2bar,y3bar,y4bar,y5bar,y6bar,y7bar;
wire s1bar,s2bar,s3bar; //声明中间变量
wire a0bar,a1bar,a2bar;
wire gs;
not(s1bar,s1);//非门引用
not(s2bar,s2);
not(s3bar,s3);
not(a0bar,a0);
not(a1bar,a1);
not(a2bar,a2);
and(gs,s1,s2bar,s3bar);//与门
nand g0(y0bar,a0bar,a1bar,a2bar,gs); //与非门
nand g1(y1bar,a0bar,a1bar,a2bar,gs);
nand g2(y2bar,a0bar,a1,a2bar,gs);
nand g3(y3bar,a0,a1,a2bar,gs);
nand g4(y4bar,a0bar,a1bar,a2,gs);
nand g5(y5bar,a0,a1bar,a2,gs);
nand g6(y6bar,a0bar,a1,a2,gs);
nand g7(y7bar,a0,a1,a2,gs);
endmodule
2.用2个3线-8线译码器设计组成1个4线-16线译码器;
3.设计74HC138逻辑功能并使用ModelSim进行模拟(行为描述);(选做)
五、实验内容
1、完成实验步骤中所要求的实验内容;
2、给出简单测试激励块的设计和3线-8线译码器的仿真输出波形;
3、给出简单测试激励块的设计和4线-16线译码器的仿真输出波形;
4、比较用硬件描述语言Verilog HDL设计组合电路与用传统的方法设计电路的
不同;。