- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字电路综合设计验报告文档
数
?
姓名:学号::设计题目 1
二.设计要求及技术指标 1
2.1实验目的 1
2.2 实验要求 1
2.3 实验原理 2
三. 方案选择及总体设计 2
3.1 方案选择 2
3.2 总体设计 2
3.2.1 信号生成 2
3.2.2 分频 2
3.2.3 信号计数编码 2
3.2.4 信号译码输出 3
3.3 功能描述 3
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
一. 设计题目
基于Quartus II的流水灯设计仿真
二.设计要求及技术指标
2.1实验目的
通过本次实验,引导学生以计算机辅助设计的手段来设计数字逻辑电路;
掌握QuartusII集成开发环境软件原理图输入的设计流程;
掌握简单流水灯的工作原理,学会通过QuartusII建立原理图设计小型数字电路;
掌握可编程逻辑器件(PLD)的开发步骤;
掌握对设计进行编译、仿真的方法。
用逻辑电路控制8个LED灯,始终保持亮暗,在脉冲信号CP的推动下循环流动三. 方案选择及总体设计
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 001 010 011 100 101 110 111
3.3 功能描述
8个LED灯,有一个灯亮着从左到右,一轮过后再次循环,其他灯则灭。
3.4 总体结构框图
四. 硬件介绍
计算机、开发板、开发板上面的芯片为MAXII系列的EPM240T100C5。
五. 软件设计
5.1 基本思路
利用分频器对晶振产生的信号进行分频使频率降低,计数器对信号累加,产生三位的信号(从000到111),再利用三八线译码器对计数器产生的信号译码,产生高电平有效地信号(10000000),将引脚锁定,下载到开发板。
5.2 程序框图
从左到右依次为:晶振信号输入、分频器、计数器、译码器、LED灯输出。
5.3 子程序设计(代码)及仿真波形及分析
5.3.1 分频器
代码:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity divide is
port(clk:in std_logic;
cp:out std_logic);
end;
architecture divide of divide is
signal clock:std_logic;
begin
cp=clock;
process(clk,clock) is
variable count:integer range 0 to 999999;
begin
if(clkevent and clk=1)then
if(count=999999) then
clock=not clock;
count:=0;
else
count:=count+1;
end if;
end if;
end process;
end divide;
仿真:
为了在仿真中便于观察,将分频周期中999999改为6,将divide.vhd设为顶层文件,编译,新建一个波形文
文档评论(0)