西电电院EDA实验报告.docx

上传人:b****6 文档编号:16082450 上传时间:2023-07-10 格式:DOCX 页数:15 大小:50.99KB
下载 相关 举报
西电电院EDA实验报告.docx_第1页
第1页 / 共15页
西电电院EDA实验报告.docx_第2页
第2页 / 共15页
西电电院EDA实验报告.docx_第3页
第3页 / 共15页
西电电院EDA实验报告.docx_第4页
第4页 / 共15页
西电电院EDA实验报告.docx_第5页
第5页 / 共15页
西电电院EDA实验报告.docx_第6页
第6页 / 共15页
西电电院EDA实验报告.docx_第7页
第7页 / 共15页
西电电院EDA实验报告.docx_第8页
第8页 / 共15页
西电电院EDA实验报告.docx_第9页
第9页 / 共15页
西电电院EDA实验报告.docx_第10页
第10页 / 共15页
西电电院EDA实验报告.docx_第11页
第11页 / 共15页
西电电院EDA实验报告.docx_第12页
第12页 / 共15页
西电电院EDA实验报告.docx_第13页
第13页 / 共15页
西电电院EDA实验报告.docx_第14页
第14页 / 共15页
西电电院EDA实验报告.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

西电电院EDA实验报告.docx

《西电电院EDA实验报告.docx》由会员分享,可在线阅读,更多相关《西电电院EDA实验报告.docx(15页珍藏版)》请在冰点文库上搜索。

西电电院EDA实验报告.docx

西电电院EDA实验报告

EDA实验报告

老师:

杨明磊

姓名:

同作者:

学号:

学院:

电子工程学院

实验一:

QUARTUSII软件使用及组合电路设计仿真

/、

一、实验目的:

学习QUARTUSII软件的使用,掌握软件工程的建立、VHDL源文件的设计和波形仿真等基本内容;

二、实验内容:

1.四选一多路选择器的设计

首先利用QuartusU完成4选1多路选择器的文本编辑输入和仿真测试等步

骤,给出仿真波形。

1.、功能及原理

原理:

数据选择器又称为多路转换器或多路开关,它是数字系统中常用的一种典型电路。

其主要功能是从多路数据中选择其中一路信号发送出去。

所以它是一个多输入、单输出的组合逻辑电路。

功能:

当选择控制端s10=00时,输出;s10=01时,输出;s10=10时,输出;s10=11时,输出。

2.、逻辑器件符号

3.、VHDL语言

4.、波形仿真

5.、仿真分析

由波形可知:

当s10=00时,y的波形与a相同;

当s10=01时,

当s10=10时,

当s10=11时,

y的波形与b相同;y的波形与c相同;y的波形与d相同;

与所要实现的功能相符,源程序正确。

2.七段译码器程序设计仿真

1.、功能及原理

7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。

实验中的数码管为共阳极,接有低电平的段发亮。

例如当LED7S输出为"0010010"时,数码管的7个段:

g、f、e、d、c、b、a分别接0、0、1、0、0、1、0,于是数码管显示“5”。

2.、逻辑器件符号

3.、VHDL语言

4.、波形仿真

5.、仿真分析

由仿真波形可以直观看到,当A=“0000”时,led7s=1000000,数码管显示为0;A=“0001”时,Ied7s=1111001,数码管显示为1;....依此可验证波形仿真结果完全符合预期,源程序正确。

3.实验心得

在第一次上机实验中,我们通过对EDA设计软件QuartusU使用,初步学会了它的使用方法。

在实验中我们编写程序,编译,进行时序仿真以验证程序对错等。

在完成VHDL的编辑以后,进行编译,结果出现了很多错误,在细心的检查之下,最终将VHDL苗述修改成功并且通过了编译,在编译过程中我了解到很多在书本上没有理解的知识。

总的来说,通过上机实验,我激发了对EDA学习

的兴趣,也对这门课程有了更深的理解,对EDA设计软件QuarterU的使用

也更加熟练。

实验二计数器设计与显示

一、实验目的

(1)、熟悉利用QUARTUSII中的原理图输入法设计组合电路,掌握层次化设计的方法;

(2)、学习计数器设计、多层次设计方法和总线数据输入方式的仿真,并进行电路板下载演示验证。

二、实验内容

1、完成计数器设计(4位二进制加减可控计数器)

(1)、功能及原理

含有异步清零和计数使能的4位二进制加减可控计数器:

清零端reset:

低电平有效,异步清零,即reset=0时,无论时钟处于什么状态,输出立即置零。

使能端enable:

高电平有效,即enable=1时,计数器开始计数;enable=0时,计数器停止计数。

加减控制端updown当updown=0时,为减法计数器;当updown=1时,为加法计数器。

2.、逻辑器件符号

3.、VHDL语言

4.、波形仿真

updown=1时,为加法计数:

updown=0时,为减法计数:

5.、仿真分析

由以上两个波形很容易看出,enable=1时,计数器开始计数;reset=0时,计数器置零;updown=0时,减法计数;updown=1时,加法计数;co为进位端。

符合设计初衷。

2、50M分频器的设计

(1)、功能及原理

50M分频器的作用主要是控制后面的数码管显示的快慢。

即一个模为50M的

计数器,由时钟控制,分频器的基本原理与上述计数器基本相同。

分频器的进位端co用来控制加减计数器的时钟,将两个器件连接起来。

(2)、逻辑器件符号

(3)、VHDL语言

(4)、波形仿真

(5)、仿真分析

由波形仿真可以看出,enable=1时,由0开始计数,由于计数器模值较大,故只显示了一部分波形,计数范围由0到50M。

3、七段译码器程序设计

在实验一中已给出具体程序及仿真结果,不再赘述。

4、计数器显示译码设计与下载

以前面设计的七段译码器decl7s和计数器为底层元件,完成“计数器显示译码”的顶层文件设计。

计数器和译码器连接电路的顶层文件原理图如下:

原理图连接好之后就可以进行引脚的锁定,然后将整个程序下载到已经安装好的电路板上,即可进行仿真演示。

3.实验心得

实验三:

大作业设计

(循环彩灯)

一、实验目的:

综合应用数字电路的各种设计方法,完成一个较为复杂的电路设计;

2.设计目标

设计一个循环彩灯控制器,该控制器可控制10个发光二极管循环点亮、间隔点亮或者闪烁等花型。

要求至少设计三种以上花型,用按键控制花型之间的转换,并用数码管显示当前花型。

3.实验分工

陈硕负责代码搜查与编写,

王卓负责电路连接与引脚编写

4.设计流程

1、分频器的设计

所用50M分频器在实验二中已有具体说明,不再赘述。

2.彩灯控制器的设计

1.、功能及原理

清零端reset:

高电平有效,异步清零。

即当reset=1时,灯全灭。

使能端enable:

enable=1时,彩灯工作。

花样控制端s10:

s10取不同的值来控制花样的转换。

led10s:

控制10个led灯的亮灭。

(2)、逻辑器件符号

(3)、VHDL语言

3.七段译码器设计

(1)、功能原理原理在实验一中已详细说明,功能是显示花样序号

(2)、VHD语言

4.顶层文件原理图如下:

5.仿真波形

第一种波形:

(从左到右依次点亮,再从右到左依次点亮)

第二种波形:

(从左到右依次两两点亮,再从右到左依次两两点亮)

第三种波形:

(从内到外顺次展开点亮)

第四种波形:

(闪烁点亮)

6.仿真分析

由波形仿真结果可知,源程序正确。

5.实验心得

这次实验在参考资料的基础上,加以修改,使程序满足设计要求。

因为本次实验完全靠独立完成,在设计过程中出现了很多问题,编译和波形仿真的过程中都不顺利,在和同学交流探讨的过程中,一一将这些问题解决,最终成功设计出了四种花型。

通过这次实验,我真正体会到了EDA这门课的乐趣,提高了

自身的能力。

课后习题

ou

Ex1:

三态缓冲器

2选1多路选择器

sel

n1

tput

Ex2:

ENTITY

mux4

IS

PORT

(A

B,

C,

D:

INBit

S

INBit_Vector

(3

DOWNTO0)

Y

:

OUTBit

END

mux4

7

I

n0

ARCHITECTURE

behav1

OF

mux4

IS

BEGIN

mux4_p1:

PROCESS(A

,B,

C,D

,S

BEGIN

IFS=

〃1110〃

THEN

Y<=

A

?

ELSIFS

=〃1101〃

THEN

Y<=

B

?

ELSIFS

=〃1011〃

THEN

Y<=

C

?

ELSES

="0111"

THEN

Y<=

D

?

ELSE

Y

<=

'1'

?

END

IF

?

END

PROCESS

mux4_p1

?

END

behav1

?

 

ARCHITECTURE

behav2

OF

mux4

IS

BEGIN

Y<=

AWHEN

S=

1110

ELSE

B

WHEN

S

=

1101

ELSE

C

WHEN

S

=

1011

ELSE

D

WHEN

S

=

"0111"

ELSE

'1'

END

behav2

?

?

ARCHITECTURE

behav3

OF

mux4

IS

BEGIN

mux4_p2:

PROCESS(A,

B,

C,D

S)

BEGIN

CASE

S

IS

WHEN

〃1110〃

=>

Y

<=

A

?

WHEN

〃1101〃

=>

Y

<=

B

?

WHEN

〃1011〃

=>

Y

<=

C

?

WHEN

"0111"

=>

Y

<=

D

?

WHEN

OTHERS=>

Y

<=

"1"

?

END

CASE

?

END

PROCESS

mux4_p2

?

ENDbehav3;

Ex3:

libraryieee;

usemuxkis

port(a1,a2,a3:

instd_logic;--待选择变量

temp:

bufferstd_logic;--中间信号s1,s0:

instd_logic;--控制端output:

outstd_logic);--输出结果endmuxk;

architecturepr1ofmuxkis

begin

begin

--process2

使用case语句

cases0is

when'0'=>temp<=a2;

when'1'=>temp<=a3;endcase;

endprocess;

process(a1,temp,s1)begin

cases1is

when'0'=>output<=a1;

when'1'=>output<=temp;endcase;

endprocess;

endpr1;

Ex4:

LIBRARYIEEE;

USEMULTIIS

PORT(CL:

INSTD_LOGIC;--输入选择信号

CLK0:

INSTD_LOGIC;--输入信号

OUT1:

OUTSTD_LOGIC);--输出端

ENDENTITY;

ARCHITECTUREONEOFMULTIISSIGNALQ:

STD_LOGIC;

BEGIN

PR01:

PROCESS(CLK0)

BEGIN

IFCLK‘EVENTANDCLK='1'

THENQ<=NOT(CLORQ);ELSE

ENDIF;

ENDPROCESS;

PR02:

PROCESS(CLK0)

BEGIN

OUT1<=Q;

ENDPROCESS;

ENDARCHITECTUREONE;

ENDPROCESS;

Ex5:

libraryieee;useh_subisport(x,y:

instd_logic;diff,s_out:

outstd_logic);

endh_sub;architectureoneofh_subisbegindiff<=xxory;s_out<=(notx)andy;endone;libraryieee;useor_2isport(a,b:

instd_logic;

q:

outstd_logic);

endor_2;architectureoneofor_2isbeginq<=aorb;

endone;libraryieee;usef_subisport(x,y,sub_in:

instd_logic;diff,s_out:

outstd_logic);

endf_sub;architectureoneoff_subiscomponenth_subport(x,y:

instd_logic;

diff,s_out:

outstd_logic);endcomponent;componentor_2port(a,b:

instd_logic;

q:

outstd_logic);endcomponent;signale,f,g:

std_logic;beginh_suber1:

h_subportmap(x=>x,y=>y,diff=>e,s_out=>f);h_suber2:

h_subportmap(x=>e,y=>sub_in,diff=>diff,s_out=>g);or21:

or_2portmap(a=>g,b=>f,q=>s_out);

endone;libraryieee;usef_sub8isport(x,y:

instd_logic_vector(7downto0);

sub_in:

instd_logic;diff:

outstd_logic_vector(7downto0);

s_out:

outstd_logic);

endf_sub8;architectureoneoff_sub8iscomponentf_sub

port(x,y,sub_in:

instd_logic;

diff,s_out:

outstd_logic);

endcomponent;

signale:

std_logic_vector(6downto0);

beginh_suber1:

f_subportmap(x=>x(0),y=>y(0),sub_in=>sub_in,diff=>diff(0),s_out=>e(0));h_suber2:

f_subport

map(x=>x

(1),y=>y

(1),sub_in=>e(0),diff=>diff

(1),s_out=>e

(1));h_suber3:

f_subport

map(x=>x

(2),y=>y

(2),sub_in=>e

(1),diff=>diff

(2),s_out=>e

(2));h_suber4:

f_subport

map(x=>x(3),y=>y(3),sub_in=>e

(2),diff=>diff(3),s_out=>e(3));h_suber5:

f_subport

map(x=>x(4),y=>y(4),sub_in=>e(3),diff=>diff(4),s_out=>e(4));h_suber6:

f_subport

map(x=>x(5),y=>y(5),sub_in=>e(4),diff=>diff(5),s_out=>e(5));h_suber7:

f_subport

map(x=>x(6),y=>y(6),sub_in=>e(5),diff=>diff(6),s_out=>e(6));h_suber8:

f_subport

map(x=>x(7),y=>y(7),sub_in=>e(6),diff=>diff(7),s_out=>s_out);endone;

libraryieee;

usef_sub81is

port(x,y:

instd_logic_vector(7downto0);

sub_in:

instd_logic;

diff:

outstd_logic_vector(7downto0);s_out:

outstd_logic);

endf_sub81;

architectureoneoff_sub81is

componentf_subport(x,y,sub_in:

instd_logic;

diff,s_out:

outstd_logic);

endcomponent;

signale:

std_logic_vector(8downto0);

begine(0)<=sub_in;s_out<=e(8);

q1:

foriin0to7generateh_suber1:

f_subportmap(x=>x(i),y=>y(i),sub_in=>e(i),diff=>diff(i),s_out=>e(i+1));endgenerateq1;

endone;

Ex6:

设计框图为:

开始

(1)程序:

LIBRARYIEEE;

USEUSEENTITYcnt16IS

PORT(EN,RST,UPD,CLK:

INSTD_LOGIC;0UT1:

OUTSTD_LOGIC_VECTOR(15DOWNTO0));

ENDcnt16;

ARCHITECTUREDhvOFcnt16IS

SIGNALQQ:

STD_LOGIC_VECTOR(1I5OWNTO0);

BEGIN

PROCESS(EN,RST,UPD)

BEGIN

IFRST='1'THEN

QQ<=(OTHERS=>'0');--有复位信号零

ELSIFEN='1'THEN--EN位高电平开始计数

IFCLK'EVENTANDCLK='1'THEN

IFUPD='1'THEN--当UDP为1力卩计数

QQv=QQ+1;

ELSE--当UDP不为1减计数

IFQQ>"0"THEN--当减到0时

QQ<=QQ-1;--给QC全1

ELSE

QQ<=(OTHERS=>'1');

ENDIF;

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

OUT1<=QQ;

ENDbhv;

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2