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

上传人:b****5 文档编号:8511466 上传时间:2023-01-31 格式:DOCX 页数:13 大小:205.55KB
下载 相关 举报
电子设计自动化课程实验报告.docx_第1页
第1页 / 共13页
电子设计自动化课程实验报告.docx_第2页
第2页 / 共13页
电子设计自动化课程实验报告.docx_第3页
第3页 / 共13页
电子设计自动化课程实验报告.docx_第4页
第4页 / 共13页
电子设计自动化课程实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

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

《电子设计自动化课程实验报告.docx》由会员分享,可在线阅读,更多相关《电子设计自动化课程实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

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

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

 

电子设计自动化课程试验汇报

 

第二次试验汇报

 

组合电路设计

(一)

课题:

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

一、试验内容

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

二、试验设计及过程

(1)设计思绪

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

而不需要依靠低位进位。

逻辑表示式解释:

当第i位被加数Ai和加数Bi均为1时,有

由“或”原理可知,不管低位运算

结果怎样,本位肯定有进位输出(

)。

当Ai和Bi中只有一个为1时,有

所以

所以,四位二进制全加器“和”与“进位”相结合,可得到表示式:

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

(2)步骤图

 

(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);

S2<=(A2xorB2)xorU1;

U2:

=(A2andB2)or((A2orB2)andA1andB1)or((A2orB2)and(A1orB1)andA0andB0)or((A2orB2)and(A1orB1)and(A0orB0)andCi);

S3<=(A3xorB3)xorU2;

Co<=((A3xorB3)and(A2xorB2)and(A1xorB1)and(A0xorB0)andCi)or((A3xorB3)and(A2xorB2)and(A1xorB1)andA0andB0)or((A3xorB3)and(A2xorB2)andA1andB1)or((A3xorB3)andA2andB2)or(A3andB3);

ENDPROCESS;

ENDbeth;

(4)仿真波形

波形解释:

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.

(注:

Ci是借位位,Co是进位位,A与B是加数,S为和)

由此可知,该仿真波形说明设计正确性。

三、试验收获

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

另外,对全加器中快速进位有了深刻了解,程序较逐步进位复杂难想,但能够使得程序实施起来快速,降低时间损耗。

四,试验中碰到问题及处理步骤

1、找不到适宜编写方法实现快速进位在数电书本上找到了全加器资料,而且找到了适宜公式。

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

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

 

组合电路设计

(二)

课题:

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

一·试验目及内容

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

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

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

二·试验设计思绪

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

2、当输入端口abcd为:

0000时输出q=1110

0001时输出q=1101

0010时输出q=1011

0011时输出q=0111

0100时输出q=1111

0101时输出q=1111

0110时输出q=1111

0111时输出q=1111

1000时输出q=1111

1001时输出q=1111

1010时输出q=1111

1011时输出q=1111

1100时输出q=1111

1101时输出q=111

1110时输出q=111

1111时输出q=111

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

三、步骤图

 

Y

N

 

….

….

 

四、源程序:

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"0000"=>q<="1110";

when"0001"=>q<="1101";

when"0010"=>q<="1011";

when"0011"=>q<="0111";

when"0100"=>q<="1111";

when"0101"=>q<="1111";

when"0110"=>q<="1111";

when"0111"=>q<="1111";

when"1000"=>q<="1111";

when"1001"=>q<="1111";

when"1010"=>q<="1111";

when"1011"=>q<="1111";

when"1100"=>q<="1111";

when"1101"=>q<="1111";

when"1110"=>q<="1111";

when"1111"=>q<="1111";

whenothers=>q<="XXXXXXXXXXXXXXXX";

endcase;

else

q<="1111";

endif;

endprocess;

endbehave;

五、仿真波形

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

当使能端E=1时,输入0100,输出为q(4)=0,其它为1

一、试验收获

此次试验开始使用条件语句IF和CASE。

IF是假设有某种情况后,进而实施对应程序;当假设条件比较多而且有一定规律时,就应该使用CASE语句进行编程。

 

第三次试验汇报

 

时序电路设计

课题:

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时给一个clk脉冲时co=1且q3q2q1q0=1111。

三、步骤图

 

 

四、源程序

libraryieee;

useieee.std_logic_1164.all;

entitylshis

port(clr,clk,load,updown:

instd_logic;

d:

inintegerrange0to15;

count:

outstd_logic;

q:

bufferintegerrange0to15);

endlsh;

architectureoneoflshis

begin

process(clk,clr,d,load,updown)

begin

ifclr='0'thenq<=0;

elsif(clk'eventandclk='1')then

ifload='1'thenq<=d;

elsifupdown='0'thenq<=q+1;

ifq=15thencount<='1';endif;

elseq<=q-1;

ifq=0thencount<='0';endif;

endif;

endif;

endprocess;

endone;

五、仿真波形

使能端clr为0时,输出一直为0

使能端为1,置数load=1时,在脉冲作用下,输出q=输入d

使能端为1,置数load=0时,实现如图所表示计数功效

六、试验中碰到问题及处理步骤

问题:

编写程序时,因为过多使用elsif等语句,造成编写逻辑有点不太清楚,endif语句有时候没有一一对应清楚,在编译时出现错误。

处理方法:

尝试过过取消elsif语句,把全部情况都用if列些出来,即使程序逻辑上不会混乱,不过程序显得比较冗长,为了使程序更精练,我们调整了程序结构,让endif与对应if语句对其,让程序读起来更有逻辑性,条理性。

 

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

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

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

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