基于DE2的LCD图形显示设计.doc_第1页
基于DE2的LCD图形显示设计.doc_第2页
基于DE2的LCD图形显示设计.doc_第3页
基于DE2的LCD图形显示设计.doc_第4页
基于DE2的LCD图形显示设计.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

基于Verilog的各模块硬件设计 基于DE2的LCD图形显示设计【摘要】 DE2是Altera公司针对大学教学及研究机构推出的FPGA多媒体开发平台。DE2开发平台选用的FPGA是CycloneII系列FPGA中的EP2C35F672C6,通过对DE2的学习,我们能够迅速理解和掌握实时多媒体工业产品设计的技巧,并进行系统设计的验证。DE2平台的设计和制造完全按照工业产品标准进行,可靠性很高。本文利用处理器FPGA与液晶显示模块的图形显示的编程技术,并以点阵为320RGB240的TFT LCD模块D036THEA1为例,研究了FPGA与液晶显示模块的图形显示技术。其关键是对驱动芯片D036THEA1的各引脚和时序进行控制。在电路控制部分中,使用QUARTUS II 6.0开发工具来完成软件设计、仿真。所有功能全部用硬件描述语言Verilog HDL编程实现,并下载到DE2实验开发板上CycloneII系列EP2C35F672C6目标芯片上,使用40脚扁平电缆直接把DE2和TFT LCD模块D036THEA1连接起来.运行验证满足TFT LCD模块D036THEA1的图形显示。图形数据可以从外接摄像头获取或者从FPGA芯片内产生图形数据,本设计采用FPGA作为TFT LCD的控制,性能稳定,也可以灵活显示参数以适应各种不同TFT LCD的控制。关键字:DE2 FPGA Verilog HDL语言 QUARTUS II 6.0 液晶显示模块的图形显示。1.1 选题背景目前,电子产品的生命周期越来越短,许多消费类电子产品的生命周期只有一年左右的时间,因而必须缩短产品的开发周期。可编程逻辑器件【1】与固定逻辑器件相比,可大大缩短开发周期。而随着集成电路制造工艺的进步,可编程逻辑器件的设计水平不断提高,其成本已经降低到可以在消费类电子产品中大量使用的程度。从当前技术发展的趋势来看,可编程逻辑器件将逐渐代替大部分的固定逻辑器件。因此可编程逻辑器件应用是值得我们掌握的一门技术。1.2 目的和意义 软核处理器的出现以及可编程逻辑器件的片上存储器容量的增大,使的可编程逻辑器件可以覆盖数字电子领域中的所有应用。Altera公司推出的可编程芯片系统以及NiosII软核处理器【2】进一步明确了这个概念。DE2开发平台是Altera公司针对大学及研究机构推出的一款多媒体开发平台。通过使用DE2开发板可以做FPGA的开发设计及验证。本课题来源是科研与教学。是用于工业电子.国防.科研领域和日常生活中不可缺少的一部分。通过对其的了解而进一步认识现代社会人们所需要具备的技能。深入学习努力钻研从而更好地运用到社会上去。1.3国内外研究现状及发展趋势嵌入式系统的将先进的计算机技术、半导体技术、电子技术和各个行业的具体应用相结合后的产物,这一点就决定了他并然是一个技术密集、资金密集、高度分散和不断创新的知识集成系统。FPGA并非是近年来才有的,FPGA词于1984年就已经出现,至今已经超过20年以上时间,不过过去十年时间内FPGA都未受到太多的重视,原因是FPGA的功耗用电、电路密度、频率效能、电路成本都不如ASIC,在这十多年时间内,FPGA多半只用在一些特殊领域,例如芯片业者针对新产品测试市场反应,即便初期产品未达量产规模,业能先以FPGA制成产品测试。或者有些芯片设计公司承接了小型的设计项目,在量产规模不足下业一样使用FPGA,或如政府、军方的特殊要求,不期望使用开放、标准性的芯片与电路,业会倾向使用FPGA。不过如前所述的,在愈来愈多芯片无法用开设掩膜模式投产后,这些芯片一样要上市,就只好以FPGA模式来生产。所幸FPGA也受益于摩尔定律,在工艺技术不断提升下,晶体管愈来愈缩密化,原来相较ASIC逊色的电路密度过低、频率效能过低、电路成本过高等问题,在新一代FPGA上,早已拉近与ASIC间的表现差距。1.4本课题研究的主要问题 1)FPGA原理和工作流程。2)掌握并能灵活运用Verilog HDL语言和QuartusII软件进行数字电路的设计 。3)掌握TRDB_LCM工作原理,总体设计方案并进行模块化设计。4)对设计进行仿真、测试,并得出相关结论。掌握Verilog HDL语言,在利用QuartusII软件的基础上完成方案设计与实现,然后利用QuartusII进行功能仿真,通过对仿真结果进行优化,下载到DE2开发板上验证。2 FPGA的开发背景2.1 EDA的介绍2.1.1 EDA的背景知识随着电子技术和信息技术的快速发展,制造技术与产品的需求都向集成电路设计提出更严峻的挑战。这就要求设计行业能更快更好地设计出性能更优良、功能更完美、更复杂的专用集成(Application Specific Integrated Circuit,简称ASIC)产品,这迫使我们必须研究新的设计策略、方法和工具。集成电路产品的集成度目前日益加大,产品的生命周期却日益缩短,因此迫切要求提高ASIC芯片的设计速度。系统设计师们 ASIC的设计周期尽可能短,最好在实验室就能设计出合适的ASIC芯片,并且立即投入使用之中,这就要在设计方面研究在更高层次上运用设计自动化工具进行设计的方法。其中最有效的方法之一就是发展VHDL自动设计技术,其设计对象是现场可编程逻辑器件。其中应用最广泛的当属现场可编程门陈列(FPGA)和复杂可编程逻辑器件(CPLD)。不需要建立如何生产线,因此,采用FPGA/CPLD所需的投资较低。因而研究基于FPGA和CPLD的可编程逻辑器件的设计技术是时代的发展所提出的新的要求,对将来国内ASIC产业的快速,健康发展具有深远意义。2.1.2 EDA的发展历史EDA技术的发展始于70年代,至今经历了三个阶段。电子线路的CAD(计算机辅助设计)是EDA发展的初级阶段,是高级EDA系统的重要组成部分【3】。它利用计算机的图形编辑,分析和存储能力,协助工程师设计电子系统的电路图、印制电路板和集成电路板图;采用二维图形编辑与分析,主要解决电子线路设计后期的大量重复性的工作,可以减少设计人员的繁琐重复劳动,但自动化程度低,需要人工干预整个设计过程。这类专用软件大多以微机为工作平台,易于学用,设计中小规模电子系统可靠有效。80年代初期,EDA技术开始设计过程的分析,推出了以仿真(逻辑模拟、定时分析和故障仿真)和自动布局与布线为核心的EDA产品,这一阶段的EDA已把三维图形技术、窗口技术、计算机操作系统、网络数据交换,数据库与进程管理等一系列计算机学科最新成果引入电子设计,形成了CAE-计算机辅助工程,也就是EDA技术中级阶段。其主要特征是具备了自动布局线和电路的计算机仿真、分析和验证功能,其作用已不仅仅是辅助设计,而且可以代替人进行某种思维。CAE这种以原理图为基础的EDA系统,虽然直观,且易于理解,但对复杂的电子设计很难达到要求,也不宜于设计的优化。所以,90年代出现了以自动综合器和硬件描述语言为基础,全面支持电子设计自动化的ESDA(电子系统设计自动化),即高级EDA阶段,也就是目前常说的EDA。过去传统的电子系统电子产品的设计方法是采用自底而上的程式,设计者先对系统结构分块,直接进行电路级的设计。这种设计方式使设计者不能预测下一阶段问题,而且每一阶段是否存在问题,往往在系统整机调试时才确定,也很难通过局部电路的调整使因果系统达到既定的功能和指标,不能保证设计一举成功。EDA技术高级阶段采用一种新的设计概念:自顶而下的设计程式和并行工程的设计方法,设计者的精力主要集中在所要电子产品的准确定义上,EDA系统去完成电子产品的系统级至物理级的设计。此阶段EDA技术的主要特征是支持高级语言对系统进行描述,高层次综合(High level Synthesis)理论得到了巨大的发展,可进行系统级的仿真和综合。2.2 FPGA的开发流程2.2.1 FPGA简介FPGA(Field-Programmable Gate Array)是指现场可编程门阵列,它具有类似于半定制门阵列的通用结构,即由逻辑功能块排列成阵列组成,并由可编程的互连资源连接这些逻辑功能块来实现所需的设计。与传统的可编程逻辑器件相比,FPGA由于采用了类似门阵列的通用结构,规模可以做得较大,可实现的功能更强,设计的灵活性也更大。FPGA基本由6部分组成,分别为可编程输入/输出模块(Input/Output Block)、基本可编程逻辑单元(LE,Logic Element)、嵌入式块RAM(Embedded RAM)、丰富的布线资源(Interconnect)、底层嵌入功能模块(Functional Block)和内嵌专用硬核(Hard Core)等。FPGA一般是基于SRAM工艺的,其基本可编程逻辑单元几乎都是由查找表(Look-Up-Table,简称为LUT)和寄存器(Register)组成的。FPGA内部查找表一般为4输入,查找表一般完成纯组合逻辑功能。FPGA内部寄存器结构相当灵活,可以配置为带同步/异步复位或置位、时钟使能的触发器(FF,Flip Flop),也可以配置成为锁存器(Latch)。FPGA一般依赖寄存器完成同步时序逻辑设计。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。FPGA有多种配置模式,根据FPGA在配置电路中的角色,其配置数据可以使用3种方式载入(Download)到目标器件中,分别是:FPGA主动(Active)方式;FPGA被动(Passive)方式;JTAG(Joint Test Action Group,联合测试行动小组)方式。2.2.2 FPGA开发过程一般来说完整的FPGA设计流程【4】包括电路设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真与验证、板级仿真验证与调试等主要步骤,如图1所示。图1 完整的FPGA设计流程 2.3 DE2开发板的介绍DE2是Altera公司针对大学教学及研究机构推出的FPGA多媒体开发平台。DE2为用户提供了丰富的外设及过媒体特性,并具有灵活而可靠的外围接口设计。DE2能帮助使用者迅速理解和掌握实时多媒体工业产品设计的技巧,并提供系统设计的验证。DE2平台设计和制造完全按照工业产品标准进行,可靠性很强。DE2开发平台【5】如图2所示。图2 DE2开发平台示意图DE开发台上提供的硬件资源如下:(1) Altera CycloneII系列的EP2C35F672C6 FPGA U11,内含3500个逻辑单元。(2)主动串行配置器件EPCS16U30。(3)板上内置用语编程调试和用户API设计的USB Blaster,支持JTAG模式和AS模式;U25是实现USB Blaster的USB接口芯片;U26是用于控制和实现JTAG模式和AS模式配置的CPLD EPM3123,可以用SW19选择配置模式;USB接口为J9。(4)512K字节SRAM(U18)。(5)8M字节(1M*4*16)SDRAM(U17)。(6)1M字节闪存(U20)。(7)SD卡接口(U19)。(8)4个按键KEY0KEY3。(9)18个拨动开关SW0SW17。(10)9个绿色LED灯LEDG0LEDG8。(11)18个红色LED灯LEDR0LEDR17。(12)两个板上时钟源(50MHz晶振Y1和27MHz晶振Y3),也可以通过J15使用外部时钟。(13)24位CD品质音频的编/解码器WM8371(U1),带有麦克风的输入插座J1,线路输入插座J2和线路输出插座J3。(14)VG DAC ADV7123(U34,内含个10位高速DAC)及VGA输出接口J13。(15)支持NTSC和PAL制式的TV解码器ADV7181B(U33)及TV接口J13。(16)10M/100M以太网控制器DM9000AE(U35)及网络接口J4。(17)USB主从控制器ISP1362(U31)及接口(J10和J11)。(18)RS232收发器MAX232(U15)及9针连接器J6。(19)PS/2鼠标/键盘连接器J7。(20)IRDA收发器U14。(21)带二极管保护的两个40脚扩展端口JP1和JP2。(22)2*16字符的LCD模块U2。(23)平台通过插座J8接入直流9V供电,SW18为总电源开关。(24)Altera公司的第三方Terasic提供针对DE2平台的130万像素的CCD摄像头模块以及320240点阵的色彩LCD模块,可通过JP1和JP2接入。DE2平台的结构原理框架如图3所示。 图3 DE2的结构框架图2.4 QuartusII设计流程概述QuartusII是Altera的新一代功能更强的集成EDA开发软件【6】,使用QuartusII可完成从设计输入、综合配置、仿真到下载的整个设计过程,而且QuartusII也可以直接调用Synplify Pro、Leonardo Spectrum以及Modelsem等第三方EDA工具来完成设计任务的综合和仿真。此外,QuartusII还可以与Matlab和DSP Builder结合进行基于FPGA的DSP的系统开发,方便且快捷,还可以与SOPC Builder结合实现SOPC系统的开发。 QuartusII开发流程如下:设计输入:输入方法有原理图输入、文本输入和第三方EDA工具生成的EDIF网表输入等。输入方法的不同,产生的文件格式也不同。由Verilog硬件描述语言输入生成的文件是*.v;由原理图设计输入生成的文件为*.bdf;由波形输入生成的文件是*.vwf。本课题采用了前两种输入方法,先建立一个顶层原理图文件用来导入各个模块生成的功能模块,本课题分为5个模块,因此要建立5个单独的模块文件夹,然后采用较为流行的Verilog HDL语言使用自顶向下的设计方法,这样易于模块划分和复用、移植性强、通用性好,设计不因芯片工艺和结构的改变而改变,利于向ASIC的移植等。编译:完成器件的选择以及适配,逻辑综合以及器件的装入,延时信息提取等。QuartusII自带编译器的功能包括设计错误检查、逻辑综合、Altera 适配器件以及为仿真、定时分析和器件编程产生输出文件。编译器首先提取项目设计文件之间的层次连接信息并检查基本的设计输入错误。编译完后将产生一个编译报告栏,它包含了怎样将一个设计放到一个器件中的所有信息,如器件使用统计、编译设置、底层显示、器件资源利用率,状态机的实现、方程式、延时分析结果和 CPU 使用资源等。功能仿真:零延时模式,检查设计功能模块能否达到预定功能。在线验证;把仿真确认的配置文件经编程电缆配置可编程逻辑器件CPLD或者FPGA等,加以实际激励,进行测试,以检查是否完成预定功能。以上各步如果出现错误,则需要回到设计输入阶段,改正错误的逻辑输入或者调整电路设计,重复以上步骤直至编程验证检查通过。 QuartusII的主要设计流程如图4所示。图4 QuartusII的设计流程2.5 硬件描述语言(HDL)硬件描述语言(HDL)是相对于一般的计算机软件语言如C、Pascal而言的。HDL是用于设计硬件电子系统的计算机语言【7】,它描述电子系统的逻辑功能、电路结构和连接方式。设计者可以利用HDL程序来描述所希望的电路系统,规定其结构特征和电路的行为方式;然后利用综合器和适配将此程序变成能控制FPGA和CPLD内部结构、并实现相应逻辑的门级或更底层的结构网表文件和下载文件。硬件描述语言具有以下几个优点:a.设计技术齐全,方法灵活,支持广泛。b.加快了硬件电路的设计周期,降低了硬件电路的设计难度。c.采用系统早期仿真,在系统设计早期就可以发现并排除存在的问题。d.语言设计可与工艺技术无关。e.语言标准,规范,易与共享和复用。就FPGA开发来说,Verilog语言在工业界和ASCI设计领域称为最常用和流行的硬件描述语言。本次设计采用Verilog HDL 语言,下面主要对Verilog HDL语言进行介绍。2.5.1 Verilog HDL语言简介 Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言(HDL:Hardware Description Language),均为IEEE标准,被广泛地应用于基于可编程逻辑器件的项目开发。二者都是在20世纪80年代中期开发出来的,前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发,后者由美国军方研发。HDL语言以文本形式来描述数字系统硬件结构和行为,是一种用形式化方法来描述数字电路和系统的语言,可以从上层到下层来逐层描述自己的设计思想。即用一系列分层次的模块来表示复杂的数字系统,并逐层进行验证仿真,再把具体的模块组合由综合工具转化成门级网表,接下去再利用布局布线工具把网表转化为具体电路结构的实现。目前,这种自顶向下的方法已被广泛使用。概括地讲,HDL语言包含以下主要特征: HDL语言既包含一些高级程序设计语言的结构形式,同时也兼顾描述硬件线路连接的具体结构。 通过使用结构级行为描述,可以在不同的抽象层次描述设计。HDL语言采用自顶向下的数字电路设计方法,主要包括3个领域5个抽象层次。 HDL语言是并行处理的,具有同一时刻执行多任务的能力。这和一般高级设计语言(例如C语言等)串行执行的特征是不同的。 HDL语言具有时序的概念。一般的高级编程语言是没有时序概念的,但在硬件电路中从输入到输出总是有延时存在的,为了描述这一特征,需要引入时延的概念。HDL语言不仅可以描述硬件电路的功能,还可以描述电路的时序。2.5.2 Verilog HDL的主要功能Verilog HDL既是一种行为描述语言【8】,也是一种结构描述语言。如果按照一定的规则和风格编写代码,就可以将功能行为模块通过工具自动转化为门级互连的结构模块。这意味着利用Verilog HDL语言所提供的功能,就可以构造一个模块间的清晰结构来描述复杂的大型设计,并对所需的逻辑电路进行严格的设计。下面列出的是Verilog HDL语言的主要功能:(1)可描述顺序执行或并行执行的程序结构。(2)用延迟表示式或事件表达式来明确地控制过程的启动时间。 (3)通过命名的事件来触发其他过程里的激活行为或停止行为。 (4)提供了条件和循环等程序结构。 (5)提供了可带参数且非零延续时间的任务程序结构。 (6)提供了可定义新的操作符的函数结构。 (7)提供了用于建立表达式的算术运算符、逻辑运算符和位运算符。 (8)提供了一套完整的表示组合逻辑基本元件的原语。 (9)提供了双向通路和电阻器件的描述。 (10)可建立MOS器件的电荷分享和衰减模型。 2.5.3 Verilog HDL 模块化逻辑设计的结构框图 行为描述 结构描述 混合描述 图5 Verilog HDL 模块化逻辑设计结构图括号内的?代表接口行为描述 module 模块名(?)这些接口(或称端口)的细节用input、output描述,包含了端口方向和类型的一些信息 input output 系统的主体描述 endmodule 图6 程序描述输入的逻辑设计如图(5)、图(6)所示,一个完整的Verilog HDL模块化逻辑设计应包括逻辑电路的结构化模型具有已命名的Verilog HDL模块定义和封装。该模块包括一个以端口为特征的模块名,一个端口工作方式(比如输入)列表,一组可选的内部连线与/或模型所用的其他变量,以及一组相互连接的基本门原语和/或其他模块构成的,就好像在PC机主板上或电路图上放置和连接的对应元件一样。实际电路的主要输入输出与它周围的电路相连,对应与模型中命名的端口。在运行和仿真过程中,加到主输入端的信号作用于内部逻辑门产生了主输出端信号。设计者能够将信号发生器加到实际电路的输入端,并用示波器或逻辑分析仪观察电路的输入和输出。模块功能部分是设计者的重点所在,所设计的模块主要是由功能描述语言Verilog HDL编写来实现的。已定义的模块可以用在其它一些模块的定义中来创建更详细更复杂的结构化模块。2.5.4 Verilog HDL程序设计步骤 利用Verilog HDL语言进行设计可分为以下几个步骤【9】:1. 设计要求的定义。在从事设计进行编写Verilog HDL代码之前,必须先对你的设计目的和要求有一个明确的认识。例如,你要设计的功能是什么?对所需的信号建立时间、时钟/输出时间、最大系统工作频率、关键的路径等这些要求,要有一个明确的定义,这将有助于你的设计,然后再选择适当的设计方式和相应的器件结构,进行设计的综合。2. 用Verilog HDL语言进行设计描述。(1)应决定设计方式,设计方式一般说来有三种:自顶向下设计,自底向上设计,平坦式设计,前两种方式包括设计阶层的生成,而后一种方式将描述的电路当作单模块电路来进行的。自顶向下的处理要求将你的设计分成不同的功能元件,每个元件具有专门定义的输入和输出,并执行专门的逻辑功能。首先生成一个有各功能元件相互连接形成的模块来做成一个网表,然后再设计其中的各个元件,而自底向上的处理方法正好相反。平坦式设计则是指所有功能元件均在同一层和同一图中详细进行的。(2)编写设计代码。编写Verilog语言的代码与编写计算机C语言的程序比较接近,你必须清醒的认识到你正在设计硬件,编写的Verilog代码必须能够综合到采用可编程逻辑器件来实现的数字逻辑之中。懂得EDA工具中仿真软件和综合软件的大致工作过程。3. 用软件仿真器对Verilog原代码进行功能仿真可以节省时间,可以在设计的早期阶段检测到设计中的错误,从而进行修正,以便尽可能地减少对设计日程计划的影响。因为对于大型设计,其综合优化、配置往往要花费好几个小时,在综合之前对原代码仿真,就可以大大减少设计重复和修正错误的次数和时间。对于小型设计,也一样需要先对Verilog原代码进行仿真。 4. 利用Verilog 综合优化软件对Verilog原代码进行综合优化处理。选择目标器件、输入约束条件后,Verilog综合优化软件工具将对 Verilog原代码进行处理,产生一个优化了的网络表,并可以进行粗略的时序仿真。对FPGA的优化通常也需要用乘积项的和式来表达逻辑专用优化实现资源配置。对FPGA的优化通常也需要用乘积项的和式来表达逻辑,方程系统可基于器件专用资源和驱动优化目标指引来实现因式分解,分解的因子可用来对实现的有效性进行评估,其准则可用来决定对方程系统进行不同的因式分解还是保持现在的因子。准则通常是指分享共同因子的能力,既可以被暂存,以便于和任何新生成的因子相比较。5. 将综合优化处理后得到的优化了的网络表,安放到前面选定的CPLD或FPGA目标器件之中,这一过程称为配置。在优化了的网络表配置到目标器件后,从完成的版图上可以得到连线长短、宽窄的信息,把它们反注到原来的网络表上,为再次进行时序仿真。6. 配置后的时序仿真。这时的时序仿真将检查诸如信号建立时间、时钟输出、寄存器的时延数据,所以仿真结果能比较准确地预期未来芯片的实际性能,如果时延仿真结果不能满足设计的要求,就需要重新尝试对VerilogHDL原代码进行综合优化,并重新装配于新的器件之中,其间不乏反复尝试各种综合优化过程和配置过程,或选择不同速度品质的器件。3系统的设计3.1 TRDB_LCM显示板液晶显示模块(LCM)采用的是Toppoly公司的TFTLCD模D036THEA1,可以接受RGB格式或YUV格式的8位串行数据,支持NTSC时序或PAL时序,点阵为320240,有效显示面积为72.9654.72mm,通过3线串行接口与LCM内部的寄存器交换数据来实现显示控制和功能选择。下图7所示为TRDB_LCM彩色液晶显示开发板。图7 TRDM_LCM彩色液晶显示板TRDB_LCM可以用40脚电缆直接与DE2相连,引脚定义见下表1。引脚编号名称方向含义110NCN/A未连接11VCC5N/A5V电源12GNDN/A地1320NCN/A未连接21DIN6输入LCD数据线第6位22DIN7输入LCD数据线第7位23DIN4输入LCD数据线第4位24DIN5输入LCD数据线第5位25DIN2输入LCD数据线第2位26DIN3输入LCD数据线第3位27DIN0输入LCD数据线第0位28DIN1输入LCD数据线第1位29VCC33N/A3.3V电源30NCN/A未连接31VSYNC输入垂直同步输入32NCN/A未连接33SCL输入3线串行接口时钟34DCLK输入LCD数据时钟35GRESTB输入低电平有效的全局复位信号36SHDB输入关断控制,低电平有效37CPWN/A保留引脚38SCEN输入3线串行接口使能39SDA输入/输出3线串行接口数据40HSYNC输入水平同步输入表1 TRDB_LCM的引脚TRDB_LCM的3线串行接口时序图如图8所示。SCEN为低电平时,3线串行接口有效,完成一次读/写寄存器的地址,第7位确定是读还是写,SDA为高电平则为读,SDA为低电平则为写,第8个时钟周期SDA变为高阻状态,最后8位为读或者写的数据。图8 TRDB_LCM接口时序图3.2场序彩色显示原理场序彩色显示的原理【10】如图1所示,主要是将一场的时间分成3个子场,在每个子场的时间内分别把图像的R、G、B信号写入显示屏,并依次点亮红绿蓝三色光源,利用人眼的视觉暂留特性实现彩色图像的显示。在R、G、B各子场时间内显示屏显示的都是单色图像信息,而在一场时间当中R、G、B信息分别显示一次,所以我们看到的仍是一幅全彩色图像。如图9所示。 图9 场序显示彩色原理框图3.3 LCD图形显示原理3.31 液晶显示器件像素变换工作时,液晶面板通过表面的一个个单元进行显示,每一个单元即为一个像素,而每个像素又是由R、G、B三种颜色构成,每种颜色由一个8bit的二进制数表示,即一个像素包含了三块区域的24bit的显示数据。在XGA显示模式中,每一行有320个像素,即一行包含了3203个8-bit的显示区域,R、G、B各有3个区域。在分色处理之前,显示数据是按照RGBRGB这样的顺序进行排列的,如图10左侧图形所示。而在通过图像控制器之后,R、G、B三种颜色的图像信号分别被平均地放在了液晶屏的左、中、右区域,如图10右侧图形所示,320个红色图像、320个绿色图像和320个蓝色图像数据恰好对应了液晶板3203的显示区域。这样一来,也就打乱了原有像素的分布位置。液晶显示器件的这种分像素显示的特性使得可以通过改变图像信号的地址来改变图像信号出现在液晶板上的位置,从而实现图像颜色在液晶板上的分离。如图10为像素转换图【11】【12】。图10 像素转换图3.3.2分色显示算法和FPGA片内存储器调用3.3.2.1片内存储器调用本课题所使用的FPGA是CycloneII系列的EP2C35F672,该芯片内部的块为M4K,每块RAM的容量为4kbit,共有105个这样的RAM块,即该款片内RAM的总容量为483kbit。在Quartus II中的Tools-MegaWizard Manager菜单下,按照提示步骤,选择正确的数据宽度、RAM容量,以及入个数【13】【14】。现调用片内RAM如图11所示。图11 调用FPGA内部的RAM模块data7:0:8位并行输入数据线,可存储一个像素中任意的8bit的或R、或G、或B图像数据。wraddress8:0:9位写地址线,可寻址512个存储单元。wren:写使能信号,高电平为写操作,低电平则为读操作。rdaddress8:0:9位读地址线,可寻址512个存储单元。clock:时钟信号,与系统输入时钟相连。q7:0:8位并行输出数据线。3.3.2.2RAM中数据流向说明(1)系统复位后,在第一个行周期,当DE有效时,24位的并行数据通过Sys_Data_IN端口进入控制器,并写入RAM_1;在第一个时钟周期内,首先进入控制器的是第一个像素的R1G1B1,此时分别将R1、G1、B1存入RAM_1_R1、RAM_1_G1和RAM_1_B1的第一个存储单元中;第二和第三个像素的R、G、B信号按照类似的方法分别存入RAM_1_R2、RAM_1_G2、RAM_1_B2、RAM_1_R3、AM_1_G3和RAM_1_B3中。(2)在第四个时钟时期,第四个像素的R4G4B4进入控制器,此时将R4、G4和B4分别存入RAM_1_R1、RAM_1_G1、RAM_1_B1的第二个存储单元;在下一个时钟周期,分别将R5G5B5存入RAM_1_R2、RAM_1_G2和RAM_1_B2的第二个单元;第六个像素的信号则存入RAM_1_R3、RAM_1_G3和RAM_1_B3的第二个单元中。(3)第七、第八和第九个时钟周期,按照步骤(2)将其各自的像素信号存入对应的存储器中,只是需要改变地址,将数据分别存入这9个存储模块的第三个存储单元即可。(4)重复上述三个步骤,直至一行数据存储完毕。(5)在第二个行周期到来时,按照步骤(1)-(4)将第二行数据写入RAM_2中,同时从RAM_1中将数据读取出来,通过Sys_Data_OUT并行输出至DVI编码芯片;首先读取红色数据,读取顺序为R1R2R3、R4R5R6直至将320个红色数据读取完毕;然后是320个绿色和320个蓝色数据。图12 RAM_1的数据流向数据在RAM_1中的流向如图12所示。其中Count_1为写入计数器,模为3,即写入数据时每个时钟改变一组存储器模块,共有3组;Count_2为读取计数器,模为241,读出数据时,每241个时钟改变一次所读存储模块。重复上述5个步骤,采用“乒乓操作”,使一场图像数据在RAM_1和RAM_2间交替进行读、写操作,实现分色显示。数据在片内RAM中的传输如图13所示。图13 片内RAM数据传输示意图对一组RAM来说,图像数据的写入是“打乱”了顺序来存放的;而在读取时则是“按序”进行。通过DVI编码芯片送至LCD的像素变化如图14所示。R1,1的位置不变,R1,2占据了G1,1的位置,即第二个显示单元;R1,3占据了B1,1的位置,即第三个显示单元;R1,4占据第四个单元以此类推,直至320个红色图像数据在LCD上排列完毕,才开始绿色数据,继而是蓝色数据至此,便能显示彩色图形的。R1.1R1.320 G1.1G1.320 B1.1.G1.320R2.1R2.320G2.1G2.320B1.1G2.3201. . . . .R1.1G1.1B1.1R1.320G1.320B1.320R2.1G2.1B2.1R2.320G2.320B1.320. . . 图14 分色显示后像素在LCD的变化3.4彩色显示控制器的设计显示控制电路是整个场序彩色显示【15】【16】系统的心设计部分,本文采用Verilog HDL来设计。首先编写对各单元电路进行以行为级描述的Verilog代码,再用EDA工具对Verilog HDL代码进行功能仿真和逻辑综合。经过验证的设计方案可以将综合器的输出转化成为FPGA工具能够接受的逻辑网表文件,直接下载到FPGA芯片完成设计。显示控制电如图3,主要由时钟模块、数据接口处理模块、存储模块、存储控制模块、行列时序产生模块、读写地址产生模块和背光源控制模块7个功能模块组成。本系统使用的晶振频率是50 MHz, 采用的是Toppoly公司的TFTLCD模块D036THEA1,QVGA标准320240点阵,逻辑电压输入为3.05.0 V,4 bit控制接口,具有行列驱动电路。为了实现8色伪彩显示,采用场序方式时每帧划分为三场,所以每帧的数据量为3202403位;为了节省存储器空间,选用8位字长的RAM,则RAM的存储深度至少为3202403/8=28 800字节。我们采用了嵌入方式的双端口RAM,数据源来自FPGA,将其存储器的空间分为3个部分,分别用来存放红场、绿场和蓝场数据;存储器内的数据每隔一帧更新一次。输出部分的时钟频率和数据格式必须满足单色LCM的时序要求,我们设计的显示刷新频率为70 Hz,4位数据宽度。为了减少系统的体积,提高系统的抗干扰能力,该核心部分由Altera公司CycloneII系列FPGA中的EP2C35F672C6来实现。 图15 显示控制电路框图核心部分的具体实现方案如图15所示。它是按照场序方式彩色FSC原理设计的,其中数据格式转换和时序控制,通过对两部分功能进一步细分就可以用硬件描述语言完成。当新的一幅图像信号开始后,数据格式转换模块在系统同步时钟信号和写地址模块的协调下,将来自FPGA的当前图像的红、绿、蓝3路2位并行数据信号分别转换成长度为8位的存储数据字节格式,然后同时经过双端口存储器的A口送入红、绿、蓝3个存储区域内;而在时序控制器的指挥和读地址模块协调控制下,将从存储器的B端口的红、绿、蓝3个存储区域取出已存好的数据,按照顺序依次将4位格式的数据送给LCD行列驱动器,完成显示工作。由于采用双端口存储控制技术,写入数据和读出数据分别受不同的时钟和地址控制,所以数据可以得到很好的缓冲控制,不会产生冲突。本系统设计的行列时序发生模块以及各控制模块所需要的时钟都是由50 MHz晶振通过数字锁相环技术得到,因此系统时序稳定可靠。整个系统的工作过程必须依靠严格的逻辑时序关系来协调,否则显示器不能正常工作。4基于Verilog的LCD各模块硬件设计4.1控制器模块其生成的模块【17】如下图16。 图16 控制器模块输入信号: iCLK iRST iSTR iDATA15:0输出信号: oACK oRDY oCLK I2S_EN I2S_DATA I2S_CLK功能描述:输入LCM的驱动信号控制,当数据输入LCM时,使LCM产生红.绿.蓝三色图形显示。其程序源代码如下:module I2S_Controller(/Host SideiCLK,iRST,iDATA,iSTR,oACK,oRDY,oCLK,/Serial SideI2S_EN,I2S_DATA,I2S_CLK);/Host SideinputiCLK;inputiRST;inputiSTR;input15:0iDATA;outputoACK;outputoRDY;outputoCLK;/Serial SideoutputI2S_EN;inoutI2S_DATA;outputI2S_CLK;/Internal Register and WireregmI2S_CLK;reg15:0mI2S_CLK_DIV;regmSEN;regmSDATA;regmSCLK;regmACK;reg4:0mST;parameterCLK_Freq=50000000;/50MHzparameterI2S_Freq=20000;/20KHz/Serial Clock Generatoralways(posedge iCLK or negedge iRST)beginif(!iRST)beginmI2S_CLK=0;mI2S_CLK_DIV=0;endelsebeginif( mI2S_CLK_DIV (CLK_Freq/I2S_Freq) )mI2S_CLK_DIV=mI2S_CLK_DIV+1;elsebeginmI2S_CLK_DIV=0;mI2S_CLK=mI2S_CLK;endendend/Parallel to Serialalways(negedge mI2S_CLK or negedge iRST)beginif(!iRST)beginmSEN=1b1;mSCLK=1b0;mSDATA=1bz;mACK=1b0;mST=4h00;endelsebeginif(iSTR)beginif(mST17)mST=mST+1b1;if(mST=0)beginmSEN=1b0;mSCLK=1b1;endelse if(mST=8)mACK=I2S_DATA;else if(mST=16 & mSCLK)beginmSEN=1b1;mSCLK=1b0;endif(mST16)mSDATA=iDATA15-mST;endelsebeginmSEN=1b1;mSCLK=1b0;mSDATA=1bz;mACK=1b0;mST=4h00;endendendassignoACK=mACK;assignoRDY=(mST=17)?1b1:1b0;assignI2S_EN=mSEN;assi

温馨提示

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

评论

0/150

提交评论