基于FPGA实现数据LCD显示 - 图文

发布时间 : 星期一 文章基于FPGA实现数据LCD显示 - 图文更新完毕开始阅读

桂林电子科技大学毕业设计(论文)报告用纸

6.1.1 FPGA实现的原理

对于可编程逻辑器件来说,从实现原理方面上来讲,一般分为以下两种:(1)基于查找表加寄存器结构SRAM工艺的FPGA,它的集成密度比较高还有寄存器资源很丰富,偏向做时序逻辑设计这方面,比较常见于上万门以上的设计,例如数字信号处理以及各种算法的实现等等;(2)基于乘积项结构和EEPROM工艺的FPGA,它的集成密度比较低,乘积项资源也很丰富,偏向做组合逻辑设计这方面,常见于5000门以下的设计,例如编码、译码电路等等。

6.1.2 查找表的工作原理

由学习得知识可知查找表实质上就是一个RAM。现阶段在FPGA中多使用四输入的查找表(LUT),因此每个LUT可以看作是一个具有4位地址线的16×1的RAM。每当用户通过原理图或者HDL语言描述一个逻辑电路之后,FPGA开发软件会自动而且很快的计算出逻辑电路尽有可能的结果,并会把计算出的结果事先写入了RAM。故,每当输入一个信号进行逻辑运算就相当于输入一个地址进行查表,找出地址相对应的内容,然后输出结果。

6.1.3 基于FPGA逻辑实现的原理

以下以一个简单的电路为例子,具体来说明FPGA是怎么样利用以上结构实现逻辑的,电路如下图6-1.1所示:

图6-1.1 乘积项电路图

如果组合逻辑的输出(AND3的输出)为f,则从上图可以得出f的计算公示为f=(A+B)*C*(!D)=A*C*!D + B*C*!D (以!D表示D的“非”)而FPGA将是以下面的方式来实现组合逻辑f的,电路如下图6-1.2所示:

图6-1.2 乘积项电路图2

A,B,C,D分别是由FPGA芯片的管脚输入之后进入了可编程连线阵列(PIA),在它的

第24页 共51页

桂林电子科技大学毕业设计(论文)报告用纸

内部会产生有以下8个输出:A,A反,B,B反,C,C反,D,D反。图中每一个“叉”表示线路相连(即可编程熔丝呈导通状态),所以得出f的计算式为:f= f1 + f2 = (A*C*!D) + (B*C*!D) 。这样组合逻辑就实现了以下的功能。但是图3电路中D触发器实现比较简单些,它直接利用了宏单元中那些可编程的D触发器来实现。时钟信号CLK从I/O脚输入之后进入了芯片内部全局时钟专用的通道,然后直接连接到可编程触发器D的时钟端中去。可编程触发器D的输出端与I/O脚是相连的,把结果输出进芯片管脚。因此FPGA就完成了图6-1.2所示电路所完成的功能。

6.1.4 FPGA的设计方法

FPGA的常用设计方法包括2种,有“自顶向下”和“自下而上”。当前,大规模FPGA设计大都是选择“自顶向下”的这种设计方法。所谓“自顶向下”设计方法,简单来讲,无非就是使用可以完全独立于芯片厂商和其产品结构的描述语言,在功能级对设计产品进行了定义,并且结合仿真技术的功能,用来确保设计的正确性,等到功能定义完成之后,利用逻辑综合技术,再把功能描述转换成一些具体结构芯片的网表文件格式,输出到厂商的布局布线器进而开始布局布线。布局布线的结果还可以反标回同一仿真器中,进行包括功能以及时序的后验证来确保布局布线所会带来的门延时以及线延时不会影响到设计的性能。

“自顶向下”的设计方法优势是显而易见的。第一,因为功能描述完全可以独立于芯片的结构,最初阶段,设计师们可不受芯片结构的束缚,一心进行了产品设计,所以少走弯路,避免了传统设计方法带来的重新再设计的风险,从而大大缩小了设计所需周期。

第二,技术上保证了设计的再利用。当前的电子产品逐渐向模块化方向发展。什么是模块化,模块化指的是拿以往设计的成果进行修改、组合、再利用的步骤,产生了全新或者派生的设计。而且“自顶向下”的设计方法的功能描述可以和芯片的结构没有关联。所以,我们可以以一种IP(Intelligence Property 知识产权)的方式来存档,以方便日后重新利用。

第三,设计规模得以很大提高。用简单的语言描述就可以完成复杂的功能,而且并不需要手工来绘图。

第四,芯片选择比较灵活。设计师可以在较短的时间内采用多种结构芯片来完成同一种功能描述,并不是唯一的。故能够在设计规模、速度、芯片价格以及系统性能更方面的要求进行平衡,然后选择最佳的设计结果。当下我们最为常用的功能描述语言是使用均已成为国际标准的两种硬件描述语言:VERILOG HDL语言和VHDL语言。

6.1.5 FPGA的设计流程

FPGA设计的方法可以归纳为一个比较简单的设计流程。FPGA开发采用的是一种高层次设计“自顶向下”方法,符合了当今芯片的开发。

这种“自顶向下”设计方法首先得从系统的设计着手,功能方框的划分和结构设计

第25页 共51页

桂林电子科技大学毕业设计(论文)报告用纸

在顶层进行,仿真、纠错在方框图一级进行,并且用硬件描述语言对高层次的系统进行描写,在系统一级(层)中进行验证。进而使用综合优化工具生成所需具体门电路的网表,它对应的物理实现级(层)不仅可以是印刷电路板还可以专用于集成电路。因为设计的主要仿真以及调试过程是在高层次上进行的,这样不仅有利于更早的发现结构设计上的不足,避免设计工作的无用功,同时也大大减少了逻辑功能进行仿真的工作量,提高了设计的效率。

具体步骤如下:

(1)编程和编译源文件。开始需要用文本方式或图形方式将设计的思路表达出来,再进行排错编译,为了进一步的逻辑综合做好充分的准备。常用的源程序输入方式有以下几种:原理图输入方式和文本输入方式。

(2)逻辑综合和优化。将源文件经过一系列的操作之后,分解为一系列的逻辑电路和对应的联系,最后得出门级电路甚至更加底层的描述文件。然后生成了和FPGA/CPLD结构相对应的网表文件。

(3)目标器件进行布线/适配。在选用的目标器件当中建立起和网表文件相符合的基本逻辑电路对应关系。

(4)编程下载目标器件。如果在编译、综合、布线/适配以及行为仿真、时序仿真、功能仿真等等过程中都没有发现任何问题,那就是满足了原设计的要求,就可以把布线/适配器产生的配置/下载文件电缆载入到所谓的目标芯片中去。

(5)硬件的仿真/硬件的测试。在开发板上将下载好程序的FPGA进行测试,用来

第26页 共51页

编程和编译文件 逻辑综合和优化 目标期间进行布线\\适配 编程下载目标器件 硬件的仿真和测试 图6-1.3 FPGA设计方法流程图

桂林电子科技大学毕业设计(论文)报告用纸

验证设计思想和实际电路的偏差程度。 6.2 液晶显示器的选用

6.2.1 TN-LCD以及STN-LCD原理

传统TN—LCD(扭曲向列液晶显示器)缺点是电光响应速度比较慢,阈值特性不是很明显,这给多路驱动形成了很大的困难,这也使其在信息量大的视频显示上受到了局限。但是将TN—LCD液晶分子的扭曲角度从90度加大到180度至360度之间就可以制成了这个STN—LCD(超扭曲向列液晶显示器)。STN-LCD大大提高了显示方面的特性,现在几乎全部的点阵图形和很多点阵字符LCD都已经使用了STN模式,STN—LCD技术在液晶领域中已经处于逐渐成熟和稳定的阶段了。在涂有透明导电层的玻璃上用光刻形成一定的透明电极,在两片上述的玻璃授板间夹上了一层STN—LCD材料,四周都密闭,形成了一个厚度只有微米量级的扁平液晶盒子。因为此玻璃内表面涂有一定的定向层膜而且进行了定向处理,所有盒内液晶分子是沿着玻璃表面进行平行排列,如果使两片玻璃内表面定向层处理的方向呈有一定的夹角α的话,液晶分子则会在在这两片玻璃之间以α角度扭曲。正因为STN-LCD液晶分子在盒中的扭曲螺旋距比可见光的波长大很多,所以在垂直于玻璃表面这一侧的直线偏振光入射之后,它的偏光方向在通过整个赦晶层之后会被扭曲了α度从另一侧射出来,所以可以看出,此液晶盒存在在成α角度偏振片中透光的作用以及功能。

6.2.2 STN-LCD技术驱动方法

STN—LCD的显示效果是因为在显示的像素上施加了电场的原因,然而这个电场是因为显示像素前后两个电极上所产生的电压信号生成的。虽然在显示像素上建立一个直流电场并不困难,但是直流电场会导致液晶材料发生化学反应或者电极老化。从而大大降低了液晶材料的寿命问题,所以必须要建立交流电场,并且要求该电场中的直流分量越小越好,通常要求不大于50 mV。故STN—LCD必须采用交流驱动的方式。STN-LCD的显示驱动方法有蛮多种的,现在常用的有两种:静态驱动法和动态驱动法。当STN-LCD需要显示像素很多时,如果使用的是静态驱动法,将会产生很多的引脚还有庞大的驱动电路,实现起来并没有那么容易,因此我们常用动态驱动法来实现。

动态驱动法的STN-LCD电极的制作以及排布是矩阵型结构,而行电极是把水平一组显示像素的电极连接起来引出,用COM 符号来表示,列电极即是把纵向一组显示像素的电极连接起来引出,用SEG 符号来表示。每一个STN-LCD显示像素都是有它所有行和列的位置来确定的,且是唯一的。图2为N行、M列STN-LCD电极连接的示意图,所显示图形是字符“R”[8]。虽然点阵型STN-LCD和字符型STN-LCD的电极连接上有些地方是不同的,但是它们都可以由图6-2.1来表示。

第27页 共51页

联系合同范文客服:xxxxx#qq.com(#替换为@)