实验二 模可变计数器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE PAGE 1 南昌大学实验报告 学生姓名: 学 号: 专业班级:中兴101班 实验类型:□验证 □综合 ■设计 □创新 实验日期:2012、10、18 成绩: 实验二 模可变计数器的设计 一、实验目的 1.学习计数器的VHDL设计、波形仿真和硬件测试; 2.学会自己设计程序; 3.学会设计模可变计数器; 4.学习多层次设计方法。 二、实验内容与要求 1.计设置一位控制模的位M,要求M=0:模23计数;当M=1:模109计数。 2.计数结果用静态数码管显示,一个四位二进制表示0~9中的一个数; 3.给出此项设计的仿真波形; 4.应用实验装置验证此计数器的功能。 三、实验思路 1.按照实验要求,本实验可分为四个模块进程: 分频、模23与109计数转换、数码管控制、七段译码。 2.模可变计数器原理: 即在原有的模值计数器上加入模值转换功能 3.计数器的数码管显示 需注意十位和百位的进位即:当个位数的数值为9的下一个脉冲来时转换为,同时向十位进一,转换的算法为: 9(1001)+7(0111)=0(0000),并进一位; 当数值为99时,用同样的方法转换: 153(1001 1001B,数码管显示99)+103)=100(0001 0000 0000); 4.要求分别实现模23和模109的计数,因此我分别用buffer变量GW、SW 、 BW 代表个位、 十位、百位。还有一个控制模的位M,当M为0时实现模23计数,只用到GW和SW分别为个位和十位计数;当M为1时实现模109计数,用GW 、SW、 BW 分别为个位 十位和百位计数。由于端口不能参与运算,因些在结构体中定义了se10、 sel1、 sel2三个buffer变量,分别用来对应SEL(0)、 SEL(1)、SEL(2);在程序的最后用端口接收信号。 5.进程敏感信号为RST EN M 三个,当RST为低电平,EN为高电平时则计数,否则不计数。 6. 位选信号的设置: 用整形变量CNT8分别使不同的位选信号对应不同的输入,而得到不同输出。 对应关系: 表一 位选信号 Sel2sel1sel0 000 001 010 011 D Q7 Q6 Q5 Q4 sel2sel1sel0 100 101 110 111 D Q3 Q2 Q1 Q0 7.模23与模109计数转换思路框图: 图一 思维框图 四.实现方法一:原理图输入法设计(自己独立完成) 1. 建立文件夹 建立自己的文件夹(目录),如c:\myeda,进入Windows操作系统 Quartus II不能识别中文,文件及文件夹名不能用中文。 2. 原理图设计输入 打开Quartus II,选菜单File→New,选择“Device Design File-Block Diagram-Schematic File”项。点击“OK”,在主界面中将打开 “Block Editor”窗口。 分频器模块:(实体名为CLKDIV) --时间:2012年9月28号 --版本:7.0 --功能:分频器(100分频) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CLKDIV IS—定义实体名为CLKDIV PORT(CLK : IN STD_LOGIC;--输入信号为自带时钟 CLK_DIV : OUT STD_LOGIC);--输出信号为分频后的时钟信号 END CLKDIV; ARCHITECTURE RT1 OF CLKDIV IS SIGNAL DATA:INTEGER RANGE 0 TO 100;--实现100分频 SIGNAL CLK_TEMP:STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF RISING_EDGE(CLK) THEN IF(DATA=100) THEN DATA=0; CLK_TEMP=NOT CLK_TEMP; ELSE DATA=DATA+1; END IF; END IF; CLK_DIV=CLK_TEMP; END PROCESS; END RT1; (2)计数模块:(实体名为COUNT) --时间:2012年9月28号 --版本:7.0 --功能:模可变计数器 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档