基于FPGA的LED1616点阵汉字显示设计终搞_第1页
基于FPGA的LED1616点阵汉字显示设计终搞_第2页
基于FPGA的LED1616点阵汉字显示设计终搞_第3页
基于FPGA的LED1616点阵汉字显示设计终搞_第4页
基于FPGA的LED1616点阵汉字显示设计终搞_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、1 / 29 基于 FPGA 的 LED 显示屏的设计丁莹莹(理工学院 物理与电信工程学院 通信工程专业 2010 级 3 班, 723003)指导教师:争兵摘要主要研究基于 FPGA 的 Led 点阵汉字滚动显示。首先描述了基于现场可编程门阵(FPGA)的硬件电路,以与点阵显示汉字的原理;然后在单个 16X16 LED 发光二极管点阵上滚动汉字的原理;最后给出了描述其功能的VHDL 语言程序设计方法。通过编程、调试、仿真、下载正确地实现了汉字滚动显示扫描结果,其硬件系统的实验验证也获得了与软件模拟仿真结论相吻合的结果。关键词LED 点阵;FPGA;VHDL 语言;汉字滚动显示2 / 29Th

2、e design of LED display based on FPGADing Yingying(Grade10,Class3,Major of Communication Engineering,School of Physics and Telecommunication Engineering , Shaanxi University of Technology, Hanzhong 723003,Shaanxi)Tutor: Zhen ZhengbingAbstractAbstractPrimary research is based on FPGA, Led Scrolling d

3、ot matrix characters. First described based on field programmable gate array (FPGA) 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

4、 of its functions design. Through programming, debugging, simulation, download the correct character scroll achieved scan results, the experimental verification of its hardware and software are also obtained findings consistent with simulation results.KeywordsKeywordsLED dot-matrix; FPGA; VHDL langu

5、age; character scrolling displa3 / 29目录目录第一章前言第一章前言.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 的显示原理.42.3.2 汉字的存储.52.4 汉字显示 .52.4.1 列循环扫描.52.4.2 字符样式设计.62.4.3 字母循环扫描与期间的延时环节.

6、94 / 292.5 整个完整的程序 .9第三章系统调试与仿真第三章系统调试与仿真.14143.1 开发环境介绍.143.2 调试与仿真.143.2.1 创建工程 .143.2.2 编译前设置 .143.2.3 全程编译 .163.2.4 时序仿真 .17第四章第四章结束语结束语.1818答辞答辞.1818参考文献参考文献.18181 / 291 引言目前,在机场、饭店等很多公共场所都能看到美观、实用的电子显示屏,它以高清、节能、控制简单、寿命长、耐冲击、性能稳定、成本低廉、环保等优势迅速占领市场。作为大型平板显示设备的一种 LED 显示屏以其使用寿命长、维护费用低、功耗低等特点在显示领域占有

7、重要的位置。特别在近年,带有红、绿、蓝三基色以与灰度显示效果的全彩 LED 显示屏,以其丰富多彩的显示效果而倍受业界关注,成为 LED 显示屏市场近年增长幅度比较大的产品。寿命、单位面积亮度、三基色的偏差程度、点距、对比度、灰度等级(包括灰度级数和线性度)、扫描频率等指标性能是衡量或横向比较大型显示设备好坏的标准。而这些指标性能的优劣,很大程度上决定于扫描控制器的性能。因此对大屏幕全彩 LED 显示扫描控制方法的研究有着重要的意义。随着显示屏尺寸的扩大、亮度要求的增加,数据传输和控制的时间也会增加,如果仍然采用单片机作为控制器,将会影响显示效果,严重时可能无常工作,然而,这时若采用可编程逻辑器

8、件作为控制器,则可解决这一难题。一方面,随着微电子技术的发展和生产工艺的提高,器件的性能大有很大的提高,出现了高性能的现场可编程逻辑器件(FPGA) ,FPGA 具有处理速度高、可靠性高、高容量和集成度高等特点,在大屏幕显示系统设计中使用 FPGA 可以满足现在的 LED 大屏幕系统对于处理视频数据的高速要求,同时改善电路的性能,缩小系统的体积。设计中使用硬件描述语言进行电路设计,可以随时根据设计需要进行修改,而不必对硬件进行修改,它使系统的设计和调试非常方便,大大的缩短了产品的开发周期,降低了开发成本,也方便以后的系统升级。(1)研究现状LED 照明发展非常迅速,年增长率超过 60%,随着

9、LED 发光效率的不断提升,封装技术不断改进,驱动陆能和寿命的增加,LED 照明技术在未来 5 年会逐渐进入千家万户。在世界各国环保议题日渐重视的趋势下,LED 照明产业将扮演极重要的角色,其主要应用在于室、室外照明以与街灯等高功率产品。据悉,2009 年全球照明市场约 1219 亿美元,LED 仅占 0.5%,显见其未来潜力之可观。其中,以亚太地区的市场规模为最大、约占全球 33.7%之比例,居次为北美的 30.1%和欧洲之27.4%。以应用产品来讨论,户外照明约占 12%,则具有相当大的成长空间,尤其以占有全球 38%户外照明的中国市场为最。此外,值得关注的部分是受政府政策与推广影响较为直

10、接且快速的街灯应用可望成为照明产业中快速成长的第一棒。预估在欧美优先领起的趋势中,2010 年全球可达到 450万盏 LED 街灯的水平,并且承于国际加紧节能减碳的脚步,一但路灯标准规格普与,中国市场可望占有世界 50%以上的规模。LED 驱动器技术的发展体现在两个方面:第一,离线式高功率因数校正可调光 LED 驱动器可替代卤素灯、白炽灯和荧光灯;第二,LED 驱动器能高效替代低压卤素灯。以上两种应用需要为 LED提供电能与热能保护,以增加其耐用性。其他发展趋势还包括优化驱动器以提供最佳功效,并非将电流最大化。基于 FPGA 芯片控制全彩 LED 大屏幕图像显示系统系统设计随着数字技术的飞速发

11、展,各种数字显示屏也随即涌现出来有 LED、LCD、DLP 等,各种数字大屏幕的控制系统多种多样,有用ARM+FPGA 脱机控制系统,也有用 PC+DVI 接口解码芯片+FPGA 芯片联机 LED 显示板控制系统。尽管大尺寸液晶显示在未来的几年还有相当大的市场份额,但针对大尺寸直下式背光源的驱动和控制芯片的开发才刚刚有几年的历史。针对 LED 背光源的特点,可以将复杂的控制技术和信号处理技术融合到背光源技术中,目前的做法是采用 FPGA,各家均有不同的算法和控制方法。随着背光技术和数字电视技术的发展,背光的控制算法与驱动方法的规化,为了降低成本,将背光控制单元、屏显控制和电视的机芯微处理器由一

12、个微处理器统一实现将是一种技术趋势。2 / 29(2)发展趋势高亮度 LED 为未来趋势:高亮度 LED 的三大市场为:汽车车灯市场、交通市场与全彩 LED 显示屏。 1)汽车车灯市场方面,红色高亮度 LED 应用于汽车第三煞车灯,而左右尾灯、方向灯与车边标识灯,可使用红色或黄色高亮度 LED,而汽车仪表板上则需要各种颜色的高亮度 LED,故汽车市场商机庞大。 2)交通号志方面,使用高亮度 LED 主要为节省能源,且在照射下可仍清楚辨识。依 据资料显示,目前全球约有 2000 万座交通号志,而每一个红、黄、绿灯估计需要使用 200 颗高亮度 LED,故一座交通号志约需 600 颗高亮度 LED

13、,如果 考虑每年新设的交通号志加上更换旧交通号志,估计每年大约有 200 万座,以每座更新成本约 1.5 万台币计算,未来每年全球交通号志估计约有 300 亿的市场价值。3)全彩 LED 显示屏方面,目前高亮度 LED 已可以产生红、绿、蓝三原色的光,组成大型全彩 LED 显示屏,目前大型 LED 看板的使用以日本、中国、 、国、 、新加坡等亚洲地区为主,欧洲与美国其次。中国大陆运用大型户外 LED 看板宣达政令,故有其一定之需求;欧洲方面,常见的应用是文字显示与 气象预报图像,另也盛行使用 LED 显示屏做为广告招牌。目前目前高亮度 LED 厂商持续 costdown,市场接受度已逐渐提高,

14、且高亮度 LED 价格高于传 统 LED,厂商投入意愿较大,未来可望逐渐取代传统亮度 LED 市场。目前,基于 FPGA(现场可编程门阵列)的 LED 显示屏的设计应用广泛,美国和中国地区逻辑电路设计和制造厂家大都以 Verilog HDL 为主,中国大陆地区目前学习使用 Verilog HDL 已经超过VHDL。从使用的角度看,对于集成电路(ASIC)设计人员来说,多是掌握 verilog,因为在 IC 设计领域,90以上的公司都是采用 verilog 进行 IC 设计。而对于 PLD/FPGA 设计者而言,两种语言没有太大差别。(3) 课题研究意义随着我国经济的高速发展,对公共场合发布信息

15、的需求日益增长,利用 LED 点阵滚动显示汉字的出现正好适应了这一市场需求,已经成为信息传播的一种重要手段。采用传统方法设计的汉字滚动显示器,通常需要使用单片机、存储器和制约逻辑电路来进行 PCB 板级的系统集成。尽管这种方案有单片机软件的支持较为灵活,但是由于受硬件资源的限制,未来对设计的变更和升级,总是难以避免要付出较多研发经费和较长投放市场周期的代价。随着电子设计自动化(EDA)技术的进展,基于可编程 FPGA 器件进行系统芯片集成的新设计方法,也正在快速地到代基于 PCB 板的传统设计方式。因此,本设计的研究是很有必要的,之所以基于 FPGA 设计是因为现场可编程门阵列(FPGA)设计

16、周期小,灵活度高,适合用于小批量系统,提高系统的可靠性和集成度。并且采用编写灵活的 Verilog HDL 语言编写主程序。(4)论文结构论文主要从方案论证与选择、硬件电路设计、系统软件设计、制作与调试等几大方面来介绍基于 FPGA 的 LED 显示屏的设计和制作过程。其中方案论证与选择主要从两种可以实现基于 FPGA 的LED 显示屏的设计方案中选择一个成本低、易操作、系统性能较高的方案。其中主要设计包括:系统软件设计、ROM 存储、点阵汉字字模的提取。系统软件设计主要是设计 FPGA 芯片进行控制所需要的相关程序,这部分程序采用 Verilog 语言进行编写。最后的制作与调试主要是进行 R

17、OM 和点阵汉字的显示并对点阵个点扫描显示进行相关测试,检测是否能达到设计原理实现的功能。最后总结完善设计思路与程序,正确完成汉字的现实与滚动。3 / 291.2 LED 点阵显示特点(1)可以显示各种数字、文字、图表、曲线、图形;(2)采用纯红、高绿作双基色发光器件,发光亮度高,色彩鲜艳、丰富;(3)显示效果清晰、稳定、功耗低、寿命长;(4)优质铝合金结构,磨沙、银镜或钛金不锈钢包边。尺寸和规格可根据需要灵活组合;(5)支持各种计算机网络,编辑软件丰富、易用;(6)适用于室、外所有信息发布与广告宣传场所。如:银行、证券交易所、商场、市场、宾馆、洒楼、电信、邮政、医院、车站、机场等。1.3 F

18、PGA 设计的特点FPGA 通常被认为是 ASIC 实现的一种替代手段. 一般 ASIC 包括三种, 既全定制、半定制(含标准单元和门阵列) 以与可编程器件。对于前两种, 需要支付不可重复使用的工程费用 NRE (Non recurring Engineering) , 主要用于芯片的流片、中测、分析的工程开销, 一次费用一般在 1 万至数万美元以上。如果一次不成功、返工、甚至多次返工,NRE 费用将要上升。成本高、风险大, 而通常对每个 ASIC 品种的需求量往往不大,NRE 费用分摊到每个产品上价太高, 用户无法接受。而对于可编程器件 PLD (Programmable Logic Dev

19、ice) 正是可以解决上述问题的新型 ASIC, PLD 以其操作灵活、使用方便、开发迅速、投资风险小等突出优点, 特别适合于产品开发初期、科研样品研制或小批量的产品. FPGA 是一种新型的 PLD, 其除了具有 PLD 的优点外, 其规模比一般的 PLD 的规模大。目前,Xilinx 推出的 XC4025 可以达到 25000 门的规模,Altera 公司的 FLEX10K100 系列芯片可达到十万门的规模,完全可以满足用户的一般4 / 29设计需要。 FPGA 的主要特点是: 寄存器数目多, 采用查找表计数,适合时序逻辑设计。 但是互连复杂, 由于互连采用开关矩阵,因而使得延时估计往往不

20、十分准确。 FPGA 也有其自身的局限性, 其一就是器件规模的限制,其二就是单元延迟比较大。 所以, 在设计者选定某一 FPGA 器件后, 要求设计者对器件的结构、性能作深入的了解, 在体系结构设计时, 就必须考虑到器件本身的结构与性能, 尽可能使设计的结构满足器件本身的要求. 这样就增加了设计的难度。 离开对 FPGA 结构的详细了解, 设计人员就不可能优化设计。因而设计人员必须了解 FPGA 器件的特性和限制, 熟悉 FPGA 的结构。 在了解 FPGA 结构特点的基础上, 就可以利用 VHDL 语言描写出高效的电路描述实现性能优化的电路。5 / 292.12.1 方案论证与方案论证与选择

21、选择2.1.12.1.1 FPGAFPGA 芯片选择芯片选择当今主要设计和生产厂家有 Xilinx、Altera、Lattice、Atmel 等公司。其中Xilinx、Altera 规模最大,市场占有率也最高。其中 Altera 更适合教学使用,对于初学者来说入门门槛比较低。同时,Altera 公司给学习者提供很好的服务和支持。工艺方面,Xilinx 和 Altera 生产的 FPGA 都是基于 SRAM 的工艺的,需要在使用时外接一个片外存储以保存程序。上电时,FPGA 将外部存储器中的数据读入片 RAM,完成配置后,进入工作状态;掉电后恢复为白片,部逻辑消失。这样不仅能反复使用,还无需专门

22、的 FPGA 编程器,只需通用的 EPROM、PROM 编程器即可。本设计采用较为普遍的Altera 公司的 EP3C5FF484C8N 芯片。 2.1.22.1.2 串行通信模块串行通信模块输入接口模块提供PC上位机到FPGA核心板传输数据的接口。输入接口是通过USB口以与JTAG下载线来实现从PC上位机传输数据至下位机。上位机使用字模提取工具将待显示的数据发送至下位机,JTAG下载线实现PC到核心板的下载。FPGA核心板与LED显示模块之间的通信也是通过USB-blaser实现的。2.1.32.1.3 LEDLED 点阵屏与驱动电路点阵屏与驱动电路本设计采用1616LED点阵屏由4块88L

23、ED点阵拼接而成,每一块点阵都有8行8 列,因此总共有16根行控制线和16根列控制线。方案一:在LED点阵驱动电路中,采用1片4线/16线译码器74HC154作为行驱动,选用2片74HC154占用15个FPGA的I/O口(包括两个enable端)。方案二:使用 4 个移位寄存器 74HC595(带存储器)驱动 16*16 的点阵,两个74HC595 负责列扫描数据,两个 74HC595 负责行扫描数据。最终只需要制作成16*16LED 点阵。本设计所使用的 1616 的点阵,EDA 实验箱上有其接口电路,STR,SI,SCK,且实验箱上采用的是 4 个 74HC595 来实现行扫描和列扫描的。

24、方案比较与确定:首先,考虑占用I/O口数量,方案一使用了15个I/O口,而方案二只使用了5个。其次,考虑制作成本,一片74HC154大约四元,而74HC595只需0.7元。再次,EDA试验箱上的FPGA主控芯片和点阵驱动电路完全符合此设计所需的条件。6 / 29而方案一需要购买开发板和4块点阵,成本比较大。又因本设计的硬件电路简单,所以不必再去浪费资源,学校已经花了好几万买了EDA试验箱。综合以上分析,本设计采用方案二,不仅大大的减少了I/O资源的占用,而且缩减了制作成本。3.13.1 系统组成系统组成本设计使用 Altera 公司的 FPGA 芯片完成 16*16 点阵式 LED 点阵显示屏

25、的显示,配备相应的 PC 机软件,实现上位机与下位机的通信,实现左右移动显示形式,基于FPGA 的 LED 点阵显示屏的系统。框图如图 2-1 所示: 图 2-1 系统总体框图FPGA 控制模块、点阵显示模块、上位机通信模块的协同工作,点阵显示模块实现LED 点阵的驱动和显示功能。驱动部分使用 4 个移位寄存器74HC595,74HC595(35mA)的功能是 8 位串行输入转并行输出移位寄存器。两个74HC595 负责列扫描数据,两个 74HC164 负责行扫描数据。LED 点阵是由 4 个大小为 32mm*32mm 的 8*8 共阳点阵组成 16*16 点阵,可以显示一个汉字,点阵屏可拆装

26、,采用圆孔铜排针,连接性能非常好。串口通信部分通过 RS232 串口实现。用户可以通过上位机软件发送待显示的数据给 FPGA 控制系统。74595 的驱动功能介绍:74595 和 74164 功能相仿,都是 8 位串行输入转并行输出移位寄存器 74164 的驱动电流(25mA)比 74595(35mA)的要小,14 脚封装,体积也小一些。74595 的主要优点是具有数据存储寄存器,在移位过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用出,数码管或发光二极管没有闪烁感。与 164只有数据清零端相比较,595 还多有输出端时能/禁止控制端,可以使输出为高阻态。74595 的数据端:上位

27、机FPGA控制系统点阵显示模块串口通信7 / 29QAQH:8 位并行输出端,可以直接控制数码管的 8 个段。QH:级联输出端。我将它接下一个 595 的 SI 端。SI:串行数据输入端。74595 的控制端说明:/SCLR(10 脚):低电平时将移位寄存器的数据清零。接VCC。SCK(11 脚):上升沿时数据寄存器的数据移位。QA、QB、QC、 、 、 、 、 、QH:下降沿移位寄存器数据不变。RCK(12 脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。通常我们将 RCK 置为低,当移位结束后,在 RCK 端产生一个正脉冲,更新显示数据。2.22.2 工作原理

28、工作原理 本设计的工作原理为:采用 FPGA 为核心控制模块,通过接收上位机数据控制 LED点阵显示信息。3.3 扫描控制模块3.3.1 LED 的显示原理1616 扫描 LED 点阵的工作原理同 8 位扫描数码管类似。它有 16 个共阴极输出端口,每个共阴极对应有 16 个 LED 显示灯,所以其扫描译码地址需 4 位信号线(SEL0-SEL3) ,其汉字扫描码由 16 位段地址(0-15)输入。 通过时钟的每列扫描显示完整汉字。图图 2-22-2 LEDLED 灯信号灯信号 图图 2-32-3 16161616 点阵点阵 LEDLED 等效电路等效电路8 / 29点阵 LED 一般采用扫描

29、式显示,实际运用分为三种方式:(1)点扫描(2)行扫描(3)列扫描若使用第一种方式,其扫描频率必须大于 1664=1024Hz,周期小于 1ms 即可。若使用第二和第三种方式,则频率必须大于 168=128Hz,周期小于 7.8ms 即可符合视觉暂留要求。此外一次驱动一列或一行(8 颗 LED)时需外加驱动电路提高电流,否则LED 亮度会不足。2.3.2 汉字的存储用动态分时扫描技术使 LED 点阵模块显示图像,需要进行两步工作。第一步是获得数据并保存,即在存贮器中建立汉字数据库。第二步是在扫描模块的控制下,配合行扫描的次序正确地输出这些数据。获得图像数据的步骤是,先将要显示的每一幅图像画在一

30、个如图 3.3 所示的被分成 1616 共 256 个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布,再将此分布关系以 3216 的数据结构组成 64 个字节的数据,并保存在只读存贮器 ROM 中。以这种方式将若干个汉字的数据贮存在存贮器,就完成了图像数据库的建立工作。 图图 2-42-4 1616LED1616LED 点阵模块点阵模块9 / 292.4 汉字显示汉字显示使用的是 1616 的点阵,EDA 实验箱上有其接口电路,列选信号为SEL0,SEL1,SEL2,SEL3,经 4 线 16 线译码器输出

31、 16 列,从左起为第一列,列选信号是由一个 4 位向量 SEL3.0控制;行选信号为 H0H15,是由 16 个行信号组成的,每一行由一个单独的位来控制,高电平有效。例如“0000”表示第 0 列, “00001”表示第一行的点亮。由于列是由一个向量决定,而每一时刻的值只能有一个固定的值,因而只能使某一列的若干个点亮,因此就决定了只能用逐列扫描的方法。例如要使第一列的2,4,6,8,行亮,则列为“0001” 、行为“01010”就可以实现了。4 4系统软件设计系统软件设计4.14.1 程序设计程序设计程序流程图如图 4.1 所示。10 / 29时钟分频数据输入是否计数到32串行数据输入数据移

32、位移位寄存器的数据进入存储寄存器数据移位 数据存储的地址是否等于16地址位给予低电平结束开始 是 是 否时钟分频的上升沿是否到来否滚动位计数是否等于96 是滚动位清零滚动位自加1否数据寄存器的地址位自加1数据寄存器的地址送到ROM数据自加1,数据寄存器的数据左移一位 是 否图 4.1 整体软件流程图下面是各个部分的程序设计:3.4.1 列循环扫描11 / 29列循环扫描通过对每一列的扫描来完成对字母的现实,只要扫描的频率足够快,就能给人以连续的感觉。因此要控制扫描的频率,不能太低,否则,就会造成视觉上的不连续,本设计的扫描频率不得低于 50Hz,扫描程序如下:12 / 293.4.2 字符样式

33、设计字符样式设计 本环节是建立一个数据库,使之能在扫描的同时读取所需要的信息,从而完成汉字的显示。本次设计“陕、西、理、工、学、院”汉字样式设计程序如下:2.4.3 字母循环扫描与期间的延时环节为使汉字不断地循环显示,并且使每个汉子之间有停顿,就需要在中间加一定的延时和循环环节。在这一环节中,可以通过修改其数值来控制每个字母的显示时间。其程序如下:always(posedge CLK or negedge Reset)beginif(!Reset) begin Clk_Cont = 0; R_Data =96d0; H_Data =16d0; endelse beginClk_Cont = C

34、lk_Cont +1;R_Data = (Rom_Data Move_cnt);H_Data = 1ROW; endend reg 3:0Row_cnt; reg 31:0 Rom_Data_r;always(posedge CLK or negedge Reset)beginif(!Reset) begin State = 0; ROW = 0; R1 = 1b0; LI = 1b0;13 / 29 SK = 1b0; Row_cnt =4d0; ROM_ADDRESS = 5d0; Rom_Data_r = H_Data,R_Data95:80; Data_Cont = 0; endels

35、e begin case(State) 4d0: begin if(Data_Cont=8d32) begin Data_Cont = 0; State = 4d3; end else if(!DIV_CLK) begin SK = 1b0; State = 4d1; end end 4d1: begin R1 = Rom_Data_r31; if(DIV_CLK) begin SK = 1b1; State = 4d2; end end 4d2: begin Data_Cont = Data_Cont +8d1; Rom_Data_r = (Rom_Data_r1); State = 4d0

36、; end 4d3: begin LI = 1b0; State = 4d4; end 4d4: begin LI = 1b1; State = 4d5; end 4d5: begin LI = 1b0; State = 4d6; end 4d6: begin if(ROM_ADDRESS = 5d15) begin ROM_ADDRESS = 5d0; end else ROM_ADDRESS = ROM_ADDRESS + 5d1; State = 4d7; end 4d7: begin ROW = ROM_ADDRESS;14 / 29 Rom_Data_r = H_Data,R_Dat

37、a95:80; State = 4d0; end endcase endend reg 7:0Move_cnt; always(posedge Clk_Cont23 or negedge Reset)beginif(!Reset) begin Move_cnt = 8d0; endelse if(Move_cnt = 8d95) Move_cnt = 8d0;else Move_cnt = Move_cnt + 8d1;end2.5 整个完整的程序module led(LK,Reset,Rom_Data,ROM_ADDRESS,R1,SK,LI);input CLK;input Reset;i

38、nput 95:0 Rom_Data;output 4:0 ROM_ADDRESS;output R1;output SK;output LI;reg R1,SK,LI;reg 3:0 ROW;reg 4:0 ROM_ADDRESS;reg 31:0 Clk_Cont;reg 3:0State;wire DIV_CLK;assign DIV_CLK = Clk_Cont4; reg 7:0 Data_Cont;reg 95:0 R_Data;reg 15:0 H_Data;always(posedge CLK or negedge Reset)beginif(!Reset) begin Clk

39、_Cont = 0; R_Data =96d0; H_Data =16d0;15 / 29 endelse beginClk_Cont = Clk_Cont +1;R_Data = (Rom_Data Move_cnt);H_Data = 1ROW; endend reg 3:0Row_cnt; reg 31:0 Rom_Data_r;always(posedge CLK or negedge Reset)beginif(!Reset) begin State = 0; ROW = 0; R1 = 1b0; LI = 1b0; SK = 1b0; Row_cnt =4d0; ROM_ADDRE

40、SS = 5d0; Rom_Data_r = H_Data,R_Data95:80; Data_Cont = 0; endelse begin case(State) 4d0: begin if(Data_Cont=8d32) begin Data_Cont = 0; State = 4d3; end else if(!DIV_CLK) begin SK = 1b0; State = 4d1; end end 4d1: begin R1 = Rom_Data_r31; if(DIV_CLK) begin SK = 1b1; State = 4d2; end end 4d2: begin Dat

41、a_Cont = Data_Cont +8d1; Rom_Data_r = (Rom_Data_r1); State = 4d0; end 4d3: begin LI = 1b0; State = 4d4; end16 / 29 4d4: begin LI = 1b1; State = 4d5; end 4d5: begin LI = 1b0; State = 4d6; end 4d6: begin if(ROM_ADDRESS = 5d15) begin ROM_ADDRESS = 5d0; end else ROM_ADDRESS = ROM_ADDRESS + 5d1; State =

42、4d7; end 4d7: begin ROW = ROM_ADDRESS; Rom_Data_r = H_Data,R_Data95:80; State = 4d0; end endcase endend reg 7:0Move_cnt; always(posedge Clk_Cont23 or negedge Reset)beginif(!Reset) begin Move_cnt = 8d0; endelse if(Move_cnt = 8d95) Move_cnt = 8d0;else Move_cnt = Move_cnt + 8d1;endendmodule17 / 29第三章 系

43、统调试与仿真3.1 开发环境介绍Quartus II 是 Altera 公司的综合性 PLD 开发软件,支持原理图、VHDL、Veril-ogHDL 以与 AHDL(Altera Hardware Description Language)等多种设计输入形式,嵌自有的综合器以与仿真器,可以完成从设计输入到硬件配置的完整 PLD 设计流程。Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方 EDA 工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方E

44、DA 工具。此外,Quartus II 通过和 DSP Builder 工具与 Matlab/Simulink 相结合,可以方便地实现各种 DSP 应用系统;支持 Altera 的片上可编程系统( SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。3.2 调试与仿真3.2.1 创建工程在 Quartus II 中新建一个 Verilog HDL File 文件,将 Verilog HDL 代码输入这个文件,并保存到工作目录,名为led.v。利用 new preject wizard 工具创建一个工程,工程名为 led,顶层文件实体名为 led,并将上面

45、创建的 led.v 文件加入到工程中。3.2.2 编译前设置18 / 29(1)选择目标芯片。用 assignmemts-settings 命令,弹出 settings 对话框,选择目标芯片为 EP3C55F484C8。图图 3 3- -1 1 选选择择目目标标器器件件(2)选择工作方式,编程方式,与闲置引脚状态单击上图中的 device&pin options 按钮,弹出 device&pin options 窗口。 在 General 项中选中 auto-restart configuration after error,使对 FPGA 的配置失败后能自动重新配置,并加入J

46、TAG 用户编码。19 / 29 图图 3 3- -2 2 选选择择配配置置器器件件工工作作方方式式在 configuration 项中,其下方的 Generate compressed bitstreams 处打勾,这样就能产生用于 EPCS 的 POF 压缩配置文件。在 Configuration 选项页,选择配置器件为 EPCS1,其配置模式选择为active serial。20 / 29图图 3 3- -3 3 选选择择编编程程方方式式在 Unused pins 项,将目标器件闲置引脚状态设置高阻态,即选择As input,tri-stated。图图 3 3- -4 4 设设置置闲闲置置引引脚脚状状态态3.2.3 全程编译设置好前面的容之后,就可以进行编译了。选择Processing 菜单中 start compilation,在窗口的下方 processing 栏中显示编译信息。21 / 29图图 3 3- -5 5 全全程程编编译译成成功功完完成成完成后在工程管理窗口左是角显示了工程led 的层次结构和其中结构模块耗用的逻辑宏单元数。此栏的右边是编译处理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析等。3.2.4 时序仿真(1)新建一个矢量波形文件,同时打开波形编辑器。设置仿真时间为

温馨提示

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

评论

0/150

提交评论