欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于FPGA的多功能电子时钟设计报告.docx

    • 资源ID:69296868       资源大小:2MB        全文页数:31页
    • 资源格式: DOCX        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于FPGA的多功能电子时钟设计报告.docx

    基于 FPGA 的多功能时钟的设计学院:电控学院班级:微电子 1001 班姓名:xxx学号:xxxxxxxxxx日期:2014 年 3 月 21 日第一章第一章 绪论绪论现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronic designautomatic,EDA)技术。本设计采用的VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级这三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述,覆盖面广,抽象能力强,因此在实际应用中越来越广泛。ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器;而FPGA是特别的ASIC芯片,与其它的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳固以及可实时在线检测等优点。在控制系统中,键盘是常用的人机交换接口,当所设置的功能键或数字键按下的时候,系统应该完成该键所对应的功能。因此,按键信息输入是与软件结构密切相关的过程。根据键盘结构的不同,采用不同的编码方法,但无论有无编码以及采用什么样的编码,最后都要转换成为相应的键值,以实现按键功能程序的转移。1钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些都是以钟表数字化为基础的。因此研究数字钟以及扩大其应用有着非常现实的意义。1.11.1选题背景选题背景本节将从 FPGA 嵌入式应用开发技术与数字钟技术发展的客观实际出发,通过对该技术发展状况的了解及课题本身的需要,指出研究基于 FPGA 的芯片系统与设计数字钟的设计与实现的必要性。1.1.11.1.1课题相关技术的发展课题相关技术的发展当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显着区别是大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低,同时广泛运用现代运算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA 技术正是为了适应现代电子技术的要求,吸取众多学科最新科技成果而形成的一门新技术。美国 ALTERA 公司的可编程逻辑器件采用全新的结构和先进的技术,加上Quartus 开发环境,使得其更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。2EDA 技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以运算机和大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。本设计是利用 VHDL 硬件描述语言结合可编程逻辑器件进行的,并通过数码管静态显示走时结果。数字钟可以由各种技术实现,如单片机等。利用可编程逻辑器件具有其它方式没有的特点,它具有易学、方便、新颖、有趣、直观,设计与实验成功率高、理论与实践结合紧密、积小、量大、/O 口丰富、编程和加密等特点,并且它还具有开放的界面、丰富的设计库、模块化的工具以及LPM 定制等优良性能,应用非常方便。因此,本设计采用可编程逻辑器件实现。1.1.21.1.2课题研究的必要性课题研究的必要性现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变着我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的缺失,因此我们需要一个定时系统来提醒这些忙碌的人。数字化的钟表给人们带来了极大的方便。近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求,多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。1.21.2课题研究的内容课题研究的内容本设计主要研究基于 FPGA 的数字钟,要求时间以 24 小时为一个周期,显示时、分。具有校时以及整点报时功能,可以对时、分进行单独校对,使其校正到标准时间。校对时间由 15 矩形键盘进行控制,为了保证计时的稳固及准确须由晶体振荡器提供时间基准信号。第二章第二章 FPGA 简介简介2.12.1 FPGA 概述概述FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,与之相应的CPLD是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,两者的功能基本相同,只是实现原理略有不同,有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLD/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得CPLD/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。32.22.2 FPGA 基本结构基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一样由3种可编程电路和一个用于存放编程数据的静态储备器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)、输入/输出模块(IOB-I/O Block)和互连资源(IRInterconnectResource)。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。41.CLB是FPGA的主要组成部分。图2.1是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据挑选器等电路组成。CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G、F和H。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现3输入变量的各种组合函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据挑选器(四选一、二选一等),通过对CLB内部数据挑选器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来挑选触发器的鼓励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据挑选器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。另外,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写储备器使用,它由信号变换电路控制。2.输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MUX,另一路延时几个纳秒(或者没有延时)后送到输入通路D触发器,再送到数据挑选器。通过编程给数据挑选器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通VCC、地线或者不接通,用以改善输出波形和负载能力。3.可编程互连资源IR。可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。2.32.3FPGA 系统设计流程系统设计流程一样说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是自顶向下的设计方法。目前这种高层次的设计方法已被广泛采用。高层次设计只是定义系统的行为特点,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换为针对某种工艺优化的网络表,使工艺转化变得轻而易举。CPLD/FPGA系统设计的工作流程如图2.2所示。流程说明:1.工程师按照“自顶向下”的设计方法进行系统划分。2.输入VHDL代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式,这种输入方式具有直观、容易懂得的优点。3.将以上的设计输入编译成标准的VHDL文件。4.进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一样情形下,这一仿真步骤可略去。5.利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一样的设计,也可略去这一步骤。7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。8.在适配完成后,产生多项设计结果:a.适配报告,包括芯片内部资源利用情形,设计的布尔方程描述情形等;b.适配后的仿真模型;c.器件编程文件。根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或挑选不同速度和品质的器件,直至满足设计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。5系统划分编译器代码级功能仿真综合器适配前时序仿真适配器CPLD/FPGA实现适配后仿真模型适配后时序仿真适配报告ASIC 实现VHDL 代码或图形方式输入仿真综合库器件编程文件图2.2 CPLD/FPGA系统设计流程2.42.4 FPGA 开发编程原理开发编程原理硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案,画出系统框图,挑选芯片,设计PCB并最终形成样机。CPLD/FPGA软件设计可分为两大块:编程语言和编程工具。编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软件QuartusII以及第三方工具。具体的设计输入方式有以下几种:1.HDL语言方式。HDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到较高的工作速度和芯片利用率。用这种方式描述的项目最后所能达到的性能与设计人员的水平、体会以及综合软件有很大的关系。2.图形方式。可以分为电路原理图描述,状态机描述和波形描述3种形式。电路原理图方式描述比较直观和高效,对综合软件的要求不高。一样大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,其硬件工作速度和芯片利用率很高,但是当项目很大时,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路。在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成HDL语言描述,送去综合软件综合到可编程逻辑器件的内部。由于状态机到HDL语言有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。2.52.5QuartusII 设计平台设计平台2.5.12.5.1软件开发环境及基本流程软件开发环境及基本流程本设计所用软件主要是 QuartusII,在此对它做一些介绍。QuartusII 是 Altera 提供的 FPGA/CPLD 开发集成环境,Altera 是世界上最大的可编程逻辑器件供应商之一。QuartusII 提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。Altera 公司的 QuartusII 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。QuartusII 软件完全支持 VHDL 设计流程,其内部嵌有VHDL 逻辑综合器。QuartusII 也可以利用第三方的综合工具,如 FPGACompiler II,并能直接调用这些工具。同样,QuartusII 具备仿真功能,同时也支持第三方的仿真工具。此外,QuartusII 与 MATLAB 和 DSP Builder 结合,可以进行基于 FPGA 的 DSP 系统开发,是 DSP 硬件系统实现的关键 EDA 技术。QuartusII 包括模块化的编译器。编译器包括的功能模块有分析/综合器、适配器、装配器、时序分析器、设计辅助模块、EDA 网表文件生成器、编辑数据接口等。可以通过挑选 Start Compilation 来运行所有的编译器模块,也可以通过挑选 Start 单独运行各个模块。在 Compiler Tool 窗口中,可以打开该模块的设置文件或报告文件,或者打开其它相关窗口。图 2.3 上排所示的是 QuartusII 编译设计主控界面,它显示了 QuartusII自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编、时序参数提取以及编程下载几个步骤。图 2.3 下排的流程框图是与上面的 QuartusII 设计流程相对照的标准的 EDA 开发流程。图 2.3 QuartusII 设计流程在设计输入之后,QuartusII 的编译器将给出设计输入的错误报告。QuartusII 拥有性能良好的设计错误定位器,用于确定文本或图形设计中的错误。在进行编译后,可对设计进行时序仿真。在仿真前,需要利用波形编辑器编辑一个波形鼓励文件。编译和仿真检测无误后,便可将下载信息通过QuartusII 提供的编程器下载入目标器件中了。6QuartusII 图形用户界面的基本设计流程如下:1.使用 New Project Wizard(File 菜单)建立新工程并指定目标器件或器件系列。2.使用 Text Editor(文本编辑器)建立 Verilog HDL、VHDL 或 Altera 硬件描述语言(AHDL)设计。可以使用 Block Editor(原理图编辑器)建立流程图或原理图。流程图中可以包含代表其它设计文件的符号;还可以使用MegaWizard Plug-In Manager 生成宏功能模块和 IP 内核的自定义变量,在设计中将它们实例化。3.(可选)使用 Assignment Editor、Settings 对话框(Assignments 菜单)、Floorplan Editor 或 LogicLock 功能指定初始设计的约束条件。4.(可选)使用 SOPC Builder 或 DSP Builder 建立系统级设计。5.(可选)使用 Software Builder 为 Excalibur 器件处理器或 Nios 嵌入式处理器建立软件和编程文件。6.使用 Analysis&Synthesis 对设计进行综合。7.(可选)使用仿真器对设计执行功能仿真。8.使用 Fitter 对设计执行布局布线。在对源代码进行少量更换之后,还可以使用增量布局布线。9.使用 Timing Analyzer 对设计进行时序分析。10.使用仿真器对设计进行时序仿真。11.(可选)使用物理综合、时序底层布局图、LogicLock 功能、Settings对话框和 Assignment Editor 进行设计优化,实现时序关闭。12.使用 Assembler 为设计建立编程文件。13.使用编程文件、Programmer 和 Altera 硬件编程器对器件进行编程;或将编程文件转换为其它文件格式以供嵌入式处理器等其它系统使用。14.(可选)使用 SignalTap II Logic Analyzer、SignalProbe 功能或Chip Editor 对设计进行调试。15.(可选)使用 Chip Editor、Resource Property Editor 和 ChangeManager 进行工程更换治理。2.5.22.5.2 具体设计流程具体设计流程1.建立工作库文件夹和编辑设计文件第一建立工作库目录,以便储备工程项目设计文件。任何一项设计都是一项工程(Project),都必须第一为此工程建立一个放置与此工程相关的所有设计文件的文件夹。此文件夹将被 EDA 软件默认为工作库。一样来说,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。2.创建工程使用 New Project Wizard 可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称,还可以指定要在工程中使用的设计文件、其它源文件、用户库和 EDA 工具,以及目标器件系列和具体器件等。3.编译前设置在对工程进行编译处理前,必须做好必要的设置。步骤如下:a.挑选 FPGA 目标芯片b.挑选配置器件的工作方式c.挑选配置器件和编程方式d.挑选输出设置e.挑选目标器件闲置引脚的状态4.全程编译QuartusII 编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错、逻辑综合、结构综合、输出结果的编辑配置,以及时序分析。在这一过程中,将设计项目适配到 FPGA 目标器中,同时产生多种用途的输出文件。编译器第一检查出工程设计文件中可能的错误信息,供设计者排除。然后产生一个结构化的以网表文件表达的电路原理图文件。如果编译成功,可以见到工程治理窗口左上角显示了工程(例如工程 div)的层次结构和其中结构模块耗用的逻辑宏单元数;在此栏下是编译处理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析等;最下栏是编译处理信息;中栏式编译报告项目挑选菜单,单击其中各项可以详细了解编译与分析结果。5.时序仿真工程编译通过后,必须建立 VWF 文件对其功能和时序性质进行仿真测试,以了解设计结果是否满足原设计要求。7第三章第三章 数字钟总体设计方案数字钟总体设计方案3.13.1数字钟的构成数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的 1HZ 时间信号必须做到准确稳固,通常使用石英晶体振荡器电路构成数字钟。3.23.2数字钟的工作原理数字钟的工作原理振荡器产生稳固的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计数满后各计数器清零,重新计数。计数器的输出分别经译码器送数码管显示。计时显现误差时,可以用校时电路校时、校分。控制信号由15矩形键盘输入。时基电路可以由石英晶体振荡电路构成,假设晶振频率1MHz,经过6次十分频就可以得到秒脉冲信号。译码显示电路由八段译码器完成。3.33.3数字钟硬件电路设计数字钟硬件电路设计1.系统芯片的选取本系统拟采用 Altera 公司 Cyclone 系列的 EP2C3T144 芯片。选用该款芯片的原因是:Altera 公司的 Quartus II 开发环境非常友好、直观,为整个系统的开发提供了极大的方便;该 FPGA 片内逻辑资源、IO 端口数和 RAM 容量都足够用,并且价格相对来说比较便宜,速度快,可以满足要求,且有很大的升级空间。EP2C3T144 是 Altera 公司生产的 Cyclone I 代、基于 1.5V(内核),3.3V(I/O),0.13um 和 SRAM 的 FPGA,容量为 2910 个 LE,拥有 13 个 M4KRAM(4K位+奇偶校验)块;除此之外,还集成了许多复杂的功能,提供了全功能的锁相环(PLL),用于板级的时钟网络治理和专用 I/O 口,这些接口用于连接业界标准的外部储备器器件,具有成本低和使用方便的特点,具有以下特性:新的可编程架构通过设计实现低成本;嵌入式储备资源支持各种储备器应用和数字信号处理器(DSP);采用新的串行置器件如 EPCS1 的低成本配置方案;支持 LVTTL、LVCMOS、SSTL-2 以及 SSTL-3 I/O 标准;支持 66MHZ,32 位 PCI 标准;支持低速(311Mbps)LVDS I/O;支持串行总线和网络接口及各种通信协议;使用 PLL 治理片内和片外系统时序;支持外部储备器,包括 DDR SDRAM(133MHZ),FCRAM 以及 SDR SDRAM;支持多种 IP,包括 Altera 公司的 MegaCore 以及其合伙组织的 IP,支持最新推出的 Nios II 嵌入式处理器,具有超凡的性能、低成本和最完整的一套软件开发工具。7EP2C3T144C8 引脚图如图 3.1 所示。图 3.1 EP2C3T144C8 引脚图2.显示电路设计显示电路所选用 4 个数码管以动态显示扫描方式完成时、分显示。显示电路原理图如图 3.2 所示。图 3.2 LED 数码管显示原理图第四章第四章 单元电路设计单元电路设计4.14.1 设计要求设计要求本次设计的多功能数字钟具有如下功能:1秒分时的依次显示并正确计数;2定时闹钟:实现整点报时,扬声器发出报时声音;3时间设置,即手动调时功能:当认为时钟不准确时,可以分别对分时进行调整;4.24.2总体设计总体设计4.2.14.2.1 外部输入输出要求外部输入输出要求外部输入要求:输入信号有 1kHz1Hz 时钟信号、低电平有效的调时切换 SET、低电平有效的时分秒挑选信号 SEL、低电平有效的加 ADD 和减MINUS;外部输出要求:整点报时信号(59 分 51357 秒时未 1Hz 低频声,59 分 59 秒时为 1kHz 高频声)、时十位显示信号、时个位显示信号、分十位显示信号及分个位、秒十位及秒个位;数码管显示位选信号 CHOOSE7.0等八个信号。4.2.24.2.2 内部各功能模块:内部各功能模块:1 1)分频模块:)分频模块:整点报时用的 1kH 与 1Hz 的脉冲信号,这里的输入信号是 50MHz 信号,所以需要一个 50 分频和一个 1000 分频;时间基准采用 1Hz 输入信号,则再用 1000 分频将 1KHz 分频成 1Hz。2 2)秒计数模块)秒计数模块 SECONDSECOND:60 进制,带有加减调剂功能的,输入为 1Hz 脉冲和低电平有效的使能信号及加减信号,输出秒个位、十位及进位信号 S-LINK-M。3 3)分计数模块)分计数模块 MINUTEMINUTE60 进制,带有进位 S-LINK-M 和加减调剂功能的,输入为 1Hz 脉冲和低电平有效的使能信号及加减信号,输出分个位、十位及进位信号 M-LINK-H。4 4)时计数模块)时计数模块 HOURHOUR:24 进制,带有进位 M-LINK-H 和加减调剂功能的,输入为 1Hz 脉冲和低电平有效的使能信号及加减信号,输出时个位、十位。5 5)整点报时功能模块)整点报时功能模块 ALERTALERT:输入为分秒信号,输出为高频声控 1KHz 和 1Hz。6 6)译码显示功能模块)译码显示功能模块 DISPLAYDISPLAY:输入为 DIN,输出为 DOUT。第五章第五章 VHDLVHDL 程序设计程序设计5.15.1 分频模块程序分频模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DIVCLK_50 ISPORT(CLK:IN std_logic;CLK_50:OUT std_logic);END DIVCLK_50;ARCHITECTURE BEHAVIOR OF DIVCLK_50 ISSIGNAL CNT:STD_LOGIC_VECTOR(4 DOWNTO 0):=00000;SIGNAL DCLK:STD_LOGIC:=0;BEGINPROCESS(CLK)BEGINIF CLK event AND CLK=1 THENIF CNT=11000 THENCNT=00000;DCLK=NOT DCLK;ELSECNT=CNT+1;END IF;END IF;END PROCESS;CLK_50=DCLK;END BEHAVIOR;5.25.2 秒模块程序秒模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT60_S ISPORT(CLK_1HZ:IN STD_LOGIC;CLOCK_S_EN:IN STD_LOGIC;ADD,MINUS:IN STD_LOGIC;S_LINK_M:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);S_OUT_H,S_OUT_L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY CNT60_S;ARCHITECTURE BEHAVIOR OF CNT60_S ISSIGNAL S_H,S_L:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK_1HZ,CLOCK_S_EN,ADD,MINUS)BEGINIF RISING_EDGE(CLK_1HZ)THENIF CLOCK_S_EN=1 THENIF ADD=0 THENIF(S_H=0101 AND S_L=1001)THENS_H=0000;S_L=0000;ELSIF(S_H/=0101 AND S_L=1001)THENS_H=S_H+1;S_L=0000;ELSES_H=S_H;S_L=S_L+1;END IF;ELSIF MINUS=0 THENIF(S_H=0000 AND S_L=0000)THENS_H=0101;S_L=1001;ELSIF(S_H/=0000 AND S_L=0000)THENS_H=S_H-1;S_L=1001;ELSES_H=S_H;S_L=S_L-1;END IF;END IF;ELSIF(S_H=0101 AND S_L=1000)THENS_LINK_M=0001;S_H=0101;S_L=1001;ELSIF(S_H=0101 AND S_L=1001)THENS_H=0000;S_L=0000;S_LINK_M=0000;ELSIF(S_H/=0101 AND S_L=1001)THENS_H=S_H+1;S_L=0000;S_LINK_M=0000;ELSES_H=S_H;S_L=S_L+1;S_LINK_M=0000;END IF;END IF;END PROCESS;S_OUT_H=S_H;S_OUT_L=S_L;END BEHAVIOR;图 5.1 秒模块仿真波形5.35.3 分模块程序分模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT60_M ISPORT(CLK_1HZ:IN STD_LOGIC;CLOCK_M_EN:IN STD_LOGIC;ADD,MINUS:IN STD_LOGIC;S_LINK_M:IN STD_LOGIC_VECTOR(3 DOWNTO 0);M_LINK_H:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);M_OUT_H,M_OUT_L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY CNT60_M;ARCHITECTURE BEHAVIOR OF CNT60_M ISSIGNAL M_H,M_L:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK_1HZ,CLOCK_M_EN,S_LINK_M,ADD,MINUS)BEGINIF RISING_EDGE(CLK_1HZ)THENIF CLOCK_M_EN=1 THENIF ADD=0 THENIF(M_H=0101 AND M_L=1001)THENM_H=0000;M_L=0000;ELSIF(M_H/=0101 AND M_L=1001)THENM_H=M_H+1;M_L=0000;ELSEM_H=M_H;M_L=M_L+1;END IF;ELSIF MINUS=0 THENIF(M_H=0000 AND M_L=0000)THENM_H=0101;M_L=1001;ELSIF(M_H/=0000 AND M_L=0000)THENM_H=M_H-1;M_L=1001;ELSEM_H=M_H;M_L=M_L-1;END IF;END IF;ELSIF S_LINK_M=0001 THENIF(M_H=0101 AND M_L=1000)THENM_H=0101;M_L=1001;M_LINK_H=0001;ELSIF(M_H=0101 AND M_L=1001)THENM_H=0000;M_L=0000;M_LINK_H=0000;ELSIF(M_H/=0101 AND M_L=1001)THENM_H=M_H+0001;M_L=0000;M_LINK_H=0000;ELSEM_H=M_H;M_L=M_L+S_LINK_M;M_LINK_H=0000;END IF;END IF;END IF;END PROCESS;M_OUT_H=M_H;M_OUT_L=M_L;END BEHAVIOR;图 5.2 分模块仿真波形5.45.4 时模块程序时模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT24 ISPORT(CLK_1HZ:IN STD_LOGIC;CLOCK_H_EN:IN STD_LOGIC;ADD,MINUS:IN STD_LOGIC;M_LINK_H:IN STD_LOGIC_VECTOR(3 DOWNTO 0);H_OUT_H,H_OUT_L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY CNT24;ARCHITECTURE BEHAVIOR OF CNT24 ISSIGNAL H_H,H_L:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK_1HZ,CLOCK_H_EN,M_LINK_H,ADD,MINUS)BEGINIF RISING_EDGE(CLK_1HZ)THENIF CLOCK_H_EN=1 THENIF ADD=0 THENIF(H_H=0010 AND H_L=0011)THENH_H=0000;H_L=0000;ELSIF(H_H/=0010 AND H_L=1001)THENH_H=H_H+1;H_L=0000;ELSEH_H=H_H;H_L=H_L+1;END IF;ELSIF MINUS=0 THENIF(H_H=0000 AND H_L=0000)THENH_H=0010;H_L=0011;ELSIF(H_H/=0000 AND H_L=0000)THENH_H=H_H-1;H_L=1001;ELSEH_H=H_H;H_L=H_L-1;END IF;END IF;ELSIF M_LINK_H=0001 THENIF(H_H=0010 AND H_L=0011)THENH_H=0000;H_L=0000;ELSIF(H_H/=0010 AND H_L=1001 AND M_LINK_H=0001)THENH_H=H_H+1;H_L=0000;ELSEH_H=H_H;H_L=H_L+M_LINK_H;END IF;END IF;END IF;END PROCESS;H_OUT_H=H_H;H_OUT_L=H_L;END BEHAVIOR;图 5.3 时模块仿真波形5.5.显示模块程序显示模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY LED_DRIV ISPORT(CLK_1KHZ:IN STD_LOGIC;CLK_1HZ:IN STD_LOGIC;START:IN STD_LOGIC;A:IN STD_LOGIC;H_H:IN STD_LOGIC_VECTOR(3 DOWNTO 0);H_L:IN STD_LOGIC_VECTOR(3 DOWNTO 0);M_H:IN STD_LOGIC_VECTOR(3 DOWNTO 0);M_L:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S_H:IN STD_LOGIC_VECTOR(3 DOWNTO 0);S_L:IN STD_LOGIC_VECTOR(3 DOWNTO 0);DP:OUT STD_LOGIC;CHOOSE:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END LED_DRIV;ARCHITECTURE BEHAVIOR OF LED_DRIV ISSIGNAL CNT:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL DIN:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL POINT:STD_LOGIC:=0;BEGIN-PROCESS(CLK_1KHZ)BEGINIF CLK_1KHZ EVENT AND CLK_1KHZ=1 THENIF CNT=111 THENCNT=000;ELSE CNTCHOOSE=11111110;DIN(0)=S_L(0)ANDCLK_1HZ;DIN(1)=S_L(1)AND CLK_1HZ;DIN(2)=S_L(2)ANDCLK_1HZ;DIN(3)CHOOSE=11111101;DIN

    注意事项

    本文(基于FPGA的多功能电子时钟设计报告.docx)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开