课程设计(论文)基于FPGA的汉字循环显示设计

上传人:仙*** 文档编号:29186226 上传时间:2021-09-30 格式:DOC 页数:17 大小:1.03MB
收藏 版权申诉 举报 下载
课程设计(论文)基于FPGA的汉字循环显示设计_第1页
第1页 / 共17页
课程设计(论文)基于FPGA的汉字循环显示设计_第2页
第2页 / 共17页
课程设计(论文)基于FPGA的汉字循环显示设计_第3页
第3页 / 共17页
资源描述:

《课程设计(论文)基于FPGA的汉字循环显示设计》由会员分享,可在线阅读,更多相关《课程设计(论文)基于FPGA的汉字循环显示设计(17页珍藏版)》请在装配图网上搜索。

1、目录0引言与摘要-21系统设计功能与要求-32系统设计思路-33现场可编程门阵列FPGA与Qualtus软件的简介-4 3.1现场可编程门阵列FPGA的简介-4 3.1.1 FPGA概述-43.1.2 FPGA基本结构-43.2 Qualtus软件的简介-64各模块设计说明、源代码及仿真结果-741分频模块的设计-74.2计数电路模块的设计-104.3并置电路模块的设计-134.4存储电路模块的设计-155系统整体设计说明、源代码及仿真结果-15 5.1系统整体设计说明-15 5.2系统整体仿真-166设计创新点说明及设计心得-167参考文献-17基于FPGA的汉字循环显示设计青海民族大学 摘

2、 要:简单介绍16x16点阵显示的基本原理;结合实例分析如何用较为简单的方法设计循环汉字显示,并且给出了部分VHDL源文件。关键词:LED点阵 VHDL 汉字显示 FPGA EDAAbstract: Brief introduction to the basic principles of 16x16 dot matrix display; with examples of how to use a relatively simple method of design cycle character display, and gives the Block Diagram / Schemati

3、c File and part of the VHDL source files.Keywords: LED VHDL Chinese displaying FPGA EDA0.引言: 随着社会的不断发展,现今随处可见的广告牌都是用彩灯似的汉字循环显示,车站,商店,酒吧等等。而关于FPGA的汉字显示的设计也是精华不断,各有其创新,但大多都还是通过按键选择来控制滚动的思路,或者通过单片机来控制,前者不具有自动控制而后者由于单片机硬件资源的局限性,所以多不是最为理想的设计思路。本文作者采用当今数字系统设计主流技术EDA技术,利用Qualtus,巧加分频器实现自动循环。作者调试成功,效果理想。1系统

4、设计功能与要求本设计简单介绍了LED点阵显示汉字的原理,使用高亮度LED发光管构成点阵,通过编程控制可以显示中英文字符、图形及视频动态图形。LED显示以其组构方式灵活、亮度高、技术成熟、成本低廉等特点在证券、运动场馆及各种室内/外显示场合得到广泛的应用。本实验结合实例运用基于FPGA的VHDL语言编程使其循环显示“青海民大”四个字。利用FPGA控制实现汉字在点阵上的循环显示,“青”“海”“民”“大”四个字(如图1.1如示)在点阵上以约一秒的间隔在16*16的点阵上分别显示。字体要求工整,易于识别,不要过于偏离点阵正中心。图1.1 青海民大2系统设计思路根据系统设计的要求,设计主要由:时钟模块、

5、分频器模块、计数器模块、并置模块、存储器模块等构成(如图2.1所示)。其中时钟模块主要用于提供时钟信号,让电路工作。分频器主要将时钟进行分频,产生比原来时钟小得多的另一信号。 计数器模块主要在时钟的驱动下为存储器提供扫描地址,实现对点阵模块的控制。并置模块主要用于将两个时钟信号并置,从而实现汉字间的循环显示。存储器模块主要用存储汉字的字型码,可通过改变字型码实现不同汉字的显示。图2.13现场可编程门阵列FPGA与Qualtus软件的简介3.1 FPGA的简介3.1.11 FPGA概述FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,与之相应的CPL

6、D是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,两者的功能基本相同,只是实现原理略有不同,有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLD/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统

7、的可靠性。这些优点使得CPLD/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。3.1.2 FPGA基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)、输入/输出模块(IOB-I/O Block)和互连资源(IRInterconnect Resource)。可编程逻辑模块CLB是实现逻辑功能的基

8、本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。41.CLB是FPGA的主要组成部分。图3.1是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G、F和H。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实

9、现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现3输入变量的各种组合函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于RO

10、M。F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。另外,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。2.输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MUX,另一路延时几个纳秒(或者没有延时)后送到输入通路D触发器,再送到数据选择器。通过编程给

11、数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通VCC、地线或者不接通,用以改善输出波形和负载能力。3.可编程互连资源IR。可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动

12、布线实现各种电路的连接。图3.1 CLB33.2 Qualtus软件的简介QuartusII 是Altera 公司的第四代可编程逻辑器件开发软件, 它除承接原来MAX+ PLU SII 软件的全部设计功能和器件对象外, 还增加了许多新功能和新的FPGA 器件系列。QuartusII 软件提供了一种与结构无关的全集成化环境, 将设计、综合、布局和布线、系统的验证都整合到一个无缝的环境中, 使设计者能方便地对Altera 公司的PLD 系列产品进行设计输入、快速处理和器件编程。4各模块设计说明、源代码及仿真结果41分频模块的设计如图4.1所示为分频器模块图。分频器模块实际上是利用了计算器的计算功能

13、,在本设计中我们用到了同步十进制加法计数器74LS160。通过几个计数器的级联实现对信号的控制即分频。如图4.2所示为计数器74LS160的工作方式选择表。如图4.3所示为计数器74LS160的逻辑图。图4.1 分频器模块图 图4.2 计数器74LS160的工作方式选择表图4.3 计数器74LS160的逻辑图这种同步可预置十进计数器是由四个 D型触发器和若干个门电路构成,内部有超前进位,具有计数、置数、禁止、直接(异步)清零等功能。对所有触发器同时加上时钟,使得当计数使能输入和内部门发出指令时输出变化彼此协调一致而实现同步工作。这种工作方式消除了非同步(脉冲时钟)计数器中常有的输出计数尖峰。缓

14、冲时钟输入将在时钟输入上升沿触发四个触发器。这种计数器是可全编程的,即输出可预置到任何电平。当预置是同步时,在置数输入上将建立一低电平,禁止计数,并在下一个时钟之后不管使能输入是何电平,输出都与建立数据一致。清除是异步的(直接清零),不管时钟输入、置数输入、使能输入为何电平,清除输入端的低电平把所有四个触发器的输出直接置为低电平。超前进位电路无须另加门,即可级联出 n位同步应用的计数器。它是借助于两个计数使能输入和一个动态进位输出来实现的。两个计数使能输入( ENP和 ENT)计数时必须是高电平,且输入 ENT必须正反馈,以便使能动态进位输出。因而被使能的动态进位输出将产生一个高电平输出脉冲,

15、其宽度近似等于 QA输出高电平。此高电平溢出进位脉冲可用来使能其后的各个串联级。使能 ENP和 ENT输入的跳变不受时钟输入的影响。电路有全独立的时钟电路。改变工作模式的控制输入(使能 ENP、ENT或清零)纵使发生变化,直到时钟发生为止,都没有什么影响。计数器的功能(不管使能、不使能、置数或计数)完全由稳态建立时间和保持时间所要求的条件来决定。4.2计数电路模块的设计4.2.1计数器模块的作用计数器模块(1)的输入是分频模块的输出,计数器(2)的输入是原始时钟信号,分别储存分频脉冲信号和原始时钟信号,主要用于控制对储存器ROM中数据的扫描,即由这两个计数器的并置输出来对后一级的储存器lpm_

16、rom0模块提供扫描地址。Lpm_counter0和lpm_counter1都是一个8位的计数器,分别在所接受的clock脉冲的控制下,lpm_counter0的输出q15.0和q1.0由000000000000000到1111111111111111,lpm_counter1的输出由00到11循环变化(lpm_counter1的输出设置是由要求输出的汉字个数决定的,本设计只要求循环输出“青海民大”四个字,所以lpm_counter1输出设置成两位),使存储器lop_rom0输出周期性的汉字。4.2. 2设置计数器模块的具体步骤(以lpm_counter1为例) 本设计使用Quartus的Me

17、gaWizard Plug-In Manager中的宏模块完成。 1.加入计数器原件 打开Quartus的原理图编辑窗口,在弹出的元件选择窗口的“Libraries”栏中选择“arithmetic”的“lpm_counter”LPM元件,如图4.4所示。设置参数,只要保留时钟输入clock和数据输出q1.0端口。图4.4 加入计数器原件计数器元件选定后单击“OK”,弹出如图4.5所示的MegaWizard Plug-In Managerpage2c对话框。在该对话框中选择vhdl作为输出文件类型。图4.5 MegaWizard Plug-In Managerpage2c对话框完成上述操作后,单

18、击“Next”,进入计数器参数设置的“MegaWizard Plug-In Manager-LPM_COUNTERpage 3 of 7”窗口,如图4.6所示。在此对话框中设置计数器的q输出位数为2bits,时钟输入clock的有效边沿为“Up only”(上升沿有效)。图4.6 计数器参数设置完成上述步骤后单击“Next”,进入计数器参数设置的“MegaWizard Plug-In Manager-LPM_COUNTERpage 3 of 7”窗口,如图4.7所示。在此对话框中选择计数器的类型为“Plain binary”(二进制)。图4.7 MegaWizard Plug-In Manag

19、er-LPM_COUNTERpage 3 of 7完成图4.7的参数设置,在以后弹出的参数设置窗口都单击“Next”保持默认设置可。4.3并置电路模块的设计如图4.8所示为并置模块图。在并置模块中有两支时钟信号作为输入:一支为较高的时钟信号,它用来实现在ROM中的字型码各列的扫描,由于它频率较高而使人眼无法区别汉字中各列的动态间隔显示,从而一个完整的汉字得以显现。而另一支为较低的时钟信号,它是通过对原始信号的分频得到的,它用来实现不同汉字间的等间隔顺序显示。并置模块的输出连接的是存储器模块的输入。图4.8 并置模块 模块的VHDL程序: library ieee;use ieee.std_lo

20、gic_1164.all;entity akz is port(en:in std_logic; b:in std_logic_vector(2 downto 0); a:in std_logic_vector(3 downto 0); address:out std_logic_vector(6 downto 0);end akz;architecture one of akz isbeginprocess(en,a,b)begin if en=1 then address=(b&a);else address=ZZZZZZ;end if;end process;end;4.4存储电路模块的

21、设计利用LPM参数化模块库中单口ROM,利用Qualtus中的MegaWizard Plug-In Manager定制而成,定制前首先要制作LPM ROM初始化文件,其中存储待显示汉字的字模数据,然后按照LPM MegaWizardPlug-In Manager的向导提示,结合设计要求进行定制。图4.9为所定制ROM中的初始化汉字“青海民大”的字型码。图4.9 ROM中的字型码5系统整体设计说明、源代码及仿真结果51系统整体设计说明根据设计原理及设计性能要求连接各个子模块,组成系统。系统电路图如图5.1图所示。5.1 系统电路图52系统整体仿真结果如图5.2所示图5.2 整体仿真结果6设计创新

22、点说明及设计心得本文只基于16X16点阵而言,所以输出端和ROM模块内的相应内容都是与其相匹配的设置,可稍加修改设计成为8X8或32X32位的显示,当需要显示的字数不同时只需修改ROM模块,lpm counter1的位数和并置模块的端口位数即可,以后我们将用片上可编程系统SOPC制作NOIS II软核处理器,其最大特点是它是一种软核、可配置的系统。可配置意味着处理器系统的组成和性能可以根据需要进行调整。输出显示可用液晶显示屏效果更为理想。该设计简单可行,多用Qualtus中自带的模块组成,思路清晰又有自己的创新,作者在实验时系统工作正常,性能稳定。本文从LED点阵显示汉字的原理出发,给出了系统显示的原理图和自制模块的VHDL程序。从文中给出的扩展方案可知,本文对同类设计具有一定的参考价值。参考文献1汪国强,EDA技术与应用(第3版),电子工业出版社2潘松,黄继业,EDA技术实用教程,科学出版社3张庆玲,西安航空技术高等专科学校,基于FPGA汉字显示的语言实现17

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!