




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VHDL语言课程设计报告VHDL语言课程设计设计题目:电子秒表系统设计 系 别:电子通信工程系姓 名: 武 志 伟 组 员:吴金彪 张向往 班 级: 医 电 051 学 号: 050411125 指导老师: 石 新 峰 成绩: 设计时间:2007年12月7日目录 前言1 一、设计任务及要求2二、方案论证3 三、设计总体框图4四、硬件电路设计与程序设计5五、编译仿真6六、心得体会7参考文献:8前 言 秒表计时器常常用于体育竞赛及各种其他要求有较精确时间的各领域中。其中启/停开关的使用方法与传统的机械计时器相同,即按一下启/停开关,启动计时器开始计时,再按一下启/停开关计时终止。而复位开关可以在任何情况下使用,即使在计时过程中,只要按一下复位开关,计时应立即终止,并对计时器清零。本文是主要是用CPLD的一些知识简单的设计秒表的过程。 一、设计任务及要求1. 设计数码管显示的秒表。2. 能够准确的计时并显示。3. 开机显示00.00.00。4. 用户可以随时清零、暂停、计时。5. 最大记时59分钟,最小精确到0.01秒。二、方案论证方案一 采用8051IP核设计。用FPGA构成一个8051单片应用系统具有如下优缺点:1、拥有标准8051完全兼容的指令系统的CPU;2、256字节内部RAM;3、4K字节程序ROM;4、每一此编译下载后都能根据需要更新ROM中的程序,所以该单片机的实现和使用如同89C51/52一样方便。缺点:1. 设计烦琐可以直接用8051单片机代替。2. 程序复杂。方案二 采用芯片EP1C12Q240C8、共阴七段数码管、按键开关、发光二极管设计。EP1C12Q240C8是Cyclone器件,Cyclone可以最多支持129个通道的LVDS和RSDS。Cyclone器件的LVDS缓冲器可以支持最高达640Mbps的数据传输速度。与单端的I/O口标准相比,这些内显置于Cyclone器件内部的LVDS缓冲器保持了信号的完整性,并且有更低的电磁干扰、更好的电磁兼容性(EMI)及更低的电源功耗。采用此芯片设计简单,不需要用汇编语言编写程序,直接用VHDL编写即可以. 缺点:与8051IP核相比精确度不是很高。但是对于秒表系统设计可以满足要求。三、设计总体框图三、硬件电路设计与程序设计 本设计采用模块化设计,共分为顶层文件(msecond)、控制秒模块(second)、控制分钟模块(minutes)、LED模块(alert)、数码管扫描模块(zhishi)、显示驱动模块(deled)六个模块。其中LED模块可以去掉,不影响秒表正常运行以下对各个模块一一描述。1. 顶层文件 对这个功能模块用一个进程语句描述。clk、reset和调秒的setsec为输入信号程序代码如下: LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY msecond ISPORT(clk, reset,setsec : INSTD_LOGIC;ensec : OUTSTD_LOGIC;daout: OUT std_logic_vector (6 downto 0);END entity msecond ;ARCHITECTURE fun OF msecond ISSIGNAL count: STD_LOGIC_VECTOR( 6 downto 0);BEGIN daout = count; process ( clk , reset , setsec ) begin - enmsec =k; if (reset=0) then count = 0000000; elsif (setsec =0) then ensec = clk; elsif (clk event and clk=1) then if (count(3 downto 0)=1001) then if (count 16#60#) then if (count=1011001) then ensec =1; count=0000000; ELSE count=count+7; end if; else count=0000000; end if; elsif (count 16#60#) then count = count+1; ensec =0 after 100 ns; else count=0000000; end if; end if; end process;END fun;2.控制秒模块LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY second ISPORT(clk, clk1,reset,setsec : INSTD_LOGIC;enmin : OUTSTD_LOGIC;daout: out std_logic_vector (6 downto 0);END entity second ;ARCHITECTURE fun OF second ISSIGNAL count: STD_LOGIC_VECTOR( 6 downto 0);BEGIN daout = count; process ( clk,reset,setsec ) begin if (reset=0) then count = 0000000; elsif (setsec =0) then enmin = clk1; elsif (clk event and clk=1) then if (count(3 downto 0)=1001) then if (count 16#60#) then if (count=1011001) then enmin =1; count=0000000; ELSE count=count+7; end if; else count=0000000; end if; elsif(count 16#60#) then count = count + 1; enmin =0 after 100 ns; else count=0000000; end if; end if; end process;END fun;3.控制分钟模块LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY second ISPORT(clk, clk1,reset,setsec : INSTD_LOGIC;enmin : OUTSTD_LOGIC;daout: out std_logic_vector (6 downto 0);END entity second ;ARCHITECTURE fun OF second ISSIGNAL count: STD_LOGIC_VECTOR( 6 downto 0);BEGIN daout = count; process ( clk,reset,setsec ) begin if (reset=0) then count = 0000000; elsif (setsec =0) then enmin = clk1; elsif (clk event and clk=1) then if (count(3 downto 0)=1001) then if (count 16#60#) then if (count=1011001) then enmin =1; count=0000000; ELSE count=count+7; end if; else count=0000000; end if; elsif(count 16#60#) then count = count + 1; enmin =0 after 100 ns; else count=0000000; end if; end if; end process;END fun;4.LED模块该模块是有三个LED灯组成,三个LED轮流亮,起到验证秒表的功能。程序代码如下:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY alert ISPORT(clk : INSTD_LOGIC;dain : INSTD_LOGIC_VECTOR(6 DOWNTO 0);lamp : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END alert ;ARCHITECTURE fun OF alert ISsignal count : std_logic_vector( 1 downto 0);BEGINlamper:process(clk)beginif (rising_edge(clk)then if (count = 10) thenif (count =00) thenlamp = 001 ;elsif (count = 01) thenlamp = 010 ;elsif(count=10) then lamp = 100 ;end if;count = count + 1;else count = 00;end if; end if; end process lamper;END fun ;5.数码管扫描模块该模块的功能是选择个计数端口来的数据,当相应的数据到来时数据选择器选择器数据后输出给数码管,并由数码管显示。LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;ENTITY zhishi ISPORT(clk1, reset: INSTD_LOGIC;msec,sec : INSTD_LOGIC_VECTOR(6 downto 0);minute : in std_logic_vector (5 downto 0);daout: OUTSTD_LOGIC_vector (3 downto 0);sel : out std_logic_vector ( 2 downto 0);END zhishi;ARCHITECTURE fun OF zhishi ISSIGNAL count: STD_LOGIC_vector ( 2 downto 0);BEGIN sel = count; process ( clk1,reset) begin if (reset =0) then count = 101) then count = 000; else count daout daout(3) = 0; daout(2 downto 0) daout daout(3) = 0; daout(2 downto 0) daout daout(3 downto 2) = 00; daout(1 downto 0) = minute(5 downto 4); end case; end process;end fun;6.数码管显示模块数码管驱动电路,驱动数码管发光。LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY deled ISPORT(num: INstd_logic_vector( 3 downto 0); led: OUT std_logic_vector(6 downto 0);END deled;ARCHITECTURE fun OF deled ISBEGIN led = 0111111 when num= 0000 else 0000110 when num= 0001 else 1011011 when num= 0010 else 1001111 when num= 0011 else 1100110 when num= 0100 else 1101101 when num= 0101 else 1111101 when num= 0110 else 0000111 when num= 0111 else 1111111 when num= 1000 else 1101111 when num= 1001 else 1110111 when num= 1010 else 1111100 when num= 1011 else 0111001 when num= 1100 else 1100011 when num= 1101 else 1111001 when num= 1110 else 1110001 when num= 1111 ;END fun;四、编译仿真下面使用Quartus II6.0 对本设计进行编译和仿真。首先创建工程,使用文本编辑器输入本设计的所有模块的源程序,把miaobiao.vhd设为顶层文件。把本设计中的所有设计文件添加进工程后,先对每个模块进行编译纠错,然后把各个模块连接在一起保存然后在全程编译,通过之后就可以进行仿真。先进行软件仿真每一部分的仿真从略,下面只说明系统的整体仿真波形。系统工作时的仿真波形如图所示。确定准确无误后然后开始锁定管脚,执行菜单命令assignmentspins出现如下:锁定后的管脚结果如下: Node Name DirectionLocationa13OutputPIN_2b12OutputPIN_3c9OutputPin_4clkInputPIN_28clkdspInputPIN_6d10OutputPIN_7e11OutputPIN_8f8OutputPIN_11gOutputPIN_12lamp2OutputPIN_37lamp1OutputPIN_39lamp0OutputPIN_38resetInputPIN_16sel2OutputPIN_19sel1OutputPIN_18sel0OutputPIN_17setmsecInputPIN_20setsecInputPIN_21管脚锁定好以后再重新编译一次编译通过后执行ToolsProgammer命令出现如下:单击start按钮,开始硬件仿真.如果不能实现还需要重新调试程序直到实现秒表功能为止.五、心得
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年五类地理考试原题及答案
- 2025年儿科半期考试题及答案
- 慕课课件发布时间设置
- 中基考试简答题及答案
- 脂肪瘤考试试题及答案
- 情志病科普知识培训课件
- 海南旅游自考试卷及答案
- 湖南省岳阳市汨罗市第二中学2025-2026学年高二上学期开学考试化学试卷
- 育婴员考试面试题及答案
- 工厂管理考试题目及答案
- 2025高职单招职业适应性测试题库与答案
- Unit 1 How can I get there?(教学设计)-2024-2025学年人教PEP版英语六年级上册
- 越南货代基本知识培训课件
- 社会学概论教学课件
- 2025-2026秋安全主题班会教育记录(22周):第1周秋季开学安全第一课
- 2025年上半年系统架构设计师《综合知识》考试真题及答案
- 牧护关镇街道小学2025-2026学年第一学期工作计划
- 2025年《医疗器械监督管理条例》培训考核试卷附答案
- 2025-2030矿山机械跨境电商新模式拓展及品牌出海战略报告
- 养老金融科普知识培训课件
- 慢性咳嗽大讲堂课件
评论
0/150
提交评论