EDA实验报告含结果图.docx
《EDA实验报告含结果图.docx》由会员分享,可在线阅读,更多相关《EDA实验报告含结果图.docx(25页珍藏版)》请在冰豆网上搜索。
EDA实验报告含结果图
EDA电子课程
实验报告
专业:
班级:
姓名:
学号:
实验一四人表决器
一实验目的
1、熟悉QuartusII软件的使用。
2、熟悉EDA-IV实验箱。
3、熟悉EDA开发的基本流程。
二硬件需求
1、RC-EDA-IV型实验箱一台;
2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;
3、PC机一台。
三实验原理
所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
四人表决器顾名思义就是由四个人来投票,当同意的票数大于或者等于3人时,则认为同意;反之,当否决的票数大于或者等于2人时,则认为不同意。
实验中用4个拨挡开关来表示4个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。
表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。
四实验内容
VHDL程序:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
--------------------------------------------------------------------
entityEXP3is
port(
k1,K2,K3,K4:
instd_logic;
ledag:
outstd_logic_vector(3downto0);
m_Result:
outstd_logic
);
endEXP3;
--------------------------------------------------------------------
architecturebehaveofEXP3is
signalK_Num:
std_logic_vector(2downto0);
signalK1_Num,K2_Num:
std_logic_vector(2downto0);
signalK3_Num,K4_Num:
std_logic_vector(2downto0);
begin
process(K1,K2,K3,K4)
begin
K1_Num<='0'&'0'&K1;
K2_Num<='0'&'0'&K2;
K3_Num<='0'&'0'&K3;
K4_Num<='0'&'0'&K4;
endprocess;
process(K1_Num,K2_Num,K3_Num,K4_Num,)
begin
K_Num<=K1_Num+K2_Num+K3_Num+K4_Num;
endprocess;
process(K_Num)begin
if(K_Num>2)then
m_Result<='1';
else
m_Result<='0';
endif;
endprocess;
endbehave;
实验电路
实验二格雷码转换
一实验目的
1、了解格雷码变换的原理。
2、进一步熟悉QuartusII软件的使用。
3、熟练掌握EDA-IV实验箱的使用。
二实验设备
1、RC-EDA-IV型实验箱一台;
2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;
3、PC机一台。
三实验原理
格雷(Gray)码是一种可靠性编码,在数字系统中有着广泛的应用。
其特点是任意两个相邻的代码中仅有一位二进制数不同,因而在数码的递增和递减运算过程中不易出现差错。
但是格雷码是一种无权码,要想正确而简单的和二进制码进行转换,必须找出其规律。
根据组合逻辑电路的分析方法,先列出其真值表再通过卡诺图化简,可以很快的找出格雷码与二进制码之间的逻辑关系。
其转换规律为:
高位同,从高到低看异同,异出‘1’,同出‘0’。
也就是将二进制码转换成格雷码时,高位是完全相同的,下一位格雷码是‘1’还是‘0’,完全是相邻两位二进制码的“异”还是“同”来决定。
下面举一个简单的例子加以说明。
假如要把二进制码10110110转换成格雷码,则可以通过下面的方法来完成,方法如图所示。
因此,变换出来的格雷码为11101101。
四实验内容
VHDL程序:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
--------------------------------------------------------------------
entityEXP4is
port(K1,K2,K3,K4,K5,K6,K7,K8:
instd_logic;
D1,D2,D3,D4,D5,D6,D7,D8:
outstd_logic
);
endEXP4;
--------------------------------------------------------------------
architecturebehaveofEXP4is
begin
process(K1,K2,K3,K4,K5,K6,K7,K8)
begin
D1<=K1;
D2<=K1xorK2;
D3<=K2xorK3;
D4<=K3xorK4;
D5<=K4xorK5;
D6<=K5xorK6;
D7<=K6xorK7;
D8<=K7xorK8;
endprocess;
endbehave;
实验电路
实验三四位全加器
一实验目的
1、了解四位全加器的工作原理。
2、掌握基本组合逻辑电路的EDA实现。
3、熟练应用QuartusII进行EDA开发。
二实验设备
1、RC-EDA-IV型实验箱一台;
2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;
3、PC机一台。
三实验原理
全加器是由两个加数Xi和Yi以及低位来的进位Ci-1作为输入,产生本位和Si以及向高位的进位Ci的逻辑电路。
它不但要完成本位二进制码Xi和Yi相加,而且还要考虑到低一位进位Ci-1的逻辑。
对于输入为Xi、Yi和Ci-1,输出为Si和Ci的情况,根据二进制加法法则可以得到全加器的真值表如下表4.5.1所示:
XiYiCi-1
Si
Ci
000
0
0
001
1
0
010
1
0
011
0
1
100
1
0
101
0
1
110
0
1
111
1
1
表4.5.1全加器真值表
由真值表得到Si和Ci的逻辑表达式经化简后为:
这仅仅是一位的二进制全加器,要完成一个四位的二进制全加器,只需要把四个级联起来即可。
四实验内容
VHDL程序:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
--------------------------------------------------------------------
entityEXP5is
port(X,Y:
instd_logic_vector(3downto0);
m_Result:
outstd_logic_vector(7downto0)
);
endEXP5;
--------------------------------------------------------------------
architecturebehaveofEXP5is
signalS1,S2,S3:
std_logic;
begin
process(X,Y)
begin
m_Result(0)<=X(0)xorY(0);
S1<=X(0)andY(0);
m_Result
(1)<=X
(1)xorY
(1)xorS1;
S2<=((X
(1)xorY
(1))andS1)or(X
(1)andY
(1));
m_Result
(2)<=X
(2)xorY
(2)xorS2;
S3<=((X
(2)xorY
(2))andS2)or(X
(2)andY
(2));
m_Result(3)<=X(3)xorY(3)xorS3;
m_Result(4)<=((X(3)xorY(3))andS3)or(X(3)andY(3));
m_Result(7downto5)<="000";
endprocess;
endbehave;
实验电路
实验四四选一选择器
一实验目的
1、熟悉多路选择器的工作原理。
2、加深对VHDL语言的理解。
3、掌握EDA开发的基本流程。
二实验设备
1、RC-EDA-IV型实验箱一台;
2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;
3、PC机一台。
三实验原理
多路选择器在实际中得到了广泛的应用,尤其是在通信中为了利用多路信号中的一路,可以采用多路选择器进行选择再对该路信号加以利用。
多路选择器的原理比较简单,首先必须设置一个选择标志信号,目的就是为了从多路信号中选择所需要的一路信号,选择标志信号的一种状态对应着一路信号。
在应用中,设置一定的选择标志信号状态即可得到相应的某一路信号。
这就是多路选择器的实现原理。
四实验内容
VHDL程序:
libraryIEEE;
useIEEE.std_logic_arith.all;
useIEEE.std_logic_unsigned.all;
useIEEE.std_logic_1164.all;
entityEXP6isport(
a,b,c,d:
instd_logic_vector(3downto0);
s:
instd_logic_vector(1downto0);
x:
outstd_logic_vector(3downto0));
endEXP6;
architecturearchmuxofEXP6is
begin
mux4_1:
process(a,b,c,d)
begin
ifs="00"then
x<=a;
elsifs="01"then
x<=b;
elsifs="10"then
x<=c;
else
x<=d;
endif;
endprocessmux4_1;
endarchmux;
实验电路
实验五四位乘法器
一实验目的
1、了解四位并行乘法器的原理。
2、了解四位并行乘法器的设计思想。
3、掌握用VHDL语言实现基本二进制运算的方法。
二实验设备
1、RC-EDA-IV型实验箱一台;
2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;
3、PC机一台。
三实验原理
实现并行乘法器的方法有很多种,但是归结起来基本上分为两类,一类是靠组合逻辑电路实现,另一类通过流水线结构实现。
流水线结构的并行乘法器的最大优点就是速度快,尤其是在连续输入的乘法器中,可以达到近乎于单周期的运算速度,但是实现起来比组合逻辑电路要稍微复杂一些,假如有被乘数A和乘数B,首先用A与B的最低位相乘得到S1,然后再把A左移1位与B的第2位相乘得到S2,再将A左移3位与B的第三位相乘得到S3,依此类推,直到把B的所有位都乘完为止,然后再把乘得的结果S1、S2、S3……相加即得到相乘的结果,具体实现乘法器并不是真正的去乘,而是利用简单的判断去实现。
四实验内容
VHDL程序:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityexp7is
port(A,B:
instd_logic_vector(3downto0);
m_Result:
outstd_logic_vector(7downto0)
);
endexp7;
architecturebehaveofexp7is
signalB1_Temp,B2_Temp,B3_Temp,B4_Temp:
std_logic_vector(7downto0);
begin
process(A,B)
begin
if(A(0)='1')then
B1_Temp<="0000"&B;
else
B1_Temp<="00000000";
endif;
if(A
(1)='1')then
B2_Temp<="000"&B&'0';
else
B2_Temp<="00000000";
endif;
if(A
(2)='1')then
B3_Temp<="00"&B&"00";
else
B3_Temp<="00000000";
endif;
if(A(3)='1')then
B4_Temp<='0'&B&"000";
else
B4_Temp<="00000000";
endif;
m_Result<=B1_Temp+B2_Temp+B3_Temp+B4_Temp;
endprocess;
endbehave;
实验电路
实验六四舍五入电路设计
一实验目的
4、熟悉四舍五入电路的工作原理。
5、加深对VHDL语言的理解。
6、掌握EDA开发的基本流程。
二实验设备
4、RC-EDA-IV型实验箱一台;
5、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;
6、PC机一台。
三实验原理
设计一个四舍五入判断电路,其输入为8421BCD码,要求当输入大于5时,判别电路输出为1,反之为0。
原理图如下
四实验内容
VHDL程序:
LIBRARYieee;
USEieee.std_logic_1164.all;
ENTITYT1_2IS
port
(
D0:
INSTD_LOGIC;
D3:
INSTD_LOGIC;
D2:
INSTD_LOGIC;
D1:
INSTD_LOGIC;
OUT0:
OUTSTD_LOGIC
);
ENDT1_2;
ARCHITECTUREbdf_typeOFT1_2IS
signalSYNTHESIZED_WIRE_0:
STD_LOGIC;
signalSYNTHESIZED_WIRE_1:
STD_LOGIC;
BEGIN
SYNTHESIZED_WIRE_0<=D0ANDD2;
SYNTHESIZED_WIRE_1<=D2ANDD1;
OUT0<=SYNTHESIZED_WIRE_0ORD3ORSYNTHESIZED_WIRE_1;
实验电路
实验七扫描显示电路
一、实验目的
了解教学系统中8位七段数码管显示模块的工作原理,设计标准扫描驱动电路模块,以备后面实验调用。
二、实验设备
1、RC-EDA-IV型实验箱一台;
2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;
3、PC机一台。
三、实验原理
四位拨码开关提供8421BCD码,经译码电路后成为7段数码管的字形显示驱动信号。
(A…G)扫描电路通过可调时钟输出片选地址SEL[2..0]如图所示。
由SEL[2..0]和A..G决定了8位中的哪一位显示和显示什么字形.SEL[2..0]变化的快慢决定了扫描频率的快慢。
四、实验内容
VHDL程序:
libraryieee;
useieee.std_logic_1164.all;
useIEEE.std_logic_arith.all;
useIEEE.std_logic_unsigned.all;
entityledis
port
(sel0,sel1,sel2,sel3:
instd_logic;
a,b,c,d,e,f,g:
bufferstd_logic);
endled;
architecturedataflowofledis
signalnum:
std_logic_vector(3downto0);
begin
num<=sel3&sel2&sel1&sel0;
process(sel0,sel1,sel2,sel3,a,b,c,d,e,f,g)
begin
casenumis
when"0000"=>a<='1';b<='1';c<='1';d<='1';e<='1';f<='1';g<='0';
when"0001"=>a<='0';b<='1';c<='1';d<='0';e<='0';f<='0';g<='0';
when"0010"=>a<='1';b<='1';c<='0';d<='1';e<='1';f<='0';g<='1';
when"0011"=>a<='1';b<='1';c<='1';d<='1';e<='0';f<='0';g<='1';
when"0100"=>a<='0';b<='1';c<='1';d<='0';e<='0';f<='1';g<='1';
when"0101"=>a<='1';b<='0';c<='1';d<='1';e<='0';f<='1';g<='1';
when"0110"=>a<='1';b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';
when"0111"=>a<='1';b<='1';c<='1';d<='0';e<='0';f<='0';g<='0';
when"1000"=>a<='1';b<='1';c<='1';d<='1';e<='1';f<='1';g<='1';
when"1001"=>a<='1';b<='1';c<='1';d<='1';e<='0';f<='1';g<='1';
when"1010"=>a<='1';b<='1';c<='1';d<='0';e<='1';f<='1';g<='1';
when"1011"=>a<='0';b<='0';c<='1';d<='1';e<='1';f<='1';g<='1';
when"1100"=>a<='1';b<='0';c<='0';d<='1';e<='1';f<='1';g<='0';
when"1101"=>a<='1';b<='1';c<='1';d<='1';e<='1';f<='1';g<='0';
when"1110"=>a<='1';b<='0';c<='0';d<='1';e<='1';f<='1';g<='1';
when"1111"=>a<='1';b<='0';c<='0';d<='0';e<='1';f<='1';g<='1';
whenothers=>null;
endcase;
endprocess;
enddataflow;
实验电路
实验八RS触发器
一实验目的
1、了解RS触发器的工作原理。
2、学习QuartusII中基于原理图设计的流程。
二实验设备
1、RC-EDA-IV型实验箱一台;
2、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;
3、PC机一台。
三实验原理
RS触发器的电路如下图所示。
采用与非门设计,
根据与非逻辑关系,可以得到RS触发器的状态转移真值表及简化的真值表,如下表所示:
状态转移真值表
简化真值表
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
Qn
1
0
1
1
0
0
不定
1
1
0
0
1
1
1
1
0
0
0
不定
0
0
1
不定
四实验内容
VHDL程序:
entityrsff is
port(r,s:
instd_logic;
q,qb:
outstd_logic);
endrsff;
architecturertl of rsff is
signalq_temp,qb_temp:
std_logic;
begin
process(r,s)
begin
if(s='1' and r='0')then
q_temp<='1';
qb_temp<='0';
elsif(s='0' and r='1')then
q_temp<='0';
qb_temp<='1';
else
q_temp<=q_temp;
qb_temp<=qb_temp;
end if;
end process;
q<=q_temp;
qb<=qb_temp;
endrtl;
实验电路
实验九JK触发器
一实验目的
3、了解JK触发器的工作原理。
4、学习QuartusII中基于原理图设计的流程。
二实验设备
4、RC-EDA-IV型实验箱一台;
5、RC-EDA-IV型实验箱配套USB-Blaster下载器一个;
6、PC机一台。
三实验原理
JK触发器电路如下图所示
其特性表
JK触发器运算
J
K
动作
Q
Qnext
动作
0
0
保持
X
X
不变
0
1
重置
X
0
重置
1
0
设置
X
1
设置
1
1
反转
1(0)
0
(1)
反转
四实验内容
VHDL程序:
LIBRAYieee;
USEieee.std_logic_1164.All;
ENTITYjkIS
PORT(j,k,clk:
INstd_logic;
q,qn:
OUTstd_logic);
ENDjk;
ARCHITECTUREa