VHDL十六进制计数器_第1页
VHDL十六进制计数器_第2页
VHDL十六进制计数器_第3页
VHDL十六进制计数器_第4页
VHDL十六进制计数器_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、徐州工程学院信电工程学院可编程器件及应用实验课题名称 设计一个十六进制计数器姓 名王旭辉 20100504144 赵永发 20100504133谢臻 20010504121 杨红艳 20100504111学 号院、班 级10电信1班专 业电子信息科学与技术指导教师贾燕玲2013年 1月 2日一、 实验目的 1进一步了解VHDL设计方法2熟悉数码管和LED的显示二、 实验所用仪器及元器件1、 计算机2、 Quartus II 7.2 (32-Bit)软件3、 EP2C5实验箱三、 实验内容(1) 、设计一个十六进制计数器,用一个数码管、8个彩灯循环显示计数状态。(2) 、有清零信号控制,按下后从

2、零开始。四、 设计思路与过程根据实验要求,需要实现在拨码开关或者按键的控制下实现十六进制计数器。首先,确定输入输出变量:输入:拨码开关a:清零;时钟clk::提供有效时钟沿;输出SEL-LED:8维向量b:连接8个发光二极管。输出 SEL-DATA :8维向量c:连接数码管。 其次,确定电路工作状态因为要实现计数十六进制计数器,所以首先要实现在时钟控制下实现计数;还要考虑到清零信号;再次,实现对计术状态的表示;也就是让计数状态用数码管和LED显示出来。五、 VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNS

3、IGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY count16 ISPORT(CLK5:IN STD_LOGIC;RST :IN STD_LOGIC;SEG_SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);SEG_DA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);LED :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);ENDcount16;ARCHITECTURE BEHAVEOF count16 ISSIGNAL SHIFT_CNT,TEMP:STD_LOGIC_VECTOR(3

4、DOWNTO 0);SIGNAL CNT_VALUE:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK5)BEGIN IF RST='1' THEN TEMP <="0000"ELSIF CLK5'EVENT AND CLK5='1' THENIF TEMP="1111" THEN TEMP <="0000" ELSE TEMP<=TEMP+1; END IF;END IF;END PROCESS;SHIFT_CNT<=TEMP;

5、SEG_SEL<="000"PROCESS(SHIFT_CNT)BEGINCASE SHIFT_CNT ISWHEN "0000" => SEG_DA<=x"3F"LED<="00000001"WHEN "0001" => SEG_DA<=x"06"LED<="00000010"WHEN "0010" => SEG_DA<=x"5B"LED<="0

6、0000100"WHEN "0011" => SEG_DA<=x"4F"LED<="00001000"WHEN "0100" => SEG_DA<=x"66"LED<="00010000"WHEN "0101" => SEG_DA<=x"6D"LED<="00100000"WHEN "0110" => SEG_DA<=x&

7、quot;7D"LED<="01000000"WHEN "0111" => SEG_DA<=x"07"LED<="10000000"WHEN "1000" => SEG_DA<=x"7F"LED<="00000001"WHEN "1001" => SEG_DA<=x"6F"LED<="00000010"WHEN "10

8、10" => SEG_DA<=x"77"LED<="00000100"WHEN "1011" => SEG_DA<=x"7C"LED<="00001000"WHEN "1100" => SEG_DA<=x"39"LED<="00010000"WHEN "1101" => SEG_DA<=x"5E"LED<="

9、;00100000"WHEN "1110" => SEG_DA<=x"79"LED<="01000000"WHEN "1111" => SEG_DA<=x"71"LED<="10000000"END CASE;END PROCESS; END BEHAVE;6、 实验 QuarterII原理图:7、 实验过程1、 用Quartus II 7.2 打开已经写好的程序,编译,建立仿真文件,进行仿真。2、 打开计算机和EP2C5实验箱,

10、用串口线连接好,打开电源。3、 为输入输出分配好引脚:CLK5对应 PIN 145 RST 对应 PIN 43 SEG_SEL2 to 0对应 PIN 141 142 143 SEG_DATA7 to 0对应PIN 144 12 11 10 8 6 5 3 LED7 to 0对应PIN 34 33 31 30 15 14 134、 添加硬件,点击start;观察实验现象;仿真波形仿真分析:TEMP在时钟上升沿处计数,SEG_DATA7 to 0,LED7 to 0显示对应TEMP 的值:图中TEMP=0;SEG_DATA7 to 0=00111111;LED7 to 0=00000001;引脚

11、分配图- 5 -实验现象:八、故障及问题分析本次实验整体比较顺利,但仍旧出现了一个个问题:开始时引脚分配有问题,没有找到与EP2C5有关的引脚,后来找到了。其他未出现什么问题,顺利地完成了实验。九、总结和结论本学期EDA实验共完成了8次实验,分别完成了以下四项任务:Ø 对实验板的熟悉;Ø 对Quartus II 7.2 (32-Bit) 的初步认识,并熟悉掌握其图形编译功能;Ø 对Quartus II 7.2 (32-Bit)的进一步了解,初步结识VHDL语言,并用其实现了简单的计数器和译码器的功能,为最后一次实验打下基础;Ø 进一步熟悉VHDL语言,并

12、用其实现实际电路设计;纵观四次实验,让我感触颇深的就是,预习对实验的重要性。QuarterII对我们来说是一个全新的东西,一切操作都得从头来学,好在它的界面友善,操作简单易懂,只是在编写VHDL程序的时候,需要事先学习其语言习惯。如果预习充分,就能很顺利地完成实验任务,还留有时间思考其它问题,完成额外的题目。实验要想仿真并下载成功,需要注意的细节很多,如,引脚设置、输入变量的周期设置等。在第三次实验时,我犯了个小错误锁定引脚后没有让程序再运行compilation一遍,导致的结果就是,仿真完全正确,但下载到实验板上怎么就不能正确工作,白白耽误了很长时间。所以按部就班的操作是很必要的。实验中还有一些细节,在预习时并未注意,只有去实验室实际操作时才发现。如第三次实验实现7段数码译码器并用数码显示管显示时,预习时,并不知道,通过用一个八维向量c来控制8个数码显示管亮的管子的数量;再如第四次实验,预习的时候并不知道,板子上提供的时钟是5

温馨提示

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

最新文档

评论

0/150

提交评论