EDA实验报告资料Word格式文档下载.docx

上传人:b****5 文档编号:18595852 上传时间:2022-12-29 格式:DOCX 页数:17 大小:367.08KB
下载 相关 举报
EDA实验报告资料Word格式文档下载.docx_第1页
第1页 / 共17页
EDA实验报告资料Word格式文档下载.docx_第2页
第2页 / 共17页
EDA实验报告资料Word格式文档下载.docx_第3页
第3页 / 共17页
EDA实验报告资料Word格式文档下载.docx_第4页
第4页 / 共17页
EDA实验报告资料Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

EDA实验报告资料Word格式文档下载.docx

《EDA实验报告资料Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA实验报告资料Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

EDA实验报告资料Word格式文档下载.docx

ENDENTITYtrans38;

ARCHITECTUREFH1OFtrans38IS

BEGIN

PROCESS(T)

BEGIN

CASETIS

WHEN"

000"

=>

D<

="

01111111"

;

--真值表(共阳极极0代表灯亮)

WHEN"

001"

D<

10111111"

WHEN"

010"

11011111"

011"

11101111"

100"

11110111"

101"

11111011"

110"

11111101"

111"

11111110"

WHENOTHERS=>

NULL;

--由于有冗余,其他情况用null表示

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREFH1;

仿真波形

毛刺分析:

仔细观察毛刺出现的位置,可以发现毛刺在“001”到“010”,“011”到“100”,

“101”到“110”以及“111”到“000”出现,从内部结构解释是由于布线长短不同,三个信号如果有两个信号同时发生改变,由于布线的长短问题,两个信号到达终点不是同时到达的,也就是说“001”到“010”两个量中间还经历另外一个值,这个值就是毛刺对应的,分析应该是“011”,要消除毛刺,可以改变真值表也就是说让输入值的变化一位一位的反转,但是这样会导致真值表不够直观。

实验二扫描显示电路驱动设计

一、实验目的

实现7段数码管扫描显示的工作模块。

二、实验硬件要求

4、输入:

按键1个

5、输出:

八个7位数码管

6、主芯片:

cycloneⅡEP2C8Q208C8

三、原理图及程序

分频器程序

ENTITYFENPINIS

PORT(CLKIN:

INSTD_LOGIC;

--时钟信号输入

CLKOUT:

OUTSTD_LOGIC);

--时钟信号输出

ENDFENPIN;

ARCHITECTUREFENPINOFFENPINIS

SIGNALDATA:

INTEGERRANGE0TO20000000;

SIGNALQ:

STD_LOGIC;

PROCESS(CLKIN)

BEGIN

IFRISING_EDGE(CLKIN)THEN

IF(DATA=10000000)THEN–这里如果设置的data为1则分频比为2,总之为2倍的data

DATA<

=0;

Q<

=NOTQ;

ELSE

=DATA+1;

ENDIF;

CLKOUT<

=Q;

ENDPROCESS;

ENDARCHITECTURE;

分频器程序程序说明,时钟上升沿触发加法,加到设置的值的时候,输出一个高频信号(或者低频信号)Q,并保持data值归零;

再次加到设置的值的时候,信号Q反转,并保持直到data值加到设置的值,这个设置的值乘以二则为分频比。

由于空间问题,仿真时候將data值改成10,这样可以看出20个周期输入对应1周期输出,由此可见分频比为20.

加法器程序

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCOUNTER16IS

PORT(CLR,CLK:

COUNT:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

SEL:

OUTSTD_LOGIC_VECTOR(2DOWNTO0));

ENDENTITYCOUNTER16;

ARCHITECTUREGDOFCOUNTER16IS

PROCESS(CLK,CLR)

VARIABLECTE:

STD_LOGIC_VECTOR(4DOWNTO0);

IFCLR='

0'

THENCTE:

00000"

ELSIFCLK='

1'

ANDCLK'

EVENTTHEN

CTE:

=CTE+1;

ENDIF;

IFCTE=16THENCTE:

COUNT<

=CTE(3DOWNTO0);

SEL<

=CTE(2DOWNTO0);

ENDGD;

数码管对应的译码程序

ENTITYDECDISPIS

PORT(DATAIN:

INSTD_LOGIC_VECTOR(3DOWNTO0);

M:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDENTITYDECDISP;

ARCHITECTUREHDOFDECDISPIS

BEGIN

PROCESS(DATAIN)

CASEDATAINIS

0000"

M<

1000000"

0001"

1111001"

0010"

0100100"

0011"

0110000"

0100"

0011001"

0101"

0010010"

0110"

0000010"

0111"

1111000"

1000"

0000000"

1001"

0010000"

1010"

0001000"

1011"

0000011"

1100"

1000110"

1101"

0100001"

1110"

0000110"

WHEN"

1111"

0001110"

NULL;

ENDARCHITECTUREHD;

(毛刺分析见实验一)

注释:

实验一已经写了三八译码器(用于控制哪个数码管亮,数码管对应的译码则控制数码管亮哪个数字)

顶层程序(用于搭建各个模块,起一个框架作用)

ENTITYDIGTRONIS

PORT(CLK,RESET:

INSTD_LOGIC;

LED:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

D:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDENTITYDIGTRON;

ARCHITECTUREFDOFDIGTRONIS

COMPONENTFENPINIS

PORT(CLKIN:

ENDCOMPONENT;

COMPONENTCOUNTER16IS

PORT(CLK,CLR:

COUNT:

SEL:

COMPONENTDECDISPIS

PORT(DATAIN:

COMPONENTTRANS38IS

PORT(T:

ENDCOMPONENT;

SIGNALCLKON:

STD_LOGIC;

SIGNALCNT:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALSL:

STD_LOGIC_VECTOR(2DOWNTO0);

U1:

FENPINPORTMAP(CLKIN=>

CLK,CLKOUT=>

CLKON);

U2:

COUNTER16PORTMAP(CLK=>

CLKON,CLR=>

RESET,COUNT=>

CNT,SEL=>

SL);

U3:

DECDISPPORTMAP(DATAIN=>

CNT,M=>

LED);

U4:

TRANS38PORTMAP(T=>

SL,D=>

D);

ENDARCHITECTUREFD;

实验三4种方法实现全减器

方法一:

VHDL描述(半加器用布尔方程描述的方法)

半加器描述方法

LibraryIEEE;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityh_suberis

port(a,b:

inbit;

c,d:

outbit);

endentityh_suber;

architecturefdofh_suberis

begin

c<

=(axorb)andb;

d<

=axorb;

endarchitecturefd;

或门描述

libraryieee;

entityor2ais

port(x,y:

p:

endentityor2a;

architecturefdofor2ais

p<

=xory;

顶层程序

entitysuberis

port(ain,bin,c1:

m,n:

endentitysuber;

architecturefsofsuberis

componenth_suber

c,d:

outbit);

endcomponent;

componentor2a

p:

signale,f,g:

bit;

u1:

h_suberportmap(a=>

ain,b=>

bin,c=>

g,d=>

e);

u2:

e,b=>

c1,c=>

f,d=>

m);

u3:

or2aportmap(x=>

f,y=>

g,p=>

n);

endarchitecturefs;

仿真图:

方法二:

VHDL描述(半减器用真值表描述)

与实验一相比只有半加器描述方法有了改变只写下半减器改变的地方

signalabc:

bit_vector(1downto0);

abc<

=a&

b;

process(abc)

caseabcis

when"

00"

=>

='

d<

01"

10"

11"

endcase;

endprocess;

方法三全加器用真值表的形式描述

architecturefsofsuberis

signalD:

bit_vector(2downto0);

begin

D<

=ain&

bin&

c1;

process(D)

caseDis

m<

n<

whenothers=>

null;

endprocess;

方法四原理图法(半减器和或门用图形描述,沿用上面的顶层文件)

顶层文件

或门

半减器

波形仿真

方法五原理图(用半减器)

方法六原理图(不用半减器)

真值表

卡诺图化简

m=ain⊕bin⊕c1

n=ain(bin+c1)+binc1--可用布尔方程用VHDL描述全减器,这里用原理图的方式

波形仿真图的分析

Q1:

毛刺的问题,在这里不赘述,与实验一的三八译码器的相同,上面已经分析;

Q2:

波形出现延迟的原因,我认为是电流传输要时间的,然后是由于逻辑元件的反应时间,导致了输出有延迟。

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

当前位置:首页 > 工程科技 > 能源化工

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

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