nbhkdz.com冰点文库

基于FPGA的VGA显示控制器的设计与实现

时间:2012-07-12


学 士 学 位 论 文

论文题目:基于 FPGA 的 VGA 显示控制器的设计与实现

学生姓名:

专业年级:

指导教师:

职称:

摘要:................................................................................................................................................. 3 1 前言 ........................................................................................................................................ 4 1.1 EDA 技术的概念,研究内容及发展方向 ......................................................................... 4 1.1.1 EDA 技术的概念 ................................................................................................................ 4 1.1.2 EDA 技术的基本特征 ........................................................................................................ 4 1.1.3 硬件描述语言 ...................................................................................................................... 6 1.1.4 EDA 技术的应用 ................................................................................................................ 6 1.1.5 EDA 技术发展趋势 ............................................................................................................ 7 1.2 FPGA 的概念,发展和工作原理 ..................................................................................... 8 1.2.1 FPGA 的概念 ...................................................................................................................... 8 1.2.2 FPGA 的发展 ...................................................................................................................... 8 1.2.3 FPGA 的工作原理 .............................................................................................................. 9 1.3 VGA 相关内容的介绍 ....................................................................................................... 10 1.3.1 VGA 概念 .......................................................................................................................... 10 1.3.2 像素与分辨率 .................................................................................................................... 10 1.3.3 显示器尺寸 ........................................................................................................................ 11 1.3.4 扫描频率 ............................................................................................................................ 11 1.3.5 显示带宽 ............................................................................................................................ 11 1.3.6 显示卡术语 ........................................................................................................................ 12 1.3.7 VGA 接口概述 .................................................................................................................. 13 2 基于 FPGA 的 VGA 显示控制设计 ................................................................................. 19 2.1 VGA 显示原理 ................................................................................................................. 19 2.2 系统设计 ............................................................................................................................. 20 2.2.1 设计前注意 ........................................................................................................................ 20 2.2.2 UART 模块 ........................................................................................................................ 21 2.2.3 显示控制模块 .................................................................................................................... 24 2.2.4 图像显示控制设计 ............................................................................................................ 25 2.3 系统的总体连接及实现 ..................................................................................................... 28 3 VGA 显示彩条实验 .......................................................................................................... 29 3.1 彩条实验引言 ................................................................................................................... 29 3.2 PDP 显示信号的数据流程.............................................................................................. 29 3.3 VGA 信号时序 ................................................................................................................ 30 3.4 VGA 时序信号及彩条信号的产生 ................................................................................ 31 3.4.1 VGA 时序信号产生模块 ................................................................................................. 32 3.4.2 彩条信号产生模块 ............................................................................................................ 33 3.4.3 仿真结果及其说明 ............................................................................................................ 36 3.5 结束语 ................................................................................................................................. 37 4 软件程序设计 .................................................................................................................... 38 4.1 基于 FPGA 的 VGA 显示接口的研究与设计源程序 .................................................... 38 4.2 彩条实验程序 ................................................................................................................... 40 参考文献 ........................................................................................................................................ 43 致谢 ................................................................................................................................................ 44 附录 1:系统总体硬件原理图 ..................................................................................................... 45 附录 2:相关英文文献 ................................................................................................................. 46
2

基于 FPGA 的 VGA 显示控制器的设计与实现
学 生:

专 业: 指导老师: 摘要:本文介绍一种利用可编程逻辑器件实现 VGA 图像显示控制的方法。由于是对视 频数据进行处理,利用可编程器件 FPGA 设计 VGA 图像显示控制,能轻松地达到了面积 和速度上的要求。该技术方案在工业现场中有多种实际应用。 利用现场可编程逻辑器件产生 VGA 时序信号和彩条图像信号。并将其作为信号源。 应用于彩色等离子显示器的电路开发方便彩色等离子显示器驱动控制电路的调试。 关键词:VGA.VHDL.FPGA.仿真视频图形阵列 等离子显示 状态机

Design and Realization of VGA Image Display Control Based on FPGA Name: Majior: Tutor: Abstract: This paper introduces a method for realization of VGA image display by suing programmable logic components FPGA. For handling the video frequency data,through FPGA image display control is designed,easily meeting the requirements on area and speed.The technical scheme is of industrial field applications. VGA-timing signals and colors strip image were obtained by using FPGA.The signals were used as sources when developing the circuits of color plasma display panel , and it took great convenience to the debugging of the driving and controlling circuits of color plasma display panel . Keywords: VGA VHDL FPGA Simulation PDP State Machine

3

1

前言

1.1

EDA 技术的概念,研究内容及发展方向

1.1.1

EDA 技术的概念

EDA 是电子设计自动化(Electronic Design Automation)的缩写。 由于它是一门刚刚发展 起来的新技术, 涉及面广, 内容丰富, 理解各异, 所以目前尚无一个确切的定义。 但从 EDA 技术的几个主要方面的内容来看,可以理解为:EDA 技术是以大规模可编程逻辑器件为设 计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑 器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方 式设计电子系统到硬件系统的一门新技术。可以实现逻辑编译、逻辑化简、逻辑分割、逻 辑综合及优化,逻辑布局布线、逻辑仿真。完成对于特定目标芯片的适配编译、逻辑映射、 编程下载等工作,最终形成集成电子系统或专用集成芯片。EDA 技术是伴随着计算机、集 成电路、电子系统的设计发展起来的,至今已有 30 多年的历程。大致可以分为三个发展阶 段。20 世纪 70 年代的 CAD(计算机辅助设计)阶段:这一阶段的主要特征是利用计算机辅 助进行电路原理图编辑,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。20 世纪 80 年代的计算机辅助工程设计阶段:这一阶段的主要特征是以逻辑摸拟、定时分析、故障 仿真为核心,重点解决电路设计的功能检测等问题,使设计而能在产品制作之前预知产品 的功能与性能。20 世纪 90 年代是 EDA(电子设计自动化)阶段:这一阶段的主要特征是以 高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前 期的许多高层次设计由 EDA 工具来完成。EDA 是电子技术设计自动化,也就是能够帮助 人们设计电子电路或系统的软件工具。该工具可以在电子产品的各个设计阶段发挥作用, 使设计更复杂的电路和系统成为可能。 在原理图设计阶段, 可以使用 EDA 中的仿真工具论 证设计的正确性;在芯片设计阶段, 可以使用 EDA 中的芯片设计工具设计制作芯片的版图: 在电路板设计阶段, 可以使用 EDA 中电路板设计工具设计多层电路板。 特别是支持硬件描 述语言的 EDA 工具的出现, 使复杂数字系统设计自动化成为可能, 只要用硬件描述语言将 数字系统的行为描述正确,就可以进行该数字系统的芯片设计与制造。有专家认为,21 世 纪将是四 A 技术的高速发展期,EDA 技术将是对 21 世纪产生重大影响的十大技术之一。

1.1.2 EDA 技术的基本特征

EDA 代表了当今电子设计技术的最新发展方向,利用 EDA 工具,电子设计师可以从
4

概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产 品从电路设计、性能分析到设计出 IC 版图或 PCB 版图的整个过程在计算机上自动处理完 成。设计者采用的设计方法是一种高层次的“自顶向下”的全新设计方法,这种设计方法 首先从系统设计人手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、 纠错.并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后,用综 合优化工具生成具体门电路的网络表,其对应的物理实现级可以是印刷电路板或专用集成 电路(ASIC)。设计者的工作仅限于利用软件的方式,即利用硬件描述语言和 EDA 软件来 完成对系统硬件功能的实现。由于设计的主要仿真和调试过程是在高层次上完成的,这既 有利于早期发现结构设计上的错误,避免设计工作的浪费,又减少了逻辑功能仿真的工作 量,提高了设计的一次性成功率。 由于现代电子产品的复杂度和集成度的日益提高,一般 分离的中小规模集成电路组合已不能满足要求,电路设计逐步地从中小规模芯片转为大规 模、超大规模芯片,具有高速度、高集成度、低功耗的可编程 ASIC 器件已蓬勃发展起来。 在 EDA 技术中所用的大规模、超大规模芯片被称为可编程 ASIC 芯片,这些可编程逻辑器 件自 70 年代以来,经历了 CPLD、FPGA 几个发展阶段,其中 CPLD(复杂可编程逻辑器 件)/FPGA(现场可编程逻辑器件)和高密度可编程逻辑器件,目前集成度已高达 200 万门/ 片以上,它将 ASIC 集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起, 特别适合于样品研制或小批量产品开发,使产品能以最快的速度上市,而当市场扩大时, 它可以很容易地转由 ASIC 实现,因此开发风险也大为降低。可以说 CPLD/FPGA 器件, 已成为现代高层次电子设计方法的实现裁体。 硬件描述语言(HDL)是 EDA 技术的重要组成 部分, EDA 设计开发中的很重要的软件工具, 是 VHDL 即: 超高速集成电路硬件描述语言, 现在已作为电子设计主流硬件的描述语言。它具有很强的电路描述和建模能力,能从多个 层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计能力和可靠 性, VHDL 进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现, 用 而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。 例如一个 32 位的加法 器,利用图形输入软件需要输入 500 至 1000 个门,而利用 VHDL 语言只需要书写一行 “A=B+C”即可。使用硬件描述语言(HDL)可以用模拟仿真的方式完成以前必须设计和制 作好的样机上才能进行的电子电路特性的说明和调试。能在系统行为级就发现可能出现的 错误、问题,并加以多次反复修改论证,避免了物理级器件的损伤和多次制作,节约了时 间和开发成本, 缩短了电子系统开发的周期。 EDA 技术与传统电子设计方法进行比较可 将 以看出,传统的数字系统设计只能在电路板上进行设计,是一种搭积木式的方式,使复杂 电路的设计、调试十分困难;如果某一过程存在错误,查找和修改十分不便;对于集成电路 设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差;只有在设计出样机或 生产出芯片后才能进行实践,因而开发产品的周期长。而电子 EDA 技术则有很大不同,采 用可编程器件,通过设计芯片来实现系统功能。采用硬件描述语言作为设计输入和库 (Library)的引入,由设计者定义器件的内部逻辑和管脚,将原来由电路板设计完成的大部 分工作故在芯片的设计中进行。由于管脚定义的灵活性,大大减轻了电路图设计和电路板 设计的工作量和难度,有效增强了设计的灵活性,提高了工作效率。并且可减少芯片的数
5

量,缩小系统体积,降低能源消耗,提高了系统的性能和可靠性。能全方位地利用计算机 自动设计、仿真和调试。

1.1.3 硬件描述语言

硬件描述语言(HDL)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软 件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。 硬件描述语言可以在三 个层次上进行电路描述,其层次由高到低分为行为级和 R,几级和门电路级。常用硬件描 述语言有 HDL、Verilog 和 AHDL 语言。HDL 语言是一种高级描述语言,适用于行为级和 R,几级的描述;Verilog 语言和 AHDL 语言属于一种较低级的描述语言,适用于 R,几级和 门电路级的描述。 现在 HDL 和 Verilog 作为工业标准硬件描述语言, 已得到众多 EDA 公司 的支持,在电子工程领域,它们已成为事实上的通用硬件描述语言,承担几乎全部的数字 系统的设计任务。应用 VHDL 进行电子系统设计有以下优点:(1)与其他硬件描述语言相 比,VHDL 具有更强的行为描述能力,强大的行为描述能力是避开具体的器件结构,从逻 辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL 具有丰富的仿真语句和库函 数,使得在任何大系统的设计早期就能检查设计系统的功能可行性,并可以随时对系统进 行仿真。(3) VHDL 语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分 解和对已有设计的再利用功能。(4)用 VHDL 完成的设计,可以利用 EDA 工具进行逻辑综 合和优化,并可根据不同的目标芯片自动把 VHDL 描述设计转变成门级网表,这种设计方 式极大地减少了电路设计的时间及可能发生的错误, 从而降低了开发成本。 (5)VHDL 对设 计的描述具有相对独立性,可以在设计者不懂硬件结构的情况下,也不必管最终设计的目 标器件是什么,而进行独立的设计。(6)由于 VHDL 具有类属描述语句和子程序调用等功 能,所以对于已完成的设计,可以在不改变源程序的情况厂,只需改变类属参量或函数, 就能很容易地改变及计的规模和结构[1]。

1.1.4 EDA 技术的应用

电子 EDA 技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大 的作用。在教学方面:几乎所有理工科(特别是电子信息)类的高校都开设了 EDA 课程。主 要是让学生了解 EDA 的基本原理和基本概念、VHDL 描述系统逻辑的方法、使用 EDA 工 具进行电子电路课程的模拟仿真实验并在作毕业设计时从事简单电子系统的设计,为今后 工作打下基础。具有代表性的是全国每两年举办一次大学生电子设计竞赛活动。在科研方 面:主要利用电路仿真工具(EWB 或 PSPICE、VLOL 等)进行电路设计与仿真;利用虚拟仪 器进行产品调试;将 CPLD/FPGA 器件的开发应用到仪器设备中。例如在 CDMA 无线通信 系统中,所有移动手机和无线基站都工作在相同的频谱,为区别不同的呼叫,每个手机有
6

一个唯一的码序列,CDMA 基站必须能判别这些不同观点的码序列才能分辨出不同的传呼 进程;这一判别是通过匹配滤波器的输出显示在输人数据流中探测到特定的码序列;FPGA 能提供良好的滤波器设计,而且能完成 DSP 高级数据处理功能,因而 FPGA 在现代通信领 域方面获得广泛应用。在产品设计与制造方面:从高性能的微处理器、数字信号处理器一 直到彩电、音响和电子玩具电路等,EDA 技术不单是应用于前期的计算机模拟仿真、产品 调试, 而且也在电子设备的研制与生产、 电路板的焊接过程中有重要作用。 可以说电子 EDA 技术已经成为电子工业领域不可缺少的技术支持。

1.1.5 EDA 技术发展趋势

EDA 技术在进入 21 世纪后,由于更大规模的 FPGA 和 CPLD 器件的不断推出,在仿 真和设计两方面支持标准硬件描述语言的功能强大的 EDA 软件不断更新、增加,使电子 EDA 技术得到了更大的发展。电子技术全方位纳入 EDA 领域,EDA 使得电子领域各学科 的界限更加模糊,更加互为包容,突出表现在以下几个方面:使电子设计成果以自主知识 产权的方式得以明确表达和确认成为可能;基于 EDA 工具的 ASIC 设计标准单元已涵盖大 规模电子系统及 IP 核模块;软硬件 IP 核在电子行业的产业领域、技术领域和设计应用领域 得到进一步确认;SOC 高效低成本设计技术的成熟。随着半导体技术、集成技术和计算机 技术的迅猛发展,电子系统的设计方法和设计手段都发生了很大的变化。可以说电子 EDA 技术是电子设计领域的一场革命。传统的“固定功能集成块十连线”的设计方法正逐步地 退出历史舞台,而基于芯片的设计方法正成为现代电子系统设计的主流。作为高等院校有 关专业的学生和广大的电子工程师了解和掌握这一先进技术是势在必行,这不仅是提高设 计效率的需要, 更是时代发展的需求, 只有掌握了 EDA 技术才有能力参与世界电子工业市 场的竞争,才能生存与发展。随着科技的进步,电子产品的更新日新月异,EDA 技术作为 电子产品开发研制的源动力, 已成为现代电子设计的核心。 所以发展 EDA 技术将是电子设 计领域和电子产业界的一场重大的技术革命,同时也对电类课程的教学和科研提出了更深 更高的要求。特别是 EDA 技术在我国尚未普及,掌握和普及这一全新的技术,将对我国电 子技术的发展具有深远的意义。 作为一名电子硬件工程师、大专院校电子类专业的在校学生或者电子爱好者,必须掌 握 EDA 技术用于 CPLD/FPGA 的开发, 只有这样才能乘上现代科技的快车去适应激烈竞争 的环境。在现在和未来,EDA 技术主要应用于下面几个方面:1.高校电子类专业的实践教 学中,如实验教学、课程设计、毕业设计、设计竞赛等均可借助 CPLD/FPGA 器件,既使 实验设备或设计出的电子系统具有高可靠性,又经济、快速、容易实现、修改便利,同时 可大大提高学生的实践动手能力、创新能力和计算机应用能力。2.科研和新产品开发中, CPLD/FPGA 可直接应用于小批量产品的芯片或作为大批量产品的芯片前期开发。传统机 电产品的升级换代和技术改造,CPLD/FPGA 的应用可提高传统产品的性能,缩小体积, 提高技术含量和产品的附加值。
7

1.2

FPGA 的概念,发展和工作原理

1.2.1 FPGA 的概念

FPGA 是英文 Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在 PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路 (ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可 编程器件门电路数有限的缺点。FPGA(现场可编程门阵列)是专用集成电路(ASIC)中 集成度最高的一种,用户可对 FPGA 内部的逻辑模块和 I/O 模块重新配臵,以实现用户的 逻辑,因而也被用于对 CPU 的模拟。用户对 FPGA 的编程数据放在 Flash 芯片中,通过上 电加载到 FPGA 中,对其进行初始化。也可在线对其编程,实现系统在线重构,这一特性 可以构建一个根据计算任务不同而实时定制的 CPU,这是当今研究的热门领域。 1.2.2 FPGA 的发展 和其他可编程逻辑器件一样,FPGA 也由未完成的逻辑阵列所组成,通过将这些逻辑 阵列连接到一起来完成一定的功能。像 PAL 一样,各个阵列单元之间的相互连接是可以编 程的。下面介绍 FPGA 的发展过程。 1985 年,Xilinx 公司推出了世界上第一款 FPGA。推出的这款 FPGA 包括两个器件和支 持布同布线的设计工具。FPGA 的发展非常快,在不到 10 年的时间里,时钟频率就从不到 10MHz 提高到 100MHz.设计规则已经达到亚微米级别, FPGA 芯片的规模也从几千门增加 到 2 万多等效门。大量功能强大易用的软件工具也相继推出,使得 FPGA 很快占领了电子 设计领域很大的一块市场。 20 世纪 80 年代推出的 FPGA 可以说是 Intel 公司于 1971 年推出第一款商用微处理器的 延续。那个时期,典型的微处理器系统包含微处理器、存储器和一些特殊功能的中小规模 (MSI/SSI)器件。为追求更佳的件能、更小的尺寸、更低的成本、更快的错误恢复能力、 高可靠性以及更快更易使用的原型,集成电路的设计者都意识到一定会有一种器件要取代 当时的中小规模电路。这个概念的第一个尝试是 Signetics 公司于 1975 年推出的 83S100 FPLA(现场可编程逻辑阵列)。这款可编程器件实际上是一款 PLA 结构的器件。它由 16 个输人、48 个乘积项与阵列、8 个输出、48 个乘积项或阵列构成,通过 Ni-Cr 熔丝实现连 续的断开或连接。这种方法在以降低速度和增加功耗为代价的前提下,给了设计师们很大 的电路设计空间。但是这款可编程器件需要人工来设臵熔丝的断或合,因此很复杂而且容 易出错。 鉴于当时各种可编程器件的速度、 结构等都不能很好地满足巾场的需求, Xilinx 于 1985 年推出了 2000 系列的 FPGA.该系列的 FPGA 是世界上第一款基于 SRAM 的可编程 FPGA, 包括两个器件: 第一个器件由 8×8 ?共 64 个) 的可配臵逻辑模块 (CLB , Configurable Logic Block)构成,并在芯片的周边提供了 58 个输入输出接口模块(IOB,I/O Block);第二个
8

器件出 10xl0 的 CLB 构成,并提供了总共 74 个 IOB 单元。自 Xilinx 推出第一款 FPGA 之 后,世界上的其他公司也相继推出各自的 FPGA 产品。如 Actel 推出很有特色的反熔丝 (Anti-fused)FPGA。FPGA 市场内的竞争也愈演愈烈,IC 的制造商都意识到必须提供更 加强大更易使用的新产品才能占有市场。在这种形势下,Xilinx 在 1987 年就推出了它的第 二款 3000 系列的 FPGA,距第一款 FPGA 的推出只有 2 年的时间。也就是在那时,AT&T 成功地获得这款 FPGA 器件的设计使用权。并开始提供自己的芯片和开发系统,即 AT&T 3000 系列 FPGA。 自从第二代 FPGA 问世以来,各种 FPGA 的应用开始层出不穷,电路复杂度也相继上 升。这时,Xilinx 就开始研制第三代 FPGA 产品,AT&T 也开始开发自己的下一代 FPGA。 Xilinx 的第三代 FPGA 产品于 1991 年问世,而 AT&T 的下一代产品育到 1992 年才研制成 功。认识到 FPGA 市场潜在的广阔空间,很多 IC 和软件厂商也开始向 FPGA 领域进军, 包括一些著名的公司,如 Actel、AMD、A1tera、Intel、Mento Graphics、Texas Instruments 以及 Toshiba。 Xilinx 的成功不仅仅得益于它的硬件产品,软件也是很重要的一个砝码。更快、更智 能、易用的原理图编辑、设计实现和验证工具始终都是 Xilinx 在 FPGA 领域内成功的一个 法宝。 1.2.3 FPGA 的工作原理 为了能让不太熟悉 FPGA 的读者能够对 FPGA 有一个整体印象, 这里以 Xilinx 4000 系 列的 FPGA 为例简单说明它的设汁能力。XC4025 包含大约 1024 个 CLB,它们按 32×32 的矩阵形式排列在 FPGA 芯片里,这相当于 25 000 个等效门。这款 FPGA 包含 422Kbit 的 RAM,主要用于编程。一个 CLB 的运行频率可达 250MHz,但如果将互连线网络引入的延 迟以及像加法器这样更复杂的逻辑考虑进去,还可以获得 20-50MHz 的时钟频率。直观地 讲,加法器这样的逻辑是由大量的 CLB 来构成的,例如一个 32bit 的加法器要用掉 62 个 CLB。 FPGA 采用了逻辑单元阵列 LCA(Logic Cell Array)这样一个新概念,内部包括可配 臵逻辑模块 CLB(Configurable Logic Block)、输出输入模块 IOB(Input Output Block)和 内部连线(Interconnect)三个部分。FPGA 的基本特点主要有:
? ? ? ? ?

采用 FPGA 设计 ASIC 电路,用户不需要投片生产,就能得到合用的芯片。 FPGA 可做其它全定制或半定制 ASIC 电路的中试样片。 FPGA 内部有丰富的触发器和 I/O 引脚。 FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。 FPGA 采用高速 CHMOS 工艺,功耗低,可以与 CMOS、TTL 电平兼容。

可以说, FPGA 芯片是小批量系统提高系统集成度、 可靠性的最佳选择之一。 目前 FPGA 的品种很多,有 Xilinx 的 XC 系列、Altera 公司的 FIEX 系列等。 FPGA 是由存放在片内 RAM 中的程序来设臵其工作状态的, 因此, 工作时需要对片内
9

的 RAM 进行编程。用户可以根据不同的配臵模式,采用不同的编程方式。 加电时,FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中,配臵完成后,FPGA 进 入工作状态。掉电后,FPGA 恢复成白片,内部逻辑关系消失,因此,FPGA 能够反复使 用。FPGA 的编程无须专用的 FPGA 编程器,只须用通用的 EPROM、PROM 编程器即可。 当需要修改 FPGA 功能时,只需换一片 EPROM 即可。这样,同一片 FPGA,不同的编程 数据,可以产生不同的电路功能。因此,FPGA 的使用非常灵活。 FPGA 有多种配臵模式:并行主模式为一片 FPGA 加一片 EPROM 的方式;主从模式可以 支持一片 PROM 编程多片 FPGA;串行模式可以采用串行 PROM 编程 FPGA;外设模式可 以将 FPGA 作为微处理器的外设,由微处理器对其编程。

1.3

VGA 相关内容的介绍

1.3.1 VGA 概念

VGA 是视频图形阵列(Video Graphic Array)的缩写,它是 1987 年 IBM 公司为 PC 机 的显示系统制定的标准。 VGA 的显示特点是扫描格式繁多,分辨率从 320×200 一直延伸到 1280×1024,行频 15.8~70Hz, 场频 50~100Hz。 常见的分辨率有 320×200, 640×400, 640×480, 720×350, 800×600,1024×768,1280×1024。常见行频有 31.4Hz,37.8Hz,57.9Hz,62.5Hz 等, 常见场频有 50Hz,60Hz,70Hz,100Hz 等。扫描方式有逐行和隔行,绝大部分是逐行。 显示模式有文本和图形之分。显示颜色有 16,256,32K,64K,16700K 种颜色之分。 标准的 VGA R G B 信号分别经过三个 8 位的 A/D 转换器变换成数字信号, 在视频处 理器中完成制式转换,抗闪烁,反走样和数字视频编码。三个 9 位分辨率的 D/A 把数字复 合视频和 S—Video 变换成模拟信号。 G B 的采样时钟和存储器的写时钟都由行同步产生。 R 时序电路中的第一个锁相环可产生与 VGA 图形同步的采样时钟,时序电路中的另一个锁 相环以 27MHz 的石英晶体为基准,产生存储器读时钟视频编码器和 D/A 时钟。

1.3.2 像素与分辨率

显示器的显示方式有两种:A/N 显示方式和 APA 显示方式,即文本显示方式和图形显 示方式。A/N 方式已淘汰不用,目前微机都采用 APA 图形方式。 显示器上输出的一切信息,包括数值、文字、表格、图像、动画等等,都是由光点(即像 素)构成的。组成屏幕显示画面的最小单位是像素,像素之间的最小距离为点距( Pitch )。 点距越小像素密度越大, 画面越清晰。 显示器的点距有 0.31mm、 0.28mm、 0.24mm、 0.22mm
10

等多种。 分辨率指整屏显示的像素的多少,是衡量显示器的一个常用指标。这同屏幕尺寸及点 距密切相关,可用屏幕实际显示的尺寸与点距相除来近似求得。点距为 0.28mm 的 15 英寸 显示器,分辨率最高为 1024×768 。 1.3.3 显示器尺寸 显示器屏幕尺寸以对角线来度量,常用的显示器有 14 、15 、17 、19 、21 英寸等。 显示器水平方向长度与垂直方向高度之比一般为 4 : 3 。

1.3.4 扫描频率

显示器采用光栅扫描方式,即轰击荧光屏的电子束在 CRT 屏幕上从左到右(受水平 同步信号 HSYNC 控制)、从上到下(受垂直同步信号 VSYNC 控制)做有规律的移动。 光栅扫描又分逐行扫描和隔行扫描。电子束采用光栅扫描方式,从屏幕左上角一点开始, 向右逐点进行扫描,形成一条水平线;到达最右端后,又回到下一条水平线的左端,重复 上面的过程;当电子束完成右下角一点的扫描后,形成一帧。此后,电子束又回到左上方 起点,开始下一帧的扫描。这种方法也就是常说的逐行扫描显示。而隔行扫描指电子束在 扫描时每隔一行扫一线,完成一屏后再返回来扫描剩下的线,这与电视机的原理一样。隔 行扫描的显示器比逐行扫描闪烁得更厉害,也会让使用者的眼睛更疲劳。目前微机所用显 示器几乎都是逐行扫描。 完成一行扫描所需时间称为水平扫描时间,其倒数称为行频率;完成一帧(整屏)扫 描所需的时间称为垂直扫描时间,其倒数为垂直扫描频率,又称刷新频率,即刷新一屏的 频率。常见的有 60Hz 、75Hz 等,标准 VGA 显示的场频 60Hz ,行频为 31.5kHz。

1.3.5 显示带宽

带宽则指显示器可以处理的频率范围。如果 60Hz 刷新频率的 VGA 方式,其带宽达 640 × 480 × 60 =18.4MHz;70Hz 刷 新 频 率 1024 × 768 分 辨 率 , 其 带 宽 达 1024x768x70=55.1MHz。 早期的显示器频率固定。现在流行的多屏显示器采用自动跟踪技术,使显示器的扫描 频率自动与显示卡的输出同步,达到较宽的适用范围。

11

1.3.6 显示卡术语

一个像素点可有多种颜色,由山表示该像素的二进位数(又称像素的位宽)决定。像 素位宽为 8bit ,则每个像素有 28=256 种颜色;位宽为 16bit 则有 216= 65536 种颜色,位 宽为 24hit 则有 224 即一千七百多万种颜色。显示卡内的 D / A (数/模)转换电路将每 个像素的位宽(二进位整数)转换成对应亮度的 R 、G 、B (红、绿、蓝)模拟信号, 控制屏幕上相应的三色荧光点发光,产生所要求的颜色。 随着 PC 机的不断更新换代,显示控制卡(即显示适配器)的标准也不断发展。从最 初的 MDA(单色显示适配器)→CGA (彩色图形显示适配器)→EGA (增强型图形适 配器)→VGA (视频图形阵列适配器)。VGA 一改以前显示卡采用的数字视频信号输出, 而用模拟视频信号输出,VGA 卡内的 D / A 转换器将数字信号转换为控制 R 、G 、B 三 原色的模拟信号,使像素色彩变化非常平滑,更适合人的视觉感受。 性能高于 VGA 并与之兼容的显示适配卡有 TVGA 和 SVGA 。 随着 Windows 的普及 和对快速度、多色彩、高分辨率的需要,一些厂家在 SVGA 芯片中增加更多的硬件来支持 Windows 的加速,这类显示适配器一般被称作 AVGA ( Accelerated VGA :加速 VGA )。 目前大多数微机上的显示卡都属于 AVGA 类型。 显示卡主要由图形处理芯片、视频存储器及 BIOS 芯片等组成。一般 AVGA 类型显示 卡的控制器由单块 AVGA 芯片充当,其中包含的图形加速控制器对提升图形功能至关重 要。 显示卡的性能主要取决于卡上使用的图形芯片。早期的图形芯片没有帧缓冲器,有关 帧的操作都要由 CPU 去处理,降低了显示速度。现在多数显示卡上都设臵具有图形处理 功能的加速芯片,可处理像 Windows 类型的图形任务而减少 CPU 参与。更高级的显示卡 上有协处理器,可大大减免 CPU 的处理和参与。 利用视频存储器 VRAM 储存显示数据,可减少甚至免去访问系统主存,加快显示 速度。 640×480-16 色 VGA 显示一屏需 640×480×Log216 / 8 = 154KB 显示存储器, 1024 ×768 真彩显示一屏则需 1024×768×24÷8≈2.3MB 。 显示卡插在系统板的扩展槽内, 通过电缆连接到机箱背面的 15 针 D 型插座连接器上。 某些高档的主板内臵了显示卡的功能。CRT 显示器背面有一个与显示器连接好的视频电 缆,电缆的末端是 15 针插入式连接器,使用时将它直接插入主机机箱背面的 15 孔 D 型 插座上即可[7]。

12

1.3.7 VGA 接口概述

VGA 接口为显示器提供两类信号,一类是数据信号,一类是控制信号。数据信号包括 红(Red) 、绿(Green) 、蓝(Blue)信号,简称 RGB 信号,控制信号包括水平同步信号和 垂直同步信号。输出不同分辨率时,水平同步信号和垂直同步信号的频率也不同。下表是 在部分分辨率条件下使用的相应频率。 当分辨率为 640*480 时,显示器每行占用 840(31.5MHz/37.5KHz)个数据位,其中 640 个数据位用于显示像素,另外 200(840-640)个数据位用于输出水平同步信号和水平 消隐信号。 垂直方向有 500 37.5kHz/75Hz) 其中 480 行用于显示像素, ( 行, 其余 20 500-480) ( 行用于输出垂直同步信号和垂直消隐信号。水平同步信号和垂直同步信号都采用低电平同 步方式。水平同步信号低电平约保持 2μs,相当于 63 个数据位长度。垂直同步信号低电平 约保持 80μs,相当于 3 行数据位长度[6]。 实体部分定义了 VGA 显示系统的所有接口 entity VGA is Port ( Fosc : in std_logic; -- 36MHz 时钟信号。 Data : in std_logic_vector(7 downto 0); --VRAM 数据线 Address : in std_logic_vector(11 downto 0); --VRAM 写地址 CE : in std_logic; --片选信号, 高电平有效 WREn : in std_logic; --写允许信号, 高电平有效 HS : out std_logic; --水平同步信号 VS : out std_logic; --垂直同步信号 RGB : out std_logic_vector(7 downto 0) --色彩信号 ); end entity; 2)常量和信号 constant HSMax : integer := 840; --每行 840 个数据位
13

constant HSNegative : integer := 63; --水平同步信号低电平占 63 个数据位 constant VSMax : integer := 500; --每帧有 500 行 constant VSNegative : integer := 3; --垂直同步信号低电平占 3 行数据位 constant XMax : integer := 640; --水平 640 个像素 constant YMax : integer := 480; --垂直 480 个像素 constant Left : integer:= 184; --每行首像素位臵 constant Right : integer := Left + XMax -1; --每行末像素位臵 constant Top : integer := 16;--首行位臵 constant Bottom : integer := Top + (YMax - 1); --末行位臵 constant PixelWide : integer := XMax / 64; --逻辑像素宽度(10pixel) constant PixelHigh : integer := YMax / 48; --逻辑像素高度(10pixel) signal Fvga : std_logic; --31.5MHz 时钟信号 signal H : std_logic; --垂直同步计数允许信号 signal XAddress : std_logic_vector(11 downto 0); --VRAM 水平地址 signal YAddress : std_logic_vector(5 downto 0); --VRAM 垂直地址 signal VRA : std_logic_vector(11 downto 0); --VRAM 输出地址 3)DPRAM 模块作为 VRAM,为每个像素提供映射地址 Modular : DPRAM port map ( data => Data, --VRAM 写入数据,由 NIOS 写入
14

rdaddress => VRA, --VRAM 输出地址,由 VGA 显示系统提供 rdclock => Fvga, --VRAM 输出时钟,31.5MHz wraddress => Address, --VRAM 写入地址 wrclock => Fosc, --VRAM 写入时钟 wren => WREn and CE, --VRAM 写允许信号, WREn 和 CE 为 1 时有效 q => RGB --RGB 输出信号 ); 4)水平同步信号的产生和 VRAM 水平地址寻址 process(Fvga) variable HSValue : integer range 0 to HSMax - 1 := 0; begin if rising_edge(Fvga) then --在 Fvga(31.5MHz)的上升沿循环计数(0-839) if HSValue = HSMax - 1 then HSValue := 0; else HSValue := HSValue + 1; end if; --在计数值小于 63 时(0 至 62),水平同步信号输出低电平,否则输出高电平 if HSValue < HSNegative then HS <= '0'; else HS <= '1'; end if; - -在计数值等于 839 时,垂直同步计数允许信号为 1,否则为 0 if HSValue = HSMax - 1 then H <='1'; else H <='0';
15

end if; --每行从首像素到末像素,每 10 个像素对应一个 VRAM 水平地址,共 64 个水平地址 if HSValue >= Left + 0 * PixelWide and HSValue < Left + 1 * PixelWide then XAddress <= "000000000000"; elsif HSValue >= Left + 1 * PixelWide and HSValue < Left + 2 * PixelWide then XAddress <= "000000000001"; elsif HSValue >= Left + 2 * PixelWide and HSValue < Left + 3 * PixelWide then XAddress <= "000000000010"; ……………………..--中间省略 elsif HSValue >= Left + 63 * PixelWide and HSValue < Left + 64 * PixelWide then XAddress <= "000000111111"; --超出首像素和末像素时,输出默认地址 0x110000000000 的 0x00 else XAddress <= "110000000000"; end if; end if; end process; 5)垂直同步信号的产生和 VRAM 垂直地址寻址 process(Fvga, H) variable VSValue: integer range 0 to VSMax - 1 := 0; begin if rising_edge(Fvga) then --在 Fvga (31.5MHz) 的上升沿, 当垂直同步计数允许信号为 1 时, 对行数循环计数 (0~479) if H = '1' then if VSValue = VSMax - 1 then VSValue := 0; else VSValue := VSValue + 1; end if; else VSValue := VSValue; end if; --当行计数小于 3 时,垂直同步信号输出低电平,否则输出高电平 if VSValue < VSNegative then VS <= '0'; else VS <= '1'; end if;
16

--从首行到末行,每 10 个行对应一个 VRAM 垂直地址,共 48 个水平地址 if VSValue >= Top + 0 * PixelHigh and VSValue < Top + 1 * PixelHigh then YAddress <= "000000"; elsif VSValue >= Top + 1 * PixelHigh and VSValue < Top + 2 * PixelHigh then YAddress <= "000001"; elsif VSValue >= Top + 2 * PixelHigh and VSValue < Top + 3 * PixelHigh then YAddress <= "000010"; ……………………..--中间省略 elsif VSValue >= Top + 47 * PixelHigh and VSValue < Top + 48 * PixelHigh then YAddress <= "101111"; --超出首行和末行时,输出默认地址 0x110000000000 的垂直地址部分 0x110000 else YAddress <= "110000"; end if; end if; end process; 6)VRAM 输出地址的合成 VRA <= YAddress & "000000" or XAddress; NIOS 程序设计 1) 字模表。每个字符均由 5*7 个逻辑像素组成,占用 5 个字节。 2) unsigned char CHTAB[][5]= { {0x3E, 0x51, 0x49, 0x45, 0x3E}, //"0"=00h {0x00, 0x42, 0x7F, 0x40, 0x00}, //"1"=01h {0x42, 0x61, 0x51, 0x49, 0x46}, //"2"=02h {0x21, 0x41, 0x45, 0x4B, 0x31}, //"3"=03h {0x18, 0x14, 0x12, 0x7F, 0x10}, //"4"=04h --中间省略 {0x00, 0x41, 0x36, 0x08, 0x00}, //"}"=5Dh {0x02, 0x01, 0x02, 0x04, 0x02}, //"~"=5Fh {0x7F, 0x7F, 0x7F, 0x7F, 0x7F} //" "=60h }; 2)显示像素函数,负责向 VRAM 中指定行和列上的字节写入颜色值。VGA_0_BASE 为 VRAM 的首地址。 void Pixel(unsigned char row, unsigned char column, unsigned char color) { unsigned short offset; offset = row * 64 + column;
17

IOWR(VGA_0_BASE, offset, color); } 3)字符显示函数 void Character(unsigned char row, unsigned char column, unsigned char *CH, unsigned char frontcolor, unsigned char backcolor) { unsigned char i, h, color; for(h = 0; h < 5; h ++)//遍历字模占用的 5 个字节 { for(i = 0; i < 8; i ++)//遍历字模中每个字节的 8 个 bit { if(1 == ((*(CH + h) >> i) & 1)) { color = frontcolor;//如果某 bit 为 1,则显示前景颜色 } else { color = backcolor;//如果某 bit 为 0,则显示背景颜色值 } Pixel(row + i, column + h, color);//显示像素 } } }

18

2

基于 FPGA 的 VGA 显示控制设计

2.1

VGA 显示原理
VGA( 视频图形阵列 ) 作为一种标准的显示接口得到广泛的应用 , 一般有专用芯

片,本实验采用 FPGA( 现场可编程门阵列 ) 设计 VGA 接口可以将要显示的数据直接送 到显示器,节省了计算机的处理过程,加快了数据的处理速度,节约了成本。 随着显示技术的不断发展,在业界制定了多种显示协议标准。根据分辨率和刷新频率 的不同,显示模式的发展可分为:VGA(640× 480 像素);SVGA(高级 VGA,800× 600 像素); XGA(可扩展图形阵列,1 024× 768 像素)。本文可以识别各种刷新频率的上述显示模式,并 得到像素频率值,进一步应用于 A/D 转换器采样模块处理中。

图 2-1:行,场扫描时序示意图 Figure2-1:HS,VS Timing Diagram

VGA 显示图像原理:常见的彩色显示器,一般由 CRT (阴极射线管)构成。彩色是由 R , G , B (红:RED 绿:GREEN 蓝:BLUE) 三基色组成。显示是用逐行扫描的方式解 决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生 R , G , B 三基色,合 成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,进行扫描,每扫完一 行,电子束回到屏幕的左边下一行的起始位臵,在这期间,CRT 对电子束进行消隐,每行 结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描 回到屏幕的左上方,同时进行场消隐,预备下一场的扫描[4]。
19

它的行,场扫描时序示意图如图 2-1 所示。现以正极性为例,说明 CRT 的工作过程:R, G,B 为正极性信号,即高电平有效。当 VS=0,HS=0 时,CRT 显示的内容为亮的过程, 即正向扫描过程约为 26μs,当一行扫描完毕,行同步 HS=1,约需 6μs;其间,CRT 扫描产 生消隐,电子束回到 CRT 的左边下一行的起始位臵(X=0,Y=1);当扫描完 480 行后,CRT 的场同步 VS=1,产生场同步使扫描线回到 CRT 的第一行第一列(X=0,Y=0 处,约为两个 行周期)。HS 和 VS 的时序图。T1 为行同步消隐(约为 6μs);T2 为行显示时间(约为 26μs);T3 为场同步消隐(两行周期);T4 为场显示时间(480 行周期)。

2.2

系统设计

2.2.1 设计前注意

设计 VGA 图像显示控制需要注意两个问题:一个是时序的驱动,这是完成设计的关 键,时序稍有偏差,显示必然不正常,甚至会损坏彩色显示器;另一个是 VGA 信号的电 平驱动。显示控制器设计提示:显示器技术规格提供的行频一般在 30 kHz~45 kHz(保守 数据) ,场频一般在 50 Hz~75 Hz(保守数据) 。针对以上保守数据,设计分辨率为 640× 480 的显示接口,以 30 kHz 的行频进行扫描时所需时钟频率为:30 kHz×800(行周期)=24 MHz ,则场频为:30 kHz ÷ 525( 场周期 )=5.14 Hz 。本实验实现在显示器上显示彩条的 设计,初始时 GRB= “ 000 ”,用记数器过一段时间使 R 取反,即变为红色。这样就有黑、 红彩条了。 本系统由摄像头采集数据,并存入电可擦除只读存储器中,存入的数据是串行数据。由 于显示器接收的 R,G,B 三基色信号是 8 位并行数据,因此要将采集的串行数据转化成并 行数据,再去驱动显示器。系统总体结构示意图见图 2-2

20

图 2-2:系统总体结构示意图 Figure2-2: The Total System Diagram

设计方案如下:将图像控制器分为这样几个模块:通用异步收发器(UART)模块、 缓存器模块和显示控制模块。其中通用异步收发器模块用于接收采集小行数据。并将其转 化为并行数据(8 位);缓存器模块用于接收并行数据,接收满三个并行数据再进行转发,送 往显示控制模块;显示控制模块用于产生正确的行,场同步信号,并再产生 R,G,B 三基 色信号。串行异步收发器模块是作为 USB 摄像头和 VGA 显示控制模块之间的通讯设备。 显示控制模块的输出信号直接连接到 VGA 接口,它是控制器与显示器进行通信的桥梁。

2.2.2 UART 模块

在 VGA 图像显示的片上系统中,串行异步收发器的作用是作为 USB 摄像头和 VGA 显示控制模块之间的通讯设备。UART 接收 USB 摄像头从 Windows 操作环境下采集到的 视频数据,并把接收到的串行视频数据转换成并行数据发送至 VGA 显示驱动模块。 TXD 是 UART 的发送端,RXD 是 UART 的接收端。这样 UART 只需要两条信号线 (TXD 、RXD )就可以完成数据的相互通信,接收与发送互不干扰,为全双工的方式, 因而大大的降低了传送费用。
21

在 UART 中,数据是按照帧格式传送的。基本的 UART 帧格式如图 2-3 所示

图 2-3:基本 UART 帧格式 Figure2-3: Basal UART Frame Format

通常情况下,UART 处理的是并/串变换数据,包含发送和接收两部分。然而在 VGA 图像显示控制的片上系统中,UART 作为图像处理模块,完成串行数据到并行数据的转换。 转换后的数据通过与后端的图像显示控制模块相连的并行数据端口发送。 因而实际系统中, UART 与 PC 机是单向通讯,它接收 USB 摄像头通过 PC 机的串口传输的视频数据。因此 这里只设计将串行数据转化成并行数据。 UART 采用图 2-4 所示的算法流程

22

23

图 2-4:UART 算法流程 Figure2-4: UART Computing Flow

要使 UART 完成串并转换工作, UART 就必须有一个信号用于检测数据帧的字头 (即开 始位) 。当该信号检测到字头(0)时,表明从图像采集模块有数据传输至 UART,此时 UART 启动内部的计数器,由该计数器对数据帧的每一位进行计数,同时将字头检测信号设为高 电平.由于已知视频数据的每一帧实际有效位数为 8 位即 D0--D7, 而计数器是由字头开始计 数,因此只要计数器的计数个数达到 9 个小时,表明 UART 已经接收完数据,并且已经将 数据存储至 UART 内部移位寄存器.在接收完数据的同时,与 VGA 显示控制单元之间的握 手信号跳变为有效电平(高电平),表示 8 个串行数据已经转化为并行数据。在握手信号跳 变的同时,只要芯片处于工作状态,就将并行数据输出。完成后,将字头检测信号后设臵 为低电平,等待新的起始位的到来。 为达到显示的同步,这里设计了缓冲器模块,那么输入的 RGB 的信号必须同时到达 VGA 的数据输入口,同时转换为模拟信号,驱动显示器工作。将 UART 发送过来的数据(3 个 8 位并行数据)存储,等到 3 个 8 位并行数据都收到后,再转发出去。

2.2.3 显示控制模块

显示控制模块是关键,因为它将输出行同步,场同步,以及三基色信号,并送往显示 器。对这五个信号的时序驱动,必须严格遵守"VGA 工业标准",否则会损害 VGA 显示器。 普通的 VGA 显示器,其引出线共含 5 个信号: R,G,B:三基色信号 HS:行同步信号 VS:场同步信号 VGA 工业标准是 640×480×60Hz VGA 工业标准要求的频率: 时钟频率:25.175MHz(像素输出的频率) 行频:31469Hz 场频:59.94Hz(每秒图像刷新频率) VGA 工业标准模式要求:行同步,场同步都为负极性,即同步头脉冲要求是负脉冲。行, 场同步信号时序见图 2-5

24

图 2-5:行,场同步信号时序图 Figure2-5:HB,VB Timing Diagram

图 2-5 所示的就是 VGA(640×480×60Hz)图像格式的信号时序图。其点时钟(DCLK) 的频率为 25.175MHz。其中 HS 表示行同步信号,HB 表示行消隐信号,VS 代表场同步信 号,VB 代表场消隐信号。 场周期为 16.683ms,每场有 525 行,其中 480 行为有效显示行,45 行为场消隐期。场 同步信号 VS 每场有一个脉冲,该脉冲的低电平宽度为 2 行。场消隐期包括场同步信号, 场消隐前肩(10 行) ,场消隐后肩(33 行) ,共 45 行。 行周期为 31.87μs,每显示行包括 800 点,其中 640 点为有效显示区,160 点为行消隐 期(非显示区) 。行同步信号 HS 每行有一个脉冲,该脉冲的低电平宽度为 3.81μs(即 96 个 DCLK)和行消隐后肩(48 个 DCLK)。 复合消隐信号是行消隐信号和场消隐信号的逻辑与。在有效显示期复合消隐信号为高 电平,在非显示区它是低电平。

2.2.4 图像显示控制设计

显示器因为其输出信息量大,输出形式多样等特点己经成为现在大多数设计的常用输 出设备。在 FPGA 的设计中可以使用很少的资源,就产生 VGA 各种控制信号。这个示例
25

在 RHlcSP2200B FPGA 开发板/学习板上使用 VGA 接口在显示器上显示文字以及简单的 图形,可以作为 VGA 显示设计的参考。 设计行场扫描时序,采用可编程逻辑器件来设计.下图 2-6 给出了用 VHDL 扫描的行, 场时序产生的框图。 根据时序框图,得出的时序信号的 VHDL 流程图见下图 2-6。行计数器对输入点时钟 (25.175MHz)计数.在行计数器大于等于 640 小于 800 期间为非显示区,行消隐信号为 0,表 示不显示图像.因为一行共有 800 个点时钟, 所以有效显示区域为 640 个点时钟.在行计数器 大于等于 656 小于 752 这段期间,行同步信号为 0,这是行同步头,共有 96 个点时钟.当行 计数器计满 800 点,内部的行扫描结束提示信号跳变为 1,开始行计数器的新一轮计数。

图 2-6:行,场时序产生框图 Figure2-6:HB,VB Timing Producing Diagram

内部还设有场使能信号。行同步信号通过一个微分电路,就产生一个点时钟周期宽的 场使能信号。在场使能信号有效期间,开始场计数器的工作。 用场计数器对已扫描完的行进行记数。当场使能信号为 1 时开始计数。在场计数器大 于等于 480 小于 525 这段期间为非显示区,此时场消隐为 0,因为一场共有 525 行,所以 从中间可以看出有效显示行为 480 行。在场计数器大于等于 490 小于 492 这段期间,场同 步信号为 0,是场同步脉冲头,为 2 行。当场计数器计满 525 行,内部的场扫描提示信号 变为 1,开始场计数器的新一轮计数。 将行消隐信号和场消隐信号逻辑与得到了复合消隐信号 HVB。在非显示区域为 0,显 示区域为 1。 在复合消隐信号显示区域,将数据传送给三基色信号 R,G,B 表示显示图像,在非显 示区域则不显示图像。
26

场同步信号产生方法类似,就不再给出详细程序。只是场计数器是对行计数,有效显 示行是 480 行。场同步为 2 行,场消隐为 45 行,并且要设臵一个场使能信号 VENCNT.当 扫描完一行时,场使能信号为 1 时,此时在开始场计数。 经过编译仿真,得到了显示控制模块的仿真波形。如图 2-7 与 2-8 所示。

图 2-7:显示控制模块仿真波形 Figure2-7: The Display Controlling Module Simulate Waveform

图 2-8:显示控制模块仿真波形 Figure2-8: The Display Controlling Module Simulate Waveform

仿真波形图 2-7 是为了说明行同步信号 HS 的正确性。仿真波形中行同步脉冲头(HS =0)出现在第 657 个点时钟,在 752 点时结束,所以行同步脉冲头为 96 个点时钟宽度; 复合消隐信号的行消隐期(HVB=0)从第 641 个点时钟开始,在 800 点结束,所以复合消 隐的行消隐期间为 160 点时钟宽度;行消隐前肩为 16(657-641=16)个点时钟宽度,行消
27

隐。后肩为 48(800-752=48)个点时钟宽度。这些与实际的行同步脉冲波形一致。说明行同 步信号是正确的。 仿真波形图 2-8 是为了说明场同步的正确性。仿真波形中场同步脉冲头(VS=0)出现 在第 491 行, 在第 492 行结束, 所以场同步脉冲头为 2 行; 复合消隐信号的场消隐 (HVB=0) 从第 481 行,在第 525 点结束,所以复合消隐的场消隐期间为 45 行;行消隐前肩为 10(491-481=10)行,行消隐后肩为 33(525-492=33)行。这与实际的行同步脉冲波形一致。 从这两个波形中可以看出: 即使有输入信号, 在复合消隐期间的不显示区 R、 、 三 G B 基色信号输出都为 0 ,表示没有图像输出;在有效显示区域,R 、G 、B 信号输出就是 输入的信号;复合消隐信号的行、场同步信号的低电平宽度要宽。

2.3

系统的总体连接及实现
用 MAX+PLUS Ⅱ10.0 编译仿真得到的仿真波形见图 2-9.从波形中可以看出:输入的数

据(RXD)是串行数据,但输出的三基色数据(R,G,B)是 8 位并行数据。

图 2-9:系统仿真波形 Figure2-9: The System Simulate Waveform

这里输入的串行数据和 UART 中的一样.在前面通用异步收发器 UART 模块中已经说 明,竟 UART 串并转化后的数据是 09,4D,7E,35,EA,C1,3C,18,1E,4C,42 等。 从图中可以看出:在显示区域 R,G,B 输出的数据也正是这些数据。 从波形可以看出:每扫描完一行,就出现一个行同步信号,而每扫描完一场才出现一个 场同步信号。并且,场同步信号的脉冲头宽度为 2 行。在复合消隐信号为 0 期间,是不显 示图像的.这次设计能正确的将接收到的串行数据转化成并行数据,并输出正确的行,场扫 描信号以及 R,G,B 信号。

28

3 3.1

VGA 显示彩条实验 彩条实验引言
彩色等离子体显示器(Plasma Display Panel 简称 PDP)是利用气体放电产生真空紫外

线激发荧光粉进行发光显示的一种平板显示器件。它具有重量轻、厚度小、视角大、响应 快、图像无畸变、不受磁场影响等许多优点。自从 1964 年美国 Illinois 大学教授 Bitze 和 Slottow 发现了放电气体的记忆效应, 1966 年 Bitzer 教授利用交流气体放电现像发明等离子 显示屏以来,等离子显示技术已获得了很大的发展,等离子显示器成为人们期望用以实现 大屏幕显示的新型显示器件之一。特别是 1992 年日本富士通公司开始 21 英寸 AC 型彩 色 PDP 的批量生产并投放市场以来.等离子显示技术更是获得了长足的发展。42 英寸级 和 60 英寸级的大尺寸、全彩色的显示屏也已经投放市场。目前,PDP 业界正集中精力于 提高图像质量、降低功耗、降低成本的研究过程中。

3.2

PDP 显示信号的数据流程
PDP 是一种矩阵式平面显示器件.它的输入图像必须是数字式的。如果输入的图像信

号是模拟视频信号,必须先进行模/数转换,才可以在 PDP 上进行显示。模拟图像的转换 如图 3-l 所示。A/D 转换电路将输入的计算机显示信号、电视信号等进行数字化后,得到 8bit 的红、绿、蓝三色信号。以及行、场同步信号、时钟信号和复合消隐信号等,再送到 彩色 PDP 的存储控制电路进行处理,最后送到显示屏进行显示。

图 3-1 模拟图像的转换 Figure3-1: The Transition of Analog Image

29

3.3

VGA 信号时序
图 3-2 所示是计算机 VGA ( 640×480 , 60Hz)图像格式的信号时序图,其点时钟

DCLK 为 25.175MHZ, 场频为 59.94Hz。 图中 Vsync 为场同步信号, 场周期 Tvsync 为 16.683ms 每场有 525 行,其中 480 行为有效显示行,45 行为场消隐期。场同步信号 Vs 每场有一个 脉冲,该脉冲的低电平宽度 twv 为 63μs( 2 行) 。场消隐期包括场同步时间 twv 、场消隐前肩 tHV ( 13 行) 、场消隐后肩 tVH( 30 行) ,共 45 行。行周期 THSYNC 为 31.78μs,每显示行包括 800 点。其中 640 点为有效显示区,160 点为行消隐期(非显示区) 。行同步信号 HS 每行 有一个脉冲,该脉冲的低电平宽度 tWH 为 3.81μs(即 96 个 DCLK);行消隐期包括行同步时 间 tWH,行消隐前肩 tHC(19 个 DCLK)和行消隐后肩 tCH ( 45 个 DCLK).共 160 个点时 钟。复合消隐信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高 电平,在非显示区域它是低电平[5]。

30

图 3-2 图像格式的信号时序图 Figure3-2: Image Format Timing Diagram

3.4

VGA 时序信号及彩条信号的产生
在设计彩色 PDP 的存储和控制电路时, 使用了 Altera 公司的 FPGA 来对图像进行存储

和整理,并产生驱动电路需要的各种控制波形。为了方便调试电路,开始调试时,不是使
31

用接口电路板,而是使用 FPGA 中的剩余逻辑来产生 VGA 、SVGA 等格式的时序信号和 彩条信号,所产生的信号稳定可靠。同时,还可以通过彩条模式选择按键的控制来改变彩 条模式,产生竖彩条、横彩条、棋盘格等各种彩条模式,极大地方便了电路调试。下面仅 以 VGA 格式为例作简单的介绍。

3.4.1 VGA 时序信号产生模块

VGA 时序信号产生模块包括行点数计数器 h_cnt、 场行数计数器 v_cnt、 行同步产生状 态机 h_state 和场同步产生状态机 v_state 等。其中,行点数计数器是 800 进制计数器,场 行数计数器是 525 进制计数器。行同步状态机 h_state 有 h_video、h_front、h_sync、h_back 四种状态, 它根据行点数计数器的计数值来进行状态转换; 场同步状态机 v_state 有 v_video、 v_front、v_sync、v_back 四种状态,它根据场行数计数器的计数值来进行状态转移。这两 个状态机的状态转移图分别如图 3-3 和图 3-4 所示。 当行状态机 h_state 复位时,即进入 h_video 状态,它对应每行的有效显示区域。行计 数器 h_cnt 对 25MHz 的点时钟进行计数,当行计数器 h_cnt 的计数值到达 639 时,行同步 状态机即进入行消隐前肩 h_front 状态;当 h_cnt 的计数值为 663 时,行同步状态机进入行 同步状态 h_sync,此时,行同步信号 HS 输出低电平,当 h_cnt 的计数值为 759 时,状态机 即进入行消隐后肩 h_back 状态;在行状态机为 h_front、h_sync、h_back 状态时,行消隐信 号输出低电平。当 h_cnt 的计数值为 799 时,行同步状态机进入 h_video 状态,同时,行计 数器的同步复位信号为高电平,使计数器复位。

图 3-3 行状态转移图 Figure3-3: The HS State Shifting Diagram

32

图 3-4 场状态转移图 Figure3-4: The VS State Shifting Diagram

场状态机 v_state 开始时进入 v_video 状态,对应了每场的有效显示行,场计数器 v_cnt 的计数值每行加 1 。当场计数器的计数值到达 479 时,场状态机翻转,进入场消隐前肩 v_ront 状态;当 v_cnt 的值为 497 时.状态机 v_state 进入场同步状态 v_sync,场同步信号 Vs 此时输出低电平;当 v_cnt 以的值为 499 时,状态机 v_state 进入场消隐后肩 v_back 状 态;当 v_cnt 的值为 524 时,状态机 v_state 又翻转进入 v_video 状态,同时输出高电平到 场计数器 v_cnt 的同步清零端使其清零。当场状态机 v_state 的状态为 v_front、v_sync 、 v_back 三种状态时,场消隐信号输出低电平,其余时刻为高电平。行、场消隐信号的逻辑 与即为复合消隐信号[3]。

3.4.2 彩条信号产生模块

彩条信号产生模块包括了彩条模式控制、竖彩条发生和横彩条发生等三个模块。竖彩 条发生模块根据行点数器 h_cnt 的计数值来产生彩条,其流程图如图 3-5 所示。它对行点 数计数器的末五位数进行判断,每四条竖线生成一种竖彩条,共八种竖彩条,colorx 的二 进制值为“1”表示像素应发光,为“0”表示像素应熄灭。横彩条发生模块与竖彩条发生模块 相似。它根据场行数计数器 v_cnt 的计数值来产生横彩条。流程图如图 3-6 所示。每四条 扫描线为一个彩条宽度,共八种横彩条模式,colory 的二进制值为“1”表示该行的像素应发 光,为“0”表示像素应熄灭。

33

图 3-5 竖彩条流程图 Figure3-5: Vertical Color Strip Flow Chart

34

图 3-6 横彩条流程图 Figure3-5: Horizontal Color Strip Flow Chart

彩条模式控制模块有一个控制输入端子,它通过下拉电阻接地一个常开按钮接电源。 通过一个三进制计数器 mode 对该输入进行计数。每当按钮被按下一次,计数器 mode 的值 就加 1 。而计数器 mode 的值又决定着输出的彩条信号的类型。当 mode 为 0 时,输出的 彩条为竖彩条 colorx[];当 mode 为 1 时,输出横彩条 colorx[];当 mode 为 2 时,输出棋盘
35

格彩条 colorx[]与 colory[]的逻辑或。当然,在复合消隐信号为低电平时应该屏蔽彩条信号 输出。

3.4.3 仿真结果及其说明

以上各功能模块在 MAX+PLUS Ⅱ软件中的仿真结果如图 3-7 、图 3-8 所示。图中, SysClk 信号是 25.175MHz 点时钟信号,mode 是彩条模式控制输入信号,hs、vs 分别是行、 场同步信号输出,cBlank 是复合消隐信号输入.r[7..0]、g[7..0]、b[7..0]是八位的色彩输出 信号。

图 3-7 仿真结果图 Figure3-7: The Simulation Result Diagram

图 3-8 仿真结果图 Figure3-8: The Simulation Result Diagram

从图 3-7 中可以看到,当彩条模式控制信号 mode 出现了高电平脉冲之后,色彩信号 r[7..0]、g[7..0]、b[7..0]的值立即发生了变化。从图 3-7 和图 3-8 中还可以看出,复合消隐
36

信号 cBlank 的行消隐期比行同步信号 hs 的低电平脉冲宽度要宽。 从图 3-8 中可以看到场同 步状态机的场消隐前肩 v_front 和消隐后肩 v_back 以及场消隐脉冲所占用的行数。

3.5

结束语
在设计彩色 PDP 样机电路时, 使用了美国 Altera 公司的 FPGA 来进行图像数据存储和

整理,以及产生驱动电路所需要的各种控制波形。而在调试电路时,使用 FPGA 中多余的 逻辑来产生 VGA 信号和彩条信号,所产生的信号稳定可靠,为电路调试带来了很多方便。 在实际应用中,还可以对彩条信号产生模块方便地进行修改。比如,可以修改行、场 计数器的判断值来调整彩条的大小,增加控制信号的位数.以及增加延时跳变的功能.使 输出的彩条信号产生各种变化。这样,既可以用于调试彩色 PDP 电路,也可以用来作为 PDP 显示器的检测信号源。 此外,与 VGA 信号类似,改变行、场状态机的转换值和行、场计数器的设臵,还可 以产生其他各种模式的图像信号,适应不同分辨率图像显示的需要。 希望这些方法能为国内的彩色 PDP 业界在电路研制方面起到一点抛砖引玉的作用。

37

4

软件程序设计

4.1

基于 FPGA 的 VGA 显示接口的研究与设计源程序
library ieee; use ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity VGA is port( reset clk VGA_hs_control VGA_vs_control VGA_read_dispaly VGA_green_dispaly VGA_blue_dispaly ); end VGA; ARCHITECTURE a OF VGA IS SIGNAL hs: STD_LOGIC; SIGNAL vs: STD_LOGIC:='1'; SIGNAL GRB: STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN PROCESS (clk) --clk = 24MHZ hs = 30 Khz vs = 57hz VARIABLE i VARIABLE j : : integer range 0 to 799; integer range 0 to 79; : : : : : : : in std_logic; out std_logic; out std_logic; out std_logic; out std_logic; out std_logic in std_logic;

BEGIN if reset = '1' then GRB <= "000"; i:=96; j:=0; hs <= '1'; elsif clk'event and clk = '1' then if i < 96 then hs <= '0'; elsif i = 799 then i:=0; else
38

hs <= '1'; end if; if j = 79 then GRB(1) <= not GRB(1); j:=0; end if; i:=i+1; j:=j+1; end if; VGA_hs_control <= hs; END PROCESS ; PROCESS (hs) VARIABLE k : integer range 0 to 524:=0; BEGIN if reset = '1' then k:=2; vs <= '1'; elsif hs'event and hs = '1' then if k < 2 then vs <= '0'; elsif k = 524 then k:=0; else vs <= '1'; end if; k:=k+1; end if; VGA_vs_control <= vs; END PROCESS ; PROCESS (clk) BEGIN if clk'event and clk = '1' and vs = '1' and hs ='1' then VGA_green_dispaly <= GRB(2); VGA_read_dispaly <= GRB(1); VGA_blue_dispaly <= GRB(0); end if; END PROCESS ;
39

END a;

4.2

彩条实验程序

library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity vgacore is Port ( clk : in std_logic; reset : in std_logic; md : in std_logic_vector(1 downto 0); hs : out std_logic; vs : out std_logic; r : out std_logic_vector(1 downto 0); g : out std_logic_vector(2 downto 0); b : out std_logic_vector(2 downto 0) ); end vgacore; architecture Behavioral of vgacore is signal sysclk : std_logic; signal hsyncb : std_logic; signal vsyncb : std_logic; signal enable : std_logic; signal hloc : std_logic_vector(9 downto 0); signal vloc : std_logic_vector(9 downto 0); signal rgbx,rgby,rgbp,rgb: std_logic_vector(7 downto 0); --定义VGASIG元件,产生同步信号进行行、场扫描,即显示驱动 component vgasig Port ( clock : in std_logic; reset : in std_logic; hsyncb : buffer std_logic; vsyncb : out std_logic;
40

enable : out std_logic; Xaddr : out std_logic_vector(9 downto 0); Yaddr : out std_logic_vector(9 downto 0) ); end component; --定义colormap元件,确定颜色及位臵信息 component colormap Port ( hloc : in std_logic_vector(9 downto 0); vloc : in std_logic_vector(9 downto 0); rgbx : out std_logic_vector(7 downto 0); rgby : out std_logic_vector(7 downto 0) ); end component; begin rgb(7) <= rgbp(7) and enable; rgb(6) <= rgbp(6) and enable; rgb(5) <= rgbp(5) and enable; rgb(4) <= rgbp(4) and enable; rgb(3) <= rgbp(3) and enable; rgb(2) <= rgbp(2) and enable; rgb(1) <= rgbp(1) and enable; rgb(0) <= rgbp(0) and enable; --产生25Mhz的像素输出频率 divclk: process(clk,reset) begin if reset='0' then sysclk <= '0'; elsif clk'event and clk='1' then sysclk <= not sysclk; end if; end process; --模式选择单元:本测试程序我们使用了4种模式,由KEY_B2,KEY_B3控制,
41

--当选择模式"11"时,即不按下B2,B3,VGA显示竖彩条;当选择模式"00"时, --即同时按下B2,B3时,VGA显示全黑;当选择模式"01"时,即只按下B2时,VGA显 示横彩条; --当选择模式"10"时,即只按下B3时,VGA时显示横竖彩条。 modchoice: process(md,rgbx,rgby) begin if md="11" then rgbp <= rgbx; elsif md="01" then rgbp <= rgby; elsif md="10" then rgbp <= rgbx xor rgby; else rgbp <= "00000000"; end if; end process; makesig: vgasig Port map( clock => sysclk, reset => reset, hsyncb => hsyncb, vsyncb => vsyncb, enable => enable, Xaddr => hloc, Yaddr => vloc ); makergb: colormap Port map( hloc => hloc, vloc => vloc, rgbx => rgbx, rgby => rgby ); hs <= hsyncb; vs <= vsyncb; r <= rgb(7 downto 6); g <= rgb(5 downto 3); b <= rgb(2 downto 0); end Behavioral;
42

参考文献
[1]潘松,王国栋,VHDL 实用教程,电子科技大学出版社.2000.2 [2]李广军,孟宪元,可编程 ASIC 设计及应用.电子科技大学出版社,2000.3 [3]曹允.基于 FPGA 的时序彩条信号实现方法及应用.电子技术应用,第七期 [4]朱耀东,经亚枝,张焕春.基于 FPGA 的 LCD&VGA 控制器设计.电子技术应用,2002 年 第 11 期 [5]董士海,张倪,肖磊等.EDA/VGA 程序员手册.北京大学出版社.1999:389---394 . [6]尹建华.微型计算机原理与接口技术.北京:高等教育出版社.2003 [7]蒋本珊. 计算机组成原理与系统结构 北京航空航天大学出版社 [8]陈姚节 卢建华. 基于 FPGA 的 VGA 显示接口的研究与设计 [9] 董任.VHDL 入门、解惑、经典实例、经验总结 北京航空航天大学出版社。 [10] 郑亚民,董小舟. 可编程逻辑器件开发软件 QuartusⅡ国防大学出版社。 [11] peter J.Ashenden(著),葛红,黄河,吴继明(译).VHDL 设计指南 机械工业出版社

43

致谢
我的指导教师—李健老师在这次毕业设计中给予了我莫大的帮助和支持。他渊博的知 识和严谨的态度深深感染着我。他无论在理论上还是在实践中,都耐心细心的指导。在撰 写论文阶段,李老师多的次审阅我的论文,提出了诸多宝贵意见。如果没有他的悉心指导, 我就无法较好的完成毕业设计的任务。对于一个自己也在通过不断学习提高自己的老师, 我很感激他为我所做的一切。 另外,我还要感谢在本次设计过程中所有给予我帮助的老师们,没有你们的帮助我也 很难完成毕业设计,在此向所有辛苦付出的老师们表示感谢。

44

附录 1:系统总体硬件原理图

45

附录 2:相关英文文献

The Introduction of FPGA
A field programmable gate array (FPGA) is a semiconductor device containing programmable logic components and programmable interconnects. The programmable logic components can be programmed to duplicate the functionality of basic logic gates such as AND, OR, XOR, NOT or more complex combinational functions such as decoders or simple math functions. In most FPGAs, these programmable logic components (or logic blocks, in FPGA parlance) also include memory elements, which may be simple flip-flops or more complete blocks of memories. A hierarchy of programmable interconnects allows the logic blocks of an FPGA to be interconnected as needed by the system designer, somewhat like a one-chip programmable breadboard. These logic blocks and interconnects can be programmed after the manufacturing process by the customer/designer (hence the term "field programmable") so that the FPGA can perform whatever logical function is needed. FPGAs are generally slower than their application-specific integrated circuit (ASIC) counterparts, can't handle as complex a design, and draw more power. However, they have several advantages such as a shorter time to market, ability to re-program in the field to fix bugs, and lower non-recurring engineering costs. Vendors can sell cheaper, less flexible versions of their FPGAs which cannot be modified after the design is committed. The development of these designs is made on regular FPGAs and then migrated into a fixed version that more resembles an ASIC. Complex programmable logic devices, or CPLDs, are another alternative. History Ross Freeman, Xilinx co-founder, invented the field programmable gate array in 1984. The historical roots of FPGAs are in complex programmable logic devices (CPLDs) of the early to mid 1980s. CPLDs and FPGAs include a relatively large number of programmable logic elements. CPLD logic gate densities range from the equivalent of several thousand to tens of thousands of logic gates, while FPGAs typically range from tens of thousands to several million. The primary differences between CPLDs and FPGAs are architectural. A CPLD has a somewhat restrictive structure consisting of one or more programmable sum-of-products logic arrays feeding a relatively small number of clocked registers. The result of this is less flexibility, with the advantage of more predictable timing delays and a higher logic-to-interconnect ratio. The FPGA architectures, on the other hand, are dominated by interconnect. This makes them far more flexible (in terms of the range of designs that are practical for implementation within them) but also far more complex to design for. Another notable difference between CPLDs and FPGAs is the presence in most FPGAs of higher-level embedded functions (such as adders and multipliers) and embedded memories. A related, important difference is that many modern FPGAs support full or partial in-system
46

reconfiguration, allowing their designs to be changed "on the fly" either for system upgrades or for dynamic reconfiguration as a normal part of system operation. Some FPGAs have the capability of partial re-configuration that lets one portion of the device be re-programmed while other portions continue running. A recent trend has been to take the coarse-grained architectural approach a step further by combining the logic blocks and interconnects of traditional FPGAs with embedded microprocessors and related peripherals to form a complete "system on a programmable chip". Examples of such hybrid technologies can be found in the Xilinx Virtex-II PRO and Virtex-4 devices, which include one or more PowerPC processors embedded within the FPGA's logic fabric. The Atmel FPSLIC is another such device, which uses an AVR processor in combination with Atmel's programmable logic architecture. An alternate approach is to make use of "soft" processor cores that are implemented within the FPGA logic. These cores include the Xilinx MicroBlaze and PicoBlaze, the Altera Nios and Nios II processors, and the open source LatticeMico32 and LatticeMico8, as well as third-party (either commercial or free) processor cores. As previously mentioned, many modern FPGAs have the ability to be reprogrammed at "run time," and this is leading to the idea of reconfigurable computing or reconfigurable systems — CPUs that reconfigure themselves to suit the task at hand. Current FPGA tools, however, do not fully support this methodology. It should be noted here that new, non-FPGA architectures are beginning to emerge. Software-configurable microprocessors such as the Stretch S5000 adopt a hybrid approach by providing an array of processor cores and FPGA-like programmable cores on the same chip. Other devices (such as Mathstar's Field Programmable Object Array, or FPOA) provide arrays of higher-level programmable objects that lie somewhere between an FPGA's logic block and a more complex processor. Applications Applications of FPGAs include DSP, software-defined radio, aerospace and defense systems, ASIC prototyping, medical imaging, computer vision, speech recognition, cryptography, bioinformatics, computer hardware emulation and a growing range of other areas. FPGAs originally began as competitors to CPLDs and competed in a similar space, that of glue logic for PCBs. As their size, capabilities, and speed increased, they began to take over larger and larger functions to the state where some are now marketed as full systems on chips (SOC). FPGAs especially find applications in any area or algorithm that can make use of the massive parallelism offered by their architecture. FPGA design and programming To define the behavior of the FPGA the user provides a hardware description language (HDL) or a schematic design. Common HDLs are VHDL and Verilog. Then, using an electronic design automation tool, a technology-mapped netlist is generated. The netlist can then be fitted to the actual FPGA architecture using a process called place-and-route, usually performed by the FPGA
47

company's proprietary place-and-route software. The user will validate the map, place and route results via timing analysis, simulation, and other verification methodologies. Once the design and validation process is complete, the binary file generated (also using the FPGA company's proprietary software) is used to (re)configure the FPGA . In an attempt to reduce the complexity of designing in HDLs, which have been compared to the equivalent of assembly languages, there are moves to raise the abstraction level of the design. Companies such as Cadence, Synopsys and Celoxica are promoting SystemC as a way to combine high level languages with concurrency models to allow faster design cycles for FPGAs than is possible using traditional HDLs. Approaches based on standard C or C++ (with libraries or other extensions allowing parallel programming) are found in the Catapult C tools from Mentor Graphics, and in the Impulse C tools from Impulse Accelerated Technologies. Annapolis Micro Systems, Inc.'s CoreFire Design Suite provides a graphical dataflow approach to high-level design entry. Languages such as SystemVerilog, SystemVHDL, and Handel-C (from Celoxica) seek to accomplish the same goal, but are aimed at making existing hardware engineers more productive versus making FPGAs more accessible to existing software engineers. To simplify the design of complex systems in FPGAs, there exist libraries of predefined complex functions and circuits that have been tested and optimized to speed up the design process. These predefined circuits are commonly called IP cores, and are available from FPGA vendors and third-party IP suppliers (rarely free, and typically released under proprietary licenses). Other predefined circuits are available from developer communities such as OpenCores.org (typically "free", and released under the GPL, BSD or similar license), and other sources. In a typical design flow, an FPGA application developer will simulate the design at multiple stages throughout the design process. Initially the RTL description in VHDL or Verilog is simulated by creating test benches to stimulate the system and observe results. Then, after the synthesis engine has mapped the design to a netlist, the netlist is translated to a gate level description where simulation is repeated to confirm the synthesis proceeded without errors. Finally the design is laid out in the FPGA at which point propagation delays can be added and the simulation run again with these values back-annotated onto the netlist. Some FPGA manufacturers and their specialties As of late 2005, the FPGA market has mostly settled into a state where there are two major "general-purpose" FPGA manufacturers and a number of other players who differentiate themselves by offering unique capabilities. Xilinx is one of the two big FPGA leaders. Altera is the other big FPGA leader. Lattice Semiconductor is the third FPGA supplier to release 90nm FPGAs. In addition, Lattice is the leading provider of non-volatile, flash-based FPGAs with products at both 90nm and 130nm nodes.[citation needed] Actel has antifuse and reprogrammable flash-based FPGAs. Actel also offers mixed signal flash-based FPGAs. QuickLogic has antifuse (programmable-only-once) products.
48

Atmel is the only manufacturer whose devices are fine-grain reconfigurable (the Xilinx XC62xx were, but they are no longer in production). They focus on providing AVR Microcontrollers with FPGA fabric on the same die. Achronix Semiconductor has very fast FPGAs in development. They plan to ship in early 2007 and have demonstrated speeds of nearly 2GHz. MathStar, Inc. offers an FPGA-like device they call an FPOA (field programmable object array). Some FPGA third-party tool suppliers with descriptions Accelchip provides high-level FPGA design tools based on Matlab and Simulink. Agilent provides an effective solution for in-circuit debug of FPGA and surrounding systems. Aldec provides FPGA design and verification tools, including a popular HDL simulator. Alpha Data provides high-end FPGA COTS systems based on PMC, PCI Express, PCI-X, CompactPCI and VXS platforms. Altium provides FPGA synthesis and simulation tools, as well as royalty-free IP blocks that include processor cores. Annapolis Micro Systems, Inc. provides the WILDSTAR family of COTS FPGA-based computing platforms, the CoreFire Design Suite for high-level design entry, and IP blocks for digital signal processing. Celoxica provides SystemC and Handel-C tools for high-level design entry and verification. Digilent provides low cost FPGA prototyping and development boards for use in education and industry. Gedae provides high-level FPGA and DSP programming tools allowing programmers to develop to hetergenous systems and related optimization and verification tools. Impulse provides the Impulse C compiler and related optimization and verification tools. LogicSim provides a free Windows-based Verilog simulator and debugger, useful for FPGA RTL verification. Lyrtech provides hardware combining FPGA and DSP technologies plus high-level FPGA-DSP design tools based on Matlab, Simulink, Xilinx Sysgen and Texas Instruments CCS. MathWorks provides Simulink, a tool that is used as a high level design entry for FPGAs. Mentor provides the Catapult C high-level design tools, as well as a wide range of HDL synthesis and simulation tools. Nallatech provides COTS FPGA computing solutions for military and defense, and high performance computing industries. National Instruments provides FPGA development boards and LabVIEW FPGA, a high level graphical programming language with built-in IP blocks Opal Kelly builds FPGA modules tightly coupled to a USB 2.0 microcontroller and provide a multi-platform, multi-language API to easily communicate between the FPGA module and a PC. Synopsys provides HDL synthesis tools, as well as a broad range of verification and high-level design tools. Synplicity provides HDL synthesis, FPGA physical synthesis and verification tools. XESS provides low-cost FPGA boards with SDRAM, video and audio capabilities. XtremeData and DRC provide FPGA modules pluggable into a CPU socket of a multi-CPU
49

(Opteron) motherboard. VMETRO provides FPGA products for VXS, VITA 41, 3U VME, PMC, PCI and CompactPCI.

In many widely used in the field of embedded computing systems (referred to as embedded systems), is greater in the electronic device embedded in complete duplication of certain features of computing systems, it is often not recognized by users of the device, but in All kinds of electronic devices commonly used in these embedded systems can be found. For example, and consumer electronics products in mobile phones, pagers, digital cameras, camcorders, video recorders, personal digital assistants, household appliances in microwave ovens, washing machines, ovens, access control systems, lighting systems, business unit of the card read, Scanners, printers. These embedded systems have several common characteristics: 1. A single function: Embedded systems are generally a repeat implementation of a specific procedure, unless the procedure was embedded system a new version update, or, owing to restrictions on the size of several procedures in one system be transferred into or out, but even if These exceptions also said that the system has a specific function. 2. Stringent restrictions: all the computing systems in the design are bound by the requirements of many, but the binding of embedded systems in particular strict, such as cost, size, performance and power consumption, and other restrictions designed to inform the system can achieve the characteristics and Embedded systems are particularly high technical requirements of the design. 3. Real-time response: Many embedded systems must be continuously on the system to respond to the changing environment, and real-time computing without delay to determine the outcome. 4. Hardware and software coexistence: General embedded system by the embedded processor, the system's external hardware devices, embedded operating system and application software systems, such as four-part, is a microprocessor core for the digital system, involving hardware and Two aspects of the software technology, the microprocessor embedded system can be a general-purpose processors or microprocessor, microcontroller or DSP, dedicated processors, single-purpose processors. As a measure of the standard design for embedded systems to achieve measurable characteristics, the design of embedded systems must be constructed to achieve all the expected features, but the challenge is also to design a large number of metrics to optimize. Remove non-recovery of the works (NRE) costs, system design requirements also include unit cost, size, performance, power, flexibility, the prototype of time, time to market, maintainability, failure rate and security. FPGA Implementation of the advantages of embedded systems From the system on time to market requirements, programmable features and integration, and other considerations, to programmable gate arrays (FPGA) can be configured to achieve the embedded systems has become increasingly widespread. 90-nanometer process after production FPGA devices, FPGA device to further reduce costs,
50

improve performance and reduce power consumption, low-cost FPGA to become the mass production of small and medium-sized devices, from the early application of the military, communication systems, such as extended to low-cost consumer electronics Category, and other products. In the realization of embedded systems in various fields have a wide range of applications, and bring about further design changes. Table 1 shows the main FPGA products in cost, power and performance improvements. Model-based design methods Many of today's high level of integration of embedded hardware and software system is flexible signal processing and communications. These systems in silicon density and complexity of the algorithm is astonishing growth, from design and check the rising costs. Embedded systems market forecast that more than 50 percent of the embedded systems project can not be completed on time, 1 / 3 of the project only 50% of the performance and failure. Even with the new technology or check in the traditional design tools and processes in the expansion of language is not enough to improve the development process, these incremental improvements can not eliminate the traditional process of problem: If the fuzzy text-based technical requirements, and the realization of the late Testing, these issues will have to expand the wrong products and threaten the delivery time. Comparison with the traditional design process, using Simulink-based modules in the design development time, cost and risk, have improved alarming. In the application of real-time signal processing, communications and control logic of space, automotive, telecommunications and the semiconductor industry has a large number of literature that these benefits and advantages. Model-based design technology from the following four components: From the model of the executable technical conditions Simulink focus on the module by module as the systems and components of the executable technical requirements, instead of the traditional design process in fuzzy text file. These modules can be digital and analog coverage of hardware and software, which ranks among the works for a clear "no ambiguity" in the exchange and communication. With a simulation of the design Simulink is a more dynamic field of system simulation platform, which provides interactive graphical block diagram environment, with the signal processing, communications and control module can be customized for the collection, can also have a comprehensive system of technical conditions, the channel model And other environmental effects. These tools simplify the use of quantitative measurement systems analysis, if he / noise ratio and bit error rate. Simulnk module is the level, can easily put them into subsystems or components, also can be defined for the realization of all software and hardware needs of all of the information, use of simulation model to prove that by the definition of technical terms of enforceability is complete
51

and correct Work. By automatic code generation to achieve Once the design has been improved and was considered by check, it is automatically generated from the model code, eliminating manual encoding requirements and the introduction of the manual coding errors. In achieving the goal of the design of the system can use this as a real-time code and promote the use of the prototype. Simulink installed in the Xilinx / Altera's System Generator / DSP Builder can Xilinx / Altera's FPGA code automatically generated hardware capacity. Continued testing and calibration To ensure the quality of the entire development process, integrated testing at any level in the model, covering the quantitative model testing. Continued validation and simulation can be early detection of errors, because that is timely and correct mistakes on the price be reduced. Model or system known as the "golden reference" can be seen as hardware or software test bed, in co-simulation software or hardware in the loop verification. FPGA DSP embedded systems Why use FPGA to achieve DSP system, to sum up, because the parallel FPGA is a high degree of signal processing engines to meet the complex algorithms of the ever-increasing application requirements, through the parallel form of a high-performance signal processing capability. Xilinx XtremeDSP the module, making Virtex4/Sparten3 series FPGA for high-performance digital signal processing provides the ideal solution to the traditional ASIC or ASSP completed by the high-performance signal processing capability. Can digital video communications and image processing applications such as the development of high-performance DSP engine, but also in programmable DSP system as a pre-processor or co-processors, and so on. Virtex4 SX series of DSP48 modules up to 512, the frequency of 500 MHz, arithmetic-intensive applications become the ideal device. DSP48 module is a 18 x18-bit binary-code multiplier, with a 48 symbols to expand the addition / subtraction / accumulator, DSP applications adapt to the many functions. Improve the operation of input, the middle plot and accumulator output programmable pipeline operation, and 48 internal bus, and so the throughput and adaptability, the need for a general structure of wiring can be achieved before a DSP48 and the output after a DSP48 enter the cascade and enhance its function. In a complex algorithm in the digital processing system, system requirements and the continuous improvement of the continuous expansion of the scale of integration, making structure in the beginning stage of the design is not clear, not directly with RTL (register transfer level) design methods to describe, System will be integrated into the digital chip. Use of digital technology to complex algorithms hardware, the first problems encountered in the
52

structure of the provisions did not advance, we need first of all the modeling and simulation algorithm to optimize. Based on RTL with a clear structure for the design of different ways, from algorithm design for the structure to focus shifted to the details of the overall requirements of the design and conduct of the algorithm at the highest level to consider how to design, the system acts described definition of a design The implementation of the algorithm, no or very little realization of the details involved, the acts described RTL description than to the more concise. Xilinx and TI with MathWork companies, and many of the world's leading technology companies, many in the design of model-based technology to provide the system design of the new method. DSP design environment can be a system of mathematical modeling, algorithm optimization and improvement, design validation and diagnostics, and HDL generation and simulation, and so on. Xilinx ISE involved in the hardware tools and embedded systems development kits EDK, as well as on-chip logic analysis tools (ChipScope Pro), and so on. Third-party tools include MATLAB / SimuLink and ModelSim, HDL can be co-simulation and hardware in the loop co-simulation, once completed, and optimize the design through simulation, the direct use of the IP core network hardware table documents, the design Greatly improve the efficiency and reliability. DSP48 can be highly effective in achieving many of the basic arithmetic functions, including addition, subtraction, accumulator, multiplication cumulative, multiplication multiplexers, counters, division, square root function and a barrel-shifters, and so on.

FPGA 简介
FPGA 是一种预先将数字电路的基本电路配臵成阵列状的半成品状态的门阵列。可编程 逻辑元件可以编程用来复制具备一定功能的基本逻辑门,如"与","或","异或","非"或更 复杂的功能,如解码器或简单的数学函数。在大多数的 FPGA ,这些可编程逻辑元件(在 FPGA 上也可以叫逻辑模块) ,还包括存储元件,这可以是简单的触发器或较完整的存储 模块.首要的可编程互连使 FPGA 的逻辑模块间可以按照系统设计者的需要相互关联,就像 一个可编程的电路.这些逻辑模块和互连可以在用户/设计师的加工处理后编程(所以叫做 “现场可编程” ) ,这样会使 FPGA 的可以执行任何逻辑功能的需要。FPGA 普遍比专用 集成电路( ASIC )要慢,而且不能处理复杂的设计,还要用更大的功率.不过,他们也有 几个优势,比如在更短的时间里销售,而且能够重新编译从而修正错误,并降低工程成本。 商家可以卖更便宜的,相对缺乏灵活性的 FPGA 产品,当然,这些产品不能在设计出来之后 都是无法改良的了.这些新的设计一般都放在了标准的 FPGA 上,然后把目标放在一个固定 的版本上,有些类似于的 ASIC 。复杂可编程逻辑器件,或 CPLD ,是另一种选择。 历史 Xilinx 公司的创办人 Ross Freeman,在 1984 年发明了"现场可编程逻辑门阵列".FPGA 的历 史根源要追溯到复杂可编程逻辑器件(CPLD)发明初期至 20 世纪 80 年代中期。CPLD 和 FPGA 包含相当多的可编程逻辑元素。CPLD 的逻辑
53

门密度范围相当于数千至数万个逻辑门,而 FPGA 的范围通常则是数万到数百万。CPLD 和 FPGA 的主要区别是在结构构成上。CPLD 的限制性结构由一个或多个可编程逻辑阵列 组成,而这阵列则输送相对较少的时钟频率记录.结果就是灵活性降低, 但优势是可预见的时 间延迟和较高的逻辑互连的比率。从另一方面讲,FPGA 的架构是受互连控制的。这使得 它们更加灵活(是就实际执行设计范围方面来讲) ,但是也更难设计.CPLD 和 FPGA 的 另一个显着的区别是驻留在大多数的 FPGA 的更高水平的嵌入式功能(例如作为加法和乘 数)和嵌入式存储器。一个很重要的差别是,很多现代的 FPGA 支持全部或部分的系统重 新配臵,这就要求设计要"匆忙"改变,无论是系统升级还是不断重构系统运转的标准部分. 一些 FPGA 有部分重新配臵的能力,它能让一部分设备重新编程,而其他部分继续运行。 最近的趋势已变成采取粗糙结构,更好的将逻辑块和传统的 FPGA 互连,与嵌入式微处理器 和相关的周边一起组成一个完整的"可编程新片上的系统"。这样的组合技术的例子可以在 Xilinx Virtex - II Pro 和 Virtex - 4 器件上看出来, 它包括一个或多个的 PowerPC 处理器,其 中嵌入了 FPGA 的逻辑结构。Atmel 的 fpslic 是另一个这样的装臵, 它使用一个 AVR 处理 器结合 Atmel 的可编程逻辑结构。 一个替代的做法是利用“软”处理器核心, 可以使该 FPGA 逻辑生效。 这些内核包括 Xilinx MicroBlaze 的和 PicoBlaze , Altera Nios 和 NiosII 处理器, 以及开源 LatticeMico32 和 LatticeMico8 , 以及第三方 (无论是商业或免费) 的处理器核心。 如前所述,许多现代的 FPGA 在运行时间有重新改编的能力,这就引出了可重构计算的想 法, 或可重构系统中央处理器,即改装自己以适应手头的任务。 但是,当前的 FPGA 的工具还 不完全支持这种方法。我们应该注意的是,新的非 FPGA 的架构已经开始出现了。软件配臵 的微处理器,比如 Stretch S5000 采取一种混合的方式, 提供一种阵列处理器内核和 FPGA 可 编程的内核一样在同一芯片上。 其他设备 (如 Mathstar 的现场可编程对象阵列, 或叫 FPOA ) 提供更高水平可编程的对象的阵列,它位于 FPGA 的逻辑座和一个更复杂的处理器之间. 应用 FPGA 的应用包括 DSP,软件定义无线电,航空航天和国防系统, ASIC 模型,医学成 像,计算机视觉,语音识别,密码学,生物信息学,计算机硬件仿真和越来越多的其他领 域。FPGA 的最初开始是作为 CPLD 在同一个领域的竞争对手,即胶合逻辑印刷电路板.由 于其规模,能力和速度增加,他们开始把更多指定的功能带到一些国家,在那里可以交易一 些现正销售的全面系统的芯片( SOC ) 。FPGA 会应用在任何地区或任何算法.通过它们 的结构可以利用大量的对应. FPGA 的设计与编程 为了确定 FPGA 的表现如何,用户提供了一种硬件描述语言(HDL) ,或原理图设计。常 见的 HDL 就是 VHDL 和 Verilog。然后,使用电子设计自动化工具,生成工艺图的列表。
54

该列表可以装到实际的 FPGA 结构中,其使用一种叫做布局布线的工艺, 通常由 FPGA 的公 司专有的布局布线软件编译。用户将验证地图,布线布局的结果通过时序分析,仿真,和 其他验证方法。一旦设计与验证过程是完成,所产生的二进制文件(也使用 FPGA 的公司 专有的软件)是用来(重新)配臵在 FPGA 。在设法减少在 HDL 上的复杂设计,和汇编 语言相比,有几个步骤以提高抽象水平的设计。如 Cadence, Synopsys 和 Celoxica 公司是 为了促进 SystemC 而以高层次的语言与并发模式结合起来,以争取实现更快的 FPGA 设计 周期,有可能用到传统的 HDL 。 根据标准 C 或 C++的方法(与库或其他扩展允许并行程序设计)被发现在从辅助图表的弹 射 C 工具和推动 C 工具加速了技术的进步。 安纳波利斯微系统,公司的 CoreFire 设计随 员提供一种图解数据流方法给高级设计入口。 例如 SystemVerilog、SystemVHDL 和 Handel-C (从 Celoxica)寻求实现同一个目标, 但是目标使现有的硬件工程师的语言编译能力 对 FPGA 产生变化。 要简化复杂系统设计的 FPGA,存在被测试并且被优选加速设计过程预定义的复函数和 电路的库。 这些被预定义的电路共同地称为 IP 核心,并且从 FPGA 供营商和第三方 IP 供 应商可得到(很少以私有资格发布的)。 其他被预定义的电路从开发商例如 OpenCores.org (典型地“自由”和发布在 GPL、BSD 或者相似的执照之下)和其他来源是可得到。典型的设 计流程, FPGA 应用开发者将模仿设计在设计过程中的多个阶段。 最初在 VHDL 或 Verilog 的 RTL 描述通过创造试验台刺激系统和观察结果模仿。 然后,在综合引擎映射了设计对 netlist 之后, netlist 被翻译为模仿被重复证实综合不出错误的门水平描述。最终设计在 FPGA 被提出,到时传播延迟可以再增加和模拟运行与这些价值附注在 netlist 上。 一些 FPGA 制造商和他们的特色 2005 年晚些时候, FPGA 市场主要有两大通用 FPGA 制造者和很多个其他小厂商通过 其特色区分自己的地位。 Xilinx 是二大 FPGA 领导者之一。 Altera 是另一大 FPGA 领导者。 Lattice Semiconductor 是发布 90nm 的第三个 FPGA 供应商。 另外, Lattice Semiconductor 是稳定的基于反射的 FPGA 主导的提供者,其产品主 要是 90nm 和 130nm Actel 有可再程序化的基于反射的 FPGA。 Actel 也提供复合信号基于反射的 FPGA。 QuickLogic 有可编程序产品。 Atmel 是设备微粒重新可配臵的唯一的制造商(Xilinx XC62xx, 但是他们不再在生产)。他 们集中于提供 AVR 微型控制器以 FPGA 为基础。 Achronix 半导体在非常快速的 FPGA 在开发中。他们在 2007 年初运送并计划展示 2GHz
55

的速度。 MathStar 公司提供 FPGA 象他们叫 FPGA 的设备(现场可编程序的对象列阵)。 一些 FPGA 第三方工具供应商描述 Accelchip 提供根据 Matlab 和 Simulink 的高级 FPGA 设计工具。 Agilent 为巡回内提供一种有效的解答调试 FPGA 和周围的系统。 Aldec 提供 FPGA 设计和证明工具,包括一台普遍的 HDL 模拟器。 Alpha Data 提供高档的 FPGA 根据 PMC 的轻便小型系统, PCI Express, PCI-X、 CompactPCI 和 VXS 平台。 Altium 提供 FPGA 综合和模仿工具,以及包括处理器核心的无皇族 IP 块。 安纳波利斯公司提供轻便小型基于 FPGA 的计算平台 WILDSTAR,CoreFire 设计高级功能 的随机和数字信号处理的 IP 块。 Celoxica 提供为高级设计词条和证明的 SystemC 和 Handel-C 工具。 Digilent 提供低成本 FPGA 原型和发展委员会用于教育和产业。 Gedae 提供高级 FPGA 和 DSP 程序设计工具允许程序员开发到 hetergenous 系统和相关优 化和验证工具。 Impulse 提供 C 编译器和相关优化和验证工具。 LogicSim 为 FPGA RTL 证明提供一台自由微软视窗 Verilog 模拟器和调试器 Lyrtech 提供结合 FPGA 和 DSP 技术加上高级 FPGA-DSP 设计工具的硬件根据 Matlab、 Simulink、Xilinx Sysgen 和德州仪器 CCS。 MathWorks 提供 Simulink,使用作为一个高级设计词条的 FPGA 的工具。 Mentor 提供弹射 C 高级设计工具,并且提供各种各样的 HDL 综合和模仿工具。 Nallatech 为军事和防御提供轻便小型 FPGA 计算的解答和高性能计算产业。 National Instruments 提供 FPGA 发展板和 LabVIEW FPGA,与固定 IP 块的一种高级图表 编程语言 Opal Kelly 修造 FPGA 模块紧密结合对 USB 2.0 微型控制器并且提供多平台,多语言的 API 容易地沟通在 FPGA 模块和个人计算机之间。 Synopsys 提供 HDL 综合工具,并且各种各样证明和高级设计工具。 Synplicity 提供 HDL 综合、FPGA 物理综合和证明工具。 XESS 提供便宜的 FPGA 器件以 SDRAM、录影和音频能力。 XtremeData 和 DRC 提供 FPGA 模块可插入入多 CPU (Opteron)主板的 CPU 插口。 VMETRO 为 VXS, VITA 41, 3U VME, PMC、PCI 和 Compac 提供 FPGA 产品 在许多领域中广泛应用的嵌入式计算系统(简称为嵌入式系统),是在更大的电子器件中 嵌入的重复完成特定功能的计算系统,它经常不被器件的使用者所识别,但在各种常用的 电子器件中能够找到这些嵌入式系统。例如,消费类电子产品中的手机、寻呼机、数字相 机、摄像机、录像机、个人数字助理等,家用电器中的微波炉、洗衣机、烤箱、门禁系统、
56

照明系统等,商用装臵中的卡片读入器、扫描仪、打印机等。这些嵌入式系统具有几个共 同的特性: 1.单一的功能:一个嵌入式系统通常重复地执行一个特定的程序,除非嵌入式系统的 程序被新的版本更新,或者由于尺寸的限制几个程序在一个系统中被调进或调出,但即使 这些例外也表示系统具有特定的功能。 2.严紧的限制:所有的计算系统在设计时都有许多约束的要求,但是对嵌入式系统的 约束特别严紧,诸如成本、尺寸、性能和功耗等设计的限制条件可以评定系统实现的特性, 而嵌入式系统还有特别高的设计技术要求。 3.实时的反应:许多嵌入式系统必须连续地对系统环境的变化做出反应,并且无延误 地实时计算出确定的结果。 4.软硬件共存:一般嵌入式系统由嵌入式处理器、系统的外围硬件设备、嵌入式操作 系统和系统应用软件等四部分组成,是一个以微处理器为核心的数字系统,涉及到硬件和 软件两方面的技术,嵌入式系统的微处理器可以是通用处理器或微处理器、单片机或 DSP 的专用处理器、单用途处理器等。 由于设计的度量标准是对嵌入式系统实现可测量的特性,嵌入式系统的设计必须构造全 部预期功能的实现,但面临的挑战是同时对大量设计的度量标准进行优化。 除去不可回收的工程(NRE)成本外,对设计系统的要求还包括单元成本、尺寸、性能、 功耗、灵活性、样机时间、上市时间、可维护性、故障率和安全性等。 FPGA 实现嵌入式系统的优势 从系统对上市时间的要求、可编程的特性以及集成度等方面考虑,以可编程门阵列 (FPGA)来实现可配臵的嵌入式系统已越来越广泛。采用 90 纳米工艺生产 FPGA 器件之 后,FPGA 器件进一步降低成本,减少功耗和提高性能,低成本使 FPGA 成为中小批量生 产的应用器件,应用范围从早期的军事、通信系统等扩展到低成本消费电子类等产品。目 前在实现嵌入式系统的各个领域得到广泛的应用,并进一步带来设计方法的变化。 基于模型的设计方法 当今许多高集成度的嵌入硬件和软件系统具有灵活的信号处理和通信。这些系统中硅 密度和算法复杂性有惊人的增长, 引起设计和校验成本的上升。 嵌入系统的市场预测发现, 大于 50%的嵌入系统项目不能按时完成,1/3 的项目仅达到 50%的性能而失败。即使采用 新的校验技术或在传统设计工具和流程中扩展语言也不足以改善开发进程,这些增量的改 进不能消除传统流程的问题:如模糊的基于文本的技术要求,人工的实现和后期的测试, 这些问题都会产生扩充的错误并危及产品的交货时间。 与传统设计流程对比,采用 Simulink 的基于模块的设计技术在开发时间、成本和风险 等方面有惊人的改善。在应用实时信号处理、通信和控制逻辑的航天、汽车、通讯和半导 体工业已经有大量文献资料证明这些好处和优点。

57

基于模型的设计技术由以下四部分组成: 来自模型的可执行技术条件 由 Simulink 模块集中的模块作为系统和部件行为的可执行技 术要求,代替了传统设计流程中模糊的文本文件。 这些模块可以覆盖数字和模拟的硬件及软件,它们便于在工程队伍之间清晰“无模糊” 地交流和通信。 带有仿真的设计 Simulink 是一个为多领域动态系统仿真的平台,它提供交互的图形化方框图环境,带有 为信号处理、通讯和控制等可定制的模块库集合,也可以产生综合性系统技术条件、模型 通道和其它的环境效应。这些工具简化了利用定量测量的系统分析,如信/噪比和位误差率 等。 Simulnk 模块是层次化的,可以很容易把它们分成子系统或元件,同时还可以定义所 有为实现软件和硬件需要的全部信息,利用仿真来证明 由模型定义的可执行技术条件是完全的和正确工作的。 由自动代码生成进行实现 设计一旦被认为已经完善和通过校验,就可以自动地从模型产生代码,消除手工编码 的要求和人工编码引入的错误。在实现设计的目标系统中可以利用这个代码作为实时的样 机和推广应用。 安装在 Simulink 中的 Xilinx/Altera 的 System Generator/DSP Builder 可以对 Xilinx/Altera 的 FPGA 自动产生硬件代码的能力。 持续的测试和校验 可以确保整个开发过程的质量,集成化的测试在任何级的模型中进行,覆盖模型的定 量测试。持续的校验和仿真可以及早发现错误,由于是及时发现,修正错误代价就得到降 低。 系统模型或称为“golden reference”可看作硬件或软件实现的测试床, 可以在协同仿真的 软件或硬件环路中验证。 FPGA DSP 嵌入式系统 为什么利用 FPGA 来实现 DSP 系统,概括地说,因为 FPGA 是极高并行度的信号处理引 擎,能够满足算法复杂度不断增加的应用要求,通过并行方式提供极高性能的信号处理能 力。Xilinx 的 XtremeDSP 模块,使得 Virtex4/Sparten3 系列 FPGA 可以为高性能的数字信 号处理提供理想的解决方案,达到传统上由 ASIC 或 ASSP 完成的高性能信号处理能力。 可以针对数字通信和视频图象处理等应用开发高性能的 DSP 引擎,也可在可编程 DSP 系 统中作为预处理器或协处理器等。Virtex4 SX 系列中 DSP48 模块最多达到 512 个,工作频 率达到 500MHz,成为算术密集应用的理想器件。 DSP48 模块是一个 18x18 位二进制补码乘法器,跟随一个 48 位符号扩展的加法器/减 法器/累加器,适应 DSP 应用中的众多的功能。提高了操作

58

数输入、中间积和累加器输出的可编程流水线操作,以及 48 位内部总线等的吞吐量和适应 性,无需一般的结构布线就可以实现前一个 DSP48 的输出与后一个 DSP48 输入的级联, 增强了它的功能。 在复杂算法的数字处理系统中,系统要求的不断提高和集成规模的不断扩大,使得系 统结构在设计的开始阶段是不明确的,不可能直接用 RTL(寄存器转移级)设计方法进行 描述,所以将系统集成到数字芯片中。 采用数字技术对复杂算法进行硬件实现时,首先遇到的问题是在结构上并没有预先的 规定,因此需要首先对算法建模和仿真进行优化。与基于 RTL 针对结构清晰的设计方法不 同,算法设计把焦点从针对结构的细节转移到对设计的整体要求和行为,在最高的算法层 次上考虑如何进行设计,对系统的行为描述定义了设计要执行的算法,不涉及或很少涉及 实现细节,因此行为描述比 RTL 描述要简洁的多。 Xilinx 公司与 MathWork 和 TI 公司等许多技术上世界领先的公司合作, 在设计技术上提 供许多基于模型的系统设计新方法。 DSP 设计环境可以进行系统的数学建模, 算法优化和改进, 设计校验和诊断, 以及 HDL 产生和仿真等。涉及 Xilinx 的 ISE 硬件实现工具和嵌入系统开发包 EDK,以及片内逻辑分 析工具(ChipScope Pro)等。第三方的工具包括 MATLAB/SimuLink 和 ModelSim 等,可 以进行 HDL 协同仿真和硬件在环路的协同仿真等, 一旦设计优化完成和仿真通过, 可以直 接利用 IP 核的网表文件进行硬件实现,设计的效率和可靠性大大提高。 DSP48 可以高效地实现许多基本的算术功能, 包括加法器、 减法器、 累加器、 乘法累加、 乘法多路复用、计数器、除法器、平方根函数和桶式移位器等。

59


基于FPGA的VGA显示控制器设计_图文.doc

基于FPGA的VGA显示控制器设计 - 1. 利用FPGA内部的块内存作为显示缓存,将要显示的图片存储到该缓存中,根据VGA显示的时序,设计VGA控制器,将显示缓存中的图片通过VGA...

基于FPGA的VGA图像显示系统的设计与实现_周卓然.pdf

基于FPGA的VGA图像显示系统的设计与实现_周卓然 - 2012 年第7 期

本科毕业设计___基于FPGA的VGA显示控制器设计.doc

本科毕业设计___基于FPGA的VGA显示控制器设计 - 毕业论文,单片机论文,毕业论文设计,毕业过关论文,毕业设计,课程设计,硕士论文,研究生论文

基于FPGA的VGA接口显示的设计与实现.doc

基于FPGA的VGA接口显示的设计与实现 - 编号 基于 FPGA 的 VGA 接口显示的设计与实现 Design and implementation of VGA interface ba...

基于FPGA的VGA图像动态显示控制器的设计与实现.pdf

基于FPGA的VGA图像动态显示控制器的设计与实现 - lParts&a

基于FPGA的VGA图像动态显示控制器的设计与实现_廖永清.pdf

基于FPGA的VGA图像动态显示控制器的设计与实现_廖永清 - Parts &a

基于FPGA的VGA显示设计及仿真实现.doc

基于FPGA的VGA显示设计及仿真实现 - 本科毕业论文(设计) 论文题目 姓学班年专学 : 基于 FPGA 的 VGA 显示设计及仿真实现 XXX XXX XXX XXX 通信...

基于FPGA的VGA接口显示的设计与实现...doc

基于FPGA的VGA接口显示的设计与实现.. - 编号 基于 FPGA 的 VGA 接口显示的设计与实现 Design and implementation of VGA interface ...

基于Verilog的VGA控制器.pdf

[2]廖永清,丁旭昌.基于FPGA的VGA图像动态显示控制器的设计与实现[J].

基于FPGA的VGA图像显示系统的设计与实现.pdf

基于FPGA的VGA图像显示系统的设计与实现 - 2012 年第7 期 仪表技术

基于FPGA的VGA显示设计及仿真实现.doc

基于FPGA的VGA显示设计及仿真实现 - 本科毕业论文(设计) 论文题目 姓学班年专学 : 基于 FPGA 的 VGA 显示设计及仿真实现 XXX XXX XXX XXX 通信...

本科毕业设计___基于FPGA的VGA显示控制器设计.doc

本科毕业设计___基于FPGA的VGA显示控制器设计 - 毕业论文,单片机论文,毕业论文设计,毕业过关论文,毕业设计,课程设计,硕士论文,研究生论文

本科毕业设计___基于FPGA的VGA显示控制器设计.doc

本科毕业设计___基于FPGA的VGA显示控制器设计 - 毕业设计,毕业论文,毕业论文设计,硕士论文,研究生论文,单片机论文,单片机设计,单片机设计论文

本科毕业论文___基于FPGA的VGA显示控制器设计_图文.doc

本科毕业论文___基于FPGA的VGA显示控制器设计 - xx 大学学士学位论文 基于 FPFA 的 VGA 显示控制器设计 摘要 目前,数码产品逐渐进入了人们生活的每一个领域,而...

基于FPGA的VGA图像控制器的设计与实现.pdf

基于FPGA的VGA图像控制器的设计与实现 - 第 26 卷 第 6 期 新乡学

基于fpga的vga图像显示控制器设计--学位论文.doc

基于fpga的vga图像显示控制器设计--学位论文 - 可编程逻辑器件综合实验报告 基于 FPGA 的 VGA 图像显示控制器设计 第 1页 可编程逻辑器件综合实验报告 一....

基于FPGA的LCD&VGA控制器设计.doc

基于FPGA的LCD&VGA控制器设计_信息与通信_工程科技_专业资料。学术论文 基于FPGA 的 LCD&VGA 控制器设计 摘要:介绍了基于 FPGA 的图形式 LCD&VGA 控制器的设计...

基于FPGA的VGA图形控制器.doc

基于FPGA的VGA图形控制器 - 基于 FPGA 的 VGA 图形控制器设计 引言 VGA(视频图形阵列)作为一种标准的显示接口得到广泛的应用。利用 FPGA 芯片和 EDA 设计方法,...

基于FPGA的VGA显示模块设计_图文.pdf

基于FPGA的VGA显示模块设计 第17卷第6期2007年6月 计算机技术与发展CoMPUTER7I...1地址00000001 等标准格式的网表文件,供FPGA/CPLD 厂家的布局布线器进行实现。...

课程设计-基于fpga的vga图形显示大学论文.doc

电子信息工程 学生姓名 同组姓名 指导教师 时间 学号 1 基于 FPGA 的 VGA 图形显示 摘要: 本次的题目是基于 FPGA 的 VGA 图形显示,实现 VGA 图像显示与控制...