《EDA》实验指导书精讲.docx
《《EDA》实验指导书精讲.docx》由会员分享,可在线阅读,更多相关《《EDA》实验指导书精讲.docx(20页珍藏版)》请在冰豆网上搜索。
![《EDA》实验指导书精讲.docx](https://file1.bdocx.com/fileroot1/2023-1/9/0e473f7d-8e3a-4c97-afc3-a02309f4d180/0e473f7d-8e3a-4c97-afc3-a02309f4d1801.gif)
《EDA》实验指导书精讲
辽东学院自编教材
《可编程逻辑器件原理及应用实验》指导书
李海成编
(计算机科学与技术、电子信息工程专业用)
姓名:
学号:
班级:
信息技术学院
2013年6月
目录
目录2
实验一MAX+PLUS-II设计三八译码器3
实验二半加器27
实验三带进位输入的8位加法器29
实验四数据比较器31
实验五编码器34
实验六组合逻辑电路的设计37
实验七计数器40
实验八触发器功能的模拟实现43
实验二半加器
实验类型:
验证性实验课时:
2指导教师:
李海成
时间:
201年月日课次:
第节教学周次:
第周
实验分室:
实验台号:
实验员:
一、实验目的
1.设计并实验一个一位半加器
2.掌握CPLD/FPGA组合逻辑设计基本方法。
二、实验原理
计算机中数的操作都是以二进制进位的,最基本的运算就是加法运算。
按照进位是否加入,加法器分为半加器和全加器电路两种。
计算机中的异或指令的功能就是求两个操作数各位的半加和。
一位半加器有两个输入、输出,如图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即是本位的进位输出。
图4-18位全加器原理图
0
三、实验连线
全加器的17个输入所对应的管脚同17位拨码开关相连,17个输入管脚是a0~a7、b0~b7和cina0~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
表9-1一位比较器的真值表
输入
输出
A
B
A=B
A>B
A
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描述:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycompis
port(a,b:
instd_logic_vector(2downto0);
sel_f:
instd_logic_vector(1downto0);
q:
outBoolean);
end;
architectureaofcompis
begin
process(sel_f,a,b)
begin
casesel_fis
when”00”=>q<=a=b;
when”01”=>q<=a
when”10”=>q<=a>b;
whenothers=>q<=false;
endcase;
endprocess;
enda;
实验源程序名是comp.vhd。
三、实验连线
输入信号有A0~A3、B0~B3、CLK和RST,其中A0~A3和B0~B3代表两路相互比较的数,接拨码开关,CLK接时钟,RST接复位端;输出信号有AEQB(A=B)、AGTB(A>B)、ALTB(A
改变拨码开关的状态,观察实验结果。
四、实验记录
同前,对比较器造表,得到其真值表,并分析其运算结果的正确性。
五、实验结果分析与思考
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-18-3编码器
表11-18-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语言描述如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYENCODEIS
PORT(D:
INSTD_LOGIC_VECTOR(7DOWNTO0);
EIN:
INSTD_LOGIC;
A0N,A1N,A2N,GSN,EON:
OUTSTD_LOGIC);
ENDENCODE;
ARCHITECTUREAOFENCODEIS
SIGNALQ:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
A0N<=Q(0);A1N<=Q
(1);A2N<=Q
(2);
PROCESS(D)
BEGIN
IFEIN=’1’THEN
Q<=”111”;
GSN<=’1’;EON<=’1’;
ELSIFD(0)=’0’THEN
Q<=”111”;GSN<=’0’;EON<=’1’;
ELSIFD
(1)=’0’THEN
Q<=”110”;GSN<=’0’;EON<=’1’;
ELSIFD
(2)=’0’THEN
Q<=”101”;GSN<=’0’;EON<=’1’;
ELSIFD(3)=’0’THEN
Q<=”100”;GSN<=’0’;EON<=’1’;
ELSIFD(4)=’0’THEN
Q<=”011”;GSN<=’0’;EON<=’1’;
ELSIFD(5)=’0’THEN
Q<=”010”;GSN<=’0’;EON<=’1’;
ELSIFD(6)=’0’THEN
Q<=”001”;GSN<=’0’;EON<=’1’;
ELSIFD(7)=’0’THEN
Q<=”000”;GSN<=’0’;EON<=’1’;
ELSIFD=”11111111”THEN
Q<=”111”;GSN<=’1’;EON<=’0’;
ENDIF;
ENDPROCESS;
ENDA;
实验源程序名是encode.vhd。
请参考以上程序设计一16-4编码器。
三、实验连线
输入信号D0~D15(代表16路输入数据)、EIN(代表输入允许控制端)、EON、GSN(代表2个输出允许控制端),都接拨码开关;输出信号A0N~A3N(代表四路编码结果输出)接发光二极管。
改变拨码开关的状态,对照表11-18-3优先编码器真值表,观察实验结果。
四、实验记录
对编码器造表,得到其真值表,并分析其运算结果的正确性。
五、实验结果分析与思考
1.编码器常用芯片有哪些,比较专用芯片和EDA设计的优缺点。
2.实验过程出现问题及处理方法
3实验结果总结
实验
成绩
项目及比例
实验操作(30%)
报告书写(70%)
得分
成绩合计
教师签字:
批改日期:
实验六组合逻辑电路的设计
实验类型:
设计性实验课时:
2指导教师:
李海成
时间:
201年月日课次:
第节教学周次:
第周
实验分室:
实验台号:
实验员:
一、实验目的:
1.掌握组合逻辑电路的设计方法。
2.掌握组合逻辑电路的静态测试方法。
3.加深PLD设计的过程,并比较原理图输入和文本输入的优劣。
二、实验的硬件要求:
1.输入:
按键开关(常高)4个;拔码开关4位。
2.输出:
LED灯。
3.主芯片:
AlteraEPF10K10LC84-4。
三、实验内容:
1.设计一个四舍五入判别电路,其输入为8421BCD码,要求当输大于或等于5时,判别电路输出为1,反之为0。
2.设计四个开关控制一盏灯的逻辑电路,要求合任一开关,灯亮;断任一开关,灯灭。
(即任一开关的合断改变原来灯亮灭的状态)
3.设计一个优先权排队电路,其框图如下:
排队顺序:
A=1最高优先级
B=1次高优先级
C=1最低优先级
要求输出端最高只能有一端为“1”,即只能是优先级较高的输入端所对应的输出端为“1”。
四、实验连线:
1.四位拔码开关连D3,D2,D1,D0信号对应的管脚。
OUT输出信号管脚接LED灯。
2.四位按键开关分别连K1,K2,K3,K4信号对应的管脚。
OUT输出信号管脚接LED灯。
3.A、B、C信号对应管脚分别连三个按键开关。
输出A_OUT,B_OUT,C_OUT信号对应的管脚分别连三个LED灯。
(具体管脚参考反标注原理图和实验箱上的标记)
五、实验报告要求
1.对于原理图设计要求有设计过程,并写出程序设计代码。
2.详细论述实验步骤。
3.写一些对于两种硬件设计输入法的优劣心得。
实验报告内容:
实验
成绩
项目及比例
实验操作(30%)
报告书写(70%)
得分
成绩合计
教师签字:
批改日期:
实验七计数器
实验类型:
验证性实验课时:
2指导教师:
李海成
时间:
201年月日课次:
第节教学周次:
第周
实验分室:
实验台号:
实验员:
一、实验目的
1、设计一个带使能输入及同步清0的增1计数器,仿真波形图见图20-1,实验源程序名是counter1.vhd;
2、设计一个带使能输入及同步清0的增1/减1的8位计数器,仿真波形图见图20-2A和20-2B,实验源程序名是up-down.vhd。
二、实验内容
图20-1计数器2波形图
图20-2A加减控制计数器波形图
在用VHDL语言描述一个计数器时,如果使用了程序包ieee.std_logic_unsigned,则在描述计数器时就可以使用其中的函数“+”(递增计数)和“-”(递减计数)。
假定设计对象是增1计数器并且计数器被说明为向量,则当所有位均为‘1’时,计数器的下一状态将自动变成‘0’。
举例来说,假定计数器的值到达“111”是将停止,则在增1之前必须测试计数器的值。
图20-2B加减控制计数器波形图
如果计数器被说明为整数类型,则必须有上限值测试。
否则,在计数顺值等于7,并且要执行增1操作时,模拟器将指出此时有错误发生。
下面的例子是一个3位增1/减1计数器:
当输入信号UP等于1时计数器增1;当输入信号UP等于0时计数器减1。
Libraryieee;
Useieee.std_logic_1164.all;
Useieee.std_logic_unsigned.all;
Entityup_downis
Port(clk,rst,en,up:
instd_logic;
Sum:
outstd_logic_vector(2downto0);
Cout:
outstd_logic);
End;
Architectureaofup_downis
Signalcount:
std_logic_vector(2downto0);
Begin
Process(clk,rst)
Begin
Ifrst=’0’then
Count<=(others=>’0’);
Elsifrising_edge(clk)then
Ifen=’1’then
Caseupis
When‘1’=>count<=count+1;
Whenothers=>count<=count-1;
Endcase;
Endif;
Endif;
Endprocess;
Sum<=count;
Cout<=’1’whenen=’1’and((up=’1’andcount=7)or(up=’0’andcount=0))else‘0’;
End;
参考以上实例完成实验目的中所要求的3个计数器的设计。
三、实验连线
实验1输入信号有clk(时钟信号)、clr(复位信号)、en(使能控制输入信号),clk用CPLD/FPGA适配器板子上的时钟信号,接数字信号源的CLK5,频率调节到1Hz左右,clr、en接拨码开关,工作时clr为低电平,en为高电平;输出信号有Q0~Q3,接LED灯。
实验2输入信号有clk(时钟信号)、rst(复位信号)、en(使能控制输入信号)、up(加减控制输入信号),clk用CPLD/FPGA适配器板子上的时钟信号,接数字信号源的CLK5,频率调节到1Hz左右,rst、en、up接拨码开关,工作时rst和en为高电平,up为高电平时增计数,为低电平时减计数;输出信号有SUM0~SUM2(代表输出数据)和COUT(代表进位或借位),都接LED灯。
在做实验时,请注意仿真波形图中各个输入信号的有效电平。
四、实验报告
1.设计问题及解决方法
2.设计过程及代码
实验
成绩
项目及比例
实验操作(30%)
报告书写(70%)
得分
成绩合计
教师签字:
批改日期:
实验八触发器功能的模拟实现
实验类型:
设计性实验课时:
2指导教师:
李海成
时间:
201年月日课次:
第节教学周次:
第周
实验分室:
实验台号:
实验员:
一、实验目的:
1.掌握触发器功能的测试方法。
2.掌握基本RS触发器的组成及工作原理。
3.掌握集成JK触发器和D触发器的逻辑功能及触发方式。
4.掌握几种主要触发器之间相互转换的方法。
通过实验,体会EPLD芯片的高集成度和多I/O口。
实验源程序是t33.gdf。
二、实验说明
将基本RS触发器,同步RS触发器,集成J-K触发器,D触发器同时集成一个EPLD
芯片中模拟其功能,并研究其相互转化的方法。
实验的具体实现要连线测试。
实验原理如图33-1:
图33-1
电路中各个触发器的仿真波形图如下:
图33-2RS触发器仿真波形图
图33-3RS锁存器仿真波形图
图33-4JK触发器仿真波形图
图33-5D触发器仿真波形图
三、实验连线:
输入信号Sd、Rd对应的管脚接按键开关,CLK接时钟源(频率在1Hz左右);输入信号J,K,D,R,S对应的管脚分别接拨码开关;输出信号QRS,NQRS,QRSC,NQRSC,QJK,NQJK,QD,NQD对应管脚分别接LED灯。
另外准备几根连线,在改变为T‘触发’器时,短接相应管脚,或连接“0”“1”电平。
四、实验报告:
填下述表格表一,表二,表三,表四。
表一:
RS寄存器
RdSd
Q
NQ
说明
01
10
11
00
表二:
RS锁存器
R
S
CLK
Rd
Sd
Qn
Qn+1
Qn-1
说明
X
X
X
1
0
X
X
X
0
1
X
X
X
0
0
X
X
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
表三:
JK触发器
J
K
CLK
Rd
Sd
Qn
Qn+1
NQn+1
X
X
X
0
1
X
X
X
1
0
X
X
X
0
0
X
X
0
1
1
X
X
1
1
1
0
0
※
1
1
0
1
※
1
1
1
0
1
1
1
1
1
1
表四:
D触发器
INPUTS
OUTPUTS
D
CLK
Rd
Sd
Q
NQ
X
X
X
X
X
0
1
X
X
X
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
。
五、实验报告
分别将JK触发器和D触发器接成T触发器,模拟其工作状态,并画出其波形
‘
实验
成绩
项目及比例
实验操作(30%)
报告书写(70%)
得分
成绩合计
教师签字:
批改日期: