首页 用VHDL实现数字时钟的设计

用VHDL实现数字时钟的设计

举报
开通vip

用VHDL实现数字时钟的设计 收稿日期 :2007 - 06 - 04  第一作者  刘竹林  男  27 岁  助教 用 V HDL 实现数字时钟的设计 刘竹林  李晶骅 (十堰职业技术学院电子工程系 ,湖北 十堰 442000) 摘  要 :以一款数字钟设计为例 ,较详细的介绍了如何用 VHDL 语言设计数字电路 ,并给出了部分程序、仿真 波形图 ,并在 MAX + plusII 中进行编译、仿真、下载。由此说明利用 VHDL 开发数字电路的优点。 关键词 :VHDL ;设计 ;数字钟 ;应用电路 中图分类号 : TN953   文...

用VHDL实现数字时钟的设计
收稿日期 :2007 - 06 - 04  第一作者  刘竹林  男  27 岁  助教 用 V HDL 实现数字时钟的设计 刘竹林  李晶骅 (十堰职业技术学院电子工程系 ,湖北 十堰 442000) 摘  要 :以一款数字钟设计为例 ,较详细的介绍了如何用 VHDL 语言设计数字电路 ,并给出了部分程序、仿真 波形图 ,并在 MAX + plusII 中进行编译、仿真、下载。由此说明利用 VHDL 开发数字电路的优点。 关键词 :VHDL ;设计 ;数字钟 ;应用电路 中图分类号 : TN953   文献标识码 :A 0  引言 VHDL 硬件描述语言在电子设计自动化 ( EDA) 中扮演 着重要的角色 ,它的出现极大的改变了传统的设计方法、设 计过程乃至设计观念。由于采用了“自顶向下”( Top2Down) 的全新设计方法 ,使设计师们摆脱了大量的辅助设计工作 , 而把精力集中于创造性的 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 与概念构思上 ,用新的思路来 发掘硬件设备的潜力 ,从而极大地提高了设计效率 ,缩短了 产品的研制周期。 这种设计方法首先从系统设计入手 ,在顶层进行功能方 框图的划分和结构设计。在方框图一级进行仿真、纠错 ,并 用硬件描述语言对高层次的系统行为进行描述 ,在系统一级 进行验证。然后用综合优化工具生成具体门电路的网表 ,其 对应的物理实现级可以是印刷电路板或专用集成电路。由 于设计的主要仿真和调试过程是在高层次上完成的 ,这不仅 有利于早期发现结构设计上的错误 ,避免设计工作的浪费 ,而 且也减少了逻辑功能仿真的工作量 ,提高了设计的一次成功率。 1  用 V HDL 设计一款数字钟 我们设计的数字时钟原理框图如图 1。其基本功能划 分为 :计数模块 (包括秒、分、时) 、译码模块、扫描显示控制模 块。计数模块由两个 60 进制计数器和一个 24 进制计数器组 成 ,分别对秒、分、小时进行计数 ,当计数到 23 点 59 分 59 秒 的时候 ,即一天结束 ,计数器清零 ,新的一天重新开始计数。 图 1  数字时钟原理框图 秒计数器的计数时钟信号为 1Hz 的标准信号 ,可以由系 统板上提供的 4MHz 信号通过 222分频得到。秒计数器的进 位输出信号作为分钟计数器的计数信号 ,分钟计数器的进位 输出信号又作为小时计数器的计数信号。设计一个同时显 示时、分、秒 6 个数字的数字钟 ,则需要 6 个七段显示器。若 同时点亮这 6 个七段显示器 ,则电路中会产生一个比较大的 电流 ,很容易造成电路烧坏 ,我们通过扫描电路来解决这一 问题 ,通过产生一个扫描信号 CS(0) - CS(5) 来控制 6 个七 段显示器 ,依次点亮 6 个七段显示器 ,也就是每次只点亮一 个七段显示器。只要扫描信号 CS(0) - CS(5)的频率超过人 的眼睛视觉暂留频率 24Hz 以上 ,就可以达到尽管每次点亮 单个七段显示器 ,却能具有 6 个同时显示的视觉效果 ,而且 显示也不致闪烁抖动。 其中 6 位扫描信号一方面控制七段显示器依次点亮 ,一 方面控制 6 选 1 选择器输出相应显示数字。 2  模块设计 2 . 1  VHDL 语言的基本结构 一个独立的设计实体通常包括 :实体 ( EN TITY) 、结构 体 (ARCHITECTURE) 、配置 (CONFIGURA TION) 、包集合 (PACKGE) 、和库 (L IBRAR Y) 5 个部分。其中实体用于描述 所设计的系统的外部接口信号 ;构造体用于描述系统内部的 结构和行为 ;建立输入和输出之间的关系 ;配置语句安装具 体元件到实体 —结构体对 ,可以被看作是设计的零件清单 ; 包集合存放各个设计模块共享的数据类型、常数和子程序 等 ;库是专门存放预编译程序包的地方。VHDL 程序设计基 本结构如图 2。 图 2  VHDL 程序设计基本结构 2 . 2  各模块的实现 2 . 2 . 1  计数模块 (建立 VHDL 语言的工程文件) 计数模块由两个 60 进制计数器和一个 24 进制计数器 组成 ,分别对秒、分、小时进行计数。其 VHDL 源程序相差 不大由于篇幅有限 ,这里我们以秒模块的实现为例。程序如 下 : library ieee ; use ieee. std - logic - 1164. all ; entity counter - 60 - bcd is 山西电子技术 2008 年第 1 期                                  应用实践  port (cen ,clk ,settime :in std - logic ;    q - one :out integer range 0 to 9 ;    q - ten :out integer range 0 to 9 ;     co :out std - logic) ; end counter - 60 - bcd ; architecture rtl of counter - 60 - bcd is  signal coo :std - logic ;  signal clkI :std - logic ;  component dff is   port (clk ,d :in std - logic ;      q :out std-logic) ;  end component ; begin  process(clk)   variable s - one :integer range 0 to 9 ;   variable s - ten :integer range 0 to 9 ;   begin     if clk’event and clk = ’1’then       if settime = ’1’then         if s - one < 9 then s - one : = s - one + 1 ;          else           s - one : = 0 ; if s - ten < 5 then s - ten : = s - ten + 1 ; else          s - ten : = 0 ;          end if ;       end if ;     elsif cen = ’1’then       if s - one < 9 then s - one : = s - one + 1 ;        else         s - one : = 0 ;         if s - ten < 5 then s - ten : = s - ten + 1 ;         else          s - ten : = 0 ;         end if ;        end if ;       end if ;   end if ;   q - one < = s - one ;   q - ten < = s - ten ;   if s - ten = 5 and s - one = 9 then     co < = ’1’;   else     co < = ’0’;   end if ; end process ; clkI < = not clk ; U1 :dff port map (clkI ,co ,co) ; 2 . 2 . 2  多路选择控制模块 多路选择控制模块中扫描控制电路产生扫描信号一方 面控制 6 个七段显示器每次只点亮一个七段显示器 ;另一方 面同时控制 6 ×1 多路选择器输出相应的显示数字。由于篇 幅有限代码就省略了。 2 . 2 . 3  显示译码模块的设计 该模块描述了一个共阴极数码管显示驱动电路 ,其输入 为选择控制模块的输出 ,输出信号分别接在数码管的的 7 个 段。例如当输入为‘0’时 ,输出就为“1111110”,数码管显示 0。由于篇幅有限代码就省略了。 3  各模块的编译、仿真 各模块设计完成后 ,就要对其进行功能仿真。打开 MAX + plusII ,选择菜单 File/ New 命令 ,进入出现对话框选 择中选择“Text Editor File”选项 ,即进入文本编辑方式新建 一个工程。在编译之前要此工程设置为当前工程。若没有 错误则编译通过。新建仿真文件 ,输入保存。这里以秒模块 的仿真为例 ,其结果如图 3。 图 3  秒模块的仿真结果 4  综合 在编译各模块的同时 ,生成符号文件 ,把各符号文件按照 逻辑功能连接起来 (如图 4) ,当然也可以利用元件例化语句进 行 ,然后加上输入输出端口构成顶层系统然后在进行编译。 5  程序下载至芯片 1) 点击主菜单 Assign/ Pin/ Location/ Chip 进行芯片脚位 设置。2) 将实体定义的端口名字和下载芯片的管脚进行具 体对应。3) 最后再进行一次编译 ,这时系统将产生可以向 EPF10 K10 下载的文件。4) 将带芯片的实验板通过下载电 缆与计算机并口相连 ,然后给实验板通电。5) 打开下载窗 口选择下载方式、下载器件型号最后点击 Configure 按钮将 程序写入芯片中。连接外围器件即可工作。 6  结束语 本文通过数字钟实现的例子展现出了现代电子设计新 方法2EDA 技术的灵活性 ,层次化设计方式的优点。VHDL 语言具有很强的电路描述和建模能力 ,能从多个层次对数字 系统进行建模和描述 ,从而大大简化了硬件设计任务 ,提高 了设计效率和可靠性。用 VHDL 语言实现电路设计者可以 专心致力于其功能的实现 ,而不需要对不影响功能的与工艺 (下转第 54 页) 84        山  西  电  子  技  术              2008 年 4) 系数 ,一般取为 0. 06~0. 2。 3. 3  仿真结果 设有 12 个城市 (或景点) ,今从某市出发遍历各城市 ,使 之旅行费用最少 (即找出一条旅费最少的路径) 。我们取种 群代数为 80 ,染色体个数为 100 ,变异概率为 0. 2 ,评价函数 alpha = 0. 1 ;利用 Matlab 所编的函数只要花 7. 094 秒就可以 得到最短路线。染色体种群进化过程实例如图 3 所示 : 参考文献 [1 ]  周明 ,孙树栋. 遗传算法原理及应用 [ M ] . 北京 :国防工 业出版社 ,2002. [2 ]  刘勇 ,康立山 ,陈毓屏 ,等. 非数值并行算法 —遗传算法 [ M ] . 北京 :科学出版社 ,1995. [3 ]  许家玉 ,经亚枝. 基于 DSP + FPGA 的遗传算法硬件实 现[J ] . 微计算机信息 ,2005 ,21 - 1 :127 - 128. [4 ]  刘海 ,郝志峰 ,林智勇. 改进遗传交叉算子求解 TSP 问 题[ J ] . 华南理工大学学报 (自然科学版 ) , 2002 , 30 (12) :71 - 73. 图 3  染色体种群进化过程 Solution of Travel ing Salesman Problem Based on Genetic Algorithm Wang Shui2ping  Lu Hua  Zhao Guang2yu ( N aval Representatives Of f ice of S hanghai Power S tation A uxiliary Equipment Works Co. , L td , S hanghai 200090 , China) Abstract :The working method of traveling salesman problem based on genetic algorithm is given in application , and combining the practical example , the process of the solution and the results simulation are also introduced in this paper. According to the analy2 sis ,the improved genetic algorithm can get the better result than the traditional genetic algorithm. This shows that the method has better feasibility and practicability. Key words :TSP ; genetic algorithm ; crossover operator (上接第 48 页) 相关的因素花费过多的时间和精力。它必将是现代电子的 重要设计手段和发展方向。 图 4  系统顶层图 参考文献 [1 ]  侯伯亨. VHDL 描述语言与数字逻辑电路设计 [ M ] . 西 安电子科技大学出版社 ,1999. [2 ]  潘松 ,黄继业. EDA 技术实用教程 [ M ] . 科学技术出版 社 ,2002. [3 ]  樊国梁. VHDL 语言设计数字电路 [J ] . 国外电子测量 技术 ,2005 (2) . [4 ]  刘丽华. 专用集成电路设计方法 [ M ] . 北京 :北京邮电 大学出版社 ,2000. Realization of Digital Electro Circuits Designing with VHDL Liu Zhu2lin  Li Jing2hua ( Dept . of Elect ronics Eng. , S hiyan Technical Institute , S hiyan Hubei 442000 , China) Abstract :By showing some program codes and emulational wave charts , the paper introduces the way to design digital electro cir2 cuits with VHDL in details and gives us an example of designing a digital clock. And it compiles , emulates and downloads them in MAX + plusII , which elucidates the advantages of developing digital electro circuits with VHDL . Key words :VHDL ; design ; digital clock ; application electro circuits 45        山  西  电  子  技  术              2008 年
本文档为【用VHDL实现数字时钟的设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_754688
暂无简介~
格式:pdf
大小:464KB
软件:PDF阅读器
页数:3
分类:互联网
上传时间:2012-03-29
浏览量:87