数字电路综合设计实验报告文档Word下载.docx

上传人:b****1 文档编号:15019839 上传时间:2022-10-26 格式:DOCX 页数:10 大小:252.24KB
下载 相关 举报
数字电路综合设计实验报告文档Word下载.docx_第1页
第1页 / 共10页
数字电路综合设计实验报告文档Word下载.docx_第2页
第2页 / 共10页
数字电路综合设计实验报告文档Word下载.docx_第3页
第3页 / 共10页
数字电路综合设计实验报告文档Word下载.docx_第4页
第4页 / 共10页
数字电路综合设计实验报告文档Word下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

数字电路综合设计实验报告文档Word下载.docx

《数字电路综合设计实验报告文档Word下载.docx》由会员分享,可在线阅读,更多相关《数字电路综合设计实验报告文档Word下载.docx(10页珍藏版)》请在冰豆网上搜索。

数字电路综合设计实验报告文档Word下载.docx

3.4总体结构框图4

四.硬件介绍4

五.软件设计4

5.1基本思路4

5.2程序框图5

5.3子程序设计(代码)及仿真波形及分析5

5.3.1分频器5

5.3.2计数器7

5.3.3译码器8

5.4主程序设计及仿真波形及分析9

六.调试及相关说明10

七.结束语11

一.设计题目

基于QuartusII的流水灯设计仿真

二.设计要求及技术指标

2.1实验目的

通过本次实验,引导学生以计算机辅助设计的手段来设计数字逻辑电路;

掌握QuartusII集成开发环境软件原理图输入的设计流程;

掌握简单流水灯的工作原理,学会通过QuartusII建立原理图设计小型数字电路;

掌握可编程逻辑器件(PLD)的开发步骤;

掌握对设计进行编译、仿真的方法。

流水灯工作效果如下:

2.2实验要求

用逻辑电路控制8个LED灯,始终保持1亮7暗,亮灯从左到右,在脉冲信号CP的推动下循环流动。

2.3实验原理

利用信号生成器生成固定频率信号,降低频率后对信号累计编码,对累计编码的信号译码后送给LED灯显示。

三.方案选择及总体设计

3.1方案选择

使用QuartusII6.0设计系统,应用VHDL语言编程构造所需器件,需要的器件有分频器、计数器、译码器,组装好后,编译仿真,锁定引脚下载到开发板。

3.2总体设计

分为三个大的模块,分别为分频器、计数器、译码器。

使用分频器将晶振送来的高频信号转化为低频,用计数器记录时钟周期产生三位的二进制码,使用3-8线译码器输出高电平有效的信号,从而控制LED灯。

3.2.1信号生成

使用开发板自带的晶振产生原始信号,但是频率较高需要降低频率(分频)。

3.2.2分频

使用一个较淡的分频逻辑器件分频,原理为输入信号多个周期产生一个输出周期。

3.2.3信号计数编码

对于分频后的信号,并不能直接用于控制LED灯,需要技术产生二进制代码,译码后控制LED灯。

计数器可以对输入信号累加计数,由于最后的LED灯数目为8个,23=8,故需要产生3位的二进制码,范围从000到111。

3.2.4信号译码输出

经过编码的信号从000到111依次循环,可利用3-8线译码器,产生译码输出信号,又由于要求的是有一个灯亮,故输出信号选为高电平有效。

输入与输出信号对应关系如下表:

输入信号

输出信号

000

00000001

001

00000010

010

00000100

011

00001000

100

00010000

101

00100000

110

01000000

111

10000000

3.3功能描述

8个LED灯,有一个灯亮着从左到右,一轮过后再次循环,其他灯则灭。

3.4总体结构框图

四.硬件介绍

计算机、开发板、开发板上面的芯片为MAXII系列的EPM240T100C5。

五.软件设计

5.1基本思路

利用分频器对晶振产生的信号进行分频使频率降低,计数器对信号累加,产生三位的信号(从000到111),再利用三八线译码器对计数器产生的信号译码,产生高电平有效地信号(从00000001到10000000),将引脚锁定,下载到开发板。

5.2程序框图

从左到右依次为:

晶振信号输入、分频器、计数器、译码器、LED灯输出。

5.3子程序设计(代码)及仿真波形及分析

5.3.1分频器

代码:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitydivideis

port(clk:

instd_logic;

cp:

outstd_logic);

end;

architecturedivideofdivideis

signalclock:

std_logic;

begin

cp<

=clock;

process(clk,clock)is

variablecount:

integerrange0to999999;

if(clk'

eventandclk='

1'

)then

if(count=999999)then

clock<

=notclock;

count:

=0;

else

=count+1;

endif;

endif;

endprocess;

enddivide;

仿真:

为了在仿真中便于观察,将分频周期中999999改为6,将divide.vhd设为顶层文件,编译,新建一个波形文件,将端口导入,选择“功能仿真”、新建网表,为输入指定值,仿真后波形图如下:

分析:

由仿真可以看出,输出信号的频率明显减低,若将分频数值设置得更大,效果将更加明显,说明本代码可以用于系统使用。

5.3.2计数器

useieee.std_logic_arith.all;

entitycounteris

outp:

outstd_logic_vector(2downto0));

end;

architecturecounterofcounteris

signals1:

std_logic_vector(2downto0);

process(clk)is

if(clk='

andclk'

event)then

s1<

=s1+'

;

outp<

=s1;

endcounter;

将counter.vhd设为顶层文件,编译,新建一个波形文件,将端口导入,选择“功能仿真”、新建网表,为输入指定值,仿真后波形图如下:

有仿真结果可以看出,对应于输入信号的每一个周期,输出都会改变,而且这种改变是有规律的,从000到111,符合了设计的要求,完全可以应用到系统设计之中。

5.3.3译码器

entitydecoderis

port(inp:

instd_logic_vector(2downto0);

outstd_logic_vector(7downto0));

architecturedecoderofdecoderis

process(inp)is

caseinpis

when"

000"

=>

="

00000001"

001"

00000010"

010"

00000100"

011"

00001000"

100"

00010000"

101"

00100000"

110"

01000000"

111"

10000000"

endcase;

enddecoder;

5.4主程序设计及仿真波形及分析

将前面的VHDL代码生成器件,依照数据处理顺序组装成为如下的电路图:

从左到右依次为晶振信号,分频器,计数器,译码器,LED灯输出。

对总电路图编译后仿真如下图:

可看出系统总体符合要求,8个LED灯依次亮灭。

六.调试及相关说明

将输入信号输出信号与引脚绑定,下载到开发板观看效果。

类型

引脚名

绑定引脚编号

输入

clk

12

输出

Out[7]

86

Out[6]

87

Out[5]

88

Out[4]

89

Out[3]

90

Out[2]

91

Out[1]

92

Out[0]

95

绑定后如图:

绑定后再次编译Design.bdf文件,效果如图:

七.结束语

在此次课程设计过程中,学会了QuartusII软件的使用,在QuartusII中创建项目、新建文件、编译文件、对设计进行仿真以及对编译好的内容进行下载到开发板上观察效果。

在整个过程中,编译使用VHDL代码编写的逻辑器件的代码时,需要将该文件设置为工程的顶层文件,否则后面的仿真出错。

在由逻辑器件组装好电路图时,需要将组装好的电路图文件设为顶层文件再编译,否则后面出错。

在下载到开发板之前,需要锁定引脚,之后还需要编译一次,否则会出错。

这些都是在开发设计过程中总结出的经验。

在设计过程中加深了对可编程逻辑器件的使用的理解,克服了一些困难,学到了一些以前没有学到的知识。

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

当前位置:首页 > 经管营销 > 公共行政管理

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

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