fpga的数字钟设计教程.doc_第1页
fpga的数字钟设计教程.doc_第2页
fpga的数字钟设计教程.doc_第3页
fpga的数字钟设计教程.doc_第4页
fpga的数字钟设计教程.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

桂林电子科技大学论文 目目 录录 引言引言1 1 第一章第一章 FPGAFPGA 简介简介2 2 1.1 FPGA 概述 .2 1.2 FPGA 基本结构 .3 1.3 FPGA 系统设计流程 .5 1.4 FPGA 开发编程原理 .7 第二章第二章 数字钟总体设计方案数字钟总体设计方案8 8 2.1 数字钟的构成8 2.2 数字钟的工作原理8 2.3 数字钟硬件电路设计8 第三章第三章 单元电路设计单元电路设计1111 3.1 分频模块电路设计.11 3.2 校时控制模块电路设计.12 3.2.1 按键消抖.12 3.2.2 按键控制模块.13 3.3 计数模块.16 3.4 译码显示模块.22 3.5 译码显示强制转换模块.24 3.6 整点报时模块.24 总结总结2626 主要参考文献主要参考文献2727 附录2828 引言引言 当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展它与传统的电 子产品在设计上的显着区别是大量使用大规模可编程逻辑器件,使产品的性能提高,体积 缩小,功耗降低,同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研 发周期EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成 的一门新技术 本设计采用的VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系 统行为级寄存器传输级和逻辑门级这三个不同层次的设计;支持结构数据流行为三种 描述形式的混合描述,覆盖面广,抽象能力强,因此在实际应用中越来越广泛ASIC是专用 的系统集成电路,是一种带有逻辑处理的加速处理器;而FPGA是特殊的ASIC芯片,与其它 的ASIC芯片相比,它具有设计开发周期短设计制造成本低开发工具先进标准产品无 需测试质量稳定以及可实时在线检测等优点 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报 时功能诸如定时自动报警定时启闭电路定时开关烘箱通断动力设备,甚至各种定时 电气的自动启用等,所有这些都是以钟表数字化为基础的因此研究数字钟以及扩大其应 用有着非常现实的意义 本设计主要研究基于 FPGA 的数字钟,要求时间以 24 小时为一个周期,显示时分 具有校时以及整点报时功能,可以对时分进行单独校对,使其校正到标准时间校对时间 由五个按键进行控制,为了保证计时的稳定及准确须由晶体振荡器提供时间基准信号 第一章第一章 FPGA 简介简介 1.11.1 FPGA 概述概述 FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,与之相应的 CPLD是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,两者的功能 基本相同,只是实现原理略有不同,有时可以忽略这两者的区别,统称为可编程逻辑器件或 CPLD/PGFACPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的 74电路它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语 言自由的设计一个数字系统通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利 用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路使用CPLD/FPGA开 发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性这些优点使得 CPLD/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬 件描述语言HDL的进步3 1.21.2 FPGA 基本结构基本结构 FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的 互连资源连接这些逻辑功能块来实现不同的设计 FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成这 3种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)输入/输出模块(IOB- -I/O Block)和互连资源(IRInterconnect Resource)可编程逻辑模块CLB是实现逻辑功能 的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块 (IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互 连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或 CLBIOB之间以及IOB之间连接起来,构成特定功能的电路4 1.CLB是FPGA的主要组成部分图2.1是CLB基本结构框图,它主要由逻辑函数发生 器触发器数据选择器等电路组成CLB中3个逻辑函数发生器分别是GF和H,相应的输 出是GF和HG有4个输入变量G1G2G3和G4;F也有4个输入变量F1F2F3和F4这两 个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数逻辑函数发生 器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变 换电路的输出H1这个函数发生器能实现3输入变量的各种组合函数这3个函数发生器 结合起来,可实现多达9变量的逻辑函数 CLB中有许多不同规格的数据选择器(四选一二选一等),通过对CLB内部数据选择 器的编程,逻辑函数发生器GF和H的输出可以连接到CLB输出端X或Y,并用来选择触发 器的激励输入信号时钟有效边沿时钟使能信号以及输出信号这些数据选择器的地址 控制信号均由编程信息提供,从而实现所需的电路结构 CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROMF和G的输 入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出 另外,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由 信号变换电路控制 2.输入/输出模块IOBIOB提供了器件引脚和内部逻辑阵列之间的连接它主要由输 入触发器输入缓冲器和输出触发/锁存器输出缓冲器组成 每个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.1 CLB基本结构 1.31.3 FPGA 系统设计流程系统设计流程 一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个较大的模 块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是自顶向下的设 计方法目前这种高层次的设计方法已被广泛采用高层次设计只是定义系统的行为特 征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次 描述转换为针对某种工艺优化的网络表,使工艺转化变得轻而易举 CPLD/FPGA系统设计的工作流程如图2.2所示 流程说明: 1.工程师按照“自顶向下”的设计方法进行系统划分 2.输入VHDL代码,这是设计中最为普遍的输入方式此外,还可以采用图形输入方式, 这种输入方式具有直观容易理解的优点 3.将以上的设计输入编译成标准的VHDL文件 4.进行代码级的功能仿真,主要是检验系统功能设计的正确性这一步骤适用于大型 设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和 时间一般情况下,这一仿真步骤可略去 5.利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是 将高层次描述转化为硬件电路的关键步骤综合优化是针对ASIC芯片供应商的某一产品 系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成 可编程开关矩输入输出模块互连资源 CLBCLBCLBCLB CLB CLB B CLBCLBCLB CLB 矩 CLB CLB CLB 块 CLB CLB CLB B CLBCLB CLBCLBCLBCLB 6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件 特性,是较为粗略的一般的设计,也可略去这一步骤 7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作, 包括底层器件配置逻辑分割逻辑优化和布局布线 8.在适配完成后,产生多项设计结果:a.适配报告,包括芯片内部资源利用情况,设计的 布尔方程描述情况等;b.适配后的仿真模型;c.器件编程文件根据适配后的仿真模型,可以 进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能 比较精确的预期未来芯片的实际性能如果仿真结果达不到设计要求,就修改VHDL源代 码或选择不同速度和品质的器件,直至满足设计要求 最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片 CPLD/FPGA中5 图1.2 CPLD/FPGA系统设计流程 系统划分 编译器 代码级功能仿真 综合器 适配前时序仿真 适配器 CPLD/FPGA实现 适配后仿真模型 适配后时序仿真 适配报告 ASIC 实现 VHDL 代码或图形方式输入 仿真综合库 器件编程文件 1.41.4 FPGA 开发编程原理开发编程原理 硬件设计需要根据各种性能指标成本开发周期等因素,确定最佳的实现方案,画出 系统框图,选择芯片,设计PCB并最终形成样机 CPLD/FPGA软件设计可分为两大块:编程语言和编程工具编程语言主要有VHDL 和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软 件QuartusII以及第三方工具具体的设计输入方式有以下几种: 1.HDL语言方式HDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到 较高的工作速度和芯片利用率用这种方式描述的项目最后所能达到的性能与设计人员 的水平经验以及综合软件有很大的关系 2.图形方式可以分为电路原理图描述,状态机描述和波形描述3种形式电路原理图 方式描述比较直观和高效,对综合软件的要求不高一般大都使用成熟的IP核和中小规模 集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,其硬件工作速度和 芯片利用率很高,但是当项目很大时,该方法就显得有些繁琐;状态机描述主要用来设计基 于状态机思想的时序电路在图形的方式下定义好各个工作状态,然后在各个状态上输入 转换条件以及相应的输入输出,最后生成HDL语言描述,送去综合软件综合到可编程逻辑 器件的内部由于状态机到HDL语言有一种标准的对应描述方式,所以这种输入方式最后 所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的 一种图形输入方式,直接描述输入与输出的波形关系 第二章第二章 数字钟总体设计方案数字钟总体设计方案 2.12.1 数字钟的构成数字钟的构成 数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路由于计数的起始时间 不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的 1HZ 时间信号必须做到准确稳定,通常使用石英晶体振荡器电路构成数字钟 本设计总体框架见附图 2.22.2 数字钟的工作原理数字钟的工作原理 振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准 秒脉冲秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数 器按照“24翻1”规律计数计数满后各计数器清零,重新计数计数器的输出分别经译码器 送数码管显示计时出现误差时,可以用校时电路校时校分控制信号由15矩形键盘输 入时基电路可以由石英晶体振荡电路构成,假设晶振频率1MHz,经过6次十分频就可以 得到秒脉冲信号译码显示电路由八段译码器完成 2.32.3 数字钟硬件电路设计数字钟硬件电路设计 1.系统芯片的选取 本系统拟采用 Altera 公司 Cyclone 系列的 EP1C3T144 芯片选用该款芯片的原因是: Altera 公司的 Quartus II 开发环境非常友好直观,为整个系统的开发提供了极大 的方便; 该 FPGA 片内逻辑资源IO 端口数和 RAM 容量都足够用,并且价格相对来说比 较便宜,速度快,可以满足要求,且有很大的升级空间 EP1C3T144 是 Altera 公司生产的 Cyclone I 代基于 1.5V(内核),3.3V(I/O),0.13um 和 SRAM 的 FPGA,容量为 2910 个 LE,拥有 13 个 M4KRAM(4K 位+奇偶校验)块;除此 之外,还集成了许多复杂的功能,提供了全功能的锁相环(PLL),用于板级的时钟网络管理 和专用 I/O 口,这些接口用于连接业界标准的外部存储器器件,具有成本低和使用方便的 特点,具有以下特性: 新的可编程架构通过设计实现低成本; 嵌入式存储资源支持各种存储器应用和数字信号处理器(DSP); 采用新的串行置器件如 EPCS1 的低成本配置方案; 支持 LVTTLLVCMOSSSTL-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 嵌入式处理器,具有超凡的性能低成本和最完整的一套软件开发工具7 EP1C3T144 引脚图如图 2.1 所示 图 3.1 EP1C3T144 引脚图 2.显示电路设计 显示电路所选用 4 个数码管以静态显示驱动方式完成时分显示静态驱动是指每 个数码管的每一个段码都由一个 I/O 端口进行驱动,其优点是编程简单,显示亮度高,缺点 是占用 I/O 端口多 显示电路原理图如图 3.2 所示 图 2.2 LED 静态驱动显示原理图 第三章第三章 单元电路设计单元电路设计 3.13.1 分频模块电路设计分频模块电路设计 晶体振荡器是构成数字式时钟的核心,振荡器的稳定度及频率的精度决定了数字钟 计时的准确程度,它保证了时钟的走时准确及稳定 石英晶体的选频特性非常好,只有某一频率点的信号可以通过它,其它频率段的信号 均会被它所衰减,而且,振荡信号的频率与振荡电路中的RC组件的数值无关因此这种振 荡电路输出的是准确度极高的信号然后再利用分频电路,将其输出信号转变为秒信号, 其组成框图如图3.1 图 3.1 秒信号产生电路框图 本系统使用的晶体振荡器电路给数字钟提供了一个频率稳定准确的 20MHZ 的方波 信号,其输出至分频电路分频电路的逻辑框图如图 3.2 所示 iclkoclk1s oclk2ms div inst8 图 3.2 分频电路模块 经分频后输出 1HZ 的标准秒信号 oclk1s500HZ 的按键消去抖信号该模块的时序 仿真图如图 3.3 所示,满足设计要求 石英晶体 振荡电路 分频电路秒信号 图 3.3 分频模块仿真图 3.23.2 校时控制模块电路设计校时控制模块电路设计 3.2.13.2.1 按键消抖按键消抖 本模块用于当有按键按下时,采用软件的办法去除按键抖动模块的实现方法是先判 断是否有按键按下,如有按键按下则延时一段时间,待抖动过去之后再读行线状态,如果仍 有低电平行线,则确定有按键按下,然后产生一个有按键按下的信号该模块有一个时钟 输入端口,输入时钟信号是分频出来的 500HZ 的时钟;有一个输入端口与行线相连,用于 输入行线状态;一个输出端口,用于输出有按键按下的信号该模块的逻辑框图如图 3.4 所 示 图 3.4 消抖逻辑框图 该模块在这里实现的比较简单,原理是当有按键按下的时候,inkey 会变成低电平,如 果此时 count 不为 30 时,内部计数器计数,从 0 直到 30,当计数到 30 时,okey 输出底电平, 同时给计数器赋值为 30由于计数脉冲为 500HZ,故从有按键按下到输入信号产生大概 需要 60ms而按键产生抖动的时间大约 2ms 到 10ms,所以一旦计数完成,抖动已经过去, 不会发生重键现象了,这样就去除了抖动 该模块的仿真波形如图 3.5 所示 图 3.5 按键消抖模块波形仿真 3.2.23.2.2 按键控制模块按键控制模块 按键控制模块的框图如图 4.6 所示 a b 图 3.6 按键控制模块 图 3.6 中 a 图是控制分的高位,低位以及小时的高位的模块,b 图是控制小时的低位 的模块inkey 是由消抖模块输出的有键按下的信号,这个信号引发按键控制模块内部信 号的变化oaddr30作为输出信号,用于控制时间的调整b 图中的 flag 是判断小时高位 是 1 还是 2 的信号,若为 1,则 flag 信号为低电平;若为 2,则 flag 信号为高电平 1.分低位按键控制核心程序如下: ENTITY addram IS PORT (inkey : IN STD_LOGIC; oaddr : OUT STD_LOGIC_VECTOR(3 downto 0); END addram; ARCHITECTURE addram_architecture OF addram IS signal count:std_logic_vector(3 downto 0); BEGIN oaddrledledledledledledledledledledled=“10111111“; end case; end process; end behave; 该模块的仿真波形如图 3.15 所示 图 3.15 译码显示波形仿真 3.53.5 译码显示强制转换模块译码显示强制转换模块 由于系统只能显示时分,故在此将时低位的数码管的“小数点”作为秒显示,以 1HZ 的频率闪烁模块组件如图 3.16 所示 idata70odata60 conv inst18 图 3.16 译码显示强制转换模块组件 3.63.6 整点报时模块整点报时模块 该模块能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论