文档库 最新最全的文档下载
当前位置:文档库 › FPGA课程设计

FPGA课程设计

FPGA课程设计
FPGA课程设计

西安欧亚学院

信息工程学院

FPGA系统开发设计报告

2013 / 2014 学年第二学期

设计题目:基于VHDL的分频计设计

专业班级:统本电信1201班

姓名学号:李瑞洋

12620102154071 指导教师:张秀芳

设计成绩:

一、设计任务及要求:

当系统正常工作时,由系统时钟提供的50MHz的输入信号,经过信号源模块,先通过100分频产生1MHZ的时钟信号,再将1MHZ的时钟信号分频产生多种频率输出,其中1HZ的输出频率被作为控制模块的时钟输入,7812HZ的输出频率被作为显示模块的时钟输入,由控制模块产生的计数使能信号testen和清零信号clr对计数模块进行控制,而由其产生的锁存信号load对锁存模块进行控制,一旦计数使能信号为高电平,并且时钟上升沿到来,计数器便开始正常计数,清零信号到来则计数清零,而当锁存信号为高电平时,数据便被锁存器锁存,然后将锁存的数据输出到显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在数码显示管上

可以显示的十进制结果。在数码显示管上可以看到计数结果。数字频率计的原理框图如图所示。主要由5个模块组成,分别是:信号源模块、控制模块、计数模块、锁存器模块和显示器模块[6]

二、基本设计思路

根据数字频率计的系统原理,cnt控制信号发生器。testctl的计数使能信号testen能产生一个1 s宽的周期信号,并对频率计的每一计数器Cnt10的ENA 使能端进行同步控制:当testen高电平时允许计数、低电平时停止计数。

reg32b为锁存器。在信号load的上升沿时,立即对模块的输入口的数据锁存到reg32b的内部,并由reg32b的输出端输出,然后,七段译码器可以译码输出。在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。

Cnt10为十进制计数器。有一时钟使能输入端ENA,用于锁定计数值。当高电平时允许计数,低电平时禁止计数。将八个十进制计数器Cnt10级联起来实现8 位十进制计数功能[2,7]。

disply为七段译码显示驱动电路,可以将频率计数的结果译成能在数码管上显示的相对应的阿拉伯数字,便于读取测量的结果。

为了实现系统功能,测频控制信号发生器testctl、计数器Cnt10、锁存器reg32b存在一个工作时序的问题,设计时需要综合考虑。

8位数字频率计的顶层框图(endfreq.bdf),设计实现包括信号源模块(F1MHZ、CNT)、频率计模块(FREQ)和显示模块(display)三大模块。下面分别介绍三个模块的结构和实现方法。

三.单元模块设计实现及仿真

1、信号源模块的实现

(1)功能简介

信号源是为了产生1MHz 的门控信号和待测的定频信号,而对输入系统时钟clk(50MHz)进行分频的模块,设计源代码PIN1MHZ.VHD 对输入系统时钟clk (50MHz)进行分频产生1MHz 信号。

(2)原程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY PIN1MHZ_1 IS

PORT (clkin : IN STD_LOGIC;

clkout : OUT STD_LOGIC);

END PIN1MHZ_1;

ARCHITECTURE A OF PIN1MHZ_1 IS

BEGIN

PROCESS(clkin)

variable cnttemp : INTEGER RANGE 0 TO 99;

BEGIN

IF clkin='1' AND clkin'event THEN

IF cnttemp=99 THEN cnttemp:=0;

ELSE

IF cnttemp<50 THEN clkout<='1';

ELSE clkout<='0';

END IF;

cnttemp:=cnttemp+1;

END IF;

END IF;

END PROCESS;

END A;

(3)仿真波形

2、频率计模块的实现

(1)功能简介

此程序要求将1MHZ的输入频率分别进行21分频(产生500KHZ的输出频freq500k)、23分频(产生125 KHZ的输出频率freq125k)、25分频(产生31250HZ 的输出频freq31250)、27分频(产生7812HZ的输出频率freq7812)、29分频(产生1953HZ的输出频率freq1953)、211分频(产生488HZ的输出频率freq488)、213分频(产生1HZ的输出频率freq1)。

(2)原程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity cnt is

port(clk : in std_logic; --1MHz 输入

freq1 : out std_logic; --1Hz 输出

freq488 : out std_logic; --488Hz 输出

freq1953 : out std_logic; --1953Hz 输出

freq7812 : out std_logic; --7812Hz 输出

freq31250: out std_logic; --31250Hz 输出

freq125k : out std_logic; --125KHz 输出

freq500k : out std_logic ); --500KHz 输出

end cnt;

architecture behv of cnt is

signal temp: std_logic_vector(19 downto 0);

begin

process(clk)

begin

if clk'event and clk ='1' then

if temp="11110100001000111111" then

temp<="00000000000000000000";

else

temp<=temp+1;

end if;

end if;

end process;

freq1<=temp(19);

freq488<=temp(10);

freq1953<=temp(8);

freq7812<=temp(6);

freq31250<=temp(4);

freq125k<=temp(2);

freq500k<=temp(0);

end behv;

(3)仿真波形

3.测频控制信号产生器

(1)功能简介

控制模块的作用是产生测频所需要的各种控制信号。控制信号的标准输入时钟为1HZ,每两个时钟周期进行一次频率测量。该模块产生的3个控制信号,分别为TSTEN,LOAD,CLR_CNT.CLR_CNT信号用于在每次测量开始时,对计数器进行复位,以清除上次测量的结果,该复位信号高电平有效,持续半个时钟周期的时间。TSTEN为计数允许信号,在TSTEN信号的上升沿时刻计数模块开始对输入信号的频率进行测量,测量时间恰为一个时钟周期(正好为单位时间1s),在此时间里被测信号的脉冲数进行计数,即为信号的频率。然后将值锁存,并送到数码管显示出来。设置锁存器的好处是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。在每一次测量开始时,都必须重新对计数器清0[7]。(2)源程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY TESTCTL IS

PORT ( CLK: IN STD_LOGIC; --1 Hz测频控制时钟

TSTEN: OUT STD_LOGIC; --计数器时钟使能

CLR_CNT: OUT STD_LOGIC; --计数器清零

LOAD: OUT STD_LOGIC); --输出锁存信号END TESTCTL;

ARCHITECTURE ART OF TESTCTL IS

SIGNAL DIV2CLK :STD_LOGIC;

SIGNAL CLR :STD_LOGIC;

SIGNAL loadcnt :STD_LOGIC;

BEGIN

PROCESS ( CLK ) IS

BEGIN

IF CLK'EVENT AND CLK= '1' --1 HZ时钟二分频

THEN DIV2CLK<=NOT DIV2CLK;

END IF ;

END PROCESS;

PROCESS ( CLK,DIV2CLK )

BEGIN

IF CLK= '0' AND DIV2CLK = '0' THEN --产生计数器清零信号

CLR<= '1';

ELSE CLR<= '0' ;

END IF;

if clr='0' and div2clk='0' then

loadcnt<='1';

else loadcnt<='0';

end if;

END PROCESS;

LOAD<=not div2clk; TSTEN<=DIV2CLK;CLR_CNT<=CLR;

END ARCHITECTURE ART;

(3)仿真波形

4.锁存器

(1)功能简介

锁存器模块也是必不可少的,测量模块测量完成后,在load信号的上升沿时刻将测量值锁存到寄存器中,然后输出到显示模块。锁存器是起

数据保持的作用,它将会把数据保存到下次触发或复位。主要是主从触

发器组成的。用于存储数据来进行交换,使数据稳定下来保持一段时间

不变化,直到新的数据将其替换。

(2)源程序LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY REG32B IS

PORT(LOAD: IN STD_LOGIC;

DIN: IN STD_LOGIC_VECTOR(31 DOWNTO 0);

DOUT: OUT STD_LOGIC_VECTOR(31 DOWNTO 0));

END ENTITY REG32B;

ARCHITECTURE ART OF REG32B IS

BEGIN

PROCESS ( LOAD, DIN ) IS

BEGIN

IF LOAD 'EVENT AND LOAD= '1'

THEN DOUT<=DIN; --锁存输入数据

END IF;

END PROCESS;

END ART;

(3)仿真波形

5.十进制计数器

(1)功能简介

计数器模块是由8个带有异步清零端,进位信号输出的模为10的计数模块级连而成。通过(freq.vhd)进行元件例化实现。此十进制计数器的特殊之处是,有一时钟使能输入端ENA,用于锁定计数器。当高电平计数允许,低电平时计数禁止。计数器模块用于对输入信号的脉冲进行计数,该模块必须有计数允许、异步清零等端口,以便于控制模块对其进行控制。

(2)源程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY CNT10 IS

PORT (CLK:IN STD_LOGIC; --计数时钟信号

CLR:IN STD_LOGIC; --清零信号

ENA:IN STD_LOGIC; --计数使能信号

CQ :OUT INTEGER RANGE 0 TO 15; --4位计数结果输出CARRY_OUT:OUT STD_LOGIC); --计数进位

END CNT10;

ARCHITECTURE ART OF CNT10 IS

SIGNAL CQI :INTEGER RANGE 0 TO 15;

BEGIN

PROCESS(CLK,CLR,ENA) IS

BEGIN

IF CLR= '1' THEN CQI<= 0; ----计数器异步清零

ELSIF CLK'EVENT AND CLK= '1' THEN

IF ENA= '1' THEN

IF CQI=10 THEN cqi<=1;

ELSE CQI<=cqi+1;END IF; ----等于9,则计数器清零

END IF;

END IF;

END PROCESS;

PROCESS (CQI) IS

BEGIN

IF CQI=10 THEN CARRY_OUT<= '1'; ----进位输出

ELSE CARRY_OUT<= '0';

END IF;

END PROCESS;

CQ<=CQI;

END ART;

(3)仿真波形

6.显示模块

(1)功能简介

LED有段码和位码之分,所谓段码就是让LED显示出八位数据,一般情况下要通过一个译码电路,将输入的4位2进制数转换为与LED显示对应的8位段码。位码也就是LED的显示使能端,对于共阴级的LED而言,低电平使能,在本设计中设计了一个3位的循环计数器,将计数结果输入到译码器,译码结果输出即可依次使能每个LED。例如:要让8个LED同时工作显示数据,就是要不停的循环扫描每一个LED,并在使能每一个LED的同时,输入所需显示的数据对应的8位段码。虽然8个LED是依次显示,但是受视觉分辨率的影响,看到的现象是8个LED同时工作。display 模块的顶层图如下所示。CNT 计数产生扫描信号(位码),LED模块用于查表产生LED段码输出。

(2)仿真波形

7.整体设计原理图

四.总结设计

本设计对等精度频率计进行了系统的设计。首先介绍了频率测量的一般方法,着重介绍等精度测频原理并进行了误差分析,利用等精度测量原理,通过FPGA运用VHDL编程,利用FPGA(现场可编程门阵列)芯片设计了一个8位数字式等精度频率计,该频率计的测量范围为0-100MHZ,利用QUARTUS Ⅱ集成开发环境进行编辑、综合、波形仿真,并下载到CPLD器件中,经实际电路测试,仿真和实验结果表明,该频率计有较高的实用性和可靠性,达到预期的结果。和传统的频率计相比,利用FPGA设计的频率计简化了电路板设计,提高了系统设

计的实用性和可靠性,实现数字系统的软件化,这也是数字逻辑设计的趋势。

本次设计中,我除了对相关的专业知识以及相关的实验操作进行了回顾,还有许多其他的收获,比如在绘制论文中所需要的相关的电路图的过程中,我还学会使用word绘图,这次毕业设计不但让我对本专业的相关基础知识进行了很好的复习,还对原由书本上的知识进行了拓展和延伸,毕业设计不但锻炼了我的动手能力,也锻炼了我处理问题的能力,并且学会了许多新的知识。

fpga数字钟课程设计报告

f p g a数字钟课程设计报告 Prepared on 24 November 2020

课程设计报告 设计题目:基于FPGA的数字钟设计 班级:电子信息工程1301 姓名:王一丁 指导教师:李世平 设计时间:2016年1月 摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟 目录 摘要 1 课程设计目的 2 课程设计内容及要求

设计任务 设计要求 3 VHDL程序设计 方案论证 系统结构框图 设计思路与方法 状态控制模块 时分秒模块 年月日模块 显示模块 扬声器与闹钟模块 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献 1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。

FPGA设计的报告课程设计

FPGA课程设计 实 验 报 告

实验一:设计一个可控的100进制可逆计数器 一、实验要求 用DE2-115开发板下载。 (1)计数器的时钟输入信号周期为200ns。 (2)以十进制形式显示。 (3)有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用 clr plus minus 功能 0 ××复位为0 1 1 0 递增计数 1 0 1 递减计数 1 1 1 暂停计数 二、关键词 可控制、可逆、100进制、复位、暂停、递增、递减 三、内容摘要 module updown_count(qout,reset,clk,plus,minus); output[7:0] qout;/*定义一个8位的输出,其目的是 低四位和高四位分别表示计数器的个位和十位。*/ input clk,plus,minus,reset;//定义四个输入,时钟,加计数,减计数和清零 reg[7:0] qout;//qout的数据类型为寄存器型 always @(posedge clk)//当clk上升沿到来时执行一遍下列程序 begin if(!reset) qout<=0;//当reset为低电平时,计数器执行清零功能,否则跳过else begin case({minus,plus})//case语句模块,包含加,减和暂停四个模块 2'b10: if (qout[3:0]==0)//判断个位是否为零,若不为零,跳到个位减一begin qout[3:0]<=9;//给个位赋值 if(qout[7:4]==0) qout[7:4]<=9;//判断十位是否为零,并且给十位赋值 else qout[7:4]<=qout[7:4]-1;//由于个位赋9,相当于向十位借一,因而十位减一end else qout[3:0]<=qout[3:0]-1;//个位减一 /*这一部分是减计数模块,其思路是:首先判断个位是否为零,若为零,则执行后面的程序,个位直接赋9,并且十位减一;否则个位减一*/ 2'b01: if (qout[3:0]==9)//判断个位是否为9,否则跳到个位加一begin

FPGA课程设计题目

1、彩灯控制器设计 内容及要求: 设计一个彩灯控制器,具体设计要求如下: (1)要有多种花型变化(至少设计5种),led至少16路 (2)多种花型可以自动变化 (3)彩灯变换的快慢节拍可以选择 (4)具有清零开关 (5)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 2、数字秒表设计 内容及要求: 设计一用于体育比赛的数字秒表,具体设计要求如下: (1)6位数码管显示,其中两位显示min,四位显示see,显示分辨率为0.01 s。 (2)秒表的最大计时值为59min59.99see。 (3)设置秒表的复位/启动键,按一下该键启动计时,再按即清0。依此循环。 (4)设置秒表的暂行/继续键。启动后按一下暂行,再按继续。依此循环。 (5)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 3、交通信号控制系统设计 内容及要求: 设计一个十字路口交通控制系统,具体设计要求如下: (1)东西(用A表示)、南北(用B表示)方向均有绿灯、黄灯、红灯指示,其持续时间分别是40秒、5秒和45秒, 交通灯运行的切换示意图和时序图分别如图1、图2所示。 (2)系统设有时钟,以倒计时方式显示每一路允许通行的时间。 (3)当东西或南北两路中任一路出现特殊情况时,系统可由交警手动控制立即进入特殊运行状态,即红灯全亮,时钟停止计时,东西、南北两路所有车辆停止通行;当特殊运行状态结束后,系统恢复工作,继续正常运行。 图1 交通灯运行切换示意图

B红 CP A绿 A黄 A红 B黄 B绿 5S 5S 图2 交通灯时序图 (4)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 4、简易密码锁设计 内容及要求 设计一个4位串行数字锁。 (1)开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮一个指示灯。否则进入“错误”状态,并发出报警信号。 (2)锁内的密码可调,且预置方便,保密性好。 (3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停下。此时,数字锁又自动等待下一个开锁状态。 (4)完成全部流程:设计规范文档、模块设计、代码输入、仿真、下载验证等,最后就课程设计本身提交一篇课程设计报告。 5、出租车计价器设计 内容及要求 (1)设一个出租车自动计费器,计费包括起步价、行驶计费和等待计费三个部分,用4个数码管显示出金额数目,最大值为999.9元,最小计价单位为0.1元。行驶里程在3公里范围内且等待时间未超过三分钟时按起步价8元计费;行驶里程超过三公里后按每公里2元收费;等待时间超过三分钟后按每分钟1元收费。等待时间用两个数码管显示,最大值为59分钟。 总费用=起步价+(里程-3km )*里程单价+(等待时间-3)*等候单价 (2)能够实现的功能: 显示汽车行驶里程:用四位数字显示,单位为km 。 计程范围为0~99km ,计程分辨率为1km 。 显示等候时间:用两位数字显示分钟,单位为min 。计时范围为0~59min ,计时分辨率为1min 。

FPGA课程设计报告

F P G A 课 程 设 计 报 告 学部:信息科学与技术学部 专业:通信工程 班级:10级1班 学号:100103011125 姓名:万洁 指导老师:祝宏 合作伙伴:张紫君 2012.12.13

一.《任务书》: 实验一100进制的可逆计数器(11——12周)实验二交通灯控制系统(15周) 实验三多功能数字钟系统(14-15周)二.实验书写格式: 一:题目要求 二:程序代码 三:操作步骤及运行结果截图 四:心得体会 三.实验附录: 一:老师提供的资源 二:关于实验所用EP4CE115F29板的简介

实验一100进制的可逆计数器 一、设计一个可控的100进制可逆计数器,要求用实验箱下载。 (1)计数器的时钟输入信号周期为200ns。 (2)以十进制形式显示。 (3)有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用下,计数器具有复位、增或减计数、暂停功能。 clr plus minus 功能 0 ××复位为0 1 1 0 递增计数 1 0 1 递减计数 1 1 1 暂停计数 二、程序如下: module keni100(CLR,CLK,PLUS,MINUS,OUT); //100进制的可逆计数器 input CLR,PLUS,MINUS,CLK; output [7:0]OUT; reg [7:0]OUT; always@(posedge CLK) begin if(!CLR) //如果CLR为零,输出为零;反之,运行else程序 OUT[7:0]<=0; else

begin if(PLUS==0 && MINUS==1) //100进制的递减计数 begin if (OUT[3:0]==0) begin OUT[3:0]<=9; if (OUT[7:4]==0) OUT[7:4]<=9; else OUT[7:4]<=OUT[7:4]-1; end else OUT[3:0]<=OUT[3:0]-1; end if(PLUS==1 && MINUS==0) //100进制的递增计数 begin if (OUT[3:0]==9) begin OUT[3:0]<=0; if (OUT[7:4]==9) OUT[7:4]<=0; else OUT[7:4]<=OUT[7:4]+1; end else OUT[3:0]<=OUT[3:0]+1; end if(PLUS==1 && MINUS==1) OUT<=OUT; //若PLUS和MINUS都为1,暂停计数 if(PLUS==0 && MINUS==0) OUT<=0; //若都为零,输出为零end end endmodule 三、运行程序 1、在quarters II9.1输入程序 打开quarters II界面,点击file→New,在出现的对话框,如图1.1所示,选择Text File,点击OK.

(完整版)基于FPGA的温度传感器课程设计

FPGA课程设计论文 学生姓名周悦 学号20091321018 院系电子与信息工程学院 专业电子科学与技术 指导教师李敏 二O一二年5月28 日

基于FPGA的温度传感器系统设计 1引言 温度是一种最基本的环境参数,人们的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器;模拟集成温度传感器;智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。本文将介绍采用智能集成温度传感器DS18B20,并以FPGA为控制器的温度测量装置的硬件组成和软件设计,用液晶来实现温度显示。 2电路分析 系统框图如下: 第一部分:DS18B20温度传感器 美国 Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 "一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的 DS18B20 体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。 DS18B20 的主要特性:(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电(2)独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯(3)DS18B20 支持多点组网功能,多个DS18B20 可以并联在唯一的三线上,实现组网多点测(4)DS18B20 在使用中不需要任何外

FPGA课程设计报告--简易电子琴的设计[1].doc

西安邮电大学 FPGA课程设计报告 题目:简易电子琴设计及FPGA功能验证 院系: 专业班级: 学生姓名: XX 导师姓名: XX 起止时间: 2012、6、18至2012、6、29

一、课程设计任务: 本设计一个简易电子琴,具体功能如下: 1、具有手动弹奏和自动播放功能; 2、以按键或开关作为电子琴的琴键,输出7个音节的音阶; 3、可以自动播放曲目至少两首。 二、课程设计目的: 1、培养综合运用知识和独立开展实践创新的能力; 2、深入学习Verilog HDL,了解其编程环境; 3、学会运用Modelsim和Quartus II等编程仿真软件; 4、将硬件语言编程与硬件实物功能演示相结合,加深理解Verilog HDL的学习; 三、使用环境: 1、软件:Modelsim和Quartus II等编程仿真软件; 2、硬件:FPGA开发板。 四、课程设计详细方案及功能验证: 1、总体实现方案: 1、简易电子琴的设计通过软硬件结合实现,硬件系统包括主控器芯片、9个按键、LED、蜂鸣器等,软件资源包括编写Verilog HDL程序的应用软件Modelsim和仿真软件Quartus II。电子琴有按键代替琴键的弹奏功能和自动播放功能。 2、整个程序总共分5个模块:主模块,按键模块,曲目1模块,曲目2模块,曲目3模块。 整个方案总共用了9个按键(key1~key9),按键key1~key7作为琴键,通过这七个按键键入不同的音阶。主模块中key8、key9两个按键用于选择是自动播放还是弹奏曲目,令mm=(key8、key9),用mm值的不同选择调用不同模块。如果mm=00,则程序调用按键模块;如果mm=01,则调用曲目1模块,播放曲目1;如果mm=10,则调用曲目2模块,播放曲目2;如果mm11,则调用曲目3模块,播放曲目3。 本次设计的框图:

(完整版)FPGA课程设计(最终版)

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:信息工程学院 题目: 电子琴的设计 课程设计目的: 《FPGA原理与应用》课程设计的目的是为了让学生熟悉基于VHDL语言进行FPGA开发的全流程,并且利用FPGA设计进行专业课程理论知识的再现,让学生体会EDA技术的强大功能,为今后使用FPGA进行电子设计奠定基础。 课程设计内容和要求 设计内容: (1)设计一个八音电子琴。 (2)由键盘输入控制音响,同时可自动演奏乐曲。 (3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。 要求每个学生单独完成课程设计内容,并写出课程设计说明书、说明书应该包括所涉及到的理论部分和充足的实验结果,给出程序清单,最后通过课程设计答辩。 时间安排: 指导教师签名:年月日

系主任(或责任教师)签名:年月日

目录 摘要 (1) Abstract (2) 1设计意义和要求 (3) 1.1设计意义 (3) 1.2功能要求 (3) 2方案论证及原理分析 (4) 2.1实现方案比较 (4) 2.2乐曲实现原理 (4) 2.3系统组成及工作原理 (6) 3系统模块设计 (8) 3.1顶层模块的设计 (8) 3.2乐曲自动演奏模块的设计 (8) 3.3音阶发生器模块的设计 (9) 3.4数控分频器模块的设计 (9) 4程序设计 (11) 4.1VHDL设计语言和ISE环境简介 (11) 4.2顶层模块的程序设计 (12) 4.3乐曲自动演奏模块的程序设计 (13) 4.4音阶发生器模块的程序设计 (13) 4.5数控分频模块的程序设计 (14) 5设计的仿真与实现 (15) 5.1乐曲自动演奏模块仿真 (15) 5.2音调发生模块仿真 (18) 5.3数控分频模块仿真 (19) 5.4电子琴系统的仿真 (20) 5.5设计的实现 (22) 5.6查看RTL视图 (23) 5.7查看综合报告 (25) 6心得体会 (31) 7参考文献 (32) 8附录 (33)

FPGA课程设计报告--简易电子琴的设计

邮电大学 FPGA课程设计报告 题目:简易电子琴设计及FPGA功能验证 院系: 专业班级: 学生:XX 导师:XX 起止时间:2012、6、18至2012、6、29

一、课程设计任务: 本设计一个简易电子琴,具体功能如下: 1、具有手动弹奏和自动播放功能; 2、以按键或开关作为电子琴的琴键,输出7个音节的音阶; 3、可以自动播放曲目至少两首。 二、课程设计目的: 1、培养综合运用知识和独立开展实践创新的能力; 2、深入学习Verilog HDL,了解其编程环境; 3、学会运用Modelsim和Quartus II等编程仿真软件; 4、将硬件语言编程与硬件实物功能演示相结合,加深理解Verilog HDL的学习; 三、使用环境: 1、软件:Modelsim和Quartus II等编程仿真软件; 2、硬件:FPGA开发板。 四、课程设计详细方案及功能验证: 1、总体实现方案: 1、简易电子琴的设计通过软硬件结合实现,硬件系统包括主控器芯片、9个按键、LED、蜂鸣器等,软件资源包括编写Verilog HDL程序的应用软件Modelsim和仿真软件Quartus II。电子琴有按键代替琴键的弹奏功能和自动播放功能。 2、整个程序总共分5个模块:主模块,按键模块,曲目1模块,曲目2模块,

曲目3模块。 整个方案总共用了9个按键(key1~key9),按键key1~key7作为琴键,通过这七个按键键入不同的音阶。主模块中key8、key9两个按键用于选择是自动播放还是弹奏曲目,令mm=(key8、key9),用mm值的不同选择调用不同模块。如果mm=00,则程序调用按键模块;如果mm=01,则调用曲目1模块,播放曲目1;如果mm=10,则调用曲目2模块,播放曲目2;如果mm11,则调用曲目3模块,播放曲目3。 本次设计的框图:

FPGA课程设计

FPGA课程设计 学院: 年级专业: 学生姓名: 日期:

题目:用Verilog语言设计一个程序来控制数码管动态显示0~F 小组成员: 指导老师: 开发板:A-C8V4 芯片型号:CycloneII EP2C8Q208C8N 设计目的: 本课程设计的目的是熟练掌握相关软件的使用和操作。能对Verilog语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。在成功掌握软件操作基础上,将所数字电路的基础课知识与Verilog语言的应用型知识结合起来并与实际设计,操作联系起来,即“理论联系实际”。深入了解Verilog语言的作用与价值,对用硬件语言设计一个电路系统开始具备一个较完整的思路与较专业的经验。对EDA技术有初步的认识,并开始对EDA技术的开发创新有初步的理解。 设计内容:利用verilog语言设计一个程序,其功能是使LED数码管循环动态显示0~F 程序设计: module led0 (clk_50M,led_bit,dataout); input clk_50M; output [7:0] dataout; output led_bit; reg [7:0] dataout; reg led_bit; reg [27:0] count; always led_bit <= 'b0; always @ ( posedge clk_50M ) begin count<=count+1; end always @ ( posedge clk_50M ) begin case ( count[27:24] ) 0: dataout<=8'b11000000; 1: dataout<=8'b11111001; 2: dataout<=8'b10100100; 3: dataout<=8'b10110000; 4: dataout<=8'b10011001; 5: dataout<=8'b10010010; 6: dataout<=8'b10000010; 7: dataout<=8'b11111000; 8: dataout<=8'b10000000; 9: dataout<=8'b10010000; 10:dataout<=8'b10001000; 11:dataout<=8'b10000011; 12:dataout<=8'b11000110; 13:dataout<=8'b10100001; 1

FPGA课程设计

河南机电高等专科学校 《可编辑逻程器件原理与应用课程设计》 题目:数字跑表 班级: 学号: 姓名: 2012年6月8日

数字跑表设计 一、设计题目 设计一个以0.01s为基准计时信号的实用数字式跑表 二、设计要求 1)跑表计时显示范围0.01s—59min59.99s,计时精度为10ms。 2)具有清零、启动计时、暂停计时功能,操作按键(开关)不超过2个。 3)时钟源误差不超过0.01s。 三、总体设计思路 数字秒表设计采用模块化思想,自顶向下设计。总体上含有分频模块、计时控制器模块、计数模块、LED显示模块四个基本模块。各模块功能如下:(1)分频模块 分频器通过对256Hz时钟分频产生100Hz时钟,它同COUNT10中的十进制计数器要求的时钟频率一致。 (2)计时控制器模块 计时控制器模块的作用是将按键信号转变为计时器的控制信号。本设计中设置了2个按键,即启动/暂停键和清零键,由它们产生的计数允许保持和清零信号。 (3)计时模块 计时器通过对10ms脉冲的计数,达到计时的目的。由于数字跑表的计时范围为0到59分59.99秒,所以计时模块COUNT共需四个十进制计数器和两个六进制计时器。 (4)LED显示模块 用于数字跑表的最后显示 四、设计步骤如下: (1)分频模块 由于试验箱没有100Hz的时钟源,所以应设计分频模块分频。将输出256Hz 的时钟频率经过分频得到100Hz的时钟源,作为百分之一秒位的时钟输入, 每产生一个时钟上升沿,计数器加1即为10ms。新建Text Editor,以VHDL语言设计分频模块,程序源码如下: library ieee; use ieee.std_logic_1164.all; entity DIV is Port (clr:in std_logic; clk:in std_logic; clkout:out std_logic); end DIV; architecture a of DIV is begin process (clk,clr)

fpga课程设计报告

第一部分 EDA技术的仿真 1、奇偶校验位产生器 1.1奇偶校验位的技术要求 奇偶校验是通信中常用的一种数据校验方式,试设计一个奇偶校验位产生器,根据输入字节(8位)产生相应的奇偶校验位(1的个数为奇数时输出低电平,即奇校验位为1)和偶校验位(1的个数为偶数时输出高电平,即偶校验位为1) 1.2奇偶校验位的原理 通过计算数据中“1”的个数是奇数还是偶数来判断数据的正确性。在被校验的数据后加一位校验位或校验字符用作校验码实现校验。 其生成方法是: 奇校验:确保整个被传输的数据中“1”的个数是奇数个,即载荷数据中“1”的个数是奇数个时校验位填“0”,否则填“1”; 偶校验:确保整个被传输的数据中“1”的个数是偶数个,即载荷数据中“1”的个数是奇数个时校验位填“1”,否则填“0”。 1.3奇偶校验位的功能及其仿真波形 奇偶校验位的功能具体见下表所示: 输入8位的二进制序列奇校验位 even 偶校验位 odd 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 1 1 0 0 1 其具体实现程序如下所示: module parity(data,odd,even); input [0:7]data; output odd,even; assign odd=^data; assign even=~odd; endmodule 根据程序我们得到如下的仿真波形: 图1 奇偶校验位仿真波形 中国计量学院信息工程学院课程设计报告P.2

2、十六位数据选择器 2.1数据选择器的原理 在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,数据选择器(MUX)的逻辑功能是在地址选择信号的控制下,从多路数据中选择一路数据作为输出信号。 在数据选择器中,我们设定一个控制输入端ENA ,当ENA=1时,电路不能工作,输出Y=0;而当ENA=0时,电路才处于工作状态。由于我们设计的是16选1数据选择器,因而其有4个数据控制端,即S0,S1,S2,S3,根据这4个控制端的状态有选择性的输出。 2.2数据选择器的实现电路图 我们知道一个16选1的数据选择器是由5个4选1的数据选择器组成的,4选1的基本电路如下图所示: W[0..3]S[1..0] ENA f mux_4 inst2 在左图中,ENA 为使能控制输入端,低 电平有效,S 为两位的数据控制端,W 为输入端,f 为输出端。有上述4选1的原理图我们可以得到16选1的原理图: W[0..3]S[1..0]ENA f mux_4 inst W[0..3]S[1..0]ENA f mux_4 inst1 W[0..3]S[1..0]ENA f mux_4 inst2 W[0..3]S[1..0]ENA f mux_4 inst3 W[0..3]S[1..0]ENA f mux_4 inst4S3\32控制端 S1\S0控制端 图2 16选1数据选择器原理图 2.3数据选择器的功能仿真

FPGA课程设计报告

F P G A课程设计报告 (实现多功能数字钟) 专业班级: 07通信2班 姓名:朱绍兴 学号:0701******** 时间:2009.12.30

一、标题:设计多功能数字钟控制电路 二、任务书:用MAX+PLU SⅡ软件及Verilog HDL语言设计 一个多功能的数字钟,包括有时、分、秒的计 时,以及校时(对小时、分钟和秒能手动调整 以校准时间)、正点报时(每逢整点,产生“嘀 嘀嘀嘀-嘟”,4短一长的报时音)等附加功能。 三、关键词:24进制、60进制、正点报时、校时、数字钟 四、总体方案:多功能数字钟控制电路框图是由三部分组成 的,即秒分时控制电路、整点报时控制电路、 时段控制电路。用Verilog HDL硬件描述语 言完成编译和仿真。 五、原理框图如下: ↓ ↓ ↓

六、Verilog HDL硬件描述语言编写的功能模块: /*秒计数器m60*/ module m60(M,CP60M,CPM,RD); output [7:0]M; output CP60M; input CPM; input RD; reg [7:0]M; wire CP60M; always@(negedge RD or posedge CPM) begin if(!RD) begin M[7:0]<=0; end else begin if((M[7:4]==5)&&(M[3:0]==9)) begin M[7:0]<=0; end else begin if(M[3:0]==9) begin M[3:0]<=0; if(M[7:4]==5) begin M[7:4]<=0;end else M[7:4]<=M[7:4]+1; end

FPGA课程设计报告

FPGA课程设计报告 题目:基于CPLD的 1602字符液晶显示系统设计院系:信息与电气工程学院 班级:电子信息工程 学号: 学生姓名: 指导教师: 成绩: 2011 年7 月

基于CPLD的1602字符液晶显示系统设 计 一. 设计题目: 基于CPLD的1602 字符液晶显示系统设计 二.设计要求技术指标: 要求用1602 液晶显示字符; 显示内容:学号+英文姓名; 显示方式:流动显示,开关控制字符 流动速度及方向;具有暂停和清 屏的功能; 三.设计平台: QUARTUSII软件MARS-1270 CPLD 1602 液晶 四.设计思路与设计步骤: 液晶指令介绍: 要想控制1602 液晶显示字符,首先需要弄清 楚1602 有那些可控管脚, 有哪些控制命令,如何控制其显示,如何控制其移动及如何控制其移动速度及方 (1)接口说明:

(2)基本操作时序: A. 读状态:输入:RS=L,RW=H,E=H,输出:D B0--DB7=状态字 B.写指令:输入:RS=L,RW=L,E=下降沿脉冲, DBO--DB7=指令码, 输出:无 C.读数据:输入:RS=H,RW=H,E=H输出:, D B0--DB7=数据 D.写数据:输入:RS=H,RW=L,E=下降沿脉冲, DBO--DB7=数据, 输出:无 (3)指令集及其设置说明: A. 清屏指令: 功能:<1> 清除液晶显示器即将DDRAM的内容全部填入"空白"的ASCII码20H; <2> 光标归位,即将光标撤回液晶显示屏的左上方; <3> 将地址计数器(AC)的值设为0。 B.进入设置模式指令: 功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个 字符是否移动。参数设定的情况如下所示: 位名设置 I/D 0= 写入新数据后光标左移1= 写入新数据后光标右移

Verilog fpgA程序课程设计

课题一 一,设计一个可控的100进制可逆计数器,要求用实验箱下载。 (1)计数器的时钟输入信号周期为200ns。 (2)以十进制形式显示。 (3)有一个复位端clr和两个控制端plus和minus,在这些控制信号的作用下,计数器具有复位、增或减计数、暂停功能。 二,设计思路: 由题目可知,可逆计数器有四种工作模式,即清零,加计数,减计数和暂停。由此,我想到有case语句,这也是整个程序的核心。 三,源代码 module updown_count(qout,reset,clk,plus,minus); output[7:0] qout;/*定义一个8位的输出,其目的是 低四位和高四位分别表示计数器的个位和十位。*/ input clk,plus,minus,reset;//定义四个输入,时钟,加计数,减计数和清零 reg[7:0] qout;//qout的数据类型为寄存器型 always @(posedge clk)//当clk上升沿到来时执行一遍下列程序 begin if(!reset) qout<=0;//当reset为低电平时,计数器执行清零功能,否则跳过 else begin case({minus,plus})//case语句模块,包含加,减和暂停四个模块 2'b10:

if (qout[3:0]==0)//判断个位是否为零,若不为零,跳到个位减一 begin qout[3:0]<=9;//给个位赋值 if(qout[7:4]==0) qout[7:4]<=9;//判断十位是否为零,并且给十位赋值 else qout[7:4]<=qout[7:4]-1;//由于个位赋9,相当于向十位借一,因而十位减一end else qout[3:0]<=qout[3:0]-1;//个位减一 /*这一部分是减计数模块,其思路是:首先判断个位是否为零,若为零,则执行后面的程序,个位直接赋9,并且十位减一;否则个位减一*/ 2'b01: if (qout[3:0]==9)//判断个位是否为9,否则跳到个位加一 begin qout[3:0]<=0;//若上面个位为9判断成立,则给个位赋值 if(qout[7:4]==9) qout[7:4]<=0;//判断十位是否为9,若为9,则赋0 else qout[7:4]<=qout[7:4]+1;//若十位不为9,十位加一 end else qout[3:0]<=qout[3:0]+1;//个位加一 /*这一部分是加计数模块,首先判断个位是否为9,若不为9,个位加1;否侧,再判断十位是否为9, 若为9,十位赋0,否侧十位加1。*/ 2'b11:

FPGA抢答器设计报告

Vb开办上海电力学院 课程设计报告 信息工程系 抢答器设计报告 一、设计目的: 本课程的授课对象是电子科学与技术专业本科生,是电子类专业的一门重要的实践课程,是理论与实践相结合的重要环节。 本课程有助于培养学生的数字电路设计方法、掌握模块划分、工程设计思想与电路调试能力,为以后从事各种电路设计、制作与调试工作打下坚实的基础 二、实验器材和工具软件: PC机一台、QuartusII软件、DE2板。 三、设计内容: (1)抢答器可容纳四组12位选手,每组设置三个抢答按钮供选手使

用。 (2)电路具有第一抢答信号的鉴别和锁存功能。在主持人将系统复位并发出抢答指令后,蜂鸣器提示抢答开始,时显示器显示初始时间并开始倒计时,若参赛选手按抢答按钮,则该组指示灯亮并用组别显示器显示选手的组别,同时蜂鸣器发出“嘀嘟”的双音频声。此时,电路具备自锁功能,使其它抢答按钮不起作用。 (3)如果无人抢答,计时器倒计时到零,蜂鸣器有抢答失败提示,主持人可以按复位键,开始新一轮的抢答。 (4)设置犯规功能。选手在主持人按开始键之前抢答,则认为犯规,犯规指示灯亮和显示出犯规组号,且蜂鸣器报警,主持人可以终止抢答执行相应惩罚。 (5)抢答器设置抢答时间选择功能。为适应多种抢答需要,系统设有10秒、15秒、20秒和3O秒四种抢答时间选择功能。 四、设计具体步骤: 首先把系统划分为组别判断电路模块groupslct,犯规判别与抢答信号判别电路模块fgqd,分频电路模块fpq1,倒计时控制电路模块djs,显示时间译码电路模块num_7seg模块,组别显示模块showgroup 模块这六个模块,各模块设计完成后,用电路原理图方法将各模块连接构成系统。 各模块功能及代码: 1、组别判别模块 (1)功能:可容纳四组12位选手,每组设置三个抢答按钮供选手使用。若参赛选手按抢答按钮,则输出选手的组别。此时,电路具

课程设计-基于fpga的vga图形显示大学论文

电子信息工程专业综合设计(报告) (课程设计) 题目基于FPGA的VGA图形显示 二级学院电气与电子工程学院 专业电子信息工程 班级 学生姓名学号 同组姓名 指导教师 时间

基于FPGA的VGA图形显示 摘要: 本次的题目是基于FPGA的VGA图形显示,实现VGA图像显示与控制。本文介绍的主要内容围绕着显示特定图片,且图片可受控制的相关原理与方法展开。根据VGA显示原理,利用VHDL作为逻辑描述手段,设计了一种基于现场可编程器件FPGA的VGA接口控制器。实现VGA图像显示控制器是通过Altera公司的QuartusII软件环境下对VGA模块的设计和顶层逻辑框图设计。FPGA的嵌入式系统中能代替VGA的专用显示芯片,节约硬件成本,节省计算机处理时间,加快数据处理速度并具有显示面积大,色彩丰富、承载信息量大、接口简单等优点。除此以外FPGA芯片和EDA设计方法的使用,可根据用户的需求,为设计提供了有针对性的VGA显示控制器,可不需要依靠计算机,它可以大大降低成本,并可以满足生产实践中不断改变的需要。 关键字:FPGA VGA 图像控制器 一、前言 本次课程设计主要是通过Altera公司的QuartusII软件环境下对VGA模块的设计和顶层逻辑框图设计。VGA是IBM于1987年提出的一个使用模拟信号的电脑显示标准。在性能上,VGA将16色模式的分辨率提高到了640×480,同时VGA新提供了一种具有320×200分辨率、256种颜色的图形模式,且所显示的每一种颜色都可从262144(18位)种颜色中选择,VGA的这种色彩显示能力对微机图形/图象软件的发展起到了很大的促进作用先后分别经历了EGA, EGA, VGA, SVGA, XGA, SXGA, UXGA, QXGA, WQXGA, QSXGA, WQSXGA, QUXGA, WQUXGA, 1080P。 目前大多数计算机与外部显示设备之间都是通过模拟VGA接口连接,计算机内部以数字方式生成的显示图像信息,被显卡中的数字/模拟转换器转变为R,G,B三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。对于模拟显示设备,如模拟CRT显示器,信号被直接送到相应的处理电路,驱动控制显像管生成图像。而对于LCD、DLP等数字显示设备,显示设备中需配置相应的

FPGA课程设计报告

Shenyang Agricuttural University FPGA课程设计报告 题目:基于CPLD的1602字符液晶显示系统设计院系: _________ 信息与电气工程学院___________ 班级: __________________ 电子信息工程_________ 学号:____________________________________________ 学生姓名:_________________________________________ 指导教师:_________________________________________ 成绩:____________________________________________ 2011年7月

基于CPLD勺1602字符液晶显示系统设计 一.设计题目: 基于CPLD勺1602字符液晶显示系统设计 二?设计要求技术指标: 要求用1602液晶显示字符; 显示内容:学号+英文姓名; 显示方式:流动显示,开关控制字符流动速度及方向;具有暂停和清屏的 功能; 三?设计平台: QUARTUSII 6.0软件MARS-1270 CPLD 1602 液晶 四?设计思路与设计步骤: 1.1602液晶指令介绍: 要想控制1602液晶显示字符,首先需要弄清楚1602有那些可控管脚,有哪些控制命令,如何控制其显示,如何控制其移动及如何控制其移动速度及方向等,下面首先介绍一下我所要用的指令及管脚等。 (1)接口说明: (2)基本操作时序: A. 读状态:输入:RS=L RW=H,E=H,输出:DB0--DB7= 犬态字

FPGA课程设计

西安欧亚学院 信息工程学院 FPGA系统开发设计报告 2013 / 2014 学年第二学期 设计题目:基于VHDL的分频计设计 专业班级:统本电信1201班 姓名学号:李瑞洋 12620102154071 指导教师:张秀芳 设计成绩:

一、设计任务及要求: 当系统正常工作时,由系统时钟提供的50MHz的输入信号,经过信号源模块,先通过100分频产生1MHZ的时钟信号,再将1MHZ的时钟信号分频产生多种频率输出,其中1HZ的输出频率被作为控制模块的时钟输入,7812HZ的输出频率被作为显示模块的时钟输入,由控制模块产生的计数使能信号testen和清零信号clr对计数模块进行控制,而由其产生的锁存信号load对锁存模块进行控制,一旦计数使能信号为高电平,并且时钟上升沿到来,计数器便开始正常计数,清零信号到来则计数清零,而当锁存信号为高电平时,数据便被锁存器锁存,然后将锁存的数据输出到显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在数码显示管上 可以显示的十进制结果。在数码显示管上可以看到计数结果。数字频率计的原理框图如图所示。主要由5个模块组成,分别是:信号源模块、控制模块、计数模块、锁存器模块和显示器模块[6] 二、基本设计思路 根据数字频率计的系统原理,cnt控制信号发生器。testctl的计数使能信号testen能产生一个1 s宽的周期信号,并对频率计的每一计数器Cnt10的ENA 使能端进行同步控制:当testen高电平时允许计数、低电平时停止计数。 reg32b为锁存器。在信号load的上升沿时,立即对模块的输入口的数据锁存到reg32b的内部,并由reg32b的输出端输出,然后,七段译码器可以译码输出。在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。

FPGA课程设计报告

课程设计 开课学期: 2014年—2015年下学期 课程名称:FPGA课程设计 学院:信息科学与工程学院 专业:集成电路设计与集成系统 班级:集成1201班 学号:20121221077 姓名:蔚 任课教师:涛 2015 年 7 月 21 日

基于FPGA的数字钟设计 摘要 本文介绍一种利用现场可编程逻辑器件FPGA产生多功能数字钟的设计方案。数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,是人们日常生活中不可少的必需品。 本设计采用EDA技术,以硬件描述语言Verilog为系统逻辑描述手段设计文件,在Quartus II工具软件环境下,由各个基本模块共同构建了一个基于FPGA的数字钟。 系统由时钟模块、控制模块、计时模块、数据译码模块、显示以及报时模块组成。经编译和仿真所设计的程序,在可编程逻辑器件上下载验证。开发板采用5CSEMA5F31C6N。本次设计的多功能数字钟,具有时、分、秒的数码管显示功能,以24小时循环计数,具有整点报时功能,并有由按键输入进行数字钟的校时、清零、启停功能。 关键词:可编程逻辑器件 FPGA Verilog 数字钟 EDA技术

Abstract This paper introduces a kind of based on field programmable logic device FPGA design of multi-function digital clock, the digital clock is used in digital circuits, and seconds digital display timing device is in people's daily life necessities. This design using EDA technology, hardware description language Verilog logic system description method of design documents, in the Quartus II software environment, by all the basic modules together to build a a FPGA based digital clock. System consists of the clock module, control module, time module, data decoding module, display and broadcast module composition. Program after compilation and simulation design, programmable logic device to download verification. Development board using the multi-function digital clock 5CSEMA5F31C6N. this design, with time, points, the second digital tube display, to a 24-hour cycle count, with the whole point timekeeping function and input by the key of the school of digital clock, clear, open and stop function. Key words: programmable logic device FPGA Verilog Digital cloc EDA Technology

相关文档