资源描述
辽东学院自编教材
《可编程逻辑器件原理及应用实验》指导书
李海成 编
(计算机科学与技术、电子信息工程专业用)
姓名:
学号:
班级:
信息技术学院
2023年6月
目 录
目 录 2
实验一 MAX+PLUS-II设计三八译码器 3
实验二 半加器 27
实验三 带进位输入的8位加法器 29
实验四 数据比较器 31
实验五 编码器 34
实验六 组合逻辑电路的设计 37
实验七 计数器 40
实验八 触发器功能的模拟实现 43
实验一 MAX+PLUS-II设计三八译码器
实验类型: 验证性 实验课时: 2 指导教师: 李海成
时 间:201 年 月 日 课 次:第 节 教学周次:第 周
实验分室: 实验台号: 实 验 员:
说明:本书将以实验一为例具体介绍altera公司max+plusII 10.0版本软件的基本应用,其它实验将不再赘述。读者在通过本实验后将对max+plusII软件及CPLD/FPGA的设计与应用有一个比较完整的概念和思绪。此书因篇幅有限,仅仅介绍了max+plusII软件的最基本、最常用的一些基本功能,相信读者在纯熟使用本软件以后,你定会发现该软件尚有好多非常方便、快捷、灵活的设计技巧与开发功能。由于编者能力有限,不详之处再所难免,我们希望得到你的指正与包含。
一、实验目的:
1、通过一个简朴的3-8译码器的设计,让学生掌握组合逻辑电路的设计方法。
2、掌握组合逻辑电路的静态测试方法。
3、初步了解可编程器件设计的全过程。
二、 实验环节:
MaxplusII软件的基本操作与应用
(一)设计输入:
1、软件的启动:进入Altera软件包,打开MAX+plus II 10.0软件,如图1-1所示。
图:1-1
2、 启动File \ New菜单,弹出设计输入选择窗口,如下图1-2所示。或点击下图1-3主菜单中的空白图标,进入新建文献状态。
图: 1-2
图:1-3
3、选择Graphic Editor File,单击ok按钮,打开原理图编辑器,进入原理图设计输入
电路编辑状态,如下图1-4所示:
图:1-4
4、设计的输入
1)放置一个器件在原理图上
a. 在原理图的空白处双击鼠标左键,出现窗口如图2-2;也可单击鼠标右键,出现窗口如图2-1,选择“Enter symbol..”,出现窗口如图2-2,进入器件选择输入窗口。
图2-1
图:2-2
b. 在“symbol name”提醒处(光标处)输入元件名称或用鼠标双击库文献(在提醒窗”Symbol Libraries”里的各个文献),在提醒窗“Symbol Files”中双击元件或选中元件按下OK即可将该器件放置到原理图中。
c. 假如安放相同元件,只要按住Ctrl键,同时用鼠标拖动该元件复制即可。
d. 一个完整的电路涉及:输入端口INPUT、电路元器件集合、输出端口OUTPUT。
e. 下图2-3为3-8译码器元件安放结果。
图:2-3
2)添加连线到器件的管脚上:
把鼠标移到元件引脚附近,则鼠标光标自动由箭头变为十字,按住鼠标右键拖动,即可画出连线。3-8译码器原理图如图2-4所示。
图:2-4
3)标记输入/输出端口属性
分别双击输入端口的“PIN-NAME”,当变成黑色时,即可输入标记符并回车确认;输出端口标记方法类似。本译码器的三输入断分别标记为:A、B、C;其八输出端分别为:D0、D1、D2、D3、D4、D5、D6、d7。如下图2-5所示。
图:2-5
4)保存原理图
单击保存按钮图标,对于新建文献,出现类似文献管理器的图框,请选择保存途径、文献名称保存原理图,原理图的扩展名为.gdf,本实验中取名为test1.gdf。
4)点击File\Project\set project to current file设立此项目为当前文献,如下图2-6所示。注意,此操作在你打开几个原有项目文献时尤为重要,否则容易犯错。
图:2-6
此时在软件窗口的顶层有途径指示,见下图2-7
图:2-7
至此,你已完毕了一个电路的原理图设计输入的整个过程。
(二) 电路的编译与适配
1、 选择芯片型号
选择当前项目文献欲设计实现的实际芯片进行编译适配,点击Assign\Device菜单选择芯片,如下图3-1对话窗所示。假如此时不选择适配芯片的话,该软件将自动把所有适合本电路的芯片一一进行编译适配,这将花费你许多时间。该例程中我们选用CPLD芯片来实现,如用7000S系列的EPM7128SLC84-6芯片;同样也可以用FPGA芯片来实现,你只需在下面的对话窗口中指出具体的芯片型号即可。
图:3-1
注意:EPM7128SLC84-15和EPF10K1084-4不是快速芯片,要将提醒窗“Show Only Faster Speed Grades”前面的“√”去掉。
2、编译适配
启动MAX+plus II \ Compiler菜单,或点击主菜单下的快捷键,打开编译窗口。按Start开始编译,并显示编译结果,生成下载文献。假如编译时选择的芯片是CPLD,则生成 * •pof文献;假如是FPGA芯片的话,则生成* •sof文献,以备硬件下载编程时调用。同时生成 * •rpt报告文献,可具体查看编译结果。如有错误待修改后再进行编译适配,如下图3-2所示。注意,此时在主菜单栏里的 Processing菜单下有许多编译时的选项,视实际情况选择设立。
图:3-2
假如说你设计的电路顺利地通过了编译,在电路不复杂的情况下,就可以对芯片进行编程下载,直到设计的硬件实现,至此你已经完毕了一个EDA的设计与实现的整个过程。假如你的电路有足够的复杂,那么其仿真就显得非常必要。
(三)电路仿真与时序分析
MaxplusII教学版软件支持电路的功能仿真(或称前仿真)和时序分析(或称后仿真)。众所周知,开发人员在进行电路设计时,非常希望有比较先进的高效的仿真工具出现,这将为你的设计过程节约很多时间和成本。由于EDA工具的出现,和它所提供的强大的(在线)仿真功能迅速地得到了电子工程设计人员的青睐,这也是当今EDA(CPLD/FPGA)技术非常火暴的因素之一。下面就MaxplusII软件的仿真功能的基本应用在本实验中作一初步介绍,在以后的实验例程中将不在一一介绍。
一方面我们介绍功能仿真,即前仿真。
(一)、编译选择
a. 选择 MAX+plus II \ Compiler菜单,进入编译功能。
b. 此时主菜单已改变如下图3-3。点击主菜单“Processing”,“Functional SNF Extractor”,如下图3-3。
图3-3
c.此时编译窗口改变如下图3-4。这时下一步做的仿真是功能仿真。
图3-4
二)添加仿真激励信号波形
1、启动MaxplusII\Wavefrom editor菜单,进入波形编辑窗口,如下图3-5所示。
图:3-5
2、将鼠标移至空白处并单击右键,出现如下图3-6所示对话窗口。
图:3-6
3、选择Enter nodes from snf选项并按左键确认,出现下图3-7所示对话筐,单击和按钮,选择欲仿真的I/O管脚。
图3-7
4、单击OK按钮,列出仿真电路的输入、输出管脚图,如下图3-8所示。在本
电路中,3-8译码器的输出为灰色,表达未仿真前其输出是未知的。
图:3-8
5、调整管脚顺序,符合常规习惯,调整时只需选中某一管脚(如)并按住鼠标左键拖止相应位置即可完毕。如图3-9所示。
图:3-9
6、准备为电路输入端口添加激励波形,如下图3-10所示。选中欲添加信号的管脚,窗口左边的信号源即刻变成可操作状态,如箭头和圆括弧所示。根据实际电路规定选择信号源种类,在本电路中我们选择时钟信号就可以满足仿真规定。
图:3-10
7、选择仿真时间:视电路实际规定拟定仿真时间长短,如下图3-9所示。在当前主菜单“File”的下拉菜单中选中“End Time”,出现如图3-11中箭头所指的窗口,在提醒窗“Time”中输入仿真结束时间,即可修改仿真时间。在本实验中,我们选择软件的默认时间1us就能观测到3-8译码器的8个输出状态。
图:3-11
8、为A、B、C三输入端口添加信号:先选中A输入端“”,然后再点击窗口左侧的时钟信号源图标“”添加激励波形,出现下图3-12对话窗口。
图:3-12
9、在本例程中,我们选择初始电平为“0”,时钟周期倍数为“1”,(时钟周期倍数只能为1的整数倍)并按OK确认。经上述操作我们已为A输入端添加完激励信号,点击全屏显示如下图3-13所示。
图:3-13
10、根据电路规定编辑此外两路输入端口的激励信号波形,在本实验中,3-8译码器的A、B、C三路信号的频率分别为1、2、4倍关系,其译码输出顺序就符合我们的观测习惯。按上述方法为B、C两路端口添加波形后单击左边全屏显示图标“”,三路激励信号的编辑结果为下图3-14所示。
图:3-14
11、保存激励信号编辑结果:使用File\Save或关闭当前波形编辑窗口时均出现下图3-15对话筐,注意此时的文献名称不要随意改动,单击OK按钮保存激励信号波形。
图:3-15
三)电路仿真
1、打开MaxplusII\Simulator菜单,或点击主菜单下的快捷键,弹出仿真对话窗口,如下图3-16所示。
图:3-16
2、拟定仿真时间,End Time 为“1”的整数倍。注意:假如在添加激励信号的时未设立结束时间的话,此时在仿真窗口中就不能修改End Time参数。在该例程中,我们使用的是默认时间,单击Start开始仿真,如有犯错报告,请查找因素,一般是激励信号添加有误。本电路仿真结果报告中无错误、无警告,如下图3-17所示。
图:3-17
3、观测电路仿真结果,请单击激励输出波形文献图标,如下图3-18所示。
图:3-18
4、 上图可见,我们所设计的3-8译码器顺利地通过了仿真,设计完全对的。至此功能仿真结束。
下面我们介绍时序仿真。
(一)、选择编译
1.选择 MAX+plus II \ Compiler菜单,进入编译功能。
2. 此时主菜单已改变如下图3-19。点击主菜单“Processing”下拉菜单中“Timing SNF Extractor”,编译窗口便改变如下图3-19。
图3-19
编译完毕后,下一步所做的仿真既是时序仿真。
(二)、时序仿真
1.打开MaxplusII\Simulator菜单,弹出其对话窗口,如下图3-20所示。点击“Start”开始时序仿真。
图3-20
2.观测电路仿真结果,请单击激励输出波形文献图标,如下图3-21。
图3-21
仔细观查电路的时序,在空白出单击鼠标坐键,出现测量标尺,然后将标尺拖至欲测量的地方,查看延时情况从上图可以看到,我们这个电路在实际工作时,激励输出有15.2个ns的延迟时间。至此,你以完毕和掌握了电路的仿真功能。
在有的电路仿真时,也许需要修改仿真步长,在主菜单“Options”下拉菜单中选中“Grid Size”, 如下图3-22。
图3-22
出现如下图3-23窗口,在提醒窗“Grid Size”相应的光标行修改数据,然后点击“OK”确认。
图3-23
在时序仿真的过程中,也也许需要对激励波形反复做修改,如下图3-24,用鼠标点住某一处波形拖动,出现黑色的条,即被选中。此时可通过选择主窗口左边的波形键选择高低电平,如图3-25。
图3-24
图3-25
当您想直接打开一个已经编辑好的文献时,可用主菜单“File”下拉菜单中的“Open”项,或使用主菜单下的快捷键 如下图3-26。
图3-26
会出现以下“Open”窗口,如图3-27。在“Drives”提醒窗中可选择驱动器名称,在 “Directories” 提醒窗中可选择文献途径,如图中,双击“ ” ,可返回到 目录下,打开它里面的所有文献。双击 ,即可返回到D盘根目录下 。在提醒窗“Show in Files List”中选择文献类型,如.gdf、 .tdf、 .vhd等,或可显示所有文献。 在提醒窗“Files”中选择要打开的文献,该文献名称会出现在“File Name”提醒窗中。点击“OK”键确认,即可打开该文献。
当您打开一个现有的文献后,若要编译该文献,牢记要指定途径和元器件。
指定途径可用前面讲过的方法,在主菜单“File”的下拉菜单 “Project” 中选择“Set Project to Current File”。也可采用如下方法,在主菜单“File”的下拉菜单 “Project” 中选择“Name”,或点击快捷键,出现如图3-28的窗口。在此窗口中拟定工程文献的途径和名称。指定工程文献途径后,可在软件窗口的顶层有提醒。如图3-29。
图3-27
图3-28
图3-29
(四)、管脚的重新分派与定位:
启动MAX+plus II \ Floorplan Editor菜单命令,(或按快捷图标)出现如图4-1所示的芯片管脚自动分派画面(读者可在芯片的空白处试着双击鼠标左键,你能发现这样操作可在芯片如图4-1和芯片内部之间如图4-2进行切换,可观测芯片内部的逻辑块等)。
图:4-1
Floorplan Editor显示的是该设计项目的管脚分派图。这是由软件自动分派的。用户可随意改变管脚分派,以方便与你的外设电路进行匹配。管脚编辑过程如下:
1、 按下窗口左边的手动分派图标,所有管脚将会出现在窗口,如下图4-3中箭头所示。
2、 用鼠标按住某输入/输出端口,并拖到下面芯片的某一管脚上,松开鼠标左键,便可完毕一个管脚的重新分派(读者可试着在管脚之间互相拖拽,你会觉得非常方便)。注意:芯片上有一些特定功能的管脚,如时钟端,清零端等,进行管脚编辑时一定要注意,一般管脚都放置在I/O口。此外,在芯片器件选择中,假如选的是Auto,则不允许对管脚再进行手工分派。当你对管脚进行二次调整以后,一定要再编译一次,否则程序下载以后,其管脚功能还是为当初的自动分派状态。
3、 可选用自动分派方式,点击软件窗口左侧图标,管脚会自动分派到器件的各个管脚。分派完毕后请注意重新编译。用自动分派后,假如要修改,则要手工分派,点手工分派,所有的管脚重新回到“Unassigned Nodes &”窗口中。然后再一个一个的把管脚分派在器件上。
图4-2
图:4-3
(五)、器件的下载编程与硬件实现
一)实验箱电路板上的连线
用三位拨码开关提供三位译码器的输入信号,将A、B、C相应的管脚与三个拨码开关相连;用LED灯来表达译码器的输出,将D0...d7相应的管脚分别与8只LED等相连。
A B C LED0 LED1 LED2 LED3 LED4 LED5 LED6 LED7
0 0 0 亮 灭 灭 灭 灭 灭 灭 灭
1 0 0 灭 亮 灭 灭 灭 灭 灭 灭
0 1 0 灭 灭 亮 灭 灭 灭 灭 灭
1 1 0 灭 灭 灭 亮 灭 灭 灭 灭
0 0 1 灭 灭 灭 灭 亮 灭 灭 灭
1 0 1 灭 灭 灭 灭 灭 亮 灭 灭
0 1 1 灭 灭 灭 灭 灭 灭 亮 灭
1 1 1 灭 灭 灭 灭 灭 灭 灭 亮
二)器件的编程下载
1、 启动MAX+plus II \ Programmer菜单或点击快捷图标,假如是第一次启用的话,将出现如图5-1所示的对话框,请你填写硬件类型,在“Hardware Type”提醒窗中选择“byte blaster”,在“Parallel Port”提醒窗出现“Lpt1:0x378”,并按下OK确认即可。如图5-2。
图:5-1
图5-2
2、 选中主菜单下的JTAG \ Multi-Device JTAG Chain菜单项(第一次起用也许回出现问话筐,视实际情况回答确认)。
3、 启动JTAG \ Multi-Device JTAG Chain Setup…菜单项,如图5-3所示。
图:5-3
4、 点击“Select Programming File…”按钮,选择要下载的.Pof文献(CPLD器件的下载文献后缀是.Pof,FPGA器件的下载文献后缀是.sof)。然后按Add加到文献列表中,如图5-3所示。假如不是当前要下载编程的文献的话,请使用Delete将其删除。
图:5-4
5、 选择完下载文献以后,单击OK拟定,出现下图5-5的下载编程界面。
图:5-5
6、 单击Program按钮,进行下载编程(如是FPGA芯片,请点击Configure),如不能对的下载,请点击如图5-4的Detect jtag chain info按钮进行JTAG测试,查找因素,直至完毕下载,最后按OK退出。至此,你已经完毕了可编程器件的从设计到下载实现的整个过程。
7、 结合电路功能,观测设计实现的对的结果。
说明:通过对本实验的学习,相信读者对MaxplusII软件已有了一定的结识,同样对CPLD/FPGA可编程器件的整个设计过程有了一个完整的概念和思绪。当然本书因篇幅和编者水平有限,其软件的其它应用不能一一在此介绍,有关内容请参考相关教材及书物。
附: 用硬件描述语言完毕译码器的设计:
(1)、生成设计项目文献。
(2)、启动File \ New菜单命令,如图1.10:
图1.10
(3)、选择Text Editor file,点击OK;
(4)、键入程序如下:
SUBDESIGN test1
(
a,b,c:INPUT;
d0,d1,d2,d3,d4,d5,d6,d7: OUTPUT;
)
BEGIN
CASE (c,b,a) IS
WHEN 0 => d[7..0]=1;
WHEN 1 => d[7..0]=2;
WHEN 2 => d[7..0]=4;
实验
成绩
项目及比例
实验操作(30%)
报告书写(70%)
得分
成绩合计
教师签字:
批改日期:
WHEN 3 => d[7..0]=8;
WHEN 4 => d[7..0]=16;
WHEN 5 => d[7..0]=32;
WHEN 6 => d[7..0]=64;
WHEN OTHERS => d[7..0]=128;
END CASE;
END;
(4)、保存为 .tdf 文献,然后进行编译适配即可。
其它操作都与原理图设计输入相同。
实验二 半加器
实验类型: 验证性 实验课时: 2 指导教师: 李海成
时 间:201 年 月 日 课 次:第 节 教学周次:第 周
实验分室: 实验台号: 实 验 员:
一、 实验目的
1.设计并实验一个一位半加器
2.掌握CPLD/FPGA组合逻辑设计基本方法。
二、 实验原理
半加器
(被加数)Ai
(被加数)Bi
(半加和)Hi
(本位进位)Ci
计算机中数的操作都是以二进制进位的,最基本的运算就是加法运算。按照进位是否加入,加法器分为半加器和全加器电路两种。计算机中的异或指令的功能就是求两个操作数各位的半加和。一位半加器有两个输入、输出,如图2-1。
图2-1 一位半加器示意图
表2-1 半加器真值表
输入
输出
Bi
Ai
Hi
Ci
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
一个半加大路的真值表如表2-1所示,根据真值表可得到半加器的函数表达式:
三、 实验连线
半加器的两个输入所相应的管脚同两位拨码开关相连,两个输入管脚名为a、b;两个输出所相应的管脚同两位发光二极管相连,两个输出管脚名为 c0和s,其中c0表达进位, s表达相加结果。
四、 实验记录
状态
输入
对的输出
实验结果
Bi
Ai
Hi
Ci
Hi
Ci
1
0
0
0
0
2
0
1
1
0
3
1
0
1
0
4
1
1
0
1
五、实验注意事项
1. 提前编辑实验程序。
2. 根据教师规定对的操作,并检查逻辑的对的性
六、思考题
1.EDA半加器实现与数字电路设计方法的主线区别。
2.简述EDA设计半加器的不同方法,并比较其优缺陷。
3.心得体会及其他。
实验
成绩
项目及比例
实验操作(30%)
报告书写(70%)
得分
成绩合计
教师签字:
批改日期:
实验三 带进位输入的8位加法器
实验类型: 验证性 实验课时: 2 指导教师:
时 间:200 年 月 日 课 次:第 节 教学周次:第 周
实验分室: 实验台号: 实 验 员:
一、 实验目的
1. 设计并实现一个8位全加器
2. 掌握EDA中模块调用方法
二、 实验原理
运用实验二构建的半加器构建一位的全加器,然后设计一个8 位的全加器,其框图如图4-1所示。图中的“进位入”Ci-1指的是低位的进位输出,“进位出”Ci即是本位的进位输出。
(被加数)Bi(7..0)
全加器
(被加数)Ai(7..0)
(进位入)Ci-1
(全加和)Si(7..0)
(进位出)Ci
图 4-1 8位全加器原理图
0
三、 实验连线
全加器的17个输入所相应的管脚同17位拨码开关相连,17个输入管脚是a0~a7、b0~b7和cin a0~a7、b0~b7代表两个8位二进制数,cin代表进位位;9个输出所相应的管脚同9位发光二极管相连,9个输出管脚是sum0~sum7和cout,sum0~sum7代表相加结果,cout代表进位位。
四、 实验记录
输入
实验结果
Ci-1
Bi(7..0)
Ai(7..0)
Si(7..0)
Ci
0
00000000
00000000
0
00000001
……
00000000
……
0
11111110
11111110
0
11111111
11111111
1
00000000
00000000
1
00000001
……
00000000
……
1
11111110
00000000
1
11111111
00000000
五、 实验结果分析与思考
1.半加器与全加器的区别。
2.实验设计程序
3实验结果总结
实验
成绩
项目及比例
实验操作(30%)
报告书写(70%)
得分
成绩合计
教师签字:
批改日期:
实验四 数据比较器
实验类型: 设计性 实验课时: 2 指导教师: 李海成
时 间:201 年 月 日 课 次:第 节 教学周次:第 周
实验分室: 实验台号: 实 验 员:
一、 实验目的
1.设计并实现一个4位二进制数据比较器
2.掌握数据比较器的构建及其方法
二、 实验原理
二进制比较器是提供关于两个二进制操作数间关系信息的逻辑电路。两个操作数的比较结果有三种情况:A等于B、A大于B和A小于B。
考虑当操作数A和B都是一位二进制数时,构造比较器的真值表见表9-1。输出表达式如下:
AEQB=A’B’+AB=(AB)’
A>B=AB’
A<B=A’B
表9-1 一位比较器的真值表
输入
输出
A
B
A=B
A>B
A<B
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
在一位比较器的基础上,我们可以继续得到两位比较器,然后通过“迭代设计”得到4位的数据比较器。对于4位比较器的设计,我们可以通过原理图输入法或VHDL描述来完毕,其中用VHDL语言描述是一种最为简朴的方法。下面是一个3位比较器的VHDL描述:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity comp is
port(a,b: in std_logic_vector(2 downto 0);
sel_f: in std_logic_vector(1 downto 0);
q: out Boolean);
end;
architecture a of comp is
begin
process(sel_f,a,b)
begin
case sel_f is
when”00” => q <= a=b;
when”01” => q <= a<b;
when”10” => q <= a>b;
when others => q <=false;
end case;
end process;
end a;
实验源程序名是comp.vhd。
三、 实验连线
输入信号有A0~A3、B0~B3、CLK和RST,其中A0~A3和B0~B3代表两路互相比较的数,接拨码开关,CLK接时钟,RST接复位端;输出信号有AEQB(A=B)、AGTB(A>B)、ALTB(A<B),接发光二极管。改变拨码开关的状态,观测实验结果。
四、 实验记录
同前,对比较器造表,得到其真值表,并分析其运算结果的对的性。
五、 实验结果分析与思考
1.比较器的应用场合。
2.实验设计程序
3实验结果总结
实验
成绩
项目及比例
实验操作(30%)
报告书写(70%)
得分
成绩合计
教师签字:
批改日期:
实验五 编码器
实验类型: 验证性 实验课时: 2 指导教师: 李海成
时 间:201 年 月 日 课 次:第 节 教学周次:第 周
实验分室: 实验台号: 实 验 员:
一、 实验目的
1. 设计并实现一个16-4优先编码器
2. 掌握编码器的设计方法。
二、 实验原理
常用的编码器有:4-2编码器、8-3编码器、16-4编码器,下面我们用一个8-3编码器的设计来介绍编码器的设计方法。
8-3编码器如图11-1所示,其真值表如表11-1。
图11-1 8-3编码器
表11-1 8-3优先编码器真值表
输入
输出
EIN
0N
1N
2N
3N
4N
5N
6N
7N
A2N
A1N
A0N
GSN
EON
1
X
X
X
X
X
X
X
X
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
X
X
X
X
X
X
X
0
0
0
0
0
1
0
X
X
X
X
X
X
0
1
0
0
1
0
1
0
X
X
X
X
X
0
1
1
0
1
0
0
1
0
X
X
X
X
0
1
1
1
0
1
1
0
1
0
X
X
X
0
1
1
1
1
1
0
0
0
1
0
X
X
0
1
1
1
1
1
1
0
1
0
1
0
X
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
整个编码器的VHDL语言描述如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ENCODE IS
PORT(D: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
EIN: IN STD_LOGIC;
A0N,A1N,A2N,GSN,EON: OUT STD_LOGIC);
END ENCODE;
ARCHITECTURE A OF ENCODE IS
SIGNAL Q: STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
A0N <=Q(0); A1N<=Q(1); A2N<=Q(2);
PROCESS(D)
BEGIN
IF EIN =’1’ THEN
Q<=”111”;
GSN<=’1’; EON<=’1’;
ELSIF D(0)=’0’ THEN
Q<=”111”; GSN<=’0’; EON<=’1’;
ELSIF D(1)=’0’ THEN
Q<=”110”; GSN<=’0’; EON<=’1’;
ELSIF D(2)=’0’ THEN
Q<=”101”; GSN<=’0’; EON<=’1’;
ELSIF D(3)=’0’ THEN
Q<=”100”; GSN<=’0’; EON<=’1’;
ELSIF D(4)=’0’ THEN
Q<=”011”; GSN<=’0’; EON<=’1’;
ELSIF D(5)=’0’ THEN
Q<=”010”; GSN<=’0’; EON<=’1’;
ELSIF D(6)=’0’ THEN
Q<=”001”; GSN<=’0’; EON<=’1’;
ELSIF D(7)=’0’ THEN
Q<=”000”; GSN<=’0’; EON<=’1’;
ELSIF D=”11111111” THEN
Q<=”111”; GSN<=’1’; EON<=’0’;
END IF;
END PROCESS;
END A;
实验源程序名是encode.vhd。
请参考以上程序设计一16-4编码器。
三、 实验连线
输入信号D0~D15(代表16路输入数据)、EIN(代表输入允许控制端)、EON、GSN(代表2个输出允许控制端),都接拨码开关;输出信号A0N~A3N(代表四路编码结果输出)接发光二极管。改变拨码开关的状态,对照表11-1 8-3优先编码器真值表,观测实验结果。
四、 实验记录
对编码器造表,得到其真值表,并分析其运算结果的对的性。
五、 实验结果分析与思考
1.编码器常用芯片有哪些,比较专用芯片和EDA设计的优缺陷。
2.实验过程出现问题及解决方法
3实验结果总结
实验
成绩
项目及比例
实验操作(30%)
报告书写(70%)
得分
成绩合计
教师签字:
批改日期:
实验六 组合逻辑电路的设计
实验类型: 设计性 实验课时:
展开阅读全文