基于FPGA的数字跑表设计论文_第1页
基于FPGA的数字跑表设计论文_第2页
基于FPGA的数字跑表设计论文_第3页
基于FPGA的数字跑表设计论文_第4页
基于FPGA的数字跑表设计论文_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、本 科 毕 业 论 文基于FPGA的数字跑表设计Digital stopwatch design based on FPGA学院名称: 电子信息与电气工程学院 专业班级:电子信息工程(专升本)2013级 2015年5月毕业设计(论文)原创性声明和使用授权说明原创性声明本人重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作与取得的成果。尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得工学院与其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。作 者

2、签 名: 日 期:指导教师签名: 日期:使用授权说明本人完全了解工学院关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部容。作者签名: 日 期:目 录摘 要IAbstractII引 言1第一章 绪 论11.1 设计背景与意义11.2 跑表的发展趋势2第二章 实验的软件环境22.1 MAX+plus软件22.2 VHDL语言3第三章 跑表的设计53.1跑表的方案选择53.

3、2跑表的程序流程图63.3顶层设计与VHDL源代码73.3.1顶层实体设计与VHDL源代码73.3.2顶层结构体的设计83.4跑表的各个模块分析93.4.1键输入模块93.4.2时钟分频模块113.4.3控制模块133.4.4跑表计时模块143.4.5跑表显示模块173.5仿真结果20结 语22致 23参考文献24附录A 管脚引用表25附录B 跑表的程序代码2638 / 45基于FPGA的数字跑表设计摘要:本数字跑表用于检测需要准确计时或计时场合较为精确且比较精密的环境中。在现在的竞赛、科研、测验的环境中,跑表依然扮演着十分重要的角色。随着电子技术的发展,它有着更加广阔的发展空间、也有着更加广

4、泛的应用。本论文对数字跑表进行了电路设计与程序设计,并划分为五个模块:键输入模块、分频模块、控制模块、计时模块和显示模块。各个模块通过合理的配合来实现跑表的功能,所有功能语言都用VHDL来完成描述。本实验主要借助Altera公司开发的EDA工具MAX+plus 软件作为编译和仿真的实验环境,主要利用EPF10K10LC84-4器件在FPGA的实验箱上来完成数字跑表的设计。关键词:跑表;VHDL语言;MAX+plus ;FPGADigital stopwatch design based on FPGAABSTRACT:The digital stopwatch for detection re

5、quires accurate timing or timing occasions more accurate and more sophisticated environment. In the current competition, scientific research, test environment, stopwatch still plays a very important role. With the development of electronic technology, it has a more broad development space, also has

6、a more extensive application. In this paper, the digital stopwatch were hardware circuit design and software design, and is divided into five modules: key input module, frequency module, control module, timing module and display module. Each module is realized by the stopwatch with reasonable, all f

7、unctions are accomplished with VHDL description language. This experiment mainly by Altera corporation development of EDA tools MAX + PLUS II software as compilation and simulation experiment environment, the main use of epf10k10lc84-4 device in FPGA experimental box completed the design of digital

8、stopwatch.Keywords: Stopwatch; VHDL language; MAX + plus ; FPGA引 言本跑表无机械装置,是用电子设备来完成数字跑表的设计,它具有更长的使用寿命和更加精确的计时装置,因此才得到了广泛的应用。通过跑表的制作使我进一步的了解了各种中小规模集成电路的作用与特点,使我进一步的学习与掌握了各种组合逻辑电路与时序电路的原理和使用方法。 人生苦短,日月如梭。时间是人生中最珍贵的东西,但当事情不怎么重要的时候,这种遗忘倒不会出什么事。但一旦遇到了重要事情,一时的遗忘就会酿成大祸。例如:在医院中,病体发作时间频率值、手术的时间间隔、麻药的药效长短等高危

9、手术中,计时就显得尤为重要;在科研中,火箭的发射、飞机的起飞、导弹的攻击、航母的运行、空间站的对接等高科技产品中,一秒钟的误差就会产生极其严重的后果;在竞赛中,即使是相差0.01s那也会有一个先后,分秒必争的理念就变得尤为的突出;在工程的测试中;在万物生长中等等观测结果的情况下,这种对时间的精确度要求就变的非常高了,这时对于数字跑表的研究就变得尤为突出的重要。所以,制作一个精确计时的跑表系统是多么明智的选择。第一章 绪 论1.1设计背景与意义现在电子产品已经融入了我们身边的每个角落,它使我们的生活变的更加的美满和和谐,同时也使电子产品的性能进一步提高、功能进一步强大,其中带给我们最大的红利就是

10、便捷。现在的电子时钟也已经布满我们的生活里,如手机、电脑、手表、钟表以与各大中小地点的公共场所里都有时钟的出现。然而数字跑表的功能和用途有许多是电子钟无法用精确性和准确性来取代的,跑表有着这些独特的特点,也有着不可被取代的趋势。电子产品朝着高精度高准确度的方向发展,跑表依然如此。因此本设计不采用单片机、不采用机械设备、而采用基于FPGA来完成数字跑表的设计。随着现场可编程门阵列的发展,电子系统向着集成化、大规模和高速度等方向升级的趋势也愈加明显,所以设计本跑表为打开FPGA领域而研究FPGA数字跑表具有里程碑式的意义。1.2跑表的发展趋势数字跑表已经成为了人类在科技、竞赛和检测中的一种十分必要

11、的计时装置,给人们的生活、学习、工作、娱乐带来极大的方便。数字跑表的发展方向将会为以后的航空航天、航空母舰、高铁磁悬浮列车等科技方面做出更加可靠的计时参考和更加精确的依据,也会为竞技竞赛、公平竞争等项目比赛提供更加公平公正的参考。第二章 实验的软件环境2.1 MAX+plus软件本软件主要由层次显示器、信息处理器、输入编辑器、设计编译器、设计校验器和器件编程器一起构成了一个完整独立的EDA设计平台。 当程序编译完毕并能产生MAX+plus或第3方EDA工具的一系列文件和报告,如图2.1所示。MAX+plus编译器第三方EDA设计文件(.edf,.sch,.xnf)映射文件(.imf)MAX+p

12、lus设计文件(.gdf,.tdf,).vhd)指定和配置信息 (.acf)第三方EDA仿真和定时文件(.edo,vo,vho,sdo)功能仿真(.snf)定时仿真(.snf)编程文件(.pof.sof.jed)图2.1 MAX+plus编译器定时分析器,有这样的分析模式:时序逻辑电路性能分析模式。分析时序电路的性能,包括限制性能上有限制的延迟,还有最小的时钟周期和最高的电路工作频率。MAX+plus的设计流程主要由设计输入、设计编译、功能仿真、时序仿真、器件编程等步骤来完成。2.2 VHDL语言经过多年的检测与使用,最终工程师们吧定为标准硬件描述语言。VHDL语言的主要优点是:(1)有良好的

13、可读性,容易被读者理解。(2) VHDL是通用硬件描述语言。(3)用它从事设计工作,不用考虑线路布局问题,降低了设计的复杂度。(4)接近于算法的推演,不必关心如何用逻辑电路实现这种算法的过程。VHDL语言结构体的完整格式如下:ARCHITECTURE 结构体OF实体名IS定义语句BEGIN并行语句1;并行语句2;END ARCHITECTURE 结构体名;VHDL中实体的完整格式如下:ENTITY 实体名 ISGENERIC (类属表);PORT (端口表);BEGIN实体语句部分;END ENTITY 实体名; 它描述了一个系统或者电路的外观图。实体中的类属和端口用来说明所设计的系统或者电路

14、与其它模块通信的对象。实体语句部分定义实体接口中的公共信息。第三章 跑表的设计3.1跑表的方案选择 方案一:设计一款基于单片机的数字跑表。1. 核心用一块AT89C51和555定时器结合来完成;2. 硬件准备好后,编辑程序下载、调试、试运行;3. 试验成功后将其包装。 方案二:设计一款基于FPGA的数字跑表。 1.核心用FPGA开发平台和Max+plusII操作平台来完成; 2.程序编辑好后,用软件仿真运行;3.实验成功后将其展示。 方案比较: 一样点:这两种方案的原理相似都分别由计数部分、显示部分组成。都能按照设计要求完成有百分秒计时功能的数字跑表。不同点:方案一主要是单片机来完成跑表,应用

15、围略广,但考虑到单片机本身的特点,不适合结合比较高端的设备。方案二应用领域比较广泛,能结合许多设备,能够更好、更精确的实现计时功能。 方案采用:根据以上方案分析和研究的可行性、价值性和意义性分析,数字跑表的设计采用方案二。方案二设计主要由五个主要模块组成:键输入模块(主要是消除抖动之类的);时钟分频模块(输出为100Hz用于计时、1kHz用于数码管动态扫描);使能控制模块(实现开始与暂停功能);计数器模块(由模十计数器和模六计数器级联);显示控制模块(包括数据选择和显示译码)。它是采用VHDL语言来设计的跑表系统,能通过计算机来完成,从而缩短了系统的开发时间,提高了系统的工作效率。其主要特点描

16、述如下:(1)启/停功能。在任何情况下只要按复位开关,跑表都会无条件地执行复位操作。(2)计时精度高于0.01秒,部定时时钟信号频率采用1000Hz的时钟输入信号,以24h为最长计时周期。(3)对跑表进行更换电源操作是由系统电源复位电路提供给跑表的电源复位信号来控制跑表的复位操作。图3.1 跑表系统的结构框图3.2 开始跑表的程序流程图清零显示CLR=1YNY SL=9NSL=0NYSH=5?SH=SH+1MH=0,CN2=1 结束图3.2 秒计数进程程序流程图 开始YCLR=1?清零显示NYSL=9?NML=0YSH=5?NMH=MH+1MH=0 结束图3.3 分计数进程程序流程图3.3顶层

17、设计与VHDL源代码3.3.1顶层实体设计与VHDL源代码在自顶向下的VHDL语言设计描述中,第一个应该考虑的是描述顶层信号接口,如图3.4所示。图3.4 跑表各个模块的连接关系VHDL的系统接口是由实体说明来描述的。下面是跑表顶层实体说明的VHDL源代码。源代码1library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity stopwatch isport ( reset1 : in std_logic; on_off : in std_

18、logic; sysreset : in std_logic; clk : in std_logic; choose : out std_logic_vector(7 downto 0); segment : out std_logic_vector(6 downto 0);end stopwatch;3.3.2顶层结构体的设计因我们通常用的跑表大部分都由按键产生的,但这种操作会产生一定的误差,因为当需要计时的时候你的手按下的速度,和按键接触的速度以与弹簧反应的速度都直接影响计时的精度,因此设计一款消抖同步电路就显的十分重要。根据大部分资料的情况,本文采用了最普遍使用的一种消抖同步电路,结构图

19、如3.5所示。图3.5 常用消抖同步电路根据图3.4所示的各个模块。将各个模块描述如下:(1) 键输入模块复位键和开关键属于键输入模块。这些都是跑表基本的输入功能按键。(2) 时钟分频模块根据跑表要求的情况,用时钟分频模块来进行分频,已达到各种功能模块的需求。(3) 控制模块控制模块是由键输入模块导入信号,再由相应的程序功能分配相应的操作,从而执行相应的动作,已完成所要控制的对象。(4) 跑表计时模块由输入的控制键和时钟分频模块的参考,跑表就根据分频数据在键输入的命令下开始计时。(5) 跑表显示模块由了跑表计时模块的数据,数码管就可以根据提供的容,将其展现八个LED七段数码管显示上。3.4跑表

20、的各个模块分析3.4.1键输入模块因为有抖动的缘故,会产生持续时间长短和不稳定的情况。因此才要在跑表电路中加上一个键输入模块来减少误差和抖动现象。键输入模块的作用就是保证系统能够扑捉到精确的脉冲,保证每一个脉冲都能够准确无误的被记录下来,从而能使它产生一个宽度为时钟周期模块的脉冲,保证时钟周期模块的正常读取。如图3-6所示它反映了开关脉冲on_off0的定时关系。图3.6 键输入模块中输入和输出信号的关系从图3.6 能看出:状态控制信号on_off_tmp1是开关信号on_off在时钟信号clk1的下降沿进行锁存的锁存信号;而状态控制信号tmp2是tmp1在时钟信号clk1的下降沿进行的锁存信

21、号;控制信号on_off_tmp3是状态控制信号on_off_tmp2的反相信号;开关脉冲就是时钟信号clk1、控制信号on_off_tmp1、控制信号on_off_tmp3的逻辑与。根据图3.6 所示的定时关系对该键输入模块进行VHDL描述,功能描述如下面源代码所示。源代码2library ieee;use ieee.std_logic_1164.all;entity keyin is port ( reset : in std_logic;on_off : in std_logic;clk : in std_logic;clk1 : in std_logic;reset0 : out st

22、d_logic;on_off0 : out std_logic);end keyin;architecture rtl of keyin issignal on_off_tmp1 :std_logic;signal on_off_tmp2 :std_logic;signal on_off_tmp3 :std_logic;begin process(clk1) begin if ( clk1event and clk1 =0) then on_off_tmp2 <= on_off_tmp1; on_off_tmp1 <= on_off; on_off_tmp3 <= not o

23、n_off_tmp2; end if; end process; process(clk) begin if ( clkevent and clk =0) then on_off0 <= clk1 and on_off_tmp1 and on_off_tmp3; end if; end process;reset0 <= reset; end rtl;图3.7键入模块仿真波形3.4.2时钟分频模块分频模块的功能就是讲一个整的时钟信号进行分割,分割成时钟需要的那种频率。如消除抖动时钟信号为25Hz那么就要对时钟进行分配,分配给消除抖动电路一个25Hz的频率。跑表部也需要定时信号,因此

24、,也要将时钟信号分配为一个是100Hz的时钟信号那么就可以对一个1000Hz的时钟进行10分频后得到100Hz,再将100Hz进行4分频就得到了25Hz了。在本设计中clk0是100Hz的时钟信号频率,clk1是一个25Hz的时钟频率。下面用语言来描述10分频电路和4分频电路。源代码3library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clk_div10 is port ( clk : in std_logic; reset :

25、in std_logic;clk_div : out std_logic);end clk_div10;architecture rtl of clk_div10 is signal count :std_logic_vector (3 downto 0); begin process (clk) begin if ( clkevent and clk =1) then if ( reset = 1) then count <= (others => 0); elsif ( count = “1001”) then count <= ( others => 0); el

26、se count <= count +1; end if; end if; end process; process (clk) begin if ( clkevent and clk =1) then if ( count = “1001”) then clk_div <= 1 ; else clk_div <= 0 ; end if; end if; end process; end rtl;在上面的源代码中,第一步是将时钟信号进行了10分频,第二步将时钟信号进行了4分频。这里得到的4分频信号clk1与clk0相与,所以就得到了一个有效的脉冲为1ms的时钟信号。图3.8

27、分频模块仿真波形3.4.3控制模块控制模块主要就是控制跑表的开始、暂停与停止,以与清零和复位,还有加减键的控制。控制模块主要的功能就是产生跑表的允许信号,这个模块的输入信号就是去除抖动后的信号,它还有启停信号、电源开关信号、部计时信号。信号的时序关系如图3.9所示。图3.9 输入和输出信号的关系 根据上面的时序关系,不难写出控制模块的VHDL描述。控制模块的功能描述如源代码4所示。源代码4library ieee;use ieee.std_logic_1164.all;entity control is port ( sysreset : in std_logic; reset0 : in s

28、td_logic; on_off0 : in std_logic; clk0 : in std_logic; enable : out std_logic);end control;architecture rtl of control is signal strobe : std_logic;begin process (sysreset,reset0,on_off0) begin if (sysreset=1 or reset0 = 1) then strobe <= 0; elsif (on_off0event and on_off0 = 1 ) then strobe <=

29、 not strobe; end if; end process; enable <= strobe;end rtl;图3.10 控制模块仿真波形3.4.4跑表计时模块跑表计时模块主要就是面对跑表的计时工作,由系统分频来支配计时的工作,由控制电路的信号来安排跑表。计时模块有八个部分组成,它们分别是:小时十位信号、小时各位信号、分十位、分个位、秒十位、秒个位、秒0.1、秒0.01信号组成的。它是讲1个三进制计数器、5个十进制和2个六进制的计数器串连在一起的,从而来实现这个跑表计时模块的功能效果。由以上条件和功能形成的跑表的计时模块的结构框图如3.4所示。下面我们就要用源代码来描述一下三进制

30、的、六进制的和十进制的计数器。源代码5library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity count10 is port ( reset : in std_logic; enable : in std_logic; clk : in std_logic; cout : out std_logic; q : out std_logic_vector(3 downto 0);end count10;architecture rtl o

31、f count10 is signal q_tmp : std_logic_vector(3 downto 0);begin process(clk) begin if (clkevent and clk =1) then if (reset = 1) then q_tmp <= (others => 0); elsif (enable =1) then if (q_tmp =”1001”) then q_tmp <= (others => 0); else q_tmp <= q_tmp+1; end if; end if; end if; q <= q_t

32、mp; end process; cout <= 1 when q_tmp =”1001” and enable =1 else 0;end rtl;图3.11 跑表计时模块的结构框图 在这些计时的VHDL语言描述中,用元件形式调用计数器。但跑表的计时模块的VHDL源代码如下所示图3.12 计时模块仿真波形3.4.5跑表显示模块 跑表的理论上已经成立了,但要想供大家观测吸入信息,所以还是需要八个七段的LED显示数码管来展现给大家信息。跑表显示模块的结构框图如图3.13所示。图3.13 跑表显示模块的结构框图跑表的显示模块由count8、位选择电路、译码电路、位选择译码四个电路部分组成。下

33、面就来描述一下显示模块的电路。首先描述的是八进制计数器count8,这个八进制计数器没有使能端口enable和进位输出端口cout,它的结构与计数器的结构基本上是一样的。它的电路VHDL语言的描述如源代码6所示。源代码6library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity count8 is port ( reset : in std_logic;clk : in std_logic;sel : out std_logic_vect

34、or(2 downto 0);end count8;architecture rtl of count8 is signal sel_tmp : std_logic_vector(2 downto 0);begin process(clk) begin if (clkevent and clk =1) then if (reset = 1) then sel_tmp <= (others => 0); elsif (sel_tmp =”111”) then sel_tmp <= (others => 0); else sel_tmp <= sel_tmp+1; e

35、nd if; end if; sel <= sel_tmp; end process;end rtl; 显示位选的电路功能是根据count8的输出来表示的,可将他的信号传输到一个七段显示数码管的choose信号上。当输出为000时,这里的选通信号就被翻译成了00000001了。具体的显示位选的译码电路的VHDL的描述如下所示。计时位选电路的输出端口的计时数据的位数三种。分别是2位的、3位和4位的计时数据。图3.14 segment信号与数码管的关系 上面对的是数码管其中一位的显示模块,它由七个块组成的,每个位置都代表着一个信号由0、1、2、3、4、5、6来组成的信号体。 七段显示译码电路

36、VHDL描述如源代码7所示。源代码7library ieee;use ieee.std_logic_1164.all;entity seg7 is port(q : in std_logic_vector(3 downto 0); segment : out std_logic_vector(6 downto 0);end seg7;architecture rtl of seg7 isbegin process(q) begin case q is when “0000” => segment <= “0111111”; when “0001” => segment <

37、;= “0000110”; when “0010” => segment <= “1011011”; when “0011” => segment <= “1001111”; when “0100” => segment <= “1100110”; when “0101” => segment <= “1101101”; when “0110” => segment <= “1111101”; when “0111” => segment <= “0100111”; when “1000” => segment &l

38、t;= “1111111”; when “1001” => segment <= “1101111”; when others => segment <= “00000000”; end case; end process;end rtl;对跑表显示模块中的四个子电路描述以后,就可以进行跑表显示模块的总体功能描述了。图3.15 显示模块仿真波形3.5仿真结果仿真步骤:(1) 建立一个波形编辑文件:File-NEW-Waveform Editor file;(2)鼠标指到左边区域,左键右键,选中;(3) List-移动管脚-OK,把仿真用的管脚调出来;(4)设定参数:Op

39、tions-Grid size;File-End Time;View-Time range;(5)给定输入信号;(6)保存.scf文件;(7)MAX+Plus-simulator。仿真波形图如图3.16所示。3.16 跑表的仿真波形结 语毕业设计就要结束了,在整个研究设计的过程中,我收获了许多许多。刚开始做毕业设计的时候是激情澎湃,把毕业设计想的很简单,以为跟以往的课程设计一样,随便写写就完事了,还准备速战速决解决掉论文。但是,刚开始做的时候就发现原来搞一项研究并不像想象的那样简单。刚开始做的时候就发现自己的知识漏洞好多,仅仅靠专业课本知识解决不了问题的,在着手之前还必须学习相关的知识。在硬件

40、调试过程中,总是出现大量莫名其妙的错误和警告,有的要花费好长时间才能分析出来问题所在,还要去结合相关的知识去调试修改。当然,当看到自己所设计的跑表在精确地计时的时候还是很有成就感还是很欣慰的。 总之,本次毕业设计后让我真正体验到了科学研究中那种一丝不苟的严谨工作态度,使我掌握了对VHDL硬件描述语言的熟练运用,培养了我采用理论联系实际的策略方法,提高了分析、解决计算机技术的实际问题的独立工作能力,能对数字跑表进行扩展,了解了科学研究与系统开发的整体分析的步骤,并能更熟练地运用MAX+plus 平台对设计进行编译、仿真,以与选用器件,完成系统的功能。通过本次设计,也使我的专业知识得到拓展,科研的

41、素质得到提升,这些都将对我以后的学习和工作以与研究有很大的帮助。致 毕业设计任务已经接近了尾声,这也标志着大学生活将要画上了句号。在这段时间里,我一直在老师的指导下从事毕业设计的学习和研究。经过一学期的辛勤努力,此次的毕业设计也到了收尾的阶段,毕业设计的成果是用来检验一个本科生的大学期间学习到的知识水平,由于经验的不足,在做毕业设计的时候总会有一些考虑不到的地方,所以如果没有指导老师的指点和传授经验,以与在同一时间做设计的同学们的帮助,想去很好的完成本次毕业设计是困难的。在这里首先要感老师。虽然老师代的课程较多,工作较忙,但作为我的指导老师在做设计的过程中,包括从最开始查阅什么参考资料,到开始

42、拟定毕业设计题目,然后编写开题报告和论文草稿的确定,以与后期详细设计过程等丁老师都给予了我严谨细心的指点。并且在设计中有我不太懂不太会的地方,丁老师都会不厌其烦的指导我学习,认真纠正其中每个不该有的错误。 其次还要感激在学校学习期间所有教导老师,认真负责的教导我们,让我们打下坚实的专业知识基础。同时还要感身边互帮互助一起努力的同学,正是你们的鼓励才能让我在繁杂的设计上坚持到底,并且最终顺利的做完本次毕业设计。 还要感在大学里的各位传道授业解惑的老师们,使我掌握了扎实的基础知识和技能,这为毕业设计的完成奠定了坚实的理论基础。感本次和我一起认真做毕业设计的同学们,与他们的交流,不仅让我学到了有关专

43、业方面的许多知识,而且也从他们身上学到了许多优秀的品质。感和我一起生活的室友,正是因为有了他们的支持和鼓励,才让我的生活充满快乐与温馨。再次向身边所有的同学、朋友、老师表示衷心的感!最后感我的母校工学院这两年来的全力培养。参考文献1立东 编著. VHDL语言程序设计与应用. :邮电大学,2010.2王志鹏 编著.可编程逻辑器件开发器件MAX+plus. :国防工业,2009.3雪松,吴钰淳,王鹰 编著. VHDL设计实例与仿真. :机械工业,2012.4廖裕评 编著.使用MAX+plus入门篇. :大学,2008.5孟庆海,洲 编著. VHDL基础与经典实例开发. :交通大学,2008.6松,

44、黄继业 编著.EDA技术与VHDL. :清华大学,2011.7恒 编著. FPGACPLD最新实用技术指南. :清华大学,2011.8朱如琪. FPGA设计实践教程M.:科学,2011. 9黄智伟. FPGA系统设计与实践M. :电子工业,2012. 10宥谋.基于Verilog的FPGA设计基础M.:电子科技大学,2013 .11黄焱 FPGA应用开发入门与经典实例,人民邮电出版,2012年7月12赜 FPGA/CPLD与ASIC设计实践教程科学, 2010年9月13 强.基FPGA的多功能数字钟的设计与实现 J .仪器表用户,2010,14澎. FPGA时钟设计J. 现代电子技术, 201

45、1.915明章基于FPGA的嵌入式系统设计:国防工业,2010.9 16朱正伟EDA技术与应用:清华大学,2013.10 17袁茵低廉的FPGA解决方案.电子技术().2010,18吴超英基于FPGA/CPLD技术的数字系统设计:工业大学学报.2011,19晓慧基于FPGA的EDA/SOPC技术与VHDL国防工业,2011.7 20Song Kezhu. FPGA based digital clock DesignJ.Nuclear Electronics & Detect ion Technology. 2012附录A 管脚引用表变量管脚号硬件连线CL

46、K86CLOCK15CLK189CLOCKH0CLR87SW15PAUSE88SW16decodeout094Adecodeout195Bdecodeout296Cdecodeout397Ddecodeout499Edecodeout5100Fdecodeout637Gdecodeout7160Hss090SS0ss192SS1ss293SS2附录B 跑表的程序代码architecture structure of stopwatch is component keyin port ( reset : in std_logic; on_off : in std_logic; clk : in

47、std_logic; clk1 : in std_logic; reset0 : out std_logic;on_off0 : out std_logic);end component;component clk_div port ( sysreset : in std_logic; clk : in std_logic; clk0 :out std_logic; clk1 : out std_logic); end component; component control port ( sysreset : in std_logic; reset0 : in std_logic; on_o

48、ff0 : in std_logic; clk0 : in std_logic; enable : out std_logic); end component; component time_counter port ( sysreset : in std_logic; reset0 : in std_logic; enable : in std_logic; clk0 : in std_logic; hr10 : out std_logic_vector(1 downto 0); hr : out std_logic_vector(3 downto 0); min10 : out std_l

49、ogic_vector(2 downto 0); min : out std_logic_vector(3 downto 0); sec10 : out std_logic_vector(2 downto 0); sec : out std_logic_vector(3 downto 0); sec01 : out std_logic_vector(3 downto 0); sec001 : out std_logic_vector(3 downto 0); end component; component display port ( sysreset : in std_logic;clk : in std_logic;hr10 : out std_logic_vector(1 downto 0); hr : out std_logic_vector(3 downto 0); min10 : ou

温馨提示

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

评论

0/150

提交评论