课题设计一个四位全加器.docx

上传人:b****0 文档编号:550785 上传时间:2022-10-11 格式:DOCX 页数:14 大小:32.86KB
下载 相关 举报
课题设计一个四位全加器.docx_第1页
第1页 / 共14页
课题设计一个四位全加器.docx_第2页
第2页 / 共14页
课题设计一个四位全加器.docx_第3页
第3页 / 共14页
课题设计一个四位全加器.docx_第4页
第4页 / 共14页
课题设计一个四位全加器.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

课题设计一个四位全加器.docx

《课题设计一个四位全加器.docx》由会员分享,可在线阅读,更多相关《课题设计一个四位全加器.docx(14页珍藏版)》请在冰豆网上搜索。

课题设计一个四位全加器.docx

课题设计一个四位全加器

电子设计自动化课程实验报告

学号:

08291117

姓名:

图尔荪。

依明

班级:

电气0804

任课老师:

李景新

EDA第二次实验报告

第二次实验报告

2

EDA第二次实验报告

组合电路设计

(一)

课题:

设计一个四位全加器,进位输出是快速进位位

一、实验内容

设计一个四位的全加器,进位输出是快速进位位;

二、实验设计及过程

(1)设计思路

快速进位加法器,也就是超前进位加法器,其原理简单地说就是使各位的进位直接由加数和被加数来决定,即有如下逻辑表达式:

C?

AB?

AC?

BC?

AB?

(A?

B)C1i?

1i?

iiiiiiiii?

i1而不需要依赖低位进位。

逻辑表达式解释:

当第i位被加数A和加数B均为1时,有ii,由“或”的原理可知,不论低位运算结果1?

ABCB)(A?

ii1?

iii如何,本位必然有进位输出()。

当A和B中只有一个为1C?

iii且,因此时,有。

所以,四11?

B?

BA0A?

C?

Ciiii1ii?

位二进制全加器的“和”与“进位”相结合,可得到表达式:

3

EDA第二次实验报告

S?

A?

B?

C1iiii?

从而构成快速进位加法器。

(2)流程图

4

EDA第二次实验报告

(3)程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYquanjiaqiIS

PORT(A0,A1,A2,A3,B0,B1,B2,B3,Ci:

INSTD_LOGIC;

S0,S1,S2,S3,Co:

OUTSTD_LOGIC);

ENDquanjiaqi;

ARCHITECTUREbethOFquanjiaqiIS

BEGIN

PROCESS(A0,A1,A2,A3,B0,B1,B2,B3,Ci)

VARIABLEU0,U1,U2:

STD_LOGIC;

BEGIN

S0<=(A0xorB0)xorCi;

U0:

=(A0ANDB0)OR((A0ORB0)ANDCi);

S1<=(A1xorB1)xorU0;

U1:

=(A1ANDB1)OR((A1ORB1)ANDA0andB0)or

((A1orB1)and(A0orB0)andCi);

5

EDA第二次实验报告

S2<=(A2xorB2)xorU1;

U2:

=(A2andB2)or((A2orB2)andA1andB1)or((A2or

B2)and(A1orB1)andA0andB0)or((A2orB2)

and(A1orB1)and(A0orB0)andCi);

S3<=(A3xorB3)xorU2;

Co<=((A3xorB3)and(A2xorB2)and(A1xorB1)and(A0

xorB0)andCi)or((A3xorB3)and(A2xorB2)and

(A1xorB1)andA0andB0)or((A3xorB3)and(A2

xorB2)andA1andB1)or((A3xorB3)andA2and

B2)or(A3andB3);

ENDPROCESS;

ENDbeth;

(4)仿真波形

波形解释:

6

EDA第二次实验报告

1、0——10ns:

1+1+1=3;

2、10——20ns:

6+10=16;

3、20——30ns:

1+10+5=16;

4、30——40ns:

1+15+15=31.

(注:

是借位位,是进位位,A与B是加数,为和)SCiCo由此可知,该仿真波形说明设计的正确性。

三、实验收获

本实验为简单逻辑组合电路,全加器设计,使用了最简单“xor”和“and”语句,初步了解了VHDL语言的使用和quarters软件的编程环境,为之后的学习打下很好的基础。

另外,对全加器中的快速进位有了深刻的了解,程序较逐步进位复杂难想,但可以使得程序执行起来快速,减少时间的损耗。

四,试验中遇到的问题及解决步骤

1、找不到合适的编写方式实现快速进位在数电课本上找到了全加器的资料,并且找到了合适的公式。

2、建立文件编写完之后无法申报文件。

应该把文件名与汇编语言中定义的名字一样。

7

EDA第二次实验报告

组合电路设计

(二)

课题:

用IF语句和CASE语句设计一个4-16译码器

一·实验目的及内容

1、熟悉4-16译码器的原理

2、熟悉VHDL语言的编程逻辑的构建。

3、掌握VHDL语言的基本结构及使用方法。

二·实验设计思路

1、使能端为E;当E=1时芯片开始工作.否者输出为111111*********1。

2、当输入端口abcd为:

0000时输出q=1111111111111110

0001时输出q=1111111111111101

0010时输出q=1111111111111011

0011时输出q=1111111111110111

0100时输出q=1111111111101111

0101时输出q=1111111111011111

0110时输出q=1111111110111111

0111时输出q=1111111101111111

1000时输出q=1111111011111111

1001时输出q=1111110111111111

8

EDA第二次实验报告

1010时输出q=1111101111111111

1011时输出q=1111011111111111

1100时输出q=1110111111111111

1101时输出q=110111111111111

1110时输出q=101111111111111

1111时输出q=011111111111111

高阻或无输出时输出q=xxxxxxxxxxxxxxxx

三、流程图

Y

N

….

.…

9

EDA第二次实验报告

四、源程序:

libraryieee;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYlshIS

PORT(a,b,c,d,E:

INSTD_LOGIC;

q:

OUTSTD_LOGIC_VECTOR(15DOWNTO0));

ENDlsh;

architecturebehaveoflshis

signalindata:

std_logic_vector(3downto0);

begin

indata<=a&b&c&d;

process(indata,E)

begin

if(E='1')then

caseindatais

when

when

when0=>q<=I1111111111011;

when1=>q<=I1111111110111;

when0=>q<=I1111111101111;

10

EDA第二次实验报告

when1=>q<=I1111111011111;

when0=>q<=I1111110111111;

when1=>q<=I1111101111111;

when@0=>q<=I1111011111111;

when@1=>q<=I1110111111111;

whenA0=>q<=I1101111111111;

whenA1=>q<=I1011111111111;

whenH0=>q<=I0111111111111;

whenH1=>q<=H1111111111111;

whenI0=>q<=A1111111111111;

whenI1=>q<=1111111111111;

whenothers=>q<=XXXXXXXXXXXXXXXX;

endcase;

else

q<=I1111111111111;

endif;

endprocess;

endbehave;

五、仿真波形11

EDA第二次实验报告

当使能端E=0时,输出全为1

1,其余为=0(4)qE=1当使能端时,输入0100,输出为

实验收获一、

是假设有某种IF。

本次实验开始使用条件语句IF和CASE当假设条件比较多而且有一定规进而执行相应的程序;情况后,语句进行编程。

律时,就应该使用CASE12

EDA第二次实验报告

第三次实验报告

13

EDA第二次实验报告

时序电路设计

课题:

4位二进制同步加/减法可逆计数器

一·实验目的及内容

1.了解4位二进制同步加/减法可逆计数器原理。

2.熟悉VHDL语言的基本结构及使用方法。

二·实验设计思路

输入端口:

clr:

清零端(高电平有效,异步清零)

clk:

时钟脉冲

d3~d0:

4位二进制数输入端

updown:

加/减法控制信号(1——执行加;0——执行减)

输出端口:

q3~q0:

4位二进制计数输出

co:

进位输出

bo:

借位输出

运行过程:

clr为0时输出q3~q0为0000;

当clr为1是芯片开始工作;

load为1时输出为q3q2q1q0=d3d2d1d0;

当updown=1时为加法计数器co=0当q3q2q1q0=1111时给一个clk脉冲时co=1且q3q2q1q0=0000;

当updown=0时为加法计数器bo=0当q3q2q1q0=0000时给一14

EDA第二次实验报告脉冲时co=1且q3q2q1q0=1111个。

clk三、流程图

15

EDA第二次实验报告

四、源程序

libraryieee;

useieee.std_logic_1164.all;

entitylshis

port(clr,clk,load,updown:

instd_logic;

d:

inintegerrange0to15;

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

当前位置:首页 > 考试认证 > 交规考试

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

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