基于VHDL任意进制计数器(100以内)设计.doc

基于VHDL任意进制计数器(100以内)设计.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 2 VHDL课程设计 选题:任意进制计数器(100以内)设计 班级: 学号姓名: 2014/5/23 目录 TOC \o 1-3 \h \z \u 1、设计选题:任意进制计数器(100以内)设计 3 2、设计要求 3 3、设计原理分析 3 4、程序编写、调试及仿真 4 4.1程序编写 4 4.11、n进制计数器顶层程序: 4 4.12、10进制计数器程序: 5 4.13、LED译码器程序: 6 4.14、50M分频器程序: 6 4.15、5分频程序: 7 4.16、10分频程序: 8 4.2功能仿真和芯片时序仿真 9 4.21、5分频仿真波形 9 4.22、50分频仿真波形() 9 4.23、10进制计数器仿真波形 9 4.24、LED译码器仿真波形 10 4.25、78进制计数器仿真波形 10 4.3、芯片引脚设定 10 4.4、适配下载结果 11 5、设计总结 11 1、设计选题:任意进制计数器(100以内)设计 2、设计要求 (1)计数基数由输入确定,并采用按键所存,即按键每按下一次,存储计数基数(20—100之间),计数基数采用8421BCD码表示,否则改变开关输入无效。 (2)计数频率要求为每秒计数1次(仿真时可以调整为每10us计数1次); (3)计数值用共阴数码管静态显示(实验板上自带); (2)设计中系统时钟采用验证电路板上的50MHz晶振作为基准,且设计成同步电路; (4)程序设计尽可能考虑模块化、参数化设计思想,并遵循基本的格式规范,添加适当的注释及文档说明; (5)采用模块化设计方式,底层模块必须进行功能仿真; (6)下载调试并编写设计总结报告。 3、设计原理分析 先对50MHz时钟信号分频得到1Hz,然后调用两个10进制计数器,计数到所输入的计数周期n后回到初始0的计数状态,每个10进制计数的计数结果通过显示译码送到两位数码管上显示。判断计数器(20-100之间)是否计满计数周期的方式是:将计数基数采用两个8421BCD码表示,分别为ge[3:0]、shi[3:0],将两个计数器计数产生的中间结果分别用“按位异或”(每位使用“(not (cont_tmp10(3) xor shi(3))”的方式实现)分别比对,当ge、shi每位都相同时,则说明计数完毕,重新载入初值”0000”,同时产生进位信号en_out,之后进入下一次计数周期,并以此循环。 4、程序编写、调试及仿真 (芯片型号:MAXⅡ系列EPM1270T144C5) 4.1程序编写 4.11、n进制计数器顶层程序: library ieee; use ieee.std_logic_1164.all; entity count_n is port(clk,rst,en:in std_logic; ge,shi:in std_logic_vector(3 downto 0); count_data10,count_data1: out std_logic_vector(6 downto 0); en_out :out std_logic ); end count_n; architecture rtl of count_n is component divide_50M port(clk,rst:in std_logic;en_out :out std_logic); end component; component count_10 port(clk,rst,en_in,ld:in std_logic; data_in:in std_logic_vector(3 downto 0); data_out:out std_logic_vector(3 downto 0); en_out :out std_logic); end component; component decode port(data_in:in std_logic_vector(3 downto 0); dis_num :out std_logic_vector(6 downto 0)); end component; signal cont_tmp10,cont_tmp1,data_in:std_logic_vector(3 downto 0); signal ld,ks,sec_en,sec_en10,min_out,fuwei:std_logic; begin data_in=0000; ks=sec_en and en; ld=( (not

文档评论(0)

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

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

1亿VIP精品文档

相关文档