数字电路综合设计验报告文档.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

ipuflu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档