FPGA数字跑表

合集下载

基于FPGA的数字跑表功能的数字钟设计

基于FPGA的数字跑表功能的数字钟设计

摘要近年来,科学技术发展飞速,人们的生活质量也不断提高。

传统的时钟已经无法满足现代人的生活要求。

多功能数字钟无论在形态还是在性能上都改变了原有的风格。

本次设计基于原始的数字钟,在此基础上增加了诸项功能。

不仅具备时,分,秒计数功能,另外增加了校时功能,整点报时功能,闹钟功能以及数字跑表功能。

设计中采用了EDA技术,使用硬件描述语言Verilog HDL对各大功能模块的逻辑功能进行代码编写。

于QuartusII软件环境下,采用层次化设计与模块化设计的方法,由各个功能模块连接建立顶层图,构成基于FPGA的多功能数字钟。

设计实验板的主芯片为EP3C25Q240C8,多功能数字钟由分频器模块,时钟计数模块,校时控制模块,闹钟模块,整点报时与音乐演奏模块,数据选择模块,译码显示模块,按键去抖动模块和数字跑表模块构成。

经过程序编译和模块仿真,在实验板上下载验证,该系统可以完成时,分,秒的正常显示,通过按键切换功能模式,进入闹钟时间设定,校时,数字跑表模式。

可以手动调整时间,设定闹钟及数字跑表计时。

关键词:FPGA;Verilog HDL;数字钟;THE DIGITAL CLOCK WITH STOPWATCH FUCTIONABSTRACTIn recent years, the rapid development of science technology, quality of life is also rising. Traditional clock has been unable to meet the requirements of modern life. Both in the form of multi-function digital clock or in the performance has changed the original style.The design is based on the original digital clock, on the basis of it increased various functions. Not only have the time, minutes, seconds count function, also add the function of adjusting time, the whole point timekeeping function, alarm function and digital stopwatch functions. EDA technology used in the design, using Verilog HDL hardware description language for logic functions in major functional modules of code to write. Under Quartus II software environment, using hierarchical design methods and modular design, the top chart established by the various functional modules connecting each other, constitute FPGA-based multifunctional digital clock.The main system chip of design experiment board is EP3C25Q240C8, multifunctional digital clock is composed of the divider module, the clock counting module, the adjust time control module, the alarm module, the whole point timekeeping and music module, the data selection module, the decoding module, the key to jitter module and digital stopwatch module. After the program compiled and module simulation, download on the breadboard validation, The system can complete hours, minutes, seconds display properly, through the key switch function mode, enter the alarm time setting, adjustment time, digital stopwatch mode. You can adjust the time manually, set the alarm and digital stopwatch timer.Keywords:FPGA;Verilog HDL;Digital clock;目录摘要 (i)ABSTRACT ............................................................... i i 第一章绪论 . (1)1.1 基于FPGA数字钟的背景和意义 (1)1.2 课题的研究方法和相关技术的发展 (1)1.3 本文的研究目的和主要研究内容 (2)第二章 FPGA简介 (3)2.1 FPGA的原理与基本结构 (3)2.2 FPGA设计流程 (3)第三章 Quartus II 简介 (4)第四章数字钟总体设计方案 (5)4.1数字钟的基本构成 (5)4.2数字钟的工作原理 (5)第五章数字钟的具体设计流程 (6)5.1 本设计的顶层图 (6)5.2 分频模块 (6)5.3 按键去抖动模块 (7)5.4 时钟模块 (8)5.4.1 模式切换功能 (9)5.4.2 时钟计数功能 (9)5.4.3 校时控制功能 (10)5.4.4 闹钟设定功能 (10)5.4.5 数字跑表功能 (11)5.5 数据选择模块 (11)5.6 译码显示模块 (13)5.7 闹钟音乐模块 (14)5.8 整点报时与音乐演奏模块 (15)结束语 (17)致谢 (18)参考文献 (19)附录A FPGA器件EP3C25_V5电路板 (21)附录B 本设计使用的EP3C25_V5管脚配置文件 (22)程序源代码 (23)第一章绪论1.1 基于FPGA数字钟的背景和意义现今的电子产品要求功能要多样,体积越小越好,且功耗应达到最低[1]。

fpga跑表课程设计

fpga跑表课程设计

fpga跑表课程设计一、课程目标知识目标:1. 理解FPGA的基本原理,掌握跑表设计的基础知识;2. 学会使用硬件描述语言(如VHDL/Verilog)进行FPGA设计;3. 掌握跑表设计的时序逻辑和组合逻辑,并能够运用到实际设计中;4. 了解FPGA设计中时钟信号的重要性,学会合理分配时钟资源。

技能目标:1. 能够运用所学知识,独立完成FPGA跑表的设计与仿真;2. 培养学生的实际操作能力,提高问题分析和解决能力;3. 学会使用相关软件工具(如Quartus、Vivado等)进行FPGA设计;4. 培养学生的团队协作能力,提高项目完成效率。

情感态度价值观目标:1. 培养学生对电子设计及FPGA技术的兴趣,激发创新意识;2. 培养学生严谨、认真的学习态度,养成良好的学术道德;3. 引导学生关注社会发展,认识到FPGA技术在现代科技中的重要性;4. 培养学生克服困难的意志,提高面对挑战的自信心。

本课程针对高年级学生,结合学科特点,注重理论与实践相结合。

通过本课程的学习,使学生能够掌握FPGA跑表设计的核心知识,提高实际操作能力,培养学生的创新意识和团队协作精神,为今后从事相关领域工作打下坚实基础。

二、教学内容1. FPGA基础知识:- FPGA原理与结构;- 硬件描述语言基础(VHDL/Verilog);- 常用FPGA开发工具介绍。

2. 跑表设计原理:- 跑表功能需求分析;- 时序逻辑与组合逻辑设计;- 时钟信号分配与设计。

3. FPGA跑表设计实践:- 设计流程与方法;- 代码编写与仿真;- FPGA配置与测试。

4. 教学大纲安排:- 第一周:FPGA原理与硬件描述语言基础;- 第二周:跑表设计原理与时序逻辑设计;- 第三周:组合逻辑设计及时钟信号分配;- 第四周:FPGA跑表设计实践与项目指导;- 第五周:项目验收与评价。

教学内容关联教材章节:- 第一章:FPGA原理与结构;- 第二章:硬件描述语言基础;- 第三章:数字电路设计;- 第四章:FPGA设计实例。

FPGA LCD1602 时钟 跑表

FPGA   LCD1602  时钟 跑表
data <= 0;
en_sel <= 1'b1;
count<=0;
end
else
case(state)
clear_lcd:
end
always @(posedge clk_LCD,negedge rst)//initial
begin
if(!rst)
begin
state <= clear_lcd;
RS <= 0;
write_data=4, //and one
write_data_first= 5; //write data
assign RW = 0; //write
assign lcd_e = en_sel ? clk_LCD : 0;
reg [7:0] data_in [4:0];
always @(posedge clk)
if(mode==1)
begin
data_in[0]<=8'ha0;
data_in[1]<=8'ha0;
data_in[2]<=8'ha0;
module lcd_1602(clk,rst,mode,add,RS,lcd_e,data);
input clk, rst, mode, add;
output RS,lcd_e;
output [7:0] data ;
wire clk_LCD, clk1hz, clk1khz,clk100hz;
input [3:0] h1,h2,m1,m2;
input [2:0] modecount;
output reg RS;

跑表-《现代电子技术综合实验》实验报告

跑表-《现代电子技术综合实验》实验报告

电子科技大学《现代电子技术综合实验》实验报告实验题目基于FPGA的数字跑表设计姓名xxx学号xx学院通信与信息工程学院专业通信工程指导老师陈学英指标1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD 七段数码管显示读数。

显示格式:扩展功能:按键消抖选手分时显示要求(1) 设计出符合设计要求的解决方案(2) 设计出单元电路(3) 利用EDA 软件对各单元电路及整体电路进 行仿真(4) 在开发板上实现设计(5) 撰写设计报告分 秒 0.01秒设计方框图单元电路划分计数器分频器使能控制器(开关,复位等以设置到计数器中,没有单独设计模块,特此说明下)扫描显示控制器各单元电路设计计数器程序中本应该采用写一个六进制和十进制的计数器,然后采用画图的方法实现总计数器的设计(即采用两个六进制计数器和四个十进制计数器),本实验中采用了直接对总的计数器进行总体描述来实现(因为编写相对简单,不易处错误)。

用了一个特别长的一大串if内嵌套if进行处理。

同时,里面直接写了开始和复位的功能,相当于把使能模块并入其中。

削抖原理在按键按下一次时会有如下的毛刺信号,这个毛刺信号持续时间虽然只有1-3ms,但是这对于硬件来说,还是很长的,最关键的是,会产生很多个下降沿和电平触发。

所以必须对其进行处理,否则在按键按下一次后,run/stop 会反转多次。

消抖方法分为硬件消抖和软件延时消抖。

在FPGA 中可以定义三个D 触发器,进行硬件3ms 消抖(时间可以根据实际情况而定)。

代码如下:module myroad(i nput clk100,//100hz时钟input clk1000,//1000hz时钟input reset,//复位键input key,//开始停止按键output reg [3:0] num0,//跑表的最低位output reg [3:0] num1,//跑表的第2位output reg [3:0] num2,//跑表的最3位output reg [3:0] num3,//跑表的最4位output reg [3:0] num4,//跑表的最5位output reg [3:0] num5//跑表的最6位);reg keyout,run;//key的衍生内部信号reg clr,dout1,dout2,dout3,do1,do2,do3;//reset的内部衍生信号,以及6个消抖的内部变量initial beginnum0<=0;num1<=0;num2<=0;num3<=0;num4<=0;num5<=0;run<=1;clr<=1;dout1<=1;dout2<=1;dout3<=1;do1<=1;do2<= 1;do3<=1;keyout<=1;End//赋初值,居然是被允许的,还是ISE比quarters要宽松一些。

电子实验数字跑表

电子实验数字跑表

电子科技大学基于FPGA的数字系统设计——数字跑表的设计学生姓名:学号:指导教师:摘要本文利用XILINX-ISE开发软件和XILINX EDA教学实验开发板实现数字跑表的开始、暂停以及复位等功能。

ISE工程利用VHDL语言编写,单模块包含时钟分频进程、始能及清零进程、时钟数据产生进程、位码产生进程和显示进程;分模块设计包含时钟分频模块、控制模块、计数器模块、显示模块。

计时区间00’00’’00到59’59’’99。

课余设计的单模块源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating---- any Xilinx primitives in this code.--library UNISIM;--use UNISIM.VComponents.all;entity paobiao isPort ( clkin : in STD_LOGIC;enable : in STD_LOGIC;clear : in STD_LOGIC;seg : out STD_LOGIC_VECTOR (7 downto 0);wei : out STD_LOGIC_VECTOR (2 downto 0);enout : out STD_LOGIC);end paobiao;architecture Behavioral of paobiao issignal cnt100: integer range 1 to 240000;signal cnt1k: integer range 1 to 24000;signal clk100: std_logic:='0';signal clk1k : std_logic:='0';signal en: std_logic:='0';signal d1: integer range 0 to 5:=0;signal d2: integer range 0 to 9:=0;signal d3: integer range 0 to 5:=0;signal d4: integer range 0 to 9:=0;signal d5: integer range 0 to 9:=0;signal d6: integer range 0 to 9:=0;signal num: integer range 1 to 6:=1;beginenout<='0';process(clkin)beginif clkin'event and clkin='1' thenif cnt100=240000 thencnt100<=1;clk100<=not clk100;elsecnt100<=cnt100+1;end if;if cnt1k=24000 thencnt1k<=1;clk1k<=not clk1k;elsecnt1k<=cnt1k+1;end if;end if;end process;process(enable,clear)beginif clear='0' thenen<='0';elseif enable'event and enable='1' thenen<=not en;end if;end if;end process;process(clear,d1,d2,d3,d4,d5,d6)beginif clear='0' thend1<=0;d2<=0;d3<=0;d4<=0;d5<=0;d6<=0;-- en<=0;elseif en='1' and clk100'event and clk100='1' then if d6=9 thend6<=0;if d5=9 thend5<=0;if d4=9 thend4<=0;if d3=5 thend3<=0;if d2=9 thend2<=0;if d1=5 thend1<=0;elsed1<=d1+1;end if;elsed2<=d2+1;end if;elsed3<=d3+1;end if;elsed4<=d4+1;end if;elsed5<=d5+1;end if;elsed6<=d6+1;end if;end if;end if;end process;process(num)beginif clk1k'event and clk1k='1' thenif num=6 thennum<=1;elsenum<=num+1;end if;end if;end process;process(num)variable data: integer range 0 to 9;begincase num iswhen 1 => wei<="111";data:=d1;when 2 => wei<="110";data:=d2;when 3 => wei<="100";data:=d3;when 4 => wei<="011";data:=d4;when 5 => wei<="001";data:=d5;when 6 => wei<="000";data:=d6;end case;case data iswhen 0 => seg<="00000011";when 1 => seg<="10011111";when 2 => seg<="00100101";when 3 => seg<="00001101";when 4 => seg<="10011001";when 5 => seg<="01001001";when 6 => seg<="01000001";when 7 => seg<="00011111";when 8 => seg<="00000001";when 9 => seg<="00001001";end case;end process;end Behavioral;管脚分配NET "clkin" LOC = T8;NET "enout" LOC = D7;NET "seg<0>" LOC = C11;NET "seg<1>" LOC = A11;NET "seg<2>" LOC = B12;NET "seg<3>" LOC = A12;NET "seg<4>" LOC = C12;NET "seg<5>" LOC = C13;NET "seg<6>" LOC = A13;NET "seg<7>" LOC = B14;NET "wei<0>" LOC = F8;NET "wei<1>" LOC = D8;NET "wei<2>" LOC = E7;NET "clear" LOC = E4;NET "enable" LOC = G6;课时设计一、系统总体设计指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD七段数码管显示读数。

基于FPGA的数字跑表设计报告

基于FPGA的数字跑表设计报告

基于FPGA的数字跑表设计报告姓名:学号:指导老师:***摘要:本文详细介绍了数字秒表的设计指标,设计思路,设计方案,系统电路设计,系统单元模块设计,系统硬件实现与测试的结果。

一 引言 科技高度发展的今天,集成电路和计算机应用得到了高速发展。

尤其是计算机应用的发展。

它在人们日常生活已逐渐崭露头角。

大多数电子产品多是由计算机电路组成,如:手机、mp3等。

而且将来的不久他们的身影将会更频繁的出现在我们身边。

各种家用电器多会实现微电脑技术。

电脑各部分在工作时多是一时间为基准的。

本文就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字秒表。

秒表在很多领域充当一个重要的角色。

在各种比赛中对秒表的精确度要求很高,尤其是一些科学实验。

他们对时间精确度达到了几纳秒级别。

二 项目任务与设计思路 本项目的任务是掌握使用VHDL 语言的设计思想;熟悉ise 软件的使用;了解XILINX 学生EDA 实验板。

了解 EDA 技术,对计算机系统中时钟控制系统进一步了解,掌握状态机工作原理,同时了解计算机时钟脉冲是怎么产生和工作的。

在掌握所学的计算机组成与结构课程理论知识时。

通过对数字秒表的设计,进行理论与实际的结合,提高与计算机有关设计能力,提高分析、解决 计算机技术实际问题的能力。

通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。

项目任务与设计思路本项目的指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD 七段数码管显示读数。

显示格式:三 基于VHDL 方法设计方案 VHDL 的设计流程主要包括以下几个步骤:1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL 编辑环境。

通常VHDL 文件保存为.vhd文件2.功能仿真:将文件调入HDL 仿真软件进行功能仿真,检查逻辑功能是否正确。

3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。

基于FPGA的数字跑表设计

基于FPGA的数字跑表设计

0 引言在科技高度发展的今天,随着大规模集成电路和计算机的发展,现代电子设计的方法与技术也在不断发生变化。

目前,比较有效的电子设计方法是将板卡设计、可编程逻辑设计和软件开发融合在一起。

而且,计算机的应用与发展已经在人们的日常生活中逐渐崭露头角。

大多数电子产品多是由计算机电路组成,本次设计的课题就是基于计算机电路的时钟脉冲信号、状态控制等原理设计出的数字跑表。

跑表是体育比赛中常用的计时仪器,所以对时间的精确度很高。

1 系统设计1.1 总体设计基于前面的分析,课题数字跑表设计由FPGA器件完成按键控制、数字的显示等核心数字电路的功能。

设计数字跑表,令它通过两个按键来控制计时的开始和结束,一个是清0控制按键,用于设置跑表为初始零状态;另一个是开始/停止控制按键,在清0控制按键无效的时候,按一下开始/停止键则计时器开始计时,再按一下则暂停计时,再按一下则继续计时。

数字跑表总体设计框图如图1所示。

1.2 各部分模块设计根据此设计流程,我们可以将数字跑表的设计分为三个主要部分:(1)分频首先根据FPGA器件的基础时钟,进行时钟的设计,将器件自带的时钟频率进行分频,分频成为课题数字跑表所需的时钟信号,课题要求输入时钟频率为100Hz,100Hz=0.01s,使其满足数字跑表计时精度为10ms的要求,我们已知的FPGA器件上自带的时钟信号为50MHz。

图1 数字跑表的流程框图(2)控制根据要求数字跑表要具有控制功能,通过两个按键控制,一个为清零控制按键,控制异步清零,和启动功能,用于设置跑表为初始零状态,另一个按键为开始/停止按键,控制数字跑表的启动和停止,按一下开始/停止键则计时器开始计时,再按一下则暂停计时,再按一下则继续计时。

(3)显示最后一步,对所得的数据进行处理,并将其显示。

由显示的时分秒用7段数码管显示出来。

将三个部分整合起来放在index, design idea, design scheme, circuit design of the system, design of the corresponding module of the system, system hardware implementation and test results.Keywords: digital stopwatch;FPGA;Verilog HDL language始/暂停按键)输出信号:MSH,MSL,SH,SL,MH,ML(7段数码管)分频部分器件图如图4所示。

基于FPGA的数字跑表设计

基于FPGA的数字跑表设计

摘要:本设计以Xilinx公司的XC3S200A芯片为核心,通过VHDL语言进行编程实现。

在48MHz时钟源输入下,通过分频、计数实现精度为百分之一秒的计时,最终用六位LED数码管显示,并可以通过两个按键控制跑表的复位、停止和启动。

一.引言大多数数字系统使用了两种不同的设计方法。

从硬件的角度来看,发展的动力是提高性能:更快、更小、功耗更低、价格更便宜。

这种方式需要巨额的费用,花费的时间也很长。

但是,从软件的角度看,更倾向于使用一个标准的处理器架构,这样只要开发出应用软件然后下载到这些平台即可。

但是由于对操作系统的需求、编译器的低效率等原因,也会造成大的开销。

结果,作为一种折中的方式,可编程器件就被开发出来了。

它拥有众多的优点:在高性能的平台上进行硬件设计,拥有最优化的资源,不需要操作系统,可重新配置等。

现场可编程门阵列(Field Programmable Gate Array,FPGA)是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物,不但有较高的性能,同时又具备可编程逻辑的灵活性和可重用性。

二.项目任务与设计思路跑表设计指标:1、跑表精度为0.01秒2、跑表计时范围为:1小时3、设置开始计时/停止计时、复位两个按钮4、显示工作方式:用六位BCD八段数码管显示读数。

显示格式:分秒0.01秒设计思路简述:1、按键:两个按键均采用边缘触发,其中复位键按下后将强制归零并屏蔽启停键作用,启停键每次生效将使计数器的开关状态翻转一次。

2、计数:由于原始时钟频率为48MHz,故先对源时钟进行480000进制计数,以产生间隔为1ms的进位信号,对该信号进行计数并进位,可得到百分秒的计数值,以此类推,可得到十分秒、秒、十秒、分、十分的计数值,需要注意的是,对十秒和十分的计数应是六进制的。

3、LED显示:由于LED采用动态显示,位选与段选使用同一个1KHz的时钟信号进行同步。

其中位选信号从低位到高位一次点亮各位数码管,当某位数码管被点亮时,相应的段选信号就会被送至数码管,控制其显示字符。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子信息工程专业
FPGA与ASIC设计实践教程
设计报告
班级:电子信息工程1303班
学号:201315110
姓名: 田佳鑫
日期:2015年11月4日
指导老师:何英昊
目录
1系统总体方案及硬件设计 (3)
1.1设计内容 (3)
1.2 设计要求 (3)
1.3 实现要求 (3)
2各模块设计及电路图 (3)
2.1设计项目简介 (3)
2.2分块设计代码 (4)
2.3总体框图设计 (7)
2.4管脚锁定图 (8)
3课程设计体会 (8)
1系统总体方案及硬件设计
1.1 设计内容
数字跑表电路
1.2设计要求
(1)跑表的计时范围为0.01—59min59.99s。

(2)具有异步清零、启动。

计时和暂停功能。

(3)输入时钟频率为100Hz。

(4)要求数字跑表的输出能够直接驱动共阴极7段数码管。

1.3 实现要求
(1)分析功能要求,划分功能模块。

(2)编写各模块的Verilog HDL语言设计程序。

(3)在QuartusⅡ软件或其他EDA软件上完成设计和仿真。

(4)根据实验装置上的CPLD/FPGA芯片,在适配时选择相应的芯片,将设计生成配置文件或JEDEC文件,然后将配置文件或JEDEC文件下载到实验装置上运行,操作实验装置上设定的功能开关,验证设计功能。

2各模块设计及电路图
2.1 设计项目简介
主控模块分别连接6个数码管显示模块和分频模块,分频模块给主控模块的计数器提供时钟源,主控模块在按键的控制下,在其中计数器的作用下输出给数码管显示装置,实现跑表功能。

振荡器
控制按键分频器计




2.2分块设计代码
(1)分频模块:
module fenpin(CLK,CLK2); //输入50MHz,输出分频到1Hz input CLK;
output CLK2;
reg CLK2;
reg[31:0] counter2;
parameter N2=5000000;
always@(posedge CLK)
begin
if(counter2==250000)
begin
counter2<=0;
CLK2<=~CLK2;
end
else
counter2<=counter2+1;
end
endmodule
(2)控制模块:
module sz(clk,clr,pause,msh,msl,sh,sl,mh,ml);
inputclk,clr;
input pause;
output[3:0]msh,msl,sh,sl,mh,ml;
reg[3:0]msh,msl,sh,sl,mh,ml;
reg cn1,cn2;
always@(posedgeclk or posedgeclr)
begin
if(clr)
begin
{msh,msl}<=8'h00;
cn1<=0;
end
else
if(!pause)
begin
if(msl==9)
begin
msl<=0;
if(msh==9)
begin
msh<=0;
cn1<=1;
end
else
msh<=msh+1;
end
else
begin
msl<=msl+1;
cn1<=0;
end
end
end
always@(posedge cn1 or posedgeclr) begin
if(clr)
begin
{sh,sl}<=8'h00;
cn2<=0;
end
else
if(sl==9)
begin
sl<=0;
if(sh==5)
begin
sh<=0;
cn2<=1;
end
else
sh<=sh+1;
end
else
begin
sl<=sl+1;
cn2<=0;
end
end
always@(posedge cn2 or posedgeclr) begin
if(clr)
begin
{mh,ml}<=8'h00;
end
else
if(ml==9)
begin
ml<=0;
if(mh==5)
mh<=0;
else
mh<=mh+1;
end
else
ml<=ml+1;
end
endmodule
(3)显示模块:
module XS7D(DIN,DOUT);
input [3:0]DIN;
output [6:0]DOUT;
reg [6:0]DOUT;
always @(DIN)
begin
case(DIN)
0:DOUT='b1000000;
1:DOUT='b1111001;
2:DOUT='b0100100;
3:DOUT='b0110000;
4:DOUT='b0011001;
5:DOUT='b0010010;
6:DOUT='b0000010;
7:DOUT='b1111000;
8:DOUT='b0000000;
9:DOUT='b0010000;
10:DOUT='b0001000;
11:DOUT='b0000011;
12:DOUT='b1000110;
13:DOUT='b0100001;
14:DOUT='b0000110;
15:DOUT='b0001110; endcase
end
endmodule
2.3总体框图设计
2.4管脚锁定图
三、课程设计体会
FPGA即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

通过学习制作数字跑表,我对于可编程逻辑器件有了更加深刻地体会。

这次实验设计,我的分频模块和显示模块都令我特别头疼,但是在认真的学习过后,我认识到了一些错误和漏洞,我正确的改正了由于分频过快导致的秒表不准。

改正之后,我的数码管却无法显示数字,通过我认真的研究,我发现数码管共阴极和数码管共阳极的概念混淆,改正之后,我的数字跑表正常的工作了。

总体来说这次实验对于我的提升很大,我在课程设计动手实践方面有进步了不少。

相关文档
最新文档