模可变计数器eda_第1页
模可变计数器eda_第2页
模可变计数器eda_第3页
模可变计数器eda_第4页
模可变计数器eda_第5页
全文预览已结束

下载本文档

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

文档简介

1、学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期:实验成绩: 实验二 模可变计数器设计一、实验目的(1)进一步熟悉和掌握Quartus II软件的各模块功能和使用方法;(2)学习静态数码管的输出方法;(3)加深对VHDL语言的了解,熟悉VHDL 语言的语法特点,深刻了解Quartys II仿真中出现的各种问题并能加以解决。二、实验要求学习多层次设计方法,设置一位控制位M,要求M=0:模23计数;M=1:模109计数;计数结果用静态数码管显示。三、设计原理(1)由于实验要求是设计模可变的计数器,故可设置一个控制位M,让其在二进制变化时相应的控制模变来进行计数。(2)

2、由模控制位进行计数中可以设置两个变量进行实体计数中的操作,而且实体程序中用BCD码进行计数,而在数码管中则显示十进制数,故这就要考虑到十进制计数与十六进制计数时在进位溢出时的差异,具体情况看下面程序部分。(3)参考书上P89页的例4-22可以把除计数部分的程序基本确定,只是需要改动部分即可,而计数部分则要注意十进制计数与十六进制计数的区别了。实验程序如下(-实用程序来自于书P89的例4-22加上自己的改动和同学讨论)LIBRARY IEEE ;ENTITY count ISPORT (CLK,RST,en,M : IN STD_LOGIC; -输入信号端口CQ: OUT STD_LOGIC_V

3、ECTOR (11 DOWNTO 0 ; -计数值输出端口COUT :OUT STD_LOGIC; -计数达到模值时进位标志位END ENTITY count;ARCHITECTURE one OF count ISBEGIN PROCESS (CLK,RST,en,MVARIABLE CQI :STD_LOGIC_VECTOR (11 DOWNTO 0 ;VARIABLE mode :STD_LOGIC_VECTOR (11 DOWNTO 0 ;BEGINIF M='0' THEN mode := "000000100010" -M=0时,模23计数器EL

4、SIF M='1' THEN mode := "000100001000" -M=1时,模109计数器END IF;IF RST='1' THEN CQI := (OTHERS => '0' ; -复位键RET,高电平复位ELSIF CLK'EVENT AND CLK ='1' THENIF en ='1' THENIF CQI ELSIF CQI -计数到99时,100转换为BCD码加103ELSIF CQI(3 DOWNTO 0 = "1001" THEN

5、CQI := CQI + “0111”; -计数到9时,10转换为BCD码加7ELSE CQI:=(OTHERS =>'0'END IF;END IF;END IF;IF CQI = mode THEN COUT <= '1'ELSE COUT <= '0'END IF;CQ <= CQI;END PROCESS;END ARCHITECTURE one;四、实验设备PC机一台 ,Quartus II软件一套,EDA实验箱一个五、实验步骤1.建立文件夹,然后把上述实用程序输入新建的VHDL File的窗口中并命名count

6、存于上述文件夹中;2.选择目标文件进行编译调试;3.建立仿真波形文件,进而进行仿真,得到仿真波形;en=0,不计数,保持当前值4. 锁定引脚如下: CLK79,RST53,en54,M55,COUT208,CQ0172, CQ1173, CQ2174, CQ3175, CQ4176, CQ5177, CQ6179, CQ7180, CQ8186, CQ9187, CQ10189, CQ11190 ; 5.编程下载并进行硬件测试;6.对下载结果和硬件测试结果进行验证。六、仿真结果仿真波形1及其分析结果:M由01时继续计数RST=1,复位不计数RST=0,不计数 CQI=mode时,COUT=1M

7、由10时,视情况而定,看是清零还是继续计数,这里是继续计数仿真波形2及其分析结果:仿真波形3及其分析结果:M由10时,清零后再计数 七、测试及验证结果当M接低电平时,数码管显示的是022的循环;当M接高电平时,数码管显示的是0108的循环;当RST,en按照上述程序操作的时候,结果与程序描述的一样。八、实验小结在预习编写该实验程序时,出现了一个语言结构的问题就是把程序中的计数部分写成下面这情况:IF en ='1' THEN IF CQI <mode THEN IF CQI (3 DOWNTO 0 < 9 THEN CQI := CQI + 1;ELSIF CQI(

8、3 DOWNTO 0 = 9 THEN CQI := CQI +7;IF CQI(7 DOWNTO 0 = "10011001" THEN CQI := CQI + "000001100111"END IF;END IF;ELSE CQ1:=(OTHERS =>'0'结果就是仿真波形出现了bug,在模109计数的时候,当计数到99的时候下一位出现的是A0然后再是100,也就是说是多了个A0,后来和同学讨论之后把上述计数程序改成设计原理中的那个计数部分的程序,结果就正确了。通过本实验,加深了对VHDL语言的应用,以及加强了对EDA实验过程中出现的各种问题的解决方法,熟悉了EDA实验箱各模块的元件及对实

温馨提示

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

评论

0/150

提交评论