欢迎来到学术参考网
当前位置:发表论文>论文发表

fpga毕业论文

发布时间:2023-03-11 23:28

fpga毕业论文

浅论FPGA的VGA汉字显示系统设计与实现论文

在日常学习和工作中,大家都接触过论文吧,通过论文写作可以提高我们综合运用所学知识的能力。相信写论文是一个让许多人都头痛的问题,下面是我为大家整理的浅论FPGA的VGA汉字显示系统设计与实现论文,欢迎阅读,希望大家能够喜欢。

摘要:

提出一种基于Xilinx公司的Spartan一3E的FPGA显示方案,由于FPGA芯片具有可靠性高、编程灵活、体积小等优点,采用其控制 VGA接口进行汉字显示,有效地解决了通用处理器控制VGA接口显示汉字的缺点。对新方案进行理论分析和实验,结果证明该方案达到了预期效果。

关键词:

显示绘图陈列;现场可编程门陈列;VGA汉字显示

随着科技的发展,VGA汉字显示系统的应用范围越来越广泛,传统的VGA字符显示方案是通过通用处理器控制VGA接口显示字符信息的,这种显示方案是以通用处理器为核心的处理系统,整个系统体积大、可靠性不高且灵活性差,不适合便携设备的设计。而FPGA芯片具有可靠性高、编程灵活和体积小等特点,因此用FPGA技术来实现VGA汉字显示可以有效解决传统技术中的缺点。

FPGA管脚资源丰富,运行速度快,可以实现大规模的系统设计,而且由于FPGA具有可重构能力和抗干扰能力强等优点,使其越来越多地应用于工业控制领域。利用FPGA控制VGA显示汉字,可使汉字显示脱离Pc机的控制,构建体积小、功耗低的各种嵌入式系统,可应用在人机界面、地面勘测、电子设备、智能仪表和性能监测等方面。

1、VGA汉字显示

VGA的汉字显示是利用VGA的显示原理,使用正确的时序信号对VGA接口相应管脚进行控制输出RGB颜色信息来显示相应的字符信息,其中VGA显示原理及时序信号的控制必须遵循VGA的工业标准。显示处理前端中的SRAM中存储的每一位数据对应相应LCD显示屏上一个像素点的亮和灭,“1”表示亮,“0”表示灭。在显示设备上显示汉字也就是按照汉字的点阵图向显示器上输出1或0的高低电平,从而在显示器上显示出具体的汉字。

2、VGA显示控制器的FPGA实现

FPGA芯片作为中央控制器控制整个系统的处理,根据自顶向下的设计流程,按照层次化、结构化的设计方法可以将FPGA系统划分为以下几个模块:顶层模块、分频模块、VGA控制模块、存储功能模块和RAM读取控制模块。系统工作原理:系统加电FPGA芯片读人配置信息,配置完成后,FPGA进人工作状态,将要显示的汉字的字模信息初始化到单口RAM中,由系统时钟产生时序,程序根据时序信息控制VGA接口输出行、场同步及颜色信息到显示器上。

2.1 顶层模块

根据自顶向下设计方法,首先定义顶层功能块。顶层模块处于重要的位置,定义好顶层模块功能后,才能进而分析哪些是构成顶层模块必要的子模块,然后进一步对各个子模块进行分解,直到达到无法进一步分解的底层功能块。顶层模块主要负责规定各个模块之间的数据信号和控制信号的连接关系,也就是实例化各子模块,并且接收RAM读取控制模块传来的汉字字模信息数据流,根据数据流信息中比特位为1的位赋予红色,为0的位赋予蓝色,即用红色表示汉字,用蓝色来填充背景。

2.2 分频模块

时序的驱动是设计VGA显示的控制需要注意的一个重要问题,这也是实验是否成功的关键设计。时序不正确,必定不能正常显示,有时甚至会损坏显示设备。因此,对于时序的设计我们必须遵循VGA的工业标准,在设计中使用的分辨率为640×480,根据VGA的工业标准,其像素的刷新率为25MHz。

而实验采用的实验板提供的时钟频率为50MHz,因此必须将系统进行分频设计,即进行二分频的设计。50MHz的时钟频率经过分频后得到实验所需的25MHz频率,此频率将作为顶层控制模块,VGA控制模块和RAM读取控制模块的系统时钟。

2.3 VGA控制模块

VGA信号的电平驱动是设计VGA显示的控制需要注意的另一个重要问题,这是正确显示文字图像的重要设计,如果设计不当,那么在显示器上就不能正确显示文字图像。这个模块主要是根据VGA的工业标准进行设计的,用verilog语言将工业标准用程序表示出来。

VGA时序信号产生包括行点计数器x—cnt(计数个数用 表示)、场点计数器y—cnt(计数个数用rt 表示)、行同步信号hsync、场同步信号vsync、有效显示区Visible area等。其中行点计数器是800进制计数器,场点计数器是525进制计数器。根据VGA时序的工业标准行、场同步信号有4种状态:同步脉冲信号 (Sync),显示后沿信号(Back Porch),可视显示区(Visible area),显示前沿(Front Porch)。

这4种状态具有很清晰的时序规律,可以用有限状态机来实现这4种状态的转换,用h—state来表示行同步状态机的4种状态:h—sync,h—back,h—visible,h—front;v—state来表示场同步状态机的4种状态:v—sync,v—back,v— visible,v— front。行、场计数器的值决定了状态机在何时进行状态翻转。

行状态机复位时,进入行同步状态h—sync,此时行同步信号输出低电平;当行计数器的计数值达到96时,状态机翻转进人行消隐后沿h—back状态,此时仍为消隐阶段;当行计数器的计数值达到144时,状态机翻转进入h—visible状态,它对应每行的有效显示区域,共包含640点,在此区域以外的任何部分都不被显示;当行计数器的计数值达到784时,状态机进入行消隐前沿h—front状态,此时处于消隐阶段。当行计数器计数值达到799时,行状态机进入h—sync状态,同时行计数器的复位信号为高电平,计数器复位。

与行有限状态机状态转移类似,需要注意的是行扫描是从左到右地扫描显示,而场扫描是自上而下地扫描显示,显示区域中行与场确定的一个坐标位置为一个像素点,并且只有在行、场状态都为有效可视状态(h—visibl~=1且v—visible=1)时,即行有效显示区域和场有效显示区域的逻辑与值为1时,才能在显示设备上显示。行、场消隐信号的逻辑与为复合消隐信号,处于复合消隐阶段的信号不能在显示设备上显示。

2.4 存储功能模块

存储功能模块的主要功能是存储文字信息,其存储媒介为FPGA内部的硬核块RAM,块RAM是以硬核的方式内嵌到FPGA芯片中的,不占用芯片的逻辑资源,是FPGA芯片内部的一种宝贵资源。FPGA内嵌的块RAM组件可配置为单口RAM、双口RAM、分布式ROM、块ROM、内容地址存储器CAM和先进先出存储器FIFO等存储结构 J。

本文中所做实验只进行文字显示,所以可以使用单口RAM存储文字信息,如果想实现更复杂的设计如:文字的滚动显示、图片的动画显示等可以使用双口RA M进行设计。实验使用开发软件XinlinxISE中的IP核生成工具CORE Generator生成实验用的单口RAM,并将其要显示的文字信息初始化到RAM中。实验设置显示7个汉字,每个汉字为16×16点阵,所以RAM的数据深度为l6,数据宽度为112。在工程项目里利用IP核生成工具生成单口RAM,在生成过程中把RAM的数据深度、宽度设置正确,并把事先做好的.coe文件即汉字的字模信息初始化到RAM中。

2.5 RA M读取控制模块

RAM读取控制模块是VGA显示设备和存储数据信息的RA M之间通道,为了使VGA显示设备能够准确的显示文字图像信息,必须严格遵循显示设备的扫描规律,产生相应的显示信息。块RAM中的存储地址是由0到16 组成的一维的'连续地址空间,实验显示的是由7个汉字组成的16×16的点阵,如果把这7个汉字看成一个整体,那么这个整体将占用112×16个像素点。本模块包括以下3部分内容:取出汉字字模信息,行、场计数器和坐标定位设计。

显示汉字必须首先把汉字的字模信息提取出来,可以利用一个深度为16的寄存器将RAM中的汉字字模信息暂存,待字符位置定位后再从寄存器中取出相应显示信息产生汉字字模信息的数据流;用行列计数器确定坐标点,并用坐标的位置来确定文字显示位置,其实现与VGA时序控制中的行、场计数器一致;汉字显示区域实验从屏幕的坐标点(400,240)到坐标点(512,256)区域内显示字符。

当坐标计数器刷新到坐标点(400,240)时就要相应地取寄存器地址中的第1个数据作为产生汉字的第1行点阵信息的数据流,直到坐标点 (512,240)时结束第1行的显示,当坐标计数器刷新到坐标点(400,241)时就要取出寄存器中显示汉字的第2行点阵信息,直到坐标点 (512,241)时结束第2行的显示,同理直到到达坐标点(512,256)时结束字符显示。本模块产生的字符数据流将交由顶层模块来控制其显示颜色。

3、系统实验

3.1 实验环境开发工具:Xilinx ISE 9.2i;开发语言:Verilog;仿真工具:Xilinx ISE 9.2i Simulator;实验开发板:Xinlinx公司的Spartan一3E。

3.2 仿真结果

利用ISE内部的仿真软件对系统进行仿真。由仿真可以看出行、场同步(hsync、vsync)信号都有效(值为1),且行、场都处于可视区域内(水平有效显示区宽度与垂直有效显示区宽度逻辑与的区域为可视区域 ),输出使能信号vailid值为1,此时可以输出汉字信息,可以看出,当输出条件满足时,从SRAM中获取汉字信息,并将其输出,当有汉字输出时 vga—r值为1,即输出汉字颜色为红色,无汉字输出时为背景色蓝色。

3.3 实验结果

对实验进行调试,将编程数据下载到FPGA芯片中,再由显示器将汉字输出。本实验只做了一句话的实验测试,如果要实现更多字符显示,可以将更多字符信息存储到RAM字符信息库中,调取RAM中的信息进行显示即可。

4、结束语

用FPGA来控制VGA显示,可以克服使用通用处理器设计系统所带来的不便和缺点。使用块RAM存储汉字信息,不占用芯片的逻辑资源,不仅能保证较高的工作频率,而且还具有很低的动态功耗。实验实现了基于FPGA的汉字显示,方便了汉字信息的写入及内容的修改,可使汉字的显示脱离 Pc机控制,减少控制器的体积,对于小型嵌入式系统及各种便携式设备实现汉字显示具有重要的现实意义和工程实用价值。

拓展:

论文格式与要求

一般而言,非211、985学校的本科毕业论文字数在6000-8000左右(工程类需要制图的专业则会超过这个数字),而一些要求较高或者重点学校则要求论文字数在1万左右或以上,总之各个学校在论文字数上的规定都有细微的差异。

一、本科生毕业论文主要内容

1、题目 (宋体,小二,居中)

2、中文摘要(200字以上),关键词;字体:宋体、小四号,字符间距:标准;行距:20磅

3、英文摘要,关键词;

4、目录

5、正文;字体:宋体、小四号,字符间距:标准;行距:20磅

6、参考文献。期刊内容包括:作者 题名,刊名,年,卷(期):起始页码-结束页码。著作内容包括:作者、编者,文献题名,出版社,出版年份,起止页码。

7、附件:开题报告和检查情况记录表

二、格式要求

1、书写格式要求:填写项目必须用碳素或蓝黑墨水钢笔书写;

2、文稿要求:文字通顺,语言流畅,版面整洁,便于装订。Word文稿A4纸打印。

3、图纸要求:图面整洁,布局合理,线条粗细均匀,圆弧连接光滑,尺寸标准规范,文字注释必须使用工程字书写;

4、曲线图表要求:所有曲线、图表、线路图、流程图、程序框图、示意图等不得简单徒手画,须按国家规范标准或工程要求绘制;

5、公式要求:所有公式不得徒手书写,利用Microsoft公式编辑器或Mathtype编辑。

三、毕业论文份量要求:

毕业论文字数一般不少于1.5万字或相当信息量。外文文献阅读量的具体要求,由指导教师量化。

四、 毕业论文规范审查工作由指导教师具体负责,从毕业论文质、量、形式等规范方面对论文答辩资格进行审查。审查合格者方能参加答辩。凡质、量、形式等方面审查不合格者,应责令其返工,直到达到要求为止,否则不准参加毕业答辩。对于在校外进行毕业论文的学生,其论文答辩资格审查回校进行。

五、毕业论文档案应包括以下内容:

1、大学毕业论文(设计)封面(教务处统一印制);

2、毕业论文,包括题目及目录、开题报告、内容提要、正文及相关图表、参考文献及其他附件等;

3、指导教师、答辩委员会评阅意见、成绩评定表;

4、其他附件;

免责声明:本站文章信息来源于网络转载是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。不保证信息的合理性、准确性和完整性,且不对因信息的不合理、不准确或遗漏导致的任何损失或损害承担责任。本网站所有信息仅供参考,不做交易和服务的根据,如自行使用本网资料发生偏差,本站概不负责,亦不负任何法律责任,并保证最终解释权。

急求一篇《基于FPGA电子万年历设计》的毕业论文设计

一 课题任务:
以FPGA适配板为核心,设计并制作一款数字万年历。此数字万年历以“日”为基本计时单位,用8只数码管适时显示“年、月、日”。
此万年历具有区分大小月、调整日期、生日提醒等功能。

二 课题研究现状及发展趋势:
在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能——计时功能,只是工作原理不同而已,在人们的使用过程中,逐渐发现了钟表的功能太单一,没有更大程度上的满足人们的需求。因此在这里,我想能不能把一些辅助功能加入钟表中。在此设计中所设计的钟表不但具有普通钟表的功能,它还能实现额外的功能:世界时、农历显示。人类不断研究,不断创新纪录。发展到现在人们广泛使用的万年历。
万年历是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。因此,研究万年历及扩大其应用,有着非常现实的意义。它可以对年、月、日、周日、时、分、秒进行计时,对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。
综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
三 设计方案:
1.工作原理
...................

有做好的设计可以给你参阅的!!!!!!

基于FPGA的频率计设计 毕业论文。。请高手帮忙,有重谢。。

这是大规模数字集成电路在系统可编程领域的经典课程设计。

数字频率计是近代电子技术领域的重要测量工具之一,同时也是其他许多领域广泛应用的测量仪器。数字频率计是在规定的基准时间内把测量的脉冲数记录下来,换算成频率并以数字形式显示出来。数字频率计用于测量信号(方波,正弦波或其他周期信号)的频率,并用十进制数字显示,它具有精度高,测量速度快,读数直观,使用方便等优点。
一个用VHDL语言实现的实例如下:
-- Project Name: 恒精度频率计
-- Target Devices: FPGA or CPLD
-- Revision 0.01 - File Created
-- Comments: clk--系统工作时钟,2MHz
-------------reset--系统复位信号,高电平有效
-------------Fx--为待测信号
-------------FreqNx--为待测信号的计数值
-------------FreqNs--为标准信号的计数值
-------------Freq--为待测信号的频率
--
----------------------------------------------------------------------------------
library IEEE;
use ;
use ;
use ;

----------------------------------------------------------
entity Cymometer is
generic(clk_freq : integer := 2000000);--系统工作时钟频率
Port ( clk : in STD_LOGIC;
reset : in STD_LOGIC;
Fx : in STD_LOGIC; ----待测信号
FreqNs : out natural;
FreqNx : out natural);
--Freq : out natural);
end Cymometer;
----------------------------------------------------------
architecture Behavioral of Cymometer is
----------------------------------------
signal start : STD_LOGIC;--此信号为高电平时计数器开始计数
signal CTRL : STD_LOGIC;--CTRL信号为待测信号和门控信号产生的计数器启动信号
signal CNTx : natural;--待测信号计数器
signal CNTs : natural;--标准信号计数器
----------------------------------------
begin
--***************************************--
--产生一个门控信号,高电平有效
GateCtrl : process(clk)
---------------------------
variable CNT0 : integer range 0 to 2_097_152;--门控信号计数器
---------------------------
begin
if rising_edge(clk) then
if reset='1' then
CNT0 := 0;
else
CNT0 := CNT0 + 1;
end if;
---------
if reset='1' then
start <= '0';
elsif CNT0 < (clk_freq*3/4) then
start <= '1';
else
start <= '0';
end if;
end if;
end process GateCtrl;
--***************************************--
--产生CTRL信号,由待测信号和门控信号产生的计数器启动信号
CtrlGen : process(Fx)
begin
if rising_edge(Fx) then
if reset='1' then
CTRL <= '0';
else
CTRL <= start;
end if;
end if;
end process CtrlGen;
--***************************************--
--用两个计数器分别对标准信号clk和待测信号signal计数
----------------------------------
--计数标准信号,CTRL高电平期间有效
CountS : process(clk)
begin
if rising_edge(clk) then
if reset='1' then
CNTs <= 0;
elsif CTRL='1' then
CNTs <= CNTs + 1;
else
CNTs <= 0;
end if;
end if;
end process CountS;
----------------------------------
--计数待测信号,CTRL高电平期间有效
CountX : process(Fx)
begin
if rising_edge(Fx) then
if reset='1' then
CNTx <= 0;
elsif CTRL='1' then
CNTx <= CNTx + 1;
else
CNTx <= 0;
end if;
end if;
end process CountX;
--***************************************--
--CTRL下降沿将技术结果和测量值输出
CountOut : process(CTRL)
begin
if falling_edge(CTRL) then
if reset='1' then
FreqNs <= 0;
FreqNx <= 0;
-- Freq <= 0;
else
FreqNs <= CNTs;
FreqNx <= CNTx;
-- Freq <= (clk_freq / CNTs * CNTx);
end if;
end if;
end process CountOut;
end Behavioral;

下面是为上面的模块编写的测试平台,在Modelsim下仿真通过,因为数据量较大,建议不要使用Altera及ISE仿真。
--------------------------------------------------------------------------------
LIBRARY ieee;
USE ;
USE ;
USE ;

ENTITY tb IS
END tb;

ARCHITECTURE behavior OF tb IS

-- Component Declaration for the Unit Under Test (UUT)

COMPONENT Cymometer
PORT(
clk : IN std_logic;
reset : IN std_logic;
Fx : IN std_logic;
FreqNs : OUT natural;
FreqNx : OUT natural;
Freq : OUT natural
);
END COMPONENT;

--Inputs
signal clk : std_logic := '0';
signal reset : std_logic := '1';
signal Fx : std_logic := '0';

--Outputs
signal FreqNs : natural;
signal FreqNx : natural;
-- signal Freq : natural;

-- Clock period definitions
constant clk_period : time := 500ns;

BEGIN

-- Instantiate the Unit Under Test (UUT)
uut: Cymometer PORT MAP (
clk => clk,
reset => reset,
Fx => Fx,
FreqNs => FreqNs,
FreqNx => FreqNx,
-- Freq => Freq
);

-- Clock process definitions
clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;

--产生待测信号

Fx_process : process
begin
Fx <= '0';
wait for 2*clk_period;
Fx <= '1';
wait for 2*clk_period;
end process;

-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100ms.
wait for clk_period*10;
reset <= '0';

-- insert stimulus here

wait;
end process;

END;

参考原理M/T测频法。

求一篇毕业论文:基于FPGA正弦信号发生器的设计与实现 (用QuartusII设计正弦信号发生器 求各位同仁给力

我今年的毕设就是做类似这个题目——函数信号发生器。论文的话,最好还是自己写,你在网上搜一下,这个题目的硕士论文很多,毕业论文也很多,参考一下。下面给你讲讲在QuartusII上怎么做。
首先,定制一个ROM元件,将正弦波的数据放置在ROM中,可以设置64点;然后建一个顶层设计文件,放入VHDL程序。然后新建工程,进行全程编译,编译成功之后再建一个波形文件进行仿真验证。最后下载引脚。
推荐你看下我的教科书——潘松,黄继业的《EDA实用教程(第三版)》中第162页到172页,很详细,希望可以帮到你,另外如果觉得有帮助,请选为满意答案哦~

基于fpga的直流电机综合测控系统设计论文参考文献有吗

有的。 写好毕业论文的提要之后,要根据论文的内容考虑篇幅的长短,文章的各个部分,大体上要写多少字。如计划写20页原稿纸(每页300字)的论文,考虑序论用1页,本论用17页,结论用1—2页。本论部分再进行分配,如本论共有四项,可以第一项3—4页,第二项用4—5页,第三项3—4页,第四项6—7页。有这样的分配,便于资料的配备和安排,写作能更有计划。毕业论文的长短一般规定为5000—6000字,因为过短,问题很难讲透,而作为毕业论文也不宜过长,这是一般大专、本科学生的理论基础、实践经验所决定的。

上一篇:惊喜议论文素材

下一篇:论述题小论文格式