• 回答数

    6

  • 浏览数

    109

笑逍遥客
首页 > 论文发表 > 自学fpga发表论文

6个回答 默认排序
  • 默认排序
  • 按时间排序

米诺很努力

已采纳

浅论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、其他附件;

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

359 评论

爱美柯净水器

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

279 评论

大旺旺。

有关IP核的硬化 也可以考虑一下

315 评论

暗旦无光

第一,结合你老板搞的方向。比如做模糊控制,算法改进等,能通过FPGA实现就最好。第二,做一个NIOS2的嵌入式平台。你到CNKI的优秀硕士论文上搜索SOPC,FPGA等关键词,可以找到很多这方面的东西。看看别人是怎么写的,就有想法了。做一个NIOS平台,然后跑跑UCOS操作系统,最后做出硬件来,一般就能拿优了。硕士论文要有点深度。我也在研究这个,我毕业也准备写篇这方面的论文。祝你好运,共同学习!几个比较好的论坛介绍你,一个是“研学论坛”,一个是“EDACN”你在百度上找这两个关键字都能找到。我的空间里也有相关的资料,兴许对你有所帮助:)

83 评论

哼哼家的猫猫

1、频率计嘛就是用来测试信号频率的啊!2、用FPGA来做就最简单不过了!3、我做了一个频率范围在0.5Hz__20MHz,一点都不夸张的,而且精度还很高,比你想象的要高的多!4、软件设计就只要QUARTUS II,很好做的也很容易!5、就连报告也都有的!

192 评论

呀哟哇啦

1.频率计是干什么的?问这个问题的应该不是工科生吧!不是工科生做什么频率计啊~~哪凉快待哪去

175 评论

相关问答

  • fpga一般投稿哪些国外期刊

    能发这样的期刊很多,从比较专业的计算机仿真,计算机科学,到其他科技类期刊都有。我去年代笔写了一个单片机的,发到《煤炭技术》上了,因为是和煤炭产业结合的,也录用了

    shangbabayue 4人参与回答 2023-12-11
  • 20岁自学数学发表论文

    (一)初等微积分1、MIT(麻省理工)的《一元微积分》,Stewart 的教材,网易上有视频。2、MIT的《多元微积分》,Edwards & Penney的教材

    啾啾大神 6人参与回答 2023-12-09
  • 自学发表论文

    找中介,速度快,态度好(弊端容易遇到,或者发表在假刊套刊上),一定要看到流程,确定好发表的期刊,再进行投稿。

    azaarsenal 4人参与回答 2023-12-06
  • fpga设计期刊论文发表

    FPGA只是个工具 ,可以应用于通信、网络、汽车电子、消费电子等很多领域,关于FPGA的文章发表在什么刊物 ,就看你写的关于哪方面的应用了。关于FPGA的文章一

    孙先生孙太太 3人参与回答 2023-12-08
  • fpga论文好发表吗

    你说论文自己投稿很难吗?论文自己投稿。嗯,应该还是有难度的。不是说你随便写一写就行,你要。嗯研究和分析好

    爱吃豆包 7人参与回答 2023-12-08