基于FPGA的LED16×16点阵汉字显示设计(VHDL版)_第1页
基于FPGA的LED16×16点阵汉字显示设计(VHDL版)_第2页
基于FPGA的LED16×16点阵汉字显示设计(VHDL版)_第3页
基于FPGA的LED16×16点阵汉字显示设计(VHDL版)_第4页
基于FPGA的LED16×16点阵汉字显示设计(VHDL版)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 毕业设计(论文)开题报告毕业设计(论文)开题报告设计(论文)题设计(论文)题目目基于 FPGA 的 LED 1616 点阵汉字显示设计一、选题的背景和意义:LED 点阵显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。受到体育场馆用 LED 显示屏需求快速增长的带动,近年来,中国 LED显示屏应用逐步增多。目前,LED 已经广泛应用在银行、火车站、广告、体育场馆之中。而随着奥运会、世博会的临近,LED 显示屏将广泛的应用在体育场馆以及道路交通指示中,LED 显示屏在

2、体育广场中的应用将出现快速增长。因此,本设计是很有必要的,之所以基于 FPGA 设计是因为现场可编程门阵列(FPGA)设计周期小,灵活度高,适合用于小批量系统,提高系统的可靠性和集成度。并且采用编写灵活的VHDL 语言编写主程序。本设计可以方便的应用到各类广告宣传中。二、课题研究的主要内容:1. 实现 1616 点阵的汉字显示;2. 实现有限汉字显示;4. 实现汉字的滚动显示;5. 完成方案论证。三、主要研究(设计)方法论述: 通过去图书馆查阅书籍收集资料,同时在搜索引擎上检索资料,分析借鉴已有类似产品、设计方案与成功经验,选择几种可行方案比对,最后确定最切实可行的方案展开设计。通过 Mult

3、isim 或 Quartus 软件对系统进行模拟仿真,对电路功能进行改进与完善。在 EDA 试验箱上进行调试。 四、设计(论文)进度安排:时间(迄止日期)工 作 内 容2010.5.17-5.23(第 1 周)理解并确认毕业设计任务书,撰写完成毕业设计开题报告2010.5.24-5.30(第 2 周)完成调研与资料收集、整理2010.5.31-6.6(第 3 周)设计方案及原理框图确定2010.6.7-7.4(第 4、5、6、7周)电路资料收集,单元电路设计2010.7.5-7.18(第 8、9 周)电路仿真与改进、完善2010.19-8.1(第 10、11 周)资料整理2010.8.2-8.

4、8(第 12 周)书写毕业设计报告2010.8.9-8.16(第 13 周)修改毕业设计报告并整理装订五、指导教师意见: 指导教师签名: 年 月 日六、系部意见: 系主任签名: 年 月 日 目录目录摘要摘要ABSTRACT第一章第一章 前言前言.1 11.1 本设计的研究背景和研究目的 .11.2 LED 点阵显示特点.11.3 FPGA 设计的特点.1第二章第二章 系统设计系统设计.3 32.1 设计任务与要求.32.1.1 设计任务.32.1.2 设计要求.32.2 设计原理.32.2.1 总体设计方案.32.2.2 方案的比较.42.3 扫描控制模块.42.3.1 LED 的显示原理.4

5、2.3.2 汉字的存储.52.4 汉字显示 .52.4.1 列循环扫描.52.4.2 字符样式设计.62.4.3 字母循环扫描及期间的延时环节.92.5 整个完整的程序 .9第三章第三章 系统调试与仿真系统调试与仿真.14143.1 开发环境介绍.143.2 调试与仿真.143.2.1 创建工程 .143.2.2 编译前设置 .143.2.3 全程编译 .163.2.4 时序仿真 .17第四章第四章 结束语结束语.1818答谢辞答谢辞.1818参考文献参考文献.1818 摘要 主要研究基于 VHDL 的 Led 点阵汉字滚动显示。首先描述了基于现场可编程门阵(FPGA)的硬件电路,以及点阵显示

6、汉字的原理;然后在单个 16X16 LED 发光二极管点阵上滚动汉字的原理;最后给出了描述其功能的 VHDL 语言程序设计方法。通过编程、调试、仿真、下载正确地实现了汉字滚动显示扫描结果,其硬件系统的实验验证也获得了与软件模拟仿真结论相吻合的结果。关键词关键词:LED 点阵;FPGA;VHDL 语言;汉字滚动显示 AbstractPrimary research is based on VHDL, Led Scrolling dot matrix characters. First described based on field programmable gate array (FPGA)

7、hardware circuit, as well as the principle character dot matrix display; and then in a single 16X16 LED scrolling LED dot matrix on the principles of Chinese characters; Finally, the VHDL description language program of its functions design. Through programming, debugging, simulation, download the c

8、orrect character scroll achieved scan results, the experimental verification of its hardware and software are also obtained findings consistent with simulation results.Keywords: LED dot-matrix; FPGA; VHDL language; character scrolling displa 1第一章 前言1.1 本设计的研究背景和研究目的受到体育场馆用 LED 显示屏需求快速增长的带动,近年来,中国 LE

9、D 显示屏应用逐步增多。目前,LED 已经广泛应用在银行、火车站、广告、体育场馆之中。而随着世博会的临近,LED 显示屏将广泛的应用在体育场馆以及道路交通指示中,LED 显示屏在体育广场中的应用将出现快速增长。目前,国内从事 LED 显示屏生产的企业众多,同时,受到外资企业 LED 显示屏价格过高的影响,在中国 LED 显示屏市场上多以本土企业为主。目前,本土 LED 显示屏生产企业除供应国内需求外,还不断把产品出口到国外市场。而近年来,受到成本压力的影响,国际上一些知名的 LED 显示屏企业也逐步把 生产基地移到了中国,如巴可在北京设立了显示屏生产基地,Lighthouse 在惠州也拥有生产

10、基地,Daktronics、莱茵堡都在国内设立了生产工厂。随着国际 LED 显示屏生产大厂不断把生产基地转移至国内, 加之国内众多的 LED 显示屏本土企业,中国正在成为全球 LED 显示屏的主要生产基地。因此研究 LED 汉字滚动显示屏的设计方法具有重要的理论和现实意义。随着我国经济的高速发展,对公共场合发布信息的需求日益增长,利用 LED 点阵滚动显示汉字的出现正好适应了这一市场需求,已经成为信息传播的一种重要手段。采用传统方法设计的汉字滚动显示器,通常需要使用单片机、存储器和制约逻辑电路来进行 PCB 板级的系统集成。尽管这种方案有单片机软件的支持较为灵活,但是由于受硬件资源的限制,未来

11、对设计的变更和升级,总是难以避免要付出较多研发经费和较长投放市场周期的代价。随着电子设计自动化(EDA)技术的进展,基于可编程FPGA 器件进行系统芯片集成的新设计方法,也正在快速地到代基于 PCB 板的传统设计方式。因此,本设计的研究是很有必要的,之所以基于 FPGA 设计是因为现场可编程门阵列(FPGA)设计周期小,灵活度高,适合用于小批量系统,提高系统的可靠性和集成度。并且采用编写灵活的 VHDL 语言编写主程序。1.2 LED 点阵显示特点(1)可以显示各种数字、文字、图表、曲线、图形;(2)采用纯红、高绿作双基色发光器件,发光亮度高,色彩鲜艳、丰富;(3)显示效果清晰、稳定、功耗低、

12、寿命长;(4)优质铝合金结构,磨沙、银镜或钛金不锈钢包边。尺寸和规格可根据需要灵活组合;(5)支持各种计算机网络,编辑软件丰富、易用;(6)适用于室内、外所有信息发布及广告宣传场所。如:银行、证券交易所、商场、市场、宾馆、洒楼、电信、邮政、医院、车站、机场等。1.3 FPGA 设计的特点FPGA 通常被认为是 ASIC 实现的一种替代手段. 一般 ASIC 包括三种, 既全定制、半定制(含标准单元和门阵列) 以及可编程器件。对于前两种, 需要支付不可重复使用 2的工程费用 NRE (Non recurring Engineering) , 主要用于芯片的流片、中测、分析的工程开销, 一次费用一

13、般在 1 万至数万美元以上。如果一次不成功、返工、甚至多次返工,NRE 费用将要上升。成本高、风险大, 而通常对每个 ASIC 品种的需求量往往不大,NRE 费用分摊到每个产品上价太高, 用户无法接受。而对于可编程器件 PLD (Programmable Logic Device) 正是可以解决上述问题的新型 ASIC, PLD 以其操作灵活、使用方便、开发迅速、投资风险小等突出优点, 特别适合于产品开发初期、科研样品研制或小批量的产品. FPGA 是一种新型的 PLD, 其除了具有 PLD 的优点外, 其规模比一般的 PLD 的规模大。目前,Xilinx 推出的 XC4025 可以达到 25

14、000 门的规模,Altera 公司的 FLEX10K100 系列芯片可达到十万门的规模,完全可以满足用户的一般设计需要。 FPGA 的主要特点是: 寄存器数目多, 采用查找表计数,适合时序逻辑设计。 但是互连复杂, 由于互连采用开关矩阵,因而使得延时估计往往不十分准确。 FPGA 也有其自身的局限性, 其一就是器件规模的限制,其二就是单元延迟比较大。 所以, 在设计者选定某一 FPGA 器件后, 要求设计者对器件的结构、性能作深入的了解, 在体系结构设计时, 就必须考虑到器件本身的结构及性能, 尽可能使设计的结构满足器件本身的要求. 这样就增加了设计的难度。 离开对 FPGA 结构的详细了解

15、, 设计人员就不可能优化设计。因而设计人员必须了解 FPGA 器件的特性和限制, 熟悉 FPGA 的结构。 在了解 FPGA 结构特点的基础上, 就可以利用 VHDL 语言描写出高效的电路描述实现性能优化的电路。 3第二章 系统设计2.1 设计任务与要求2.1.1 设计任务(1)设计一个 1616 的 LED 点阵显示器;(2)在设计过程中,EDA 试验箱进行仿真调试。2.1.2 设计要求(1)输出预定义“王、日、田、口”四个汉字;(2)输出汉字循环显示;(3)操作方便、可维护性高;(4)程序简捷,便于修改。2.2 设计原理2.2.1 总体设计方案方案一:本设计所使用的 1616 的点阵,ED

16、A 实验箱上有其接口电路,列选信号为 SEL0,SEL1,SEL2,SEL3,经 4 线 16 线译码器输出 16 列,从左起为第一列,列选信号是由一个 4 位向量 SEL3.0控制;行选信号为 H0H15,是由 16 个行信号组成的,每一行由一个单独的位来控制,高电平有效。例如“0000”表示第 0 列,“0000000000000001”表示第一行的点亮。由于列是由一个向量决定,而每一时刻的值只能有一个固定的值,因而只能使某一列的若干个点亮,因此就决定了只能用逐列扫描的方法。例如要使第一列的 2,4,6,8,行亮,则列为“0001” 、行为“0000000010101010”就可以实现了。

17、方案二:VHDL 程序设计的是硬件,他和编程语言的最大区别是它可以“并发执行”。本设计可以将 LED 显示屏要的显示内容抽象成一个二维数组(数组中的1对映点阵显示屏上面的亮点),用 VHDL 语言设计一个进程将这个数组动态显示在 LED 显示屏上,再利用另一个进程对这个数组按一定频率进行数据更新,更新的方式可以有多种。因为两个进程是同时进行的(并发执行),如果对数组中的汉字数据按滚动的方式更新,则可实现汉字的滚动显示。如图 2-1 为该方案原理图。 4更新数组数据二维数组动态显示图图 2-12-1 方案二原理图方案二原理图2.2.2 方案的比较方案一很容易实现,而且占用 FPGA 的资源较少。

18、但是由于其实现方式的局限性,该方案只能实现汉字的滚动显示。方案二中将 LED 点阵抽象成了一个二维数组。可以设计一些比较复杂的算法来控制这个数组,使设计的系统不但可以滚动显示汉字,还可以扩展一些其它的显示效果。但是方案二中对数组的处理部分对 FPGA 芯片的资源消耗太大学校实验室里的 EPF10K10LC84-4 芯片只有 576 个逻辑单元远远不够设计要求。所以最终选择方案一。2.3 扫描控制模块2.3.1 LED 的显示原理1616 扫描 LED 点阵的工作原理同 8 位扫描数码管类似。它有 16 个共阴极输出端口,每个共阴极对应有 16 个 LED 显示灯,所以其扫描译码地址需 4 位信

19、号线(SEL0-SEL3) ,其汉字扫描码由 16 位段地址(0-15)输入。 通过时钟的每列扫描显示完整汉字。 图图 2-22-2 LEDLED 灯红绿信号灯红绿信号 图图 2-32-3 16161616 点阵点阵 LEDLED 等效电路等效电路点阵 LED 一般采用扫描式显示,实际运用分为三种方式: (1)点扫描(2)行扫描(3)列扫描 5若使用第一种方式,其扫描频率必须大于 1664=1024Hz,周期小于 1ms 即可。若使用第二和第三种方式,则频率必须大于 168=128Hz,周期小于 7.8ms 即可符合视觉暂留要求。此外一次驱动一列或一行(8 颗 LED)时需外加驱动电路提高电流

20、,否则LED 亮度会不足。2.3.2 汉字的存储用动态分时扫描技术使 LED 点阵模块显示图像,需要进行两步工作。第一步是获得数据并保存,即在存贮器中建立汉字数据库。第二步是在扫描模块的控制下,配合行扫描的次序正确地输出这些数据。获得图像数据的步骤是,先将要显示的每一幅图像画在一个如图 3.3 所示的被分成 1616 共 256 个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布,再将此分布关系以 3216 的数据结构组成 64 个字节的数据,并保存在只读存贮器 ROM 中。以这种方式将若干个汉字的数据贮存在

21、存贮器内,就完成了图像数据库的建立工作。 2.4 汉字显示汉字显示使用的是 1616 的点阵,EDA 实验箱上有其接口电路,列选信号为SEL0,SEL1,SEL2,SEL3,经 4 线 16 线译码器输出 16 列,从左起为第一列,列选信号是由一个 4 位向量 SEL3.0控制;行选信号为 H0H15,是由 16 个行信号组成的,每一行由一个单独的位来控制,高电平有效。例如“0000”表示第 0 列,“0000000000000001”表示第一行的点亮。由于列是由一个向量决定,而每一时刻的值只能有一个固定的值,因而只能使某一列的若干个点亮,因此就决定了只能用逐列扫描的方法。例如要使第一列的 2

22、,4,6,8,行亮,则列为“0001” 、行为“0000000010101010”就可以实现了。下面是各个部分的程序设计:2.4.1 列循环扫描列循环扫描通过对每一列的扫描来完成对字母的现实,只要扫描的频率足够快,就能给人以连图图 2-42-4 1616LED1616LED 点阵模块点阵模块 6续的感觉。因此要控制扫描的频率,不能太低,否则,就会造成视觉上的不连续,本设计的扫描频率不得低于 50Hz,扫描程序如下: 7Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;Entity dz_xs is

23、Port(enable,clk:in std_logic; -端口定义 输入信号 Sel:out std_logic_vector(3 downto 0); -端口定义 输出信号End dz_xs;Architecture count of dz_xs is Signal lie:std_logic_vector(3 downto 0);BeginProcess(clk,enable) -脉冲、使能信号beginIf clkevent and clk=1thenIf enable=1 thenIf lie0000 then Lie=lie-0001;Else Lie=1111;End if;

24、End if;End if;SelCase lie is -“王”字设计When 0011=h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00011111;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00000000;h8Case lie is -“日”字设计 9When0101=h0=00011111;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8

25、h0=00010001;h8h0=00010001;h8h0=00011111;h8h0=00000000;h8Case lie is -“田”字设计 When0100=h0=00011111;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00011111;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00011111;h8h0=00000000;h8Case lie is -“口”字设计When0101=h0=00011111;h8h0=00010000;h8h0=00010000;h8h0=00

26、010000;h8h0=00010000;h8h0=00010000;h8h0=00011111;h8h0=00000000;h8h0=00000000;h8=00000000; End case; End if; End if;End process;2.4.3 字母循环扫描及期间的延时环节为使字母不断地循环显示,并且使每个字母之间有停顿,就需要在中间加一定的延时和循环环节。在这一环节中,可以通过修改其数值来控制每个字母的显示时间。其程序如下:process(clk) variable int: integer range 0 to 10000;begin if clkevent and c

27、lk=1then if int10000 then int:=int+1; elseint:=0; if next1=”11”thennext1=”00”; elsenext10000 then Lie=lie-0001;Else Lie=1111;End if; End if;End if;SelCase lie is When 0011=h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00011111;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0

28、=00010001;h8h0=00010001;h8h0=00000000;h8Case lie is When0101=h0=00011111;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00011111;h8h0=00000000;h8Case lie is When0100=h0=00011111;h8h0=00010001;h8h0=00010001;h8h0=00010001;h8h0=00011111;h8h0=00010001;h8h0=00010001;h8h0=00010

29、001;h8h0=00011111;h8h0=00000000;h8Case lie is When0101=h0=00011111;h8h0=00010000;h8h0=00010000;h8h0=00010000;h8h0=00010000;h8h0=00010000;h8h0=00011111;h8h0=00000000;h8h0=00000000;h8=00000000; End case; 14 End if; End if;End process;a3:process(clk) variable int: integer range 0 to 10000;begin if clke

30、vent and clk=1then if int10000 then int:=int+1; elseint:=0; if next1=”11”thennext1=”00”; elsenext1= next1+1; end if; end if;end if;end process;end count; 15第三章 系统调试与仿真3.1 开发环境介绍Quartus II 是 Altera 公司的综合性 PLD 开发软件,支持原理图、VHDL、Veril-ogHDL 以及 AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以

31、及仿真器,可以完成从设计输入到硬件配置的完整 PLD 设计流程。Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方 EDA 工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA 工具。此外,Quartus II 通过和 DSP Builder 工具与 Matlab/Simulink 相结合,可以方便地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统( SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合

32、性的开发平台。3.2 调试与仿真3.2.1 创建工程在 Quartus II 中新建一个 VHDL File 文件,将 VHDL 代码输入这个文件,并保存到工作目录,名为 yz_ok.vhd。利用 new preject wizard 工具创建一个工程,工程名为 yz_ok,顶层文件实体名为 yz_ok,并将上面创建的 yz_ok.vhd 文件加入到工程中。3.2.2 编译前设置(1)选择目标芯片。用 assignmemts-settings 命令,弹出 settings 对话框,选择目标芯片为 EP2C5T144C8。 16图图 3 3- -1 1 选选择择目目标标器器件件(2)选择工作方式

33、,编程方式,及闲置引脚状态单击上图中的 device&pin options 按钮,弹出 device&pin options 窗口。 在 General 项中选中 auto-restart configuration after error,使对 FPGA 的配置失败后能自动重新配置,并加入JTAG 用户编码。 图图 3 3- -2 2 选选择择配配置置器器件件工工作作方方式式在 configuration 项中,其下方的 Generate compressed bitstreams 处打勾,这样就能产生用于 EPCS 的 POF 压缩配置文件。在 Configuration

34、 选项页,选择配置器件为 EPCS1,其配置模式选择为active serial。图图 3 3- -3 3 选选择择编编程程方方式式 17在 Unused pins 项,将目标器件闲置引脚状态设置高阻态,即选择As input,tri-stated。图图 3 3- -4 4 设设置置闲闲置置引引脚脚状状态态3.2.3 全程编译设置好前面的内容之后,就可以进行编译了。选择Processing 菜单中 start compilation,在窗口的下方 processing 栏中显示编译信息。图图 3 3- -5 5 全全程程编编译译成成功功完完成成完成后在工程管理窗口左是角显示了工程yz_ok 的层次结构和其中结构模块耗用的逻辑宏单元数。此栏的右边是编译处理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析等。 183.2.4 时序仿真(1)新建一个矢量波形文件,同时打开波形编辑器。设置仿真时间为50us,保存波形文件为 yz_ok.vwf。(2)将工程 yz_ok 的端口信号名选入波形编辑器中,所选的端口有clk,enable 及总线 h0 和 h8。设置 clk 的时钟周期为 2us,占空比为 50%。图图 3 3- -6 6

温馨提示

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

评论

0/150

提交评论