实验四.docx

上传人:b****5 文档编号:12589926 上传时间:2023-04-20 格式:DOCX 页数:11 大小:61.17KB
下载 相关 举报
实验四.docx_第1页
第1页 / 共11页
实验四.docx_第2页
第2页 / 共11页
实验四.docx_第3页
第3页 / 共11页
实验四.docx_第4页
第4页 / 共11页
实验四.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

实验四.docx

《实验四.docx》由会员分享,可在线阅读,更多相关《实验四.docx(11页珍藏版)》请在冰豆网上搜索。

实验四.docx

实验四

EDA实验报告

 

班级:

通工0905班

姓名:

赵鹏

班内序号:

17

 

实验四:

组合逻辑电路设计

(一)

——三态门、数选器、逻辑运算器

一、实验目的

1.掌握三态门、数选器、逻辑运算器三种组合逻辑电路的设计方法,及其VHDL描述方法。

2.掌握利用CPLD器件开发组合逻辑电路的方法。

二、实验器材

PC、可编程逻辑实验电路板、下载线、USB电源线、双踪示波器、数字万用表、导线若干、

三、实验原理

(1)多数表决器

源代码:

Libraryieee;

Useieee.std_logic_1164.all;

Entitybiaojueis

Port(a:

instd_logic_vector(3downto0);

y:

outstd_logic);

End;

Architecturertlofbiaojueis

Begin

Process(a)

Begin

Caseais

When"0000"=>y<='0';

When"0001"=>y<='0';

When"0010"=>y<='0';

When"0011"=>y<='0';

When"0100"=>y<='0';

When"0101"=>y<='0';

When"0110"=>y<='0';

When"0111"=>y<='1';

When"1000"=>y<='0';

When"1001"=>y<='0';

When"1010"=>y<='0';

When"1011"=>y<='1';

When"1100"=>y<='0';

When"1101"=>y<='1';

When"1110"=>y<='1';

When"1111"=>y<='1';

Whenothers=>y<='Z';

Endcase;

Endprocess;

End;

(2)二位二进制相乘电路

源代码:

libraryieee;

useieee.std_logic_1164.all;

entityxiangchenis

port(A,B,C,D:

instd_logic;

st:

instd_logic;

F:

outstd_logic_vector(3downto0));

end;

architecturebehaviorofxiangchenis

signalg,h,j,k,l,m,z,x,v,n,q,w,e:

std_logic;

begin

process(A,B,C,D,st)

begin

if(st='1')then

g<=AandB;

h<=gandC;

F(3)<=handD;

l<=AandC;

m<=BandD;

z<=notm;

F

(2)<=zandl;

e<=handD;

x<=note;

v<=BandC;

n<=AandD;

q<=vandx;

w<=nandx;

F

(1)<=qorw;

F(0)<=m;

elseF<="ZZZZ";

endif;

endprocess;

end;

(3)二进制全减电路

源代码:

Libraryieee;

Useieee.std_logic_1164.all;

Useieee.std_logic_unsigned.all;

Entitye4_2_jian2is

Port(a,b,ci:

instd_logic;

f,co:

outstd_logic);

End;

Architecturerel_1ofe4_2_jian2is

Begin

Process(a,b,ci)

Begin

If(a='0'andb='0'andci='0')then

F<='0';co<='0';

elsif(a='0'andb='0'andci='1')then

F<='1';co<='1';

elsif(a='0'andb='1'andci='0')then

F<='1';co<='1';

elsif(a='0'andb='1'andci='1')then

F<='0';co<='1';

elsif(a='1'andb='0'andci='0')then

F<='1';co<='0';

elsif(a=’1’andb=’0’andci=’1’)then

F<=’0’;co<=’0’;

elsif(a=’1’andb=’1’andci=’0’)then

F<=’0’;co<=’0’;

else

F<=’1’;

Co<=’1’;

Endif;

Endprocess;

End;

四、实验内容

(1)设计一个多数表决器,要求:

①当输入A、B、C、D有三个或三个以上为1时输出为F;输入为其他状态是输出0。

②写出实验内容的真值表及逻辑表达式。

③编写出实验该电路的VHDL程序。

④用MAX+PLUSⅡ进行仿真。

⑤将编写好的程序下载到CPLD芯片里,观察结果。

(2)设计一个二位二进制数相乘电路,要求:

①写出实验内容的真值表。

②编写出实验该电路的VHDL程序。

③用MAX+PLUSⅡ进行仿真。

④将编写好的程序下载到CPLD芯片里,用发光二极管观察结果。

(3)设计一个一位二进制全减器电路,要求:

①输入为被减数、减数和来自低位的借位,输出为两数之差和向高位的借位。

②编写出实验该电路的VHDL程序。

③用MAX+PLUSⅡ进行仿真。

④将编写好的程序下载到CPLD芯片里,观察结果。

五、实验过程与结果

(1)多数表决器

源代码:

Libraryieee;

Useieee.std_logic_1164.all;

Entitybiaojueis

Port(a:

instd_logic_vector(3downto0);

y:

outstd_logic);

End;

Architecturertlofbiaojueis

Begin

Process(a)

Begin

Caseais

When"0000"=>y<='0';

When"0001"=>y<='0';

When"0010"=>y<='0';

When"0011"=>y<='0';

When"0100"=>y<='0';

When"0101"=>y<='0';

When"0110"=>y<='0';

When"0111"=>y<='1';

When"1000"=>y<='0';

When"1001"=>y<='0';

When"1010"=>y<='0';

When"1011"=>y<='1';

When"1100"=>y<='0';

When"1101"=>y<='1';

When"1110"=>y<='1';

When"1111"=>y<='1';

Whenothers=>y<='Z';

Endcase;

Endprocess;

End;

仿真波形:

(2)二位二进制相乘电路

源代码:

libraryieee;

useieee.std_logic_1164.all;

entityxiangchenis

port(A,B,C,D:

instd_logic;

st:

instd_logic;

F:

outstd_logic_vector(3downto0));

end;

architecturebehaviorofxiangchenis

signalg,h,j,k,l,m,z,x,v,n,q,w,e:

std_logic;

begin

process(A,B,C,D,st)

begin

if(st='1')then

g<=AandB;

h<=gandC;

F(3)<=handD;

l<=AandC;

m<=BandD;

z<=notm;

F

(2)<=zandl;

e<=handD;

x<=note;

v<=BandC;

n<=AandD;

q<=vandx;

w<=nandx;

F

(1)<=qorw;

F(0)<=m;

elseF<="ZZZZ";

endif;

endprocess;

end;

仿真波形:

(3)二进制全减电路

源代码:

Libraryieee;

Useieee.std_logic_1164.all;

Useieee.std_logic_unsigned.all;

Entitye4_2_jian2is

Port(a,b,ci:

instd_logic;

f,co:

outstd_logic);

End;

Architecturerel_1ofe4_2_jian2is

Begin

Process(a,b,ci)

Begin

If(a='0'andb='0'andci='0')then

F<='0';co<='0';

elsif(a='0'andb='0'andci='1')then

F<='1';co<='1';

elsif(a='0'andb='1'andci='0')then

F<='1';co<='1';

elsif(a='0'andb='1'andci='1')then

F<='0';co<='1';

elsif(a='1'andb='0'andci='0')then

F<='1';co<='0';

elsif(a=’1’andb=’0’andci=’1’)then

F<=’0’;co<=’0’;

elsif(a=’1’andb=’1’andci=’0’)then

F<=’0’;co<=’0’;

else

F<=’1’;

Co<=’1’;

Endif;

Endprocess;

End;

仿真波形:

 

六、实验心得体会

通过本次实验,对组合逻辑电路的设计方法有了更进一步的掌握。

本次实验内容较多,设计了一个多数表决器,一个二个2位二进制数相乘电路以及一个一位二进制全减器电路。

实验中遇到的主要问题是if语句的使用,if语句与elseif语句的区别是必须要清楚的,其中连续使用if语句,将对变量进行连续的判断,即使上一个if语句已判断为真,而elseif语句只在上一个elseif或者if语句判断为假后才开始判断,否则不执行,理解这一点对于if语句的使用至关重要。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1