FPGA的数字钟方案设计书_第1页
FPGA的数字钟方案设计书_第2页
免费预览已结束,剩余20页可下载查看

下载本文档

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

文档简介

1、封面作者: PanHongliang目录引言3第一章 FPGA 简介4仅供个人学习1.1FPGA 既述 41.2FPGAS 本结构 41.3FPGA 系统设计流程 61.4FPGAT 发编程原理 7第二章数字钟总体设计方案82.1 数字钟的构成 82.2 数字钟的工作原理 82.3 数字钟硬件电路设计 8第三章单元电路设计103.1 分频模块电路设计 103.2 校时控制模块电路设计 103.2.1按键消抖 103.2.2按键控制模块 113.3计数模块 133.4译码显示模块 193.5译码显示强制转换模块 203.6整点报时模块 20总结26主要参考文献27附录28引言当今电子产品正向功能

2、多元化,体积最小化,功耗最低化的方向发展。它与传 统的电子产品在设计上的显着区别是大量使用大规模可编程逻辑器件,使产品 的性能提高,体积缩小,功耗降低,同时广泛运用现代计算机技术,提高产品 的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术 的要求,吸收众多学科最新科技成果而形成的一门新技术。本设计采用的 VHDL 是一种全方位的硬件描述语言,具有极强的描述能 力,能支持系统行为级、寄存器传输级和逻辑门级这三个不同层次的设计;支 持结构、数据流、行为三种描述形式的混合描述,覆盖面广,抽象能力强,因 此在实际应用中越来越广泛。ASIC 是专用的系统集成电路,是一种带有逻辑处

3、理的加速处理器;而 FPGA是特殊的 ASIC 芯片,与其它的 ASIC 芯片相比,它具 有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质 量稳定以及可实时在线检测等优点。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表 原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动 力设备,甚至各种定时电气的自动启用等,所有这些都是以钟表数字化为基础 的。因此研究数字钟以及扩大其应用有着非常现实的意义。本设计主要研究基于 FPGA 的数字钟,要求时间以 24 小时为一个周期,显 示时、分。具有校时以及整点报时功能,可以对时、分进行单独校对,使其校 正

4、到标准时间。校对时间由五个按键进行控制,为了保证计时的稳定及准确须 由晶体振荡器提供时间基准信号。第一章 FPGA 简介1.1 FPGA 概述FPGA 是现场可编程门阵列(Field Programmable Gate Array)的简称,与之 相应的 CPLD 是复杂可编程逻辑器件(Complex Programmable Logic Device)的 简称,两者的功能基本相同,只是实现原理略有不同,有时可以忽略这两者的 区别,统称为可编程逻辑器件或 CPLD/PGFA。CPLD/PGFA 几乎能完成任何数 字器件的功能,上至高性能 CPU,下至简单的 74 电路。它如同一张白纸或是一 堆积

5、木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数 字系统。通过软件仿真可以事先验证设计的正确性,在PCB 完成以后,利用CPLD/FPGA 的在线修改功能,随时修改设计而不必改动硬件电路。使用 CPLD/FPGA开发数字电路,可以大大缩短设计时间,减少PCB 面积,提高系统的可靠性。这些优点使得 CPLD/FPGA 技术在 20 世纪 90 年代以后得到飞速的发 展,同时也大大推动了 EDA 软件和硬件描述语言 HDL 的进步。1.2 FPGA 基本结构FPGA 具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FP

6、GA般由 3 种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这 3 种可编程电路是:可编程逻辑模块( CLB-Configurable Logic Block )、输入/输出 模块 ( IOB-I/O Block )和互连资 源( IRInterconnect Resource。可编程逻辑模块 CLB 是实现逻辑功能的基本单元,它们通常规则 的排列成一个阵列,散布于整个芯片;可编程输入/输出模块( IOB )主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资 源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB 之间或CLB、IOB 之间以及

7、IOB 之间连接起来,构成特定功能的电路。1.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,而另一个输入信号是来自信号变换电路的输出 H10这个函数发生器能实现 3 输入变量的

8、各种组合函数。这 3 个函数发生器结合 起来,可实现多达 9 变量的逻辑函数。CLB 中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器 G、F 和 H 的输出可以连接到 CLB 输出 端X 或丫,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以 及输出信号0这些数据选择器的地址控制信号均由编程信息提供,从而实现所 需的电路结构0CLB 中的逻辑函数发生器 F 和 G 均为查找表结构,其工作原理类似于 ROMoF 和G 的输入等效于 ROM 的地址码,通过查找 ROM 中的地址表可以得到相应的 组合逻辑函数输出。另外,逻辑函数发生器

9、F 和 G 还可以作为器件内高速 RAM 或 小的可读写存储器使用,它由信号变换电路控制02 输入/输出模块 IOBoIOB 提供了器件引脚和内部逻辑阵列之间的连接。它 主要由输入触发器、输入缓冲器和输出触发 /锁存器、输出缓冲器组成。每个 IOB 控制一个引脚,它们可被配置为输入、输出或双向I/O 功能。当IOB 控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。 缓冲器的输出分成两路:一路可以直接送到 MUX ,另一路延时几个纳秒(或者没有延时)后送到输入通路 D 触发器,再送到数据选择器。通过编程给数据选 择器不同的控制信息,确定送至 CLB 阵列的 11 和 I2 是来自

10、输入缓冲器,还是来 自触发器。当 IOB 控制的引脚被定义为输出时, CLB 阵列的输出信号 OUT 也可以有两 条传输途径:一条是直接经 MUX 送至输出缓冲器,另一条是先存入输出通路 D 触发器,再送至输出缓冲器。IOB 输出端配有两只 MOS 管,它们的栅极均可编程,使 MOS 管导通或截 止,分别经上拉电阻接通 VCC、地线或者不接通,用以改善输出波形和负载能 力。3.可编程互连资源 IR。 可编程互连资源 IR可以将 FPGA内部的 CLB和 CLB之 间、CLB 和 IOB 之间连接起来,构成各种具有复杂功能的系统。IR 主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动

11、布线实现各种电路的 连接。高层次设计只是定叉系统的行为特征,可以不涉及实现工艺,因此还可以在厂 家综合库的支持下,利用综合优化工具将高层次描述转换为针对某种工艺优化 的网络表,使工艺转化变得轻而易举。CPLD/FPGA 系统设计的工作流程如图 2.2 所示。流程说明:1.工程师按照 自顶向下”的设计方法进行系统划分。2 输入 VHDL 代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式,这种输入方式具有直观、容易理解的优点一般说来, 个较大的模块卩 现,这就是自顶J图CLB 基系统计流程CLBCLBCLBCLBBCLBCLBCLBo能PCLBCLBCLB.3CLBF的设计万3.将

12、以上的设计输入编译成标准的 VHDL 文件。4进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤 适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大 大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对供应商的某一产品系列进行的,I所以综合的过程要在相应的厂家综合库的支持 下才能完成。图 1.2 CPLD/FPGA 系统设计流程1.4FPGA 开发编程原理硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实 现方案,画出系统框图,选择芯片,设计 PCB 并最终形成样机。CPLD/FPG

13、A 软件设计可分为两大块:编程语言和编程工具。编程语言主要有 VHDL 和 Verilog 两种硬件描述语言;编程工具主要是两大厂家Altera 和 Xili nx的集成综合 EDA 软件 Quartusll 以及第三方工具。具体的设计输入方式有以下几 种:5.利用综合器对 VHDL 源代码进行综合优化处理,生成门级描述的网络表文ASIC 芯片VHDL 代码或图形方式输入6利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器般的设计,也可略去这一步骤。勺目标器件进行逻辑映 射操作,包括底层器件配置、逻辑分割、I逻辑优化和布局布线件的硬件特性,是较为粗略的。7.利用适配器将综合后的网络

14、表文件针级功能一具体白仿真综合库 -综合器8.在适配完成后,产牛多项设计结 艮告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;b适适配后的仿真模型;据适配后的仿真模型,可以进行适配后时序仿,因为已经得到器件的实际硬 件特性(如时延特性),所以仿真 能。如果仿真结果达不到设计要求,就修改CPLD/FPGA中50适配后时序仿真C.器件编程文件。根比较精确的预期未来芯片的实际性HDL 源代码或选择不同速度和品CPLD/FPGA实现适配报告4 入本【口 :尸廿亠汽/ J 冲111/J心丿1ASIC 实现1.HDL 语言方式。HDL 既可以描述底层设计,也可以描述顶层的设计,但 它不容易做到较高

15、的工作速度和芯片利用率。用这种方式描述的工程最后所能 达到的性能与设计人员的水平、经验以及综合软件有很大的关系。2.图形方式。可以分为电路原理图描述,状态机描述和波形描述 3 种形式。 电路原理图方式描述比较直观和高效,对综合软件的要求不高。一般大都使用 成熟的 IP 核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑 器件的内部去,其硬件工作速度和芯片利用率很高,但是当工程很大时,该方 法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路。在 图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应 的输入输出,最后生成 HDL 语言描述,送去综合软件综合到

16、可编程逻辑器件的 内部。由于状态机到 HDL 语言有一种标准的对应描述方式,所以这种输入方式 最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是 基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。第二章数字钟总体设计方案2.1数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数 的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校 时电路,同时标准的 1HZ 时间信号必须做到准确稳定,通常使用石英晶体振荡 器电路构成数字钟。本设计总体框架见附图。2.2数字钟的工作原理振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经

17、过分频 器输出标准秒脉冲。秒计数器满 60 后向分计数器进位,分计数器满 60 后向小时 计数器进位,小时计数器按照 “2 翻 4 1”规律计数。计数满后各计数器清零,重新 计数。计数器的输出分别经译码器送数码管显示。计时出现误差时,可以用校 时电路校时、校分。控制信号由 15 矩形键盘输入。时基电路可以由石英晶体振 荡电路构成,假设晶振频率 1MHz,经过 6 次十分频就可以得到秒脉冲信号。译 码显示电路由八段译码器完成。2.3数字钟硬件电路设计1.系统芯片的选取本系统拟采用 Altera 公司 Cyclone 系列的 EP1C3T144 芯片。选用该款芯片 的原因是:1Altera 公司的

18、 Quartus II 开发环境非常友好、直观,为整个系统的开发提供了 极大的方便;2该 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 口,

19、这些接口 用于连接业界标准的外部存储器器件,具有成本低和使用方便的特点,具有以 下特性:1新的可编程架构通过设计实现低成本;2嵌入式存储资源支持各种存储器应用和数字信号处理器(DSP);3采用新的串行置器件如 EPCS1 的低成本配置方案;4支持 LVTTL、LVCMOS、SSTL-2 以及 SSTL-3 I/O 标准;5支持 66MHZ, 32 位 PCI 标准;6支持低速( 311Mbps) LVDS I/O;7支持串行总线和网络接口及各种通信协议;8使用 PLL 管理片内和片外系统时序;9支持外部存储器,包括 DDR SDRAM ( 133MHZ), FCRAM 以及 SDRSDRAM

20、;10支持多种 IP,包括 Altera 公司的 MegaCore 以及其合伙组织的 IP,支持 最新推出的 Nios II 嵌入式处理器,具有超凡的性能、低成本和最完整的一套软 件开发工具。7EP1C3T144 引脚图如图 2.1 所示。图 3.1 EP1C3T144 引脚图2.显示电路设计显示电路所选用 4 个数码管以静态显示驱动方式完成时、分显示。静态驱 动是指每个数码管的每一个段码都由一个 I/O 端口进行驱动,其优点是编程简 单,显示亮度高,缺点是占用 I/O 端口多。显示电路原理图如图 3.2 所示图 2.2 LED 静态驱动显示原理图第三章单元电路设计3.1分频模块电路设计晶体振

21、荡器是构成数字式时钟的核心,振荡器的稳定度及频率的精度决定 了数字钟计时的准确程度,它保证了时钟的走时准确及稳定。石英晶体的选频特性非常好,只有某一频率点的信号可以通过它,其它频 率段的信号均会被它所衰减,而且,振荡信号的频率与振荡电路中的R、C 组件的数值无关。因此这种振荡电路输出的是准确度极高的信号。然后再利用分频 电路,将其输出信号转变为秒信号,其组成框图如图3.1。图 3.1 秒信号产生电路框图本系统使用的晶体振荡器电路给数字钟提供了一个频率稳定准确的20MHZ的方波信号,其输出至分频电路。分频电路的逻辑框图如图3.2 所示。图 3.2 分频电路模块经分频后输出 1HZ 的标准秒信号

22、oclkls、500HZ 的按键消去抖信号。该模 块的时序仿真图如图 3.3 所示,满足设计要求。图 3.3 分频模块仿真图3.2校时控制模块电路设计3.2.1 按键消抖本模块用于当有按键按下时,采用软件的办法去除按键抖动。模块的实现 方法是先判断是否有按键按下,如有按键按下则延时一段时间,待抖动过去之 后再读行线状态,如果仍有低电平行线,则确定有按键按下,然后产生一个有按键按下的信号。该模块有一个时钟输入端口,输入时钟信号是分频出来的 500HZ 的时钟;有一个输入端口与行线相连,用于输入行线状态;一个输出端 口,用于输出有按键按下的信号。该模块的逻辑框图如图3.4 所示。图 3.4 消抖逻

23、辑框图该模块在这里实现的比较简单,原理是当有按键按下的时候, inkey 会变成 低电平,如果此时 count 不为 30 时,内部计数器计数,从 0 直到 30,当计数到 30 时,okey输出底电平,同时给计数器赋值为 30。由于计数脉冲为 500HZ, 故从有按键按下到输入信号产生大概需要60ms。而按键产生抖动的时间大约2ms 到 10ms,所以一旦计数完成,抖动已经过去,不会发生重键现象了,这样 就去除了抖动。该模块的仿真波形如图 3.5 所示。图 3.5 按键消抖模块波形仿真3.2.2 按键控制模块按键控制模块的框图如图 4.6 所示。ab图 3.6 按键控制模块图 3.6 中 a

24、 图是控制分的高位,低位以及小时的高位的模块,b 图是控制小时的低位的模块。 inkey 是由消抖模块输出的有键按下的信号,这个信号引发按 键控制模块内部信号的变化。 oaddr3.0作为输出信号,用于控制时间的调整。 b 图中的flag 是判断小时高位是 1 还是 2 的信号,若为 1,则 flag 信号为低电 平;若为 2,则 flag信号为高电平。1.分低位按键控制核心程序如下:ENTITY addram ISPORT(inkey : IN STD_LOGIC 。oaddr : OUT STD_LOGIC_VECTOR ( 3 downto 0)END addram。ARCHITECTU

25、RE addram_architecture OF addram ISsignal count:std_logic_vector(3 downto 0)。BEGINoaddr=count。k1:process( inkey)beginif rising_edge(inkey) thencount=count+1。if count=9 thencount=0000。end if。end if。end process k1。END addram_architecture。说明:每按键一次,即每当 inkey 的上升沿到来时, count 加一,当 count 等于 9 的时候,作为分的低位,将 0

26、 赋值于 count,在此过程中,随时将十进制数的 count 的值的8421 码作为 oaddr 的信号。对于分的高位,仅将程序中的 count=9 改成 count=5 即可; 对于小时的高位,仅将程序中的 count=9 改成 count=2 即可。 该模块的仿真波形如图 3.7 所示。图 3.7 分低位按键控制模块波形仿真2.小时低位按键控制核心程序如下:ENTITY addram3 ISPORT(inkey : IN STD_LOGIC 。flag : IN STD_LOGIC 。oaddr : OUT STD_LOGIC_VECTOR (3 downto 0)。END addram

27、3。ARCHITECTURE addram3_architecture OF addram3 ISsignal count:std_logic_vector(3 downto 0)。BEGINoaddr=count。k1:process( inkey,flag)beginif rising_edge(inkey) thenif flag=1 thenif count=3 then count=0000。elsecount=count+1。end if。elsecount=count+1。if count=9 thencount=0000。end if。end if。end if。end pro

28、cess k1。END addram3_architecture。说明:当 flag 为高电平时,即小时高位为 2,小时低位只能在 0 到 3 之间变动; 当 flag为低电平时,即小时高位为 1,小时低位可以在 0 到 9 之间变动。 该模块的仿真波形如图 3.8 所示。图 3.8 小时低位按键控制模块波形仿真3.3 计数模块1.秒计数模块该模块框图如图 3.9 所示。模块主要完成秒向分的进位,产生脉冲信号图 3.9 秒模块逻辑框图核心程序如下:ENTITY second ISPORT(clk_1s : IN STD_LOGIC 。os : OUT STD_LOGIC )。END secon

29、d。ARCHITECTURE sec_architecture OF second IS BEGINk1:process( clk_1s) variable count:integer range 0 to 100:=0。 beginif rising_edge(clk_1s) thenif count=59 then os=1。 count:=0。else os=0。 count:=count+1。end if。end if。end process k1。 该模块的仿真波形如图 3.10 所示。图 3.10 秒计数模块波形仿真2.分低位计数器该模块框图如图 3.11 所示。主要完成分低位向高

30、位的进位,产生脉冲信图 3.11 分低位逻辑框图核心程序如下:ENTITY ml ISPORT(clk_1s : IN STD_LOGIC 。iset : IN STD_LOGIC 。iset_addr : IN STD_LOGIC_VECTOR (3 DOWNTO 0) addr_1s : OUTSTD_LOGIC_vector( 3 downto 0)。 os : OUT STD_LOGIC )。END ml 。ARCHITECTURE ml_architecture OF ml ISBEGIN k1:process( clk_1s,iset) variable count:integer

31、 range 0 to 10:=0。 beginif iset=0 thencount:=CONV_INTEGER (iset_addr)。 addr_1s=iset_addr。elsif rising_edge( clk_1s) thenif count=9 then os=1。 count:=0。addr_1s=CONV_STD_LOGIC_VECTOR elseos=0。 count:=count+1。addr_1s=CONV_STD_LOGIC_VECTOR end if。end if。end process k1。END ml_architecture。 说明:对于分高位计数模块的程

32、序,只需将上面程序中的count=9 改成 count=6即可。3.小时低位计数模块 该模块框图如图 3.12 所示。主要完成小时低位向高位的进位,产生脉冲信 号,同时根据 flag 信号的不同判断出小时高位时 1 还是 2。图 3.12 小时低位计数模块组件图count,4)。count,4)。核心程序如下:ENTITY hl ISPORT(clk_1s : IN STD_LOGIC 。iset : IN STD_LOGIC 。flag : IN STD_LOGIC 。iset_addr : IN STD_LOGIC_VECTOR (3 DOWNTO 0)。 addr_1s : OUTSTD

33、_LOGIC_vector( 3 downto 0)。 os : OUT STD_LOGIC )。END hl。ARCHITECTURE hl_architecture OF hl ISBEGINk 1 :process( c lk_ 1 s,iset)variable count:integer range 0 to 10:=0。 beginif iset=0 then count:=CONV_INTEGER (iset_addr)。 addr_1s=iset_addr。elsif rising_edge(clk_1s) then if flag=1 thenif count=3 then

34、os=1。 count:=0。addr_1s=CONV_STD_LOGIC_VECTOR( count,4)。elseos=0。count:=count+1。addr_1s=CONV_STD_LOGIC_VECTOR( count,4)。end if。elseif count=9 thenos=1。count:=0。addr_1s=CONV_STD_LOGIC_VECTOR( count,4)。elseos=0。count:=count+1。addr_1s=CONV_STD_LOGIC_VECTOR( count,4)。end if。end if。end if。end process k1。E

35、ND hl_architecture。4.小时高位计数模块该模块框图如图 3.13 所示,主要完成小时高位 1 和 2 之间的变换,同时当 小时高位为 2 时,flag 为高电平,当为 1 时,flag 为低电平。图 3.13 小时高位计数模块组件核心程序如下:ENTITY hh ISPORT(clk_1s : IN STD_LOGIC 。iset : IN STD_LOGIC 。iset_addr : IN STD_LOGIC_VECTOR (3 DOWNTO 0) addr_1s : OUTSTD_LOGIC_vector( 3 downto 0)。 flag: OUT STD_LOGIC

36、 )。END hh。ARCHITECTURE hh_architecture OF hh ISBEGIN k1:process( clk_1s,iset) variable count:integer range 0 to 2:=0。 begin ifiset=0 thencount:=CONV_INTEGER (iset_addr)。 addr_1s=iset_addr。if count=2 then flag=1。elseflag=0。end if。elsif rising_edge( clk_1s) thenif count=2 then flag=0。 count:=0。addr_1s

37、=CONV_STD_LOGIC_VECTOR elsifcount=1 thenflag=1。 count:=count+1。addr_1s=CONV_STD_LOGIC_VECTOR elseflag=0。count:=count+1。addr_1s=CONV_STD_LOGIC_VECTOR (count,4)end if。end if。end process k1。END hh_architecture。3.4 译码显示模块该模块完成对计数器编码信息的译码工作,驱动数码管则显示相应的数 字。模块组件如 3.14 所示。count,4)。count,4)。图 3.14 译码显示模块组件核心

38、程序如下:ENTITY drive ISPORT(clk:in std_logic 。addr : IN STD_LOGIC_vector ( 3 downto 0)。 led : OUTSTD_LOGIC_vector (7 downto 0)。 END drive。ARCHITECTURE behave OF drive ISSIGNAL sel:STD_LOGIC_vector (3 downto 0)。BEGINprocess(clk )beginselledledledledledledledledledledled=10111111。end case。end process。end

39、 behave。 该模块的仿真波形如图 3.15 所示。图 3.15 译码显示波形仿真3.5译码显示强制转换模块由于系统只能显示时、分,故在此将时低位的数码管的 “小数点 ”作为秒显 示,以 1HZ 的频率闪烁。模块组件如图 3.16 所示。图 3.16 译码显示强制转换模块组件3.6整点报时模块该模块能够完成整点时的报时功能。即将至整点时,前四秒低音,最后一 秒高音。该模块在十二点三十分的时候,蜂鸣器响起音乐,持续一分钟。模块 组件如图 3.17 所示。图 3.17 整点报时模块组件1.整点报时核心程序如下:if rising_edge( clk05s) thenif cnt=119 the

40、ncnt:=0。elsecnt:=cnt+1。end if。if mh=0101 and ml=1001 and( cnt=117 or cnt=115 or cnt=113 orcnt=111) thenc=0。elsec=1 。end if 。if mh=0000 and ml=0000 and (cnt=119 or cnt=0 or cnt=1)then d=0。elsed=1。end if。end if。end process。a=clk1k and not( d)。b=clk05s and not(c)。speaker=a or b。说明:改程序中的时钟信号 clk05s 的频率为 2HZ,且其有效电平(高电 平)占空比为 2/3。该模块仿真波形如图 3.18 所示。图 4.18 整点报时模块波形仿真总结主要参考文献1 王紫婷,吴蓉,张彩珍, EDA 技术与应用,兰州大学出版社, 20032 潘松,黄继业, EDA 技术实用教程,北京科学出版社, 20063 崔葛,基于 FPGA 的数字电路系统设计,西安电子科技大学出版社,20084 王开

温馨提示

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

评论

0/150

提交评论