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

课程设计-基于fpga的vga图形显示大学论文
课程设计-基于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等数字显示设备,显示设备中需配置相应的

A/D(模拟/数字)转换器,将模拟信号转变为数字信号。在经过D/A和A/D2次转换后,不可避免地造成了一些图像细节的损失。VGA接口应用于CRT显示器无可厚非,但用于连接液晶之类的显示设备,则转换过程的图像损失会使显示效果略微下降。

Quartus II 是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

自1985年Xilinx公司推出第一片现场可编程逻辑器件(FPGA)至今,FPGA历史已经经历了十几年的发展历史。FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使FPGA越来越多地取代了ASIC的市场,特别是对小批量、多品种的产品需求,是FPGA成为首选。自发明PFGA以来,就不断的推出新器件和开发工具,力求芯片的速度更高、功耗更低。主要推出了Virex系列和SparanTM系列的FPGA,Vriex系列突破了传统FPGA密度和性能限制,使FPGA不仅仅是逻辑模块,而成为一种系统元件。而Spartan 系列为替代ASIC的大容量FPGA树立了一个新的低成本标准。

二、方案设计及工作原理

(一)设计方案

此设计要实现某一分辨率下(如640*480@60Hz)的VGA显示驱动。利用VHDL硬件描述语言对每个功能模块进行描述,并逐一对每个功能模块进行编译仿真,使顶层VGA显示控制器的模块实体仿真综合得以顺利通过。使用的为百科融创实验箱(Cyclone III EP3C16Q240C8)要用到4×4键盘、VGA显示控制、ROM等模块。

本次课程设计的实现功能如下:

1.在白色背景下显示“重庆理工大学”的彩色字体并且可以每间隔3秒变换字体颜色;

2.显示设计者的学号与姓名;

3.显示四张128*128像素大小的彩色图片,通过实验箱上的4x4键盘控制可以选择不同的图片显示,且图像可以在屏幕上移动。按键A:选择第一幅图片,按键B:选择第二幅图片,按键C:选择第三幅图片,按键D:选择第四幅图片,按键2:增大垂直移动速度,按键8:减小垂直移动速度,按键4:增大水平移动速度,按键6:减小水平移动速度,按键*:暂停/移动。(水平和垂直方向每帧分别移动“H_Step”点和“V_Step”点),通过键盘改变“H_Step”和“V_Step”的值即可改变其移动速度和方向。图像碰到屏幕边沿会反弹回去。

(二)工作原理

(1)VGA显示图像

常见的彩色显示器,一般由CRT(阴极射线管)构成。彩色是有R,G.B(红:RED,绿:GREEN,蓝:BLUE)三基色组成。显示是用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有银光粉的荧光屏幕上,产生R,G,B三基色,合成一个彩色像素[7-8]。扫描从屏幕的左上方开始,从左到右,从上到下,进行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行同步,扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。VGA接口是一种D型接口,上面共有15针空,分成三排,每排五个。VGA接口是显卡上应用最为广泛的接口类型,多数的显卡都带有此种接口。有些不带VGA接口而带有DVI(Digital Visual Interface数字视频接口)接口的显卡,也可以通过一个简单的转接头将DVI接口转成VGA接口,通常没有VGA接口的显卡会附赠这样的转接头

(2)FPGA(Filed Programmable Gate Array)

FPGA现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半订制电路而出现的,既解决了订制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA的工作机理基于查找(Look-Up-Table,LUT),LUT其实就是一个RAM。目前很多FPGA 中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线、大小位16×1的RAM、当用户通过HDL语言描述了一个逻辑电路以后,FPGA的开发软件会自动计算逻辑电路所有可能的结果,并事先把计算好的结果记入RAM中。这样,每当有信号输入需要进行逻辑运算时,不必再用门去搭电路了,只要把输入作为一个地址进行查表,找出对应地址所存储的内容,然后输出即可。对于一个LUT无法完成的电路,则需要通过进行逻辑信号将多个单元相连,这样FPGA就可以实现复杂的逻辑了。

(3)VHDL语言

Verilog HDL是目前应用最为广泛的硬件描述语言.Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述.Verilog HDL进行设计最大的优点是其工艺无关性.这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路.Verilog HDL是一种硬件描述语言(hardware description language),为了制作数字电路而用来描述FPGA的设计之用[17]。

显示控制器是一个较大的数字系统,采用模块化设计原则、借鉴自顶向下的程序设计思想,进行功能分离并按层次设计。利用Verilog硬件描述语言对每个功能模块进行描述,并逐一对每个功能模块进行编译仿真,使顶层VGA显示控制器的模块实体仿真综合得以顺利通过[18]。VGA显示控制器主要由以下模块组成:分频模块、VGA时序控制器模块、彩条图形生成模块、VGA显示模块、存储模块等,如下图2.1所示。

(图2.1)

三、各功能模块设计和仿真

图3.1为整个设计的顶层电路,主要由“imagController”模块、VGA模块、“Keyboard_Manage”模块、“Read_Keyboard”模块、“div_24000”模块、“PLL”模块、“SEL_ROM”模块、6个四个ROM模块、“digital”模块。

(图3.1)

(一)、时钟信号类

(1)“div_24000”模块:

用于将24MHz时钟分频输出1KHz用于键盘扫描。

(2)“PLL”模块:

锁相环用于将24MHz时钟信号变频为25MHz。

(3)“digital”模块:

计时功能,实现“imagController”模块里的“重庆理工大学”字样间隔3秒变色。sec_1为计时秒数的个位数, sec_10为计时秒数的十位数,将其传入到“imagController”模块中,实现文字的变色。

(二)、ROM模块

ROM模块使用宏功能模块实现。对于可移动的图片,先选择所需

要的图片,裁剪成128*128大小的,使用“BmpToMif”软件生成对

应的“mif”文件,存入工程所在的文件夹。并设置其内存初始化

文件分别为“hua01.mif”、“hua02.mif”、“hua03.mif”、

“hua04.mif”,根据图片的大小选择ROM的位数与存储大小。在

显示“重庆理工大学”字样时,先使用字模工具对图片进行转换,将其数据存入一个ROM模块中。使用同样的方式将含名字学号的图片模块化。ROM模块用于存储图片信息。将其数据线与地址线输入“imagController”模块中,实现图像数据的传输。

(三)、控制部分

(1)“Read_Keyboard”模块

读入4*4键盘的数据,根据按键情况输出不同的数据。

(2)“Keyboard_Manage”模块

用于接收键盘输入,根据键盘输入设置图像显示及移动参数。

(3)“SEL_ROM”模块

用于选通四个图像ROM,即根据SEL[1..0]的值,从Q1~Q4中选择一个

输出到ROM_DATA端口。

(四)、“imagController”模块

此模块为一个核心图片控制部分,包含有对图片的

各类处理,使其到达不同的显示效果。

端口VS、hcnt、vcnt是“VGA”模块的输出,用

于确定扫描点位置;H_Step、V_Step、Pause端口

由“Keyboard_Manage”模块输出,用于设置图像

块移动的速度和方向;ROM_DATA是来自于4个存储

128*128大小图片的ROM模块中的图像数据。

ROM_DATA1是来自于存储“重庆理工大学”字样的ROM模块的图像数据。ROM_DATA1是来自学号名字的图像数据。sec_1为计时秒数的个位数, sec_10为计时秒数的十位数,计时,实现文字的变色。

(1)多张图片的显示

需要在屏幕上同时显示出3张图片,如在显示128*128大小的图片,设定显示图片的大小。

if (imag_X+128>hcnt and hcnt>=imag_X and imag_Y+128>vcnt and vcnt>=imag_Y) then--扫描到图像块内

imag_RGB<=ROM_DATA;

(2)图片的移动

按键A:选择第一幅图片,按键B:选择第二幅图片,按键C:选择第三幅图片,按键D:选择第四幅图片,按键2:增大垂直移动速度,按键8:减小垂直移动速度,按键4:增大水平移动速度,按键6:减小水平移动速度,按键*:暂停/移动。(水平和垂直方向每帧分别移动“H_Step”点和“V_Step”点),通过键盘改变“H_Step”和“V_Step”的值即可改变其移动速度和方向。图像碰到屏幕边沿会反弹回去。

实现程序如下:

(3)文字的变色

在对含“重庆理工大学”字样的图片进行mif格式转化的时候,设置为黑白图片,用‘0’表示黑色,即有字显示的地方。选择出屏幕显示文字的位置,“digital”模块开始计时,当秒的十位数字为0,个位数为3时(sec1_1<=3 and sec10_10<=0)即表示3秒,将原来的黑色字体变为红色。

于是随着计时器的计时,秒数在一直变化,就实现了字体颜色的间隔3秒改变一次并以60秒为一次循环。具体程序段如下:

(五)VGA模块

将“imagController”模块处理的数据通过imag_rgb[2..0]端口输入

外部电路当前颜色值;hcnt和vcnt端口的作用为将屏幕行列位置输出,由外部电路计算当前颜色值,根据行列位置确定扫描点的颜色使其显示在640*480的屏幕上,达到预期效果。

四、结果分析与调试

在完成各部分的程序编写后,将其模块化在底层设计图中按照设计方案连接,之后进行编译无误后对各管角进行绑定。

(一)运行的方式与结果

完成管脚绑定后,运行程序,运行的效果图(4.1):

在白色的背景下显示有128*128大小的图片,“重庆理工大学”的字样和含有学号与名字的图片,“重庆理工大学”的字样将随着时间3秒变化一次颜色。

图(4.1)

当按下按键A时在128*128大小的区域内显示第一幅图片,按下按键B时切换到第二幅图片,按下按键C时切换第三幅图片,按下按键D切换到第四幅图片。

当按下按键2,图片开始上下移动,按下多次增大垂直移动速度,按下按键8则减小垂直移动速度;按下按键4,图片在上下移动的基础上开始左右移动,按下多次则增大水平移动速度,按下按键6则减小水平移动速度;按下按键*图片暂停移动,再按一次则恢复移动。

(二)调试及问题解决

在调试时出现的问题:

(1)想要在屏幕上同时显示多张图片

希望在移动图片的背景上添加上“重庆理工大学”的字样与姓名和学号,通过在原有基础上增加2个ROM存放这2张图片的数据,然后在“imagController”模块上多定义2个地址线端口和数据线端口再在其中添加语句,编译完成后运行程序就可以在一个屏幕上显示3张图片了。

(2)“重庆理工大学”字样不能完整显示在指定的区域内,出现字的重叠。

调试多次后,发现问题出现在实现根据扫描行列计算图像ROM地址功能的程序段中

通过更改TEMP_Y1和TEMP_X1所减的数据值来调整“重庆理工大学”字样的位置,多次更改直到最合适为止。

(3)使“重庆理工大学”字样每间隔3秒换一次颜色

通过添加一个计时器的模块,将其秒的数据接入到“imagController”模块上去,添加程序如下,实现字体变色功能。

五、心得体会

经过三周的时间,从最初的题目选定到每天的程序完善到最后得到理想的运行效果,完成了基于FPGA的VGA图形显示的课程设计。

经过这次课程设计,我感到受益匪浅,对自己各方面的提高都有着巨大的帮助。比如Quartus II 的使用,虽然在以前的实验课程中有学习与使用过,但当时都是在老师一步一步的演示下直接使用现有程序进行的,所以缺少对其更深刻与熟练的使用。本次课程设计是在QuartusII软件环境下对VGA模块的设计和顶层逻辑框图设,这让我经过这次课程设计让我对Quartus II软件的使用更加深入与熟练。除此以外还有对FPGA的嵌入式系统的优点与特性有新的认识,FPGA的嵌入式系统中能代替VGA的专用显示芯片,节约硬件成本,节省计算机处理时间,加快数据处理速度并具有显示面积大,色彩丰富、承载信息量大、接口简单等优点。除此以外FPGA芯片和EDA设计方法的使用,可根据用户的需求,为设计提供了有针对性的VGA显示控制器,可不需要依靠计算机,它可以大大

降低成本,并可以满足生产实践中不断改变的需要。

在这次课程设计的过程中,在一开始选择课题的过程中就存在着困难,我并不清楚哪种题目更加适合我,于是就在图书馆和网络上查找资料,题目经过了多次修改才最终确定下来。在做课程设计的途中也遇到了一样阻碍,比如一开始不知从何下手,比如忘记了Quartus II的一些使用方法和利用VHDL作为逻辑描述手段,设计了一种基于现场可编程器件FPGA的VGA接口控制器等。在通过结合图书资料下,在老师的悉心指导下,在和同学的讨论中,每一天给自己定个目标,最终完成了,达到了预期的效果。当看到普通的图片经过自己的处理后变的多姿多彩,我们的内心是开心愉快的。总的来说,这次课程设计让我进一步了解了FPGA的嵌入式系统的相关知识,发现它多种多样的运用,与我们的日常生活息息相关。经过这次课程设计,我感到受益匪浅,对自己各方面的提高都有着巨大的帮助,给以后的学习与工作奠定了良好的基础。

六、参考文献

[1] 刘福奇主编. FPGA嵌入式项目开发实战[M]. 北京:电子工业出版社,2009.4

[2] 潘松,黄继业,潘明主编. EDA技术实用教程—Verilog HDL版[M]. 北京:科学出版社,

2008.11

[3]纪志成,高春能主编. FPGA数字信号处理设计教程—System Generater入门与提高[M]. 西

安:西安电子科技大学出版社,2008.4

[4] 田耕,徐文波编著. FPGA 数字电子系统设计与开发实例导航[M]. 北京:电子工业出版社,

2005.6

[5]刘韬,楼兴华主编. FPGA 数字电子系统设计与开发实例导航[M]. 北京:人民邮电出版社,

2005.6

[6]徐志军,徐光晖编著. CPLD/FPGA的开发与应用[M]. 北京:电子工业出版社,2012.1

[7]姜立东等编著. Verilog语言程序设计及应用[M]. 北京:北京邮电大学出版社,2009.6

[8]褚振勇,翁木云编著. FPGA设计及应用[M]. 西安:西安电子科技大学出版社,2007.7

[9]张文爱:基于FPGA的VGA显示控制器的设计,电子工业出版社,2006.9

[10]王亮:VGA汉字显示的FPGA 设计与实现,南方工业出版社,2009.2

七、附录

“imagController”模块

LIBRARY ieee;

USE ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

ENTITY imagController IS

PORT

(

VS : IN STD_LOGIC;--行同步信号

hcnt : IN STD_LOGIC_VECTOR(9 downto 0);--扫描到的列数

vcnt : IN STD_LOGIC_VECTOR(9 downto 0);--扫描到的行数

ROM_DATA : IN STD_LOGIC_VECTOR(2 downto 0);

ROM_DATA1 : IN STD_LOGIC;

ROM_DATA2 : IN STD_LOGIC_VECTOR(2 downto 0);

sec1_1,sec10_10 : in integer range 0 to 9;

H_Step,V_Step : in STD_LOGIC_VECTOR(3 downto 0);--水平、竖直移动点数

pause : in std_logic;--暂停

ROM_ADDR : OUT STD_LOGIC_VECTOR(13 downto 0);--图像ROM地址

ROM_ADDR1 : OUT STD_LOGIC_VECTOR(15 downto 0);--图像ROM地址

ROM_ADDR2 : OUT STD_LOGIC_VECTOR(14 downto 0);--图像ROM地址

imag_RGB : OUT STD_LOGIC_VECTOR(2 downto 0)--当前行、列位置的显示值(可能是图像、也可能是背景“000”);

);

END imagController;

ARCHITECTURE imagController_architecture OF imagController IS

signal movedown,moveright : STD_LOGIC;--为0表示向下(向右),为1表示向上(向左)

constant imag_width : STD_LOGIC_VECTOR(7 downto 0) :="10000000";--图像宽度128;

constant imag_height : STD_LOGIC_VECTOR(7 downto 0) :="10000000";--图像高度128;

signal imag_X,imag_Y : STD_LOGIC_VECTOR(9 downto 0);--图像在屏幕上左上角坐标

signal TEMP_Y,TEMP_X : STD_LOGIC_VECTOR(9 downto 0);--临时存储vcnt-imag_Y、hcnt-imag_X,并扩展到10位

signal TEMP_Y1,TEMP_X1 :integer range 0 to 400;--STD_LOGIC_VECTOR(9 downto 0);

signal TEMP_Y2,TEMP_X2 :integer range 0 to 200;--STD_LOGIC_VECTOR(9 downto 0);

BEGIN

--根据扫描行列计算图像ROM

TEMP_Y2<=conv_integer(vcnt);

TEMP_X2<=conv_integer(hcnt);

ROM_ADDR2<=conv_std_logic_vector((TEMP_Y2-120)*200+(TEMP_X2-200),15);

TEMP_Y1<=conv_integer(vcnt);

TEMP_X1<=conv_integer(hcnt);

ROM_ADDR1<=conv_std_logic_vector((TEMP_Y1-40)*400+(TEMP_X1-112),16);

TEMP_Y<=vcnt-imag_Y;

TEMP_X<=hcnt-imag_X;

ROM_ADDR<=(TEMP_Y(6 downto 0)&"0000000")+TEMP_X; --(*128通过左移7位实现)

PROCESS(hcnt,vcnt,ROM_DATA)--根据扫描行列确定输出ROM图像数据还是消隐(RGB=“000”)

begin

if (imag_X+128>hcnt and hcnt>=imag_X and imag_Y+128>vcnt and vcnt>=imag_Y) then--扫描到图像块内

imag_RGB<=ROM_DATA;

else

if (510>=hcnt and hcnt>=120 and 189>=vcnt and vcnt>=40) then

if (sec1_1<=3 and sec10_10<=0) then

if ROM_DATA1='0' then

imag_RGB<="100";

else imag_RGB<="111";

end if;

elsif (sec1_1<=6 and sec10_10<=0) then

if ROM_DATA1='0' then

imag_RGB<="010";

else imag_RGB<="111";

end if;

elsif (sec1_1<=9 and sec10_10<=0) then

if ROM_DATA1='0' then

imag_RGB<="001";

else imag_RGB<="111";

end if;

elsif (sec1_1<=2 and sec10_10<=1) then

if ROM_DATA1='0' then

imag_RGB<="011";

else imag_RGB<="111";

end if;

.................

elsif (sec1_1<=9 and sec10_10<=5) then

if ROM_DATA1='0' then

imag_RGB<="011";

else imag_RGB<="111";

end if;

end if;

else

if (200>=hcnt and hcnt>=0 and 475>=vcnt and vcnt>=380) then

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课程设计报告

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课程设计题目

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课程设计报告--简易电子琴的设计

邮电大学 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课程设计报告--简易电子琴的设计[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课程设计报告

第一部分 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原理与应用》课程设计的目的是为了让学生熟悉基于VHDL语言进行FPGA开发的全流程,并且利用FPGA设计进行专业课程理论知识的再现,让学生体会EDA技术的强大功能,为今后使用FPGA进行电子设计奠定基础。 课程设计内容和要求 设计内容: (1)设计一个八音电子琴。 (2)由键盘输入控制音响,同时可自动演奏乐曲。 (3)用户可以将自己编制的乐曲存入电子琴,演奏时可选择键盘输入乐曲或者已存入的乐曲。 要求每个学生单独完成课程设计内容,并写出课程设计说明书、说明书应该包括所涉及到的理论部分和充足的实验结果,给出程序清单,最后通过课程设计答辩。 时间安排: 所需时 序号阶段内容 间 1 方案设计1天 2 软件设计2天 3 系统调试1天 4 答辩1天 合计5天 指导教师签名:年月日

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

目录 摘要 (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课程设计报告 题目:基于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= 写入新数据后光标右移

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课程设计报告

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课程设计报告

课程设计 开课学期: 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

FPGA课程设计报告书模板

FPGA课程设计(报告) 题目: 学院:电子工程学院 系部:微电子学系 专业班级:微电子1702 学生姓名: 指导教师:李哲 起止时间:2020年06月01日—2020年06月12日

目录 1.课程设计题目及要求 (4) 1.1设计题目:基于FPGA的波形产生器。 (4) 1.2设计内容 (4) 1.3基本功能 (4) 1.4课程设计目的 (5) 1.5已完成功能 (5) 2.系统设计 (5) 3. FPGA设计 (6) 3.1设计思路 (6) 3.2顶层模块设计 (7) 3.3方波产生模块 (8) 3.4 锯齿波产生模块 (8) 3.5 三角波产生模块 (8) 3.6 正弦波ROM模块 (8) 3.7 DAC模块 (9) 9 (9) 4.2波形选择器 (9) 4.3 D/A转换器 (9) 4.4低通滤波器 (9) 5.模块划分 (10) 5.1 模块概述 (10) 5.2时钟控制模块 (10) 5.3 相位控制模块 (11) 5.4偏移控制模块 (12) 5.5 波幅控制模块 (13) 5.6 波形ROM定制模块 (13) 5.7波形数据产生模块 (14) 6.仿真 (14) 7 心得体会 (14) 8 参考文献 (15) 9附录 (15)

1.课程设计题目及要求 1.1设计题目:基于FPGA的波形产生器。 1.2设计内容 通过的以Xilinx Spartan 3E实验板为控制核心,用直接数字频率合成技术(DDS),经板上DA转换输出模拟信号,实现频率和输出电压峰-峰值都可调。 1.3基本功能 1)具有产生正弦波、方波、三角波三种周期性波形的功能。 2)输出波形的频率范围为100Hz-20kHz(非正弦波频率按10次谐波计算)。重复频率可调,频率步进间隔≤100Hz。 3) 输出波形幅度范围0-3V(峰峰值),可按步进0.1V(峰峰值)调整。 4)由外界按键输入选择产生波形的种类、频率与幅度。 5)界面显示输出波形的类型、重复频率(周期)和幅度等信号参数。 在完成基本功能的基础上,本系统还可以完成以下扩展功能: 1)扩展输出波形频率范围1Hz-100KHz,频率步进间隔最小为 1Hz。 2)扩展能生成其他波形,如锯齿波。 3)方波占空比可调。

课程设计fpga密码锁

FPGA实验报告

一、实验目的 1.设计一个密码锁 2.加深FPGA电路原理的理解 3.掌握VHDL语言的使用,学会用VHDL语言来编程解决实际问题 4.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧 5.学会应用开发系统实现硬件电路,检验电路的功能 二、实验内容 题目:电子密码锁 内容:设计一个4位串行数字锁 1.开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁。否则进入“错误”状态,发出报警信号。 2.锁内的密码可调,且预置方便,保密性好。 3.串行数字锁的报警,直到按下复位开关,才停下。此时,数字锁又自动等待下一个开锁状态。 三、实验步骤 1.系统总框图 本系统的硬件部分主要由密码锁按键消抖模块,密码输入比较更改模块,密码显示模块、报警模块组成。整体系统框图如下图所示。

2.密码锁的主要功能 密码锁控制器的主要功能有: (1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。 (2)密码校验:如果有按键按下,直到松开该按键,如果密码校验正确,无变化,否则如果密码校验错误蜂鸣器响,表明密码错误。(3)错误报警:密码输入错误开始报警。 (4)密码修改:输入密码正确后按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功。 3.密码锁的各个模块 (1)按键消抖。 每按下一个键,仅产生一个信号脉冲,作为按键的使能信号,使能信号控制显示的数字。 (2)密码输入比较 密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足,都不能打开锁。锁内密码为“0000”, key2 和key1 置低电平,分别表示输入“1”和“0”。输入密码前先按start键,再依次正确输入0000,会在数码管逐一显示,按确认键,经检验,输入的密

课程设计报告FPGA

课程设计报告 自动售货机 学院:电子与通信工程学院 班级:微电子1 班姓名: 刁飞鹏 学号:09110038

自动售货机设计 任务分析 任务要求利用开发系统板,设计一个自动售货机控制芯片。自动 售货机平时处于待机状态,当有钱投入之后开始工作。利用三个按键作为投币信号,分别代表投币5元、10元、20元,投入钱币以后, 采用七段数码管显示投入的金额;利用另外4个按键代表4种货物, 可以在售货机上选择购买的货物,假设4 种货物的售价分别为3元、 6 元、10元、17元。选择了货物之后,七段数码管显示购物之后的 找币余额,并且用LED数码管指示灯显示是否有足够的金额购买, 如果投币不够,报警指示灯亮起,并且显示余额为零。选择了购买 物品之后,可以按键出货或者余额不足退币。 系统的输入信号包括8 个按键开关、时钟信号,输出部分有2 个LED、4个七段数码管,系统框图如图所示。 自动售货机控制芯片的外部时钟由晶振产生,该开发板系统实例中晶振频率为50Mhz。

系统设计 自动售货机控制芯片系统结构框图如图所示,包括三个模块:分频器模块、核心控制模块和按键与七段数码管控制模块。其中,分 频器模块主要用于产生供按键、七段数码管扫描的时钟,这个扫描时钟的周期应该大约为0.01~0.001s。同时,这个分频时钟也可用于 核心模块的基本控制,由于扫描时钟要和按键、七段数码管控制电路构成一个同步电路,因此,必须使用同一个分频时钟。 核心控制模块的作用主要是控制系统的状态。系统一共有三种状 态,需要使用两位状态寄存器存储状态数据,每个状态之间的转换 由外部按键控制,在每一个状态下,有不同的七段数码管和指示灯的输出。 按键和数码管显示控制电路是对外部的矩阵按键以及动态显示硬件进行驱动,该模块对矩阵按键进行扫描,输出经过扫描之后的

FPGA课程设计报告

FPGA课程设计报告

多功能数字钟电路设计报告 任务书 设计一个具有时、分、秒计时的电子钟电路,按24小时制计时。要求: 1.准确计时,以数字形式显示时、分、秒的时间; 2.具有分、时校正功能,校正输入脉冲频率为1Hz; 3.具有仿广播电台整点报时的功能,即每逢59分51秒、53秒、55秒、57秒时发出4声500Hz低音,在59分59秒发出一声1KHz高音,它们的持续时间均为1秒,最后一声高音结束时刻恰为正点时刻; 4.具有定时闹钟功能,且最长闹铃时间为1分钟。要求可任意设置闹钟的时、分;闹铃信号为500Hz和1KHz的方波信号,交替输出,且均持续1秒。设置一个停止闹铃控制键,可以停止输出闹铃信号。 摘要 数字钟是一种用数字电路技术实现日、时、分、秒计时的装置,与传统的机械式时钟相比,具有更高的准确性和直观性,且无机械传动装置,具有更更长的使用寿命,因此得到了广泛的使用。小到人们日常生活中的电子手表,大到车站、码头、机场等公共场所的大型数

显电子钟。 本课程设计要用通过简单的逻辑芯片实现数字时钟。要点在于用555芯片连接成输出一秒的多谐振荡器用于时钟的秒脉冲,用74LS90(10进制计数器)74LS192(4位二进制计数器)等连接成60和12进制的计数器,再通过七段数码管显示,外加上校时电路和整点报时电路即构成了简单数字钟。扩展电路可实现定点报时功能。 原理图 概述 (一)、分频器: 分频器的作用是将脉冲频率调整为500Hz和1kHz两种脉冲频率,作为适中的输入信号。

其Verilog语言描述为:module divider(f,_500HzOut,_1KHzOut, ncR,CLOCK_50,s); input ncR,CLOCK_50,s; output _500HzOut,_1KHzOut,f; wire _1HzOut,_5HzOut; assign f=s?_5HzOut:_1HzOut; divn #(.WIDTH(26),.N(50000000)) u0(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_1HzOut) ); divn #(.WIDTH(17),.N(100000)) u1(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_500HzOut) ); divn #(.WIDTH(16),.N(50000)) u2(.clk(CLOCK_50), .rst_n(ncR), .o_clk(_1KHzOut)

fpga数字钟课程设计报告

f p g a数字钟课程设计报 告 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

课程设计报告 设计题目:基于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的数字钟设计 班级:电子信息工程1301 学号:20133638 姓名:王一丁 指导教师:李世平 设计时间:2016年1月

摘要 EDA(Electronic Design Automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用Quartus II 为设计软件,VHDL为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言VHDL 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。 关键词:EDA VHDL语言数字钟

目录 摘要 1 课程设计目的 2 课程设计内容及要求 2.1 设计任务 2.2 设计要求 3 VHDL程序设计 3.1方案论证 3.2 系统结构框图 3.3设计思路与方法 3.3.1 状态控制模块 3.3.2 时分秒模块 3.3.3 年月日模块 3.3.4 显示模块 3.3.5脉冲产生模块 3.3.6 扬声器与闹钟模块 3.4 RTL整体电路 4 系统仿真与分析 5 课程设计总结,包括.收获、体会和建议 6 参考文献

1 课程设计目的 (1)通过设计数字钟熟练掌握EDA软件(QUARTUS II)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。 (2)熟悉VHDL 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。 (3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。 2 课程设计内容及要求 2.1 设计任务 (1)6个数字显示器显示时分秒,setpin按键产生一个脉冲,显示切换为年月日。 (2)第二个脉冲可预置年份,第三个脉冲可以预置月份,依次第四、 五、六、七个脉冲到来时分别可以预置时期、时、分、秒,第八个脉冲到来后预置结束正常从左显示时分秒。 (3)up为高时,upclk有脉冲到达时,预置位加一,否则减一。 2.2 设计要求 (1)在基本功能的基础上,闹钟在整点进行报时,产生一定时长的高电平。 (2)实现闹钟功能,可对闹钟时间进行预置,当达到预置时间时进行报时。

相关主题
相关文档
最新文档