EDA1111实验报告教材Word文档下载推荐.docx

上传人:b****6 文档编号:18345073 上传时间:2022-12-15 格式:DOCX 页数:13 大小:471.69KB
下载 相关 举报
EDA1111实验报告教材Word文档下载推荐.docx_第1页
第1页 / 共13页
EDA1111实验报告教材Word文档下载推荐.docx_第2页
第2页 / 共13页
EDA1111实验报告教材Word文档下载推荐.docx_第3页
第3页 / 共13页
EDA1111实验报告教材Word文档下载推荐.docx_第4页
第4页 / 共13页
EDA1111实验报告教材Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

EDA1111实验报告教材Word文档下载推荐.docx

《EDA1111实验报告教材Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《EDA1111实验报告教材Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

EDA1111实验报告教材Word文档下载推荐.docx

USEIEEE.STD_UNSIGNED.ALL;

ENTITYadder8IS

PORT(CIN:

INSTD_LOGIC;

A,B:

INSTD_LOGIC_VECTOR(7DOWNTO0);

S:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDadder8;

ARCHITECUTREbehaveOFadder8IS

SIGNALsint:

STD_LOGIC_VECTOR(8DOWNTO0);

SIGNALm:

STD_LOGIC_VECTOR(7DOWNTO0);

SIGNALn:

BEGIN

m<

=not(notA);

n<

=not(notB);

sint<

=(‘0’&

m)+n+CIN;

S<

=SINT(7DOWNTO0);

COUT<

=SINT(8);

ENDbehave;

六、实验结果截图

1.程序截图:

2.时序仿真波形截图:

 

实验6动态数码管显示

一.实验目的

学习硬件扫描显示电路的设计。

二.实验内容

本实验的内容是简历数码管动态扫描显示模块,具体内容如下:

(1)在实验箱上完成LED数码管的动态显示;

(2)放慢扫描速度演示动态显示的原理过程。

三.实验原理

图3—11所示的是8位数码扫描显示电路,其中每个数码管的8个段:

h、g、f、e、d、c、b、a(h是小数点)都分别连在一起,8个数码管分别有8个选通信号k1、k2、…k8来选择。

别选通的数码管显示数据,其余关闭。

如在某一时刻,k3为高电平,其余选通信号为低电平,这是仅k3对应的数码管显示来自段信号端的数据,而其他7个数码管呈关闭状态。

根据这种电路状况,如果在8个数码管显示希望的数据,就必须是的8个选通信号k1、k2…k8分别被单独选通,榆次同事,在短信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。

四.实验步骤(VHDL文本设计)

在本实验的程序中,clk是扫描时钟;

SG为7段控制信号,有高位至低位分别接g、f、e、d、c、b、a7个段;

BT是位选控制信号,接上途中的8个选通信号:

k1、k2、…k8.程序CNT8是一个3位计数器,作扫描据计数信号,有进程P2生成:

进程P3是7段译码查表输出程序:

进程p1是对8个数码管选通的扫描程序,例如当CNT8等于“001”时,k2对应的数码管被选通,同时,A杯赋值3,再由进程p3译码输出“100111”,显示在数码管上即为“3”;

当CNT8扫完时,将能在8个数码管上显示数据:

13579BDF。

5.VHDL实验参考程序

程序清单scan_led.VHDL

Libraryieee;

Useieee.std_logic_1164.all;

Useieee.std_logic_unsigned.all;

Entityscan_ledis

Port(clk:

instd_logic;

sg:

outstd_logic_vector(6downto0);

bt:

outstd_logic_vector(7downto0));

end;

architectureoneofscan_ledis

signalcnt8:

std_logic_vector(2downto0);

signala:

integerrange0to15;

begin

p1:

pricess(cnt8)

casecnt8is

when”000”=>

bt<

=”00000001”;

a<

=1;

when”001”=>

=”00000010”;

=3;

when”010”=>

=”00000100”;

=5;

when”011”=>

=”00001000”;

=7;

when”100”=>

=”00010000”;

=9;

when”101”=>

=”00100000”;

=11;

when”110”=>

=”01000000”;

=13;

when”111”=>

=”10000000”;

=15;

whenothers=>

null;

endcase;

endprocessp1;

p2:

process(clk)

ifclk’eventandclk=’1’thencnt8<

-cnt8+1;

endif;

endprocessp2;

p3:

process(a)

bengin

caseais

when0=>

sg<

=’0111111’;

when0=>

=’0000110’;

=’1011011’;

=’1001111’;

=’1100110’;

=’1101101’;

=’1111101’;

=’0000011’;

=’1111111’;

=’1101111’;

=’1110111’;

=’1111100’;

=’0111001’;

=’1011110’;

=’1111001’;

=’1110001’;

null;

endprocessp3;

六.实验结果截图

1.程序截图;

2.时序仿真波形:

实验7数控分频器的设计

一.实验目的

学习数控分频器的设计、分析和测试方法。

二.实验内容

CLK由clock输入,频率可选65536HZ或更高(确保分频后落在音频范围内);

输出FOUT接扬声器(SPKER:

PIN3)。

改变键2/键1的输入值,可听到不同音调的声音。

三.实验原理

数控分频器的功能就是当输入端不同的数据时,产生不同的分频比,从而产生不同的频率值。

本实验是用计数值可并行置的加法器设计完成的,方法是将计数溢出位与预置位加载输入信号详解即可。

四.实验步骤(VHDL文本设计)

建议选实验电路模式1,键2/键1(PIO7-PIO1)负责输入8为位预置数D:

CLK由clock0输入,频率可选65536Hz或更高(确保分频后落在音频范围);

输出FOUT接扬声器(SPEAk)。

五.VHDL实验参考程序

程序清单pulse.VHDL

LIBRARYIEEE;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYpulseIS

PORT(CLK:

D:

FPUT:

OUTSTD_LOGIC);

ARCHITECTUREoneOFpulseIS

SIGNALFULL:

STD_LOGIC;

BEGIN

P_REG:

PROCESS(CLK)

VARIABLECNT8:

STD_LOGIC_VECTOR(7DOWNTPO0);

IFCLK’EVENTANDCLK=‘1’THEN

IFCNT8=“11111111”THEN

CNT8:

=D;

FULL<

=’1’;

ELSECNT8:

=CNT8+1;

=’0’;

ENDIF;

ENDPROCESSP_REG;

P_DIV:

PROCESS(FULL)

VARIABLECNT2:

IFFULL’EVENTANDFULL=’1’

THENCNT2:

=NOTCNT2

IFCNT2=’1’THENFOUT<

ELSEFOUT<

ENDIF;

ENDPROCESSP_DIV;

六.实验结果截图

1.程序截图

2.时序仿真波形

(进阶实验)实验2用状态机实现序列检测器

用状态机实验序列检测器的设计,并对其进行仿真和硬件测试。

设计一序列检测器并在GW48实验箱上进行硬件测试。

利用QuartusⅡ6.0软件进行设计、仿真验证,最后进行引脚锁定并完成硬件测试。

序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0.由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。

在检测过程中,任何一位不相同都将回到初始状态重新开始检测。

本实验描述的电路完成对序列数“11100101”的检测。

当这一串行序列数高位在前(左移)串行进行检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“B”。

建议选择实验电路模式8,用键7(PIO11)控制复位信号CLR;

键6(PIO9)控制状态机工作时钟CLK;

待检测的串行序列数输入DIN接PIO10(左移,最高位在前);

指示输出AB接PIO39-PIO36(显示于数码管6)。

下载后,1、按实验板“系统复位”键;

2、用键2和键1输入2位十六进制数待则序列数“11100101”;

3、按键7复位(平时数码6显示“B”);

4、按键6(CLK)8次,这时若串行输入的8位二进制序列码(显示于数码2/1和发光管D8-D0)与预置码“11100101”相同,则数码6应从原来的“B”变成“A”表示序列检测正确,否则仍为“B‘

程序清单schk.VHDL

ENTITYschkIS

PORT(DIN,CLK,CLR:

AB:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDschk;

ARCHITECTUREbehaveOFschkIS

SIGNALQ:

INTEGERRANGE0TO8;

SIGNALD:

BEGIN

D<

=”11100101”;

PROCESS(CLK,CLR)

BEGIN

IFCLR=’1’THENQ<

=0;

ELSIFCLK’EVENTANDCLK=’1’THEN

CASEQIS

WHEN0=>

IFDIN=D(7)THENQ<

ELSEQ<

ENDIF

WHEN1=>

IFDIN=D(6)THENQ<

=2;

WHEN2=>

IFDIN=D(5)THENQ<

WHEN3=>

IFDIN=D(4)THENQ<

=4;

WHEN4=>

IFDIN=D(3)THENQ<

WHEN5=>

IFDIN=D

(2)THENQ<

=6;

WHEN6=>

IFDIN=D

(1)THENQ<

WHEN7=>

IFDIN=D(0)THENQ<

=8;

WHENOTHERS=>

Q<

ENDCASE;

ENDIF;

ENDPROCESS;

PROCESS(Q)

IFQ=8THENAB<

=”1010”;

ELSEAB<

=”1011”;

ENDIF;

ENDbehave;

学生实验心得

本学期我们对《EDA技术实用教程——VHDL版》一书进行了较为深入的理论学习。

同时,我们也进行进行了相关实验,将所学的理论知识与实践相结合在一起,在实践中继续学习,不断总结,不断反思,逐步完善,有所创新,并在实践中提高自己,在现有的实验条件下,我们有选择的从众多实验中挑选并进行了4项实验来检验一学期所学,这四项实验分别是8位硬件加法器VHDL设计、动态数码管显示,数控分频器的设计,用状态机实现序列检测器。

实验中结合GW48EDA/SOC试验箱,通过对实验中程序源码、仿真波形图、电路原理图的理解及实验过程中所出现的错误的分析,学生本人较好的理解了实验的原理,较为熟练的掌握了QuartusII6.0软件及开发流程,初步达到了掌握EDA技术、VHDL语言设计、可编程ASIC技术的目的。

最后在这里对任课老师及辅助教学的研究生学长表示敬意,感谢你们细心地指导和辛勤的付出。

学生(签名):

年月日

指导

教师

评语

成绩评定:

指导教师(签名):

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

当前位置:首页 > 小学教育 > 其它课程

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

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