收藏 分享(赏)

EDA基于FPGA的16×16点阵汉字显示.doc

上传人:精品资料 文档编号:8656185 上传时间:2019-07-07 格式:DOC 页数:39 大小:438.50KB
下载 相关 举报
EDA基于FPGA的16×16点阵汉字显示.doc_第1页
第1页 / 共39页
EDA基于FPGA的16×16点阵汉字显示.doc_第2页
第2页 / 共39页
EDA基于FPGA的16×16点阵汉字显示.doc_第3页
第3页 / 共39页
EDA基于FPGA的16×16点阵汉字显示.doc_第4页
第4页 / 共39页
EDA基于FPGA的16×16点阵汉字显示.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、江西理工大学应用科学学院 EDA 课程设计1江西理工大学应用科学学院SOPC/EDA 综合课程设计报告设计题目: 基于 FPGA 的 16*16 点阵汉字显示设计设 计 者: 学 号: 班 级: 指导老师: 王忠锋完成时间: 2012 年 1 月 6 日设计报告 综合测试 总评格式(10)内容(40)图表(10)答辩(20)平时(20)江西理工大学应用科学学院 EDA 课程设计2目 录前 言 3第一章 基本概要 41.1 EDA 的基本特征和设计流程 41.2 LED 点阵显示特点 .41.3 FPGA 基本特点和设计的特点 .5第二章 系统设计 72.1 设计任务与要求 72.1.1 设计要

2、求 .72.1.2 要求分析 72.2.设计方案 72.3.LED 的显示原理 .82.4 系统设计原理 8第三章 系统子程序设计 103.1 32 进制计数器设计 .103.2 16 进制计数器设计 .113.3 列驱动设计 .133.4 行驱动设计 .15第四章 原理图仿真波形 36第五章 课程设计体会 37江西理工大学应用科学学院 EDA 课程设计3参考文献 38前 言现代文明的一个明显特征是城市中随处可见的五颜六色的广告宣传,其中大多都是由 LED 点阵制作的汉字或 图形广告,广泛 应用在银行、医院、酒店、火车 站、运动场馆等各种公共场所。汉字转动显示器的传统设计方法是用单片机来控制的

3、,固然单片机方案具有价格低廉,程序编程灵活等特点,但由于单片机硬件资源术具有系统设计效率高、集成度好、保密性强、易的限制,未来对设计的变更和升级,总是要付出较多研发经费和较长投放市场周期的代价,甚至有可能需要重新设计。况且,在以显示为主的系统中,单片机的运算和控制等主要功能的利用率很低,单片机的上风得不到发挥,相当于很大的资源浪费。采用 EDA 技术的自顶向下的模块化设计方法,借助相关开发软件,例如 Qualtus软件,将硬件描述语言VHDL 程序固化于具有丰富 I O 口、内部逻辑和连线资源的 FPGA(现场可编程门阵列)中。该技于修改、易于实现等优点,成 为当今数字江西理工大学应用科学学院

4、 EDA 课程设计4第 一 章 基本概要1.1 EDA 的基本特征和设计流程EDA 技术是采用高级语言描述,具有系统级仿真和综合能力,它主要采用并行工程(Concurrent Engineering)设计和自顶向下(Top-down)设计方法,其基本思想是从系统总体要求出发,分为行为描述、寄存器传输级描述、逻辑综合三个层次,将设计内容逐步细化,最后完成整体设计,这是一种全新的设计思想与设计理念。EDA 技术是将传统的“ 电路设计硬件搭试调试焊接” 模式变为“功能 设计 软件 模拟 编程下 载” 方式,设计人员只需一台微机和相应的开发工具即可研制出各种功能电路。EDA 技术将电子产品设计从软件编

5、译、 逻辑化简、 逻辑综合、 仿真优化、 布局布线、 逻辑适配、 逻辑 影射、 编程下载 、生成目 标系统的全过程在计算机及其开发平台上自动处理完成。1.2 LED 点阵显示特点1. 可以显示各种数字、文字、图表、曲 线、图形;2. 采用纯红、高绿作双基色发光器件,发光亮度高,色彩鲜艳、 丰富;3. 显示效果清晰、稳定、功耗低、寿命 长;4. 优质铝合金结构,磨沙、银镜或钛金不锈钢包边。尺寸和规格可根据需要灵活组合;5. 支持各种计算机网络,编辑软件丰富、易用;江西理工大学应用科学学院 EDA 课程设计56. 适用于室内、外所有信息发布及广告宣传场所。如:银行、证券交易所、商场、市 场、 宾馆

6、 、洒楼、 电信、邮政、医院、 车站、机场等。1.3 FPGA 基本特点和设计的特点基 本 特 点 :1)采 用 FPGA 设 计 ASIC 电 路 (专 用 集 成 电 路 ),用 户 不 需 要 投片 生 产 ,就 能 得 到 合 用 的 芯 片 。2)FPGA 可 做 其 它 全 定 制 或 半 定 制 ASIC 电 路 的 中 试 样 片 。3)FPGA 内 部 有 丰 富 的 触 发 器 和 I/O 引 脚 。4)FPGA 是 ASIC 电 路 中 设 计 周 期 最 短 、开 发 费 用 最 低 、风 险最 小 的 器 件 之 一 。5) FPGA 采 用 高 速 CMOS 工 艺

7、 ,功 耗 低 ,可 以 与 CMOS、TTL电 平 兼 容 。图 1-1FPGA 芯 片 的 内 部 结 构FPGA 的主要特点是: 寄存器数目多, 采用查找表计数,适合时序逻辑设计。 但是互连 复杂, 由于互连采用开关矩阵,因而使得延时估计往往不十分准确。FPGA 也有其自身的局限性, 其一就是器件规模的限制,其二就是单元延迟比较大。 所以, 在设计者选定某一 FPGA江西理工大学应用科学学院 EDA 课程设计6器件后, 要求设计者对器件的结构、性能作深入的了解, 在体系结构设计时, 就必须考虑到器件本身的结构及性能, 尽可能使设计的结构满足器件本身的要求. 这样就增加了设计的 难度。离开

8、对 FPGA 结构的详细了解, 设计人 员就不可能优化设计。因而设计人员必须了解FPGA 器件的特性和限制, 熟悉 FPGA 的 结构。在了解 FPGA 结构特点的基础上, 就可以利用 VHDL 语言描写出高效的电路描述实现性能优化的电路。江西理工大学应用科学学院 EDA 课程设计7第二章 系统设计2.1 设计任务与要求使用 FPGA 设计一个 1616 的点阵显示的控制器,使点阵显示器以两种花样显示“江西理工大学应用科学学院 欢迎您!”2.1.1 设计要求1输 出 预定义“江、西、理、工、大、学、 应、用、科、学、学、院、欢、迎、您、 ”十五个汉字;2输 出 汉字循环显示;3操作方便、可维护

9、性高;4程序简捷、便于修改。2.1.2 要求分析 根据设计要求可以分析出:点阵显示的花样有静态显示一个汉字,一屏一屏的显示汉字还有滚动显示汉字,还可以用亮着的灯 显示汉字或者用暗着的灯显示汉字。2.2.设计方案方案一:用亮着的灯组合所要显示的字。方案二: 用暗着的灯组成所需要的字。两种花样显示都是用一屏一屏的显示方法。江西理工大学应用科学学院 EDA 课程设计8图 2-1 方案一示例 图 2-2 方案二示例2.3.LED 的显示原理1616 扫描 LED 点阵的工作原理同 8 位扫描数码管类似。它有16 个共阴极输出端口,每个共阴极对应有 16 个 LED 显示灯,所以其扫描译码地址需 4 位

10、信号线(SEL0-SEL3 ),其 汉字扫描码由 16 位段地址(0-15 )输入。 通过时钟的每列扫描显示完整 汉字。图 2-3 LED 灯红绿信号 图 2-4 1616 点阵 LED 等效电路江西理工大学应用科学学院 EDA 课程设计92.4 系统设计原理616 扫描 LED 点阵只要其对应的 X、Y 轴顺向偏压,即可使LED 发亮。例如如果想使左上角 LED 点亮,则 Y0=1,X0=0 即可。应用时限流电阻可以放在 X 轴或 Y 轴。它有 16 个共阴极输出端口,每个共阴极对应有 16 个 LED 显示灯。本实验 就是要通过 CPLD 芯片产生读时序,将字形 从寄存器中读出,然后产生写

11、时序,写入 1616 的点阵,使其 扫描显示输出。为了显示整个汉字,首先分布好汉字的排列,以行给汉 字信息;然后以 128HZ 的时序逐个点亮每一行,即每行逐一加高电平,根据人眼的视觉残留特性,使之形成整个汉字的显示。LED 点阵每个点都有一个红色的发光二极管。点阵内的二极管间的连接都是行共阳,列共阴。本实验采用共阴,当二极管的共阳极为高电平,共阴极为低电平时,所接点发光;反之处于截止状态,不放光。本实验 采取行扫描方式,用列给文字信息,利用周期为 1s 的脉冲来控制所显示的字。本设计由 32 进制计数器(COUNT32),16 进 制计数器(COUNT16) ,行驱动(LYH )和列驱动(B

12、BLK)组成。江西理工大学应用科学学院 EDA 课程设计10图 2-5 1616 点阵原理图第三章 系统子程序设计3.1 32 进制计数器设计 COUNT32.vhd 是 32 进 制的计数器,其每 计一次数,输出一个字。例如当计数为“00000B” 时显示“ 江”,当计数为“00001B”时显示“ 西”。给其脉冲周期为 1S。其描述如下 :LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT32 ISPORT( CLK1: IN STD_LOGIC;QOUT : OUT ST

13、D_LOGIC_VECTOR(4 DOWNTO 0);END ENTITY COUNT32;ARCHITECTURE BEHV OF COUNT32 ISSIGNAL CQI : STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINPROCESS(CLK1)BEGIN江西理工大学应用科学学院 EDA 课程设计11IF (CLK1EVENT AND CLK1=1) THENCQI ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROW ROWcase CCK iswhen “0000“ =b:=“010000

14、0000000000“; when “0001“ =b:=“0011000000001000“; when “0010“ =b:=“0001011111111100“; when “0011“ =b:=“0000000001000000“; when “0100“ =b:=“1000000001000000“; when “0101“ =b:=“0110000001000000“; when “0110“ =b:=“0010000001000000“; when “0111“ =b:=“0000100001000000“; when “1000“ =b:=“0001000001000000“;

15、 when “1001“ =b:=“0010000001000000“; when “1010“ =b:=“1110000001000000“; 江西理工大学应用科学学院 EDA 课程设计17when “1011“ =b:=“0010000001000000“; when “1100“ =b:=“0010000001001000“; when “1101“ =b:=“0010111111111100“; when “1110“ =b:=“0010000000000000“; when “1111“ =b:=“0010000000000000“; when others=null; end ca

16、se;When “00001“=case CCK iswhen “0000“ =b:=“0000000000000000“; when “0001“ =b:=“0000000000000100“; when “0010“ =b:=“1111111111111110“; when “0011“ =b:=“0000010010000000“; when “0100“ =b:=“0000010010000000“; when “0101“ =b:=“0000010010000100“; when “0110“ =b:=“0111111111111110“; when “0111“ =b:=“0100

17、010001000100“; when “1000“ =b:=“0100010001000100“; when “1001“ =b:=“0100010001000100“; when “1010“ =b:=“0100010001000100“; when “1011“ =b:=“0100100000110100“; when “1100“ =b:=“0101000000000100“; when “1101“ =b:=“0100000000000100“; when “1110“ =b:=“0111111111111100“; when “1111“ =b:=“0100000000000100

18、“; when others=null; end case;When “00010“=case CCK iswhen “0000“ =b:=“0000000000001000“; when “0001“ =b:=“0000011111111000“; when “0010“ =b:=“1111101001001000“; when “0011“ =b:=“0010001001001000“; when “0100“ =b:=“0010011111111100“; when “0101“ =b:=“0010001001001000“; when “0110“ =b:=“1111101001001

19、000“; 江西理工大学应用科学学院 EDA 课程设计18when “0111“ =b:=“0010001111111000“; when “1000“ =b:=“0010000001000000“; when “1001“ =b:=“0010000001010000“; when “1010“ =b:=“0010001111111000“; when “1011“ =b:=“0011110001000000“; when “1100“ =b:=“1110000001000000“; when “1101“ =b:=“0100000001000100“; when “1110“ =b:=“00

20、00111111111110“; when “1111“ =b:=“0000000000000000“; when others=null; end case;When “00011“=case CCK iswhen “0000“ =b:=“0000000000000000“; when “0001“ =b:=“0000000000001000“; when “0010“ =b:=“0111111111111100“; when “0011“ =b:=“0000000100000000“; when “0100“ =b:=“0000000100000000“; when “0101“ =b:=

21、“0000000100000000“; when “0110“ =b:=“0000000100000000“; when “0111“ =b:=“0000000100000000“; when “1000“ =b:=“0000000100000000“; when “1001“ =b:=“0000000100000000“; when “1010“ =b:=“0000000100000000“; when “1011“ =b:=“0000000100000000“; when “1100“ =b:=“0000000100000100“; when “1101“ =b:=“11111111111

22、11110“; when “1110“ =b:=“0000000000000000“; when “1111“ =b:=“0000000000000000“; when others=null; end case;When “00100“=case CCK iswhen “0000“ =b:=“0000000100000000“; when “0001“ =b:=“0000000100000000“; when “0010“ =b:=“0000000100000000“; 江西理工大学应用科学学院 EDA 课程设计19when “0011“ =b:=“0000000100000000“; wh

23、en “0100“ =b:=“0000000100000100“; when “0101“ =b:=“1111111111111110“; when “0110“ =b:=“0000000100000000“; when “0111“ =b:=“0000001010000000“; when “1000“ =b:=“0000001010000000“; when “1001“ =b:=“0000001010000000“; when “1010“ =b:=“0000001001000000“; when “1011“ =b:=“0000001000010000“; when “1100“ =b

24、:=“0000100000010000“; when “1101“ =b:=“0001000000001110“; when “1110“ =b:=“0110000000000100“; when “1111“ =b:=“0000000000000000“; when others=null; end case;When “00101“=case CCK iswhen “0000“ =b:=“0010001000001000“; when “0001“ =b:=“0001000100001000“; when “0010“ =b:=“0000000000000000“; when “0011“

25、 =b:=“0000000000100000“; when “0100“ =b:=“0111111111111110“; when “0101“ =b:=“0100000000000010“; when “0110“ =b:=“1000000000000100“; when “0111“ =b:=“0001111111100000“; when “1000“ =b:=“0000000001000000“; when “1001“ =b:=“0000000110000100“; when “1010“ =b:=“1111111111111110“; when “1011“ =b:=“000000

26、0100000000“; when “1100“ =b:=“0000000100000000“; when “1101“ =b:=“0000000100000000“; when “1110“ =b:=“0000010100000000“; when “1111“ =b:=“0000001000000000“; when others=null; end case;When “00110“=江西理工大学应用科学学院 EDA 课程设计20case CCK iswhen “0000“ =b:=“0000001000000000“; when “0001“ =b:=“0000000100000100

27、“; when “0010“ =b:=“0011111111111110“; when “0011“ =b:=“0010000000000000“; when “0100“ =b:=“0010000100000100“; when “0101“ =b:=“0010100010000100“; when “0110“ =b:=“0010010010000100“; when “0111“ =b:=“0010010001001000“; when “1000“ =b:=“0010001001001000“; when “1001“ =b:=“0010001001001000“; when “101

28、0“ =b:=“0010001000010000“; when “1011“ =b:=“0010001000010000“; when “1100“ =b:=“0010000000100000“; when “1101“ =b:=“0100000001000100“; when “1110“ =b:=“1001111111111110“; when “1111“ =b:=“1001111111111110“; when others=null; end case;When “00111“=case CCK iswhen “0000“ =b:=“0000000000001000“; when “

29、0001“ =b:=“0011111111111100“; when “0010“ =b:=“0010000100001000“; when “0011“ =b:=“0010000100001000“; when “0100“ =b:=“0010000100001000“; when “0101“ =b:=“0011111111111000“; when “0110“ =b:=“0010000100001000“; when “0111“ =b:=“0010000100001000“; when “1000“ =b:=“0010000100001000“; when “1001“ =b:=“0

30、011111111111000“; when “1010“ =b:=“0010000100001000“; when “1011“ =b:=“0010000100001000“; when “1100“ =b:=“0010000100001000“; when “1101“ =b:=“0100000100001000“; 江西理工大学应用科学学院 EDA 课程设计21when “1110“ =b:=“0100000100101111“; when “1111“ =b:=“1000000000010000“; when others=null; end case; When “01000“=ca

31、se CCK iswhen “0000“ =b:=“0000010000010000“; when “0001“ =b:=“0000111000010000“; when “0010“ =b:=“1111100010010000“; when “0011“ =b:=“0000100001010000“; when “0100“ =b:=“0000100000010000“; when “0101“ =b:=“1111111010010000“; when “0110“ =b:=“0000100001010000“; when “0111“ =b:=“0001110000010100“; whe

32、n “1000“ =b:=“0001101000011110“; when “1001“ =b:=“0010100111110000“; when “1010“ =b:=“0010100000010000“; when “1011“ =b:=“0100100000010000“; when “1100“ =b:=“1000100000010000“; when “1101“ =b:=“0000100000010000“; when “1110“ =b:=“0000100000010000“; when “1111“ =b:=“0000100000010000“; when others=nul

33、l; end case; When“01001“=case CCK iswhen “0000“ =b:=“0010001000001000“; when “0001“ =b:=“0001000100001000“; when “0010“ =b:=“0001000100010000“; when “0011“ =b:=“0000000000100000“; when “0100“ =b:=“0111111111111110“; when “0101“ =b:=“0100000000000010“; when “0110“ =b:=“1000000000000100“; when “0111“

34、=b:=“0001111111100000“; when “1000“ =b:=“0000000001000000“; when “1001“ =b:=“0000000110000100“; 江西理工大学应用科学学院 EDA 课程设计22when “1010“ =b:=“1111111111111110“; when “1011“ =b:=“0000000100000000“; when “1100“ =b:=“0000000100000000“; when “1101“ =b:=“0000000100000000“; when “1110“ =b:=“0000010100000000“; w

35、hen “1111“ =b:=“0000001000000000“; when others=null; end case; When “01010“=case CCK iswhen “0000“ =b:=“0010001000001000“; when “0001“ =b:=“0001000100001000“; when “0010“ =b:=“0001000100010000“; when “0011“ =b:=“0000000000100000“; when “0100“ =b:=“0111111111111110“; when “0101“ =b:=“0100000000000010

36、“; when “0110“ =b:=“1000000000000100“; when “0111“ =b:=“0001111111100000“; when “1000“ =b:=“0000000001000000“; when “1001“ =b:=“0000000110000100“; when “1010“ =b:=“1111111111111110“; when “1011“ =b:=“0000000100000000“; when “1100“ =b:=“0000000100000000“; when “1101“ =b:=“0000000100000000“; when “111

37、0“ =b:=“0000010100000000“; when “1111“ =b:=“0000001000000000“; when others=null; end case;When “01011“=case CCK iswhen “0000“ =b:=“0000000010000000“;when “0001“ =b:=“0111100001000000“; when “0010“ =b:=“0100111111111110“; when “0011“ =b:=“0101010000000010“; when “0100“ =b:=“0101100000010100“; when “0

38、101“ =b:=“0110001111111000“; 江西理工大学应用科学学院 EDA 课程设计23when “0110“ =b:=“0101000000000000“; when “0111“ =b:=“0100100000001000“; when “1000“ =b:=“0100111111111100“; when “1001“ =b:=“0100100010100000“; when “1010“ =b:=“0110100010100000“; when “1011“ =b:=“0101000010100000“; when “1100“ =b:=“010000010010001

39、0“; when “1101“ =b:=“0100000100100010“; when “1110“ =b:=“0100001000011110“; when “1111“ =b:=“0100110000000000“; when others=null; end case; When“01100“=case CCK iswhen “0000“ =b:=“0000000010000000“;when “0001“ =b:=“0000000010000000“; when “0010“ =b:=“1111110010000000“; when “0011“ =b:=“0000010011111

40、100“; when “0100“ =b:=“0100010100000100“; when “0101“ =b:=“0100011001001000“; when “0110“ =b:=“0010100001000000“; when “0111“ =b:=“0010100001000000“; when “1000“ =b:=“0001000001000000“; when “1001“ =b:=“0010100001000000“; when “1010“ =b:=“0010010010100000“; when “1011“ =b:=“0100010010100000“; when “

41、1100“ =b:=“1000000100010000“; when “1101“ =b:=“0000000100001000“; when “1110“ =b:=“0000001000001110“; when “1111“ =b:=“0000110000000100“; when others=null; end case; When“01101“=case CCK iswhen “0000“ =b:=“0000000000000000“; when “0001“ =b:=“0100000110000100“; 江西理工大学应用科学学院 EDA 课程设计24when “0010“ =b:=

42、“0010011001111110“; when “0011“ =b:=“0001010001000100“; when “0100“ =b:=“0000010001000100“; when “0101“ =b:=“0000010001000100“; when “0110“ =b:=“1111010001000100“; when “0111“ =b:=“0001010011000100“; when “1000“ =b:=“0001010101000100“; when “1001“ =b:=“0001011001010100“; when “1010“ =b:=“00010100010

43、01000“; when “1011“ =b:=“0001000001000000“; when “1100“ =b:=“0001000001000000“; when “1101“ =b:=“0010100001000110“; when “1110“ =b:=“0100011111111100“; when “1111“ =b:=“0000000000000000“; when others=null; end case; When “01110“=case CCK iswhen “0000“ =b:=“0000100100000000“;when “0001“ =b:=“00001001

44、00000000“; when “0010“ =b:=“0001001111111100“; when “0011“ =b:=“0001001000001000“; when “0100“ =b:=“0011010001001000“; when “0101“ =b:=“0101100101000000“; when “0110“ =b:=“1001000101010000“; when “0111“ =b:=“0001001001001100“; when “1000“ =b:=“0001010001000100“; when “1001“ =b:=“0001000101000000“; w

45、hen “1010“ =b:=“0010000100000000“; when “1011“ =b:=“0000001000000000“; when “1100“ =b:=“0101000110000100“; when “1101“ =b:=“0101000010010010“; when “1110“ =b:=“1001000000010010“; when “1111“ =b:=“0000111111111000“; when others=null; end case; 江西理工大学应用科学学院 EDA 课程设计25When “01111“=case CCK iswhen “0000

46、“ =b:=“0000000000000000“; when “0001“ =b:=“0000000110000000“; when “0010“ =b:=“0000001111000000“; when “0011“ =b:=“0000001111000000“; when “0100“ =b:=“0000001111000000“; when “0101“ =b:=“0000001111000000“; when “0110“ =b:=“0000001111000000“; when “0111“ =b:=“0000000110000000“; when “1000“ =b:=“00000

47、00110000000“; when “1001“ =b:=“0000000110000000“; when “1010“ =b:=“0000000000000000“; when “1011“ =b:=“0000000110000000“; when “1100“ =b:=“0000001111000000“; when “1101“ =b:=“0000000110000000“; when “1110“ =b:=“0000000000000000“; when “1111“ =b:=“0000000000000000“; when others=null; end case; When “

48、10000“=case CCK iswhen “0000“ =b:=“1011111111111111“; when “0001“ =b:=“1100111111110111“; when “0010“ =b:=“1110100000000011“; when “0011“ =b:=“1111111110111111“; when “0100“ =b:=“0111111110111111“; when “0101“ =b:=“1001111110111111“; when “0110“ =b:=“1101111110111111“; when “0111“ =b:=“1111011110111

49、111“; when “1000“ =b:=“1110111110111111“; when “1001“ =b:=“1101111110111111“; when “1010“ =b:=“0001111110111111“; when “1011“ =b:=“1101111110111111“; when “1100“ =b:=“1101111110110111“; 江西理工大学应用科学学院 EDA 课程设计26when “1101“ =b:=“1101000000000011“; when “1110“ =b:=“1101111111111111“; when “1111“ =b:=“1101111111111111“; when others=null; end

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报