内容发布更新时间 : 2024/11/8 11:31:47星期一 下面是文章的全部内容请认真阅读。
基于FPGA的VGA图像显示控制器设计
构想输入到EDA等工具上,原理图设计输入方法和硬件描述语言(HDL)的电路设计文本是常用的设计输入方法。现阶段进行一项大型工程的设计时,通常采用得设计方法是HDL设计输人法,它利于自顶向下设计以及模块的划分及复用,可移植性和通用性好,设计不会因为芯片的工艺和结构得不同而变化,便于向ASIC移植。
功能仿真:其又被称作综合前仿真,它的主要目的在于验证设计的电路结构和功能与设计意图是否相配对。在QuartusII软件中提供了两种工具(Simulator和Waveform Editor)便于进行仿真。此外在使用QuartusII时也可以采取第三方工具(如ModelSim)来导入源程序和testbench进行仿真。经过仿真能迅速发现设计上存在的错误,设计进度得于加快,设计的可靠性得到大幅提高。
综合优化:是指将设计输入(HDL语言、原理图)翻译成由基本逻辑单元(与、或、非门,RAM,触发器等)组成的逻辑连接(网表),依照其目标与要求(约束条件),将生成的逻辑连接优化,同时输出edf和edn等格式标准的网表文件,能为FPGA/CPLD厂家的实现布局布线器。此外QuartusII中也能够使用[Analysis &Synthesis] 命令进行综合,也可采用第三方的综合工具。
综合后的仿真:其目的在于检查综合器的综合结果是否与设计输入一致,作综合后的仿真时,要在综合仿真模型中反标注综合生成的标准延时格式SDF(Standard Dela Format)文件,可以估计出门延时所带来的影响。即便综合后仿真虽然比功能仿真更为精确,却也只能估计门延时,达不到估计线延时的效果,仿真结果相对于布线后的实际情况存在着相当的差距。现阶段主流的综合工具越来越趋近于成熟,相比而言,一般简单的设计,假如设计者认定自己表述明朗,不存在综合歧义,如此便可省略此步骤。
实现布局及布线:在具体的FPGA/CPLD 器件上适配综合生成的逻辑网表,这么一个个过程呗称之为实现过程。布局布线为此过程中最重要的步骤。布局(Place)即指将在FPGA 内部的固有硬件结构上合理的适配逻辑网表中的硬件源语或者底层单元。布线即指FPGA内部里的各种连线资源被利用,并根据布局的拓扑结构能符合要求正确连接每个元件的过程。
布局布线后仿真及验证:又被称为时序仿真或者后仿真。常被用于发现不符合时序的约束条件或者器件的固有时序规则(建立、保持时间等)的时序违规状况。一般来说,布局布线后仿真步骤必须进行,静态时序分析被QuartusII自带的时序分析工具分析完成,此外它也可被第三方工具进行时序分析与验证。
板级仿真及验证:主要选取第三方的板级验证工具进行仿真和验证,这些工具通过对设计的IBIS,HSPICE等模型的仿真,能有效的分析信号在高速设计中是否完整性,电
15 [6]
基于FPGA的VGA图像显示控制器设计
磁是否受干扰,等其他电路特性。
加载配置及在线调试:在FPGA/CPLD芯片中进行生产配置文件的测试。在QuartusII 中主要是通过Assemble(生成编程文件)、Programmer(建立包含设计所有器件名称和选项的链式文件)、转换编程文件等功能来支持这一步骤的。
2.3 VHDL简介
VHDL语言是一种被用于电路设计中的高级语言。出现于80年代的后期。它是由美国国防部开发出来的,起初它只供美军用来提高设计的可靠性和减少开发周期的一种小范围使用的设计语言。
VHDL中文简称超高速集成电路硬件描述语言,是一种集设计、仿真、综合于一体的标准硬件描述语言,是对可编程逻辑器件进行开发与设计的重要工具,主要应用于数字电路的设计。VHDL语言作为IEEE的一种工业标准,因此掌握VHDL语言是实现信息系统硬件开发所必备的知识和技能。现阶段,在中国它主要是被用在FPGA/CPLD/EPLD的设计中。但是在一些技术较为先进的单位,它也被用来设计ASIC。
VHDL主要是被用来描述数字系统的结构,行为,功能和接口。除了拥有的语句绝大多数具备硬件特征外,它得语言形式、描述风格以及语法于普通的计算机高级语言基本无异。VHDL的程序结构中最大的特点就是将一项工程设计,或称设计实体(可是单个元件,单一电路模块或一整个系统)分成外部(即可视部分及端口)和内部(即也视为不可视部分),既涉及实体的内部功能和算法完成部分。若设计实体被定义了外部界面后,其内部开发也以完成,那么这个实体就可被之后的设计直接调用。VHDL系统设计的基本点便来源于这种将设计实体分成内外部分的概念。相比与其他硬件描述语言,VHDL具有功能性强大、设计简单;支持面广、修改方便;超强的系统硬件描述能力;设计可以独立于器件并与工艺无关;移植能力强;容易共享与复用等诸多特点,于此VHDL于其他描述性硬件语言更具备如下优势:
◆ 相比于其他描述性硬件语言,VHDL拥有更为强大的行为描述能力,因此也使得它成为了系统设计领域最适合的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 ◆ VHDL拥有多元化的仿真语句及库函数,因此任何规模的大系统得设计在其早期就能检验设计系统的功能是否可行,并无限制的对设计进行仿真模拟。
16 基于FPGA的VGA图像显示控制器设计
◆ VHDL具有将大规模设计进行分解和再次利用已有的设计功能得益于其语句的行为描述能力和程序结构。符合市场的需求,使得规模大的系统高效,高速的完成由有多人或者多个研发组同时并行工作才得以实现。
◆ 任何确定性的设计若使用VHDL,其逻辑综合和优化等过程都可用EDA工具进行,优点于EDA工具能自动把VHDL描述设计转变成门级网表。
◆ VHDL可以独立性描述一个设计,即便设计者不懂硬件的结构,也不知道最终设计实现的目标器件是什么,也可以进行独立的设计。
2.4 Quartus II简介
Max+plus II作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Max+plus II 的更新支持。Quartus II 是Altera公司继Max+plus II之后开发的一种针对其公司生产的系列CPLD/PGFA器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版,这里介绍的是QuartusII8.0版,该软件有如下几个显著的特点:
此软件拥有友好的界面,使用便捷,功能强大,当中可编程逻辑设计环境采用完成集成化,是先进的EDA工具软件。该软件具备诸多特点(例如:开放性,与结构无联系,多平台设计,完全集成化,设计库丰富、工具模块化等),支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内部镶有自带的综合器和仿真器,能够完成从设计输入到硬件配置的完整PLD设计流程。Quartus II能够在多系统上使用,为用户的设计方式提供了完善的图形界面。具有运行速度快,界面统一,功能集中,学用简单等特点。
Quartus II支持Altera公司的MAX3000A系列、MAX7000系列、MAX9000系列、ACEX1K系列、APEX20K系列、APEXII系列、FLEX6000系列、FLEX10K系列,支持MAX7000/MAX3000等乘积项器件。支持MAXIICPLD系列、Cyclone系列、CycloneII、StratixII系列、Stratix GX系列等。支持IP核,包含了LPM/MegaFunction宏功能模块库,用户可利用充分成熟的模块,简化了复杂性的设计步骤、设计速度明显加快。支持Altera的片上可编程系统(SOPC)开发,将系统级设计,开发嵌入式的软件,可编程逻辑的设计基于一体,是一款综合性的应用开发平台。
其良好的支持第三方EDA工具,让用户能够使用自己了解的第三放EDA工具,并应用于设计流程的各个阶段。Altera公司的Quartus II可编程逻辑软件属于该公司第四代PLD开发平台,其设计要求可在一个工作组环境下,其中也包含支持基于Internet的协作设计。Quartus平台与纵多的EDA供应商所开发的工具能相兼容。LogicLock软
17 基于FPGA的VGA图像显示控制器设计
件的模块设计功能得到相当的改进,增加了FastFit编译选项,网络编辑性能得于推荐,此外调试能力明显提升很多。
18 基于FPGA的VGA图像显示控制器设计
第3章 设计方案
3.1 设计的主要内容
此设计要求实现某一分辨率下(如640*480@60Hz)的VGA显示驱动,能简单显示彩条和图像等。能够熟悉VGA接口协议、工作时序及VGA工作原理,并计算出合适的时序,对原始时钟进行分频处理以获取符合时序要求的各率,此外须要显示的图像等可存储于外部存储器,运行时,从外部存储器读取显示数据。将图像控制模块分为这样几部分;二分频电路、地址发生器、VGA时序控制模块、图像数据存储器读出模块.如图3.1-1所示:
图3.1-1 VGA显示控制系统框图
3.2 设计原理
显示控制器是一个较大的数字系统,采用模块化设计原则、借鉴自顶向下的程序设计思想,进行功能分离并按层次设计。利用VHDL硬件描述语言对每个功能模块进行描述,并逐一对每个功能模块进行编译仿真,使顶层VGA显示控制器的模块实体仿真综合得以顺利通过。其中二分频把50MHZ实在频率分成25Mhz并提供给其它模块作为时钟;VGA时序控制模块用于产生640X480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号HS和垂直同步时序信号VS的值;存储器读出模块提供给SRAM地址并
19