EDA实验报告1.docx

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

EDA实验报告1.docx

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

EDA实验报告1.docx

EDA实验报告1

实验一QuartusII9.1软件的使用

一、实验目的

一、通过实现书上的例子,掌握QUARTUSII9.1软件的使用;

二、编程实现3-8译码电路以掌握VHDL组合逻辑的设计以及QUARTUSII9.1软件的使用。

二、实验流程

1、认真阅读《数字系统自动化设计教程》一书中,从120页到131页的操作指南;

2、将124页的程序,输入到QUARTUSII9.1的文本编辑环境中去;

(注意:

程序第11行

signalqout:

intergerrange0to16;应改为

signalqout:

std_logic_vector(3downto0);

程序第21行

elseif(qout="1001")then应改为

elsif(qout="1001")then

3、验证最后仿真的得到的波形图是否和图5-31时序仿真的波形图是否一致;

功能图如下:

 

在预置信号无效,使能信号有效的情况下,当时钟的上升沿到来时,可以画出状态转换图如下:

 

在VHDL文件输入完毕后,进行部分编译和全编译,在编译成功后进行功能仿真和时序仿真。

程序编译通过,编译报告如下图所示。

在编译成功后,进行功能仿真和时序仿真。

功能仿真设置:

功能仿真结果:

实验结果分析:

通过功能仿真得到的时序图与课本所给的并无差异,说明本例确实能够实现模十计数器,并且通过模十计数器的输出驱动7段译码器,可以显示相应的输出。

时序仿真设置:

时序仿真结果:

实验结果分析:

通过时序仿真得到的波形图和功能仿真得到的波形图,形状和特点并无二致,只是由于在时序仿真中,考虑了电路的延时,所以有些地方会出现毛刺。

但是模十计数器的基本功能并未受到影响。

4、根据三-八译码器真值表完成VHDL程序的设计并仿真。

输入

输出

D2

D1

D0

Q7

Q6

Q5

Q4

Q3

Q2

Q1

Q0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

0

0

0

0

0

0

1

0

0

1

0

0

0

0

0

0

1

0

0

0

1

1

0

0

0

0

1

0

0

0

1

0

0

0

0

0

1

0

0

0

0

1

0

1

0

0

1

0

0

0

0

0

1

1

0

0

1

0

0

0

0

0

0

1

1

1

1

0

0

0

0

0

0

0

表13-8译码器真值表

根据3-8线译码器的真值表可以写出相应的VHDL语言的程序实现。

编程思路如下:

仿照上例,编写3-8译码器。

根据真值表,设置三个输入信号和8个输出信号,不含使能端。

根据输入信号的不同取值设置相应的输出信号,即可实现3-8译码器的功能。

在编译通过后,进行功能仿真和时序仿真,检验实验结果是否符合要求。

三-八译码器功能仿真注意事项:

因为需要考察电路输入的所有状态,因此需要输入分别有000、001、010、011、100、101、110、111八个状态,在仿真通道文件中

选择d

界面旁边的赋值选项此时高亮显示表示可用,选中C,在弹出的对话框中进行设置。

设置完成后,进行仿真。

编译成功,编译报告如下图所示:

功能仿真结果:

实验结果分析:

通过以上的功能分析得到的波形图,可以看出输出信号随着输入信号的变化做相应变化。

输入信号的值是几,输出信号中第几位就输出为高,其余为低。

实现了3-8译码器的功能,且输出为高有效。

时序仿真结果:

实验结果分析:

通过以上的时序仿真,可以看出该程序实现了3-8译码器的功能。

输出信号根据输入信号的值的大小相应位为高,其余位为低。

只是相比于功能仿真,由于电路的延时作用,时序仿真得到的波形图会有毛刺出现。

5.实验注意事项:

关于7段译码器的说明:

在实验1中使用了一个7段译码器,其由7个发光二极管构成,二极管的负极接到对应引脚,正极接高电平构成共阳极的7段数码管。

如下如所示:

显示0时,a,b,c,d,e,f管脚接低电平,g管脚接高电平点亮的二极管会显示数字0。

如图所示:

三、实验代码

附实验代码:

模十计数器代码如下:

libraryIEEE;

useIEEE.std_logic_1164.all;

useIEEE.STD_LOGIC_ARITH.ALL;

useIEEE.STD_LOGIC_UNSIGNED.ALL;

entitycount10is

port(clk,load,en:

instd_logic;

data_in:

instd_logic_vector(3downto0);

seg:

outstd_logic_vector(6downto0));

endcount10;

architecturebehaofcount10is

signalqout:

std_logic_vector(3downto0);

signalq_temp:

std_logic_vector(3downto0);

begin

process(clk,load)

begin

if(load='1')then

q_temp<=data_in;

elsif(clk'eventandclk='1')then

if(en='0')then

qout<=qout;

elsif(qout="1001")then

qout<="0000";

else

qout<=qout+1;

endif;

q_temp<=qout;

endif;

endprocess;

process(q_temp)

begin

caseq_tempis

when"0000"=>seg<="1000000";

when"0001"=>seg<="1111001";

when"0010"=>seg<="0100100";

when"0011"=>seg<="0110000";

when"0100"=>seg<="0011001";

when"0101"=>seg<="0010010";

when"0110"=>seg<="0000010";

when"0111"=>seg<="1111000";

when"1000"=>seg<="0000000";

when"1001"=>seg<="0010000";

whenothers=>seg<="0001000";

endcase;

endprocess;

endbeha;

3-8线译码器的程序如下:

libraryIEEE;

useIEEE.STD_LOGIC_1164.ALL;

ENTITYcount38IS

PORT(d:

INSTD_LOGIC_vector(2downto0);

q:

outstd_logic_vector(7downto0)

);

ENDcount38;

ARCHITECTUREdec_behavofcount38is

signalsel:

std_logic_vector(2downto0);

begin

sel<=d;

withselselect

q<="00000001"when"000",

"00000010"when"001",

"00000100"when"010",

"00001000"when"011",

"00010000"when"100",

"00100000"when"101",

"01000000"when"110",

"10000000"when"111",

"ZZZZZZZZ"whenothers;

enddec_behav;

四、实验心得体会

这是第一次接触QuartusII软件,虽然上过了有关的理论课,但是在真正使用之前还是觉得很陌生。

但是本次实验的开始,老师让大家验证课本上的例子。

按照课本一步一步的操作,让我很快对这个软件熟悉了起来,掌握了该软件的基本操作步骤。

而且,首先针对课本上的例子进行功能仿真和时序仿真,通过实例,我对功能仿真和时序仿真有了非常直观的认识,通过仿真可以验证程序是否实现了要求的特定功能。

在验证完课本上的例子之后,又自己写了一个比较简单的3-8线译码器的程序,并对它进行仿真。

通过对第一个实例的学习,我可以仿照第一个实例写出3-8译码器的程序,并且进行功能仿真和时序仿真。

总之,通过本次实验老师设置的两个循序渐进的目标,我掌握了QuartusII软件的使用方法,并且可以利用VHDL语言写一些简单的程序。

通过本次实验,我深深地体会到软件仿真的方便,在今后的学习和实验中,我会不断学习有关知识,提高自己的专业知识和学习能力,利用软件简化自己的任务。

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

当前位置:首页 > 解决方案 > 学习计划

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

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