基于Nios II的LCD控制器IP核设计.docx
《基于Nios II的LCD控制器IP核设计.docx》由会员分享,可在线阅读,更多相关《基于Nios II的LCD控制器IP核设计.docx(32页珍藏版)》请在冰豆网上搜索。
基于NiosII的LCD控制器IP核设计
1概述
1.1课题概述
本文所要进行描述的设计是运用VHDL语言和VerilogHDL语言,通过分析LCD控制器的硬件结构和控制时序,使用SoPC技术,把NiosCPU和LCD控制器放在同一个FPGA中。
并通过对相应变量的参数化,实现有一定通用性的LCDIP核设计。
目的是解决在利用QuartusⅡ进行Nios系统开发时,由于内部没有可用LCD的IP,影响产品开发的问题。
1.2LCD控制器软核设计
所要设计的LCD控制器是要求符合Avalon总线规范的。
FPGA中集合了NiosⅡCPU、DMA和LCD控制器模块,以及三态桥(连接Flash)、SDRAM控制器。
LCD控制器的位置如图(1-1)所示,一端连接Avalon总线,一端连接LCD接口(LCD屏幕标准接口)。
LCD控制器负责从SDRAM中提取显示数据,经处理符合LCD时序规范,送至LCD接口,实现显示图像。
图1-1系统总貌图
Fig.1-1SystemSummarization
2相关技术介绍
本小节主要介绍本论文中所涉及的关键理论和技术,包括LCD显示技术,SOPC技术,SOPC技术特点,NiosII处理器,Avalon总线,DMA技术。
2.1LCD显示技术
在1970年,Ferguson制造了第一台具有实用性的LCD。
LCD使用液晶屏幕显示图象,液晶屏幕以电压供应的改变而改变光线的折射来产生色彩的变化LCD显示屏一般都应用在便携电脑或多媒体放映机上。
大部分桌面电脑的纯平LCD显示器就是采用了LCD技术。
利用液晶制成的显示器称为液晶显示器,英文称LCD(LiquidCrystalDisplay)。
其种类可分为依驱动方式之静态驱动(Static)、单纯矩阵驱动(SimpleMatrix)以及主动矩阵驱动(ActiveMatrix)三种。
而其中,单纯矩阵型又俗称的被动式(Passive),可分为扭转向列型(TwistedNematic,简称TN)和超扭转式向列型(SuperTwistedNematic,简称STN)两种;而主动矩阵型则以薄膜式晶体管型(ThinFilmTransistor;TFT)为目前主流。
LCD因具有工作电压低、功耗小、显示信息量大、寿命长、易集成、方便携带和电磁辐射污染小等优点,在显示技术中异军突起,被广泛应用于手机、PDA产品、手持式仪器仪表等便携式电子产品与设备中。
LCD驱动电路是液晶显示系统的重要组成部分,是一种计算机(或MCU)和液晶屏之间的接口电路,其主要功能是通过调制输出到液晶显示器件电极上的电位信号的相位、峰值、频率等参数来建立交流驱动电场。
由于LCD的规格相差较大,常规的方法是针对每一种LCD开发专门的驱动电路,这样的设计浪费时间,而且复用性较差。
为此,设计一种可用于多数小规模LCD驱动电路的IP核,通过复用该IP核来解决这个问题是非常必要的。
目前,国际上只有I-Shou大学的Yu-JungHuang等人设计了可驱动不同规模LCD的驱动电路IP核,通过在系统中植入嵌入式微处理器来实现这一功能。
但是,这种嵌入式微处理器使系统更复杂,而且成本更高。
本文设计的可驱动不同规模LCD的驱动电路IP核是采用FPGA来实现的,能有效克服电路系统复杂和高成本这两个缺点。
2.2SOPC技术
SoPC(SystemOnaProgramChip,片上可编程系统)是以PLD(ProgrammableLogicDevice,可编程逻辑器件)取代ASIC(ApplicationSpecificIntegratedCircuits,专用集成电路),更加灵活、高效的SoC(SystemOnChip)解决方案。
它最早是由美国Altera公司于2000年提出的,并同时推出了相应的开发软件QuartusⅡ。
SoPC是基于FPGA(FieldProgrammableGateArray,现场可编程门阵列)解决方案的SoC,与ASIC的SoC解决方案相比,SoPC系统及其开发技术具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能,具有更多的特色,构成SoPC的方案也有如下多种途径。
2.2.1基于FPGA嵌入IP硬核的SoPC系统
即在FPGA中预先植入嵌入式系统处理器。
目前最为常用嵌入式系统大多采用了含有ARM的32位知识产权处理核的器件。
但通常这种系统还须配置许多接口器件才能构成一个完整的应用系统,如除配置常规的SRAM、DRAM、Flash外,还须配置网络通信接口、USB接口、VGA接口、PS/2接口或其他专用接口等。
这样会增加整个系统的体积、功耗,而降低系统的可靠性。
但是如果将ARM或其他知识产权核,以硬核方式植入FPGA中,利用FPGA中的可编程逻辑资源和IP软核,直接利用FPGA中的逻辑宏单元来构成该嵌入式系统处理器的接口功能模块,就能很好的解决这些问题。
这样就能使得FPGA中的硬件设计核硬件实现更与处理器的强大软件功能有机的相结合,高效的实现SoPC系统。
2.2.2基于FPGA嵌入IP软核的SoPC系统
将IP硬核直接植入FPGA的解决方案也存在许多不完美之处。
例如硬核多来自第3方公司,导致FPGA器件价格相对偏高;由于硬核是预先植入的,设计者无法根据实际需要改变处理器的结构,如总线规模,接口方式,乃至指令形式,更不能将FPGA逻辑资源构成的硬件模块以指令的形式内置嵌入式系统的硬件加速模块(如DSP模块),以适应更多的电路功能要求;无法根据实际设计需求在同一FPGA中使用多个处理器核。
以上诸多不利因素可利用软核嵌入式系统处理器来有效的解决。
目前最有代表性的软核嵌入式系统处理器分别是Altera的Nios和NiosⅡ核,及Xilinx的MicroBlaze核。
特别是前者,即NiosCPU系统,将很好的解决上述不利因素。
Altera的Nios核是用户可随意配置和构建的32位/16位总线(用户可选的)指令集和数据通道的嵌入式系统32位处理器IP核,采用Avalon总线结构通信接口,带有增强的内存、调试和软件功能(C或汇编程序优化开发功能);含有FirstSiliconSolutions(FS2)开发的基于JTAG的片内设备(OCI)内核。
此外,基于QuartusⅡ平台的用户可编程的Nios核含有许多可配置的接口模块核,包括:
可配置高速缓存(包括片内ESB、外部SRAM或SDRAM,100MB以上单周期访问速度)模块,可配置RS232通信口、SDRAM控制器、标准以太网协议接口、DMA、定时器、协处理器等。
在植入FPGA前,用户可根据设计要求,利用QuartusⅡ和SoPCBuilder,对Nios及其外围系统进行构建,使该嵌入式系统在硬件结构、功能特点、资源占有等方面全面满足用户系统设计的要求。
2.2.3基于HardCopy技术的SoPC系统
HardCopy就是利用原有的FPGA开发工具,将成功实现于FPGA器件上的SoPC系统通过特定的技术直接向ASIC转化,从而克服传统ASIC技术中普遍存在的问题。
HardCopy技术是一种全新的SoC级ASIC设计解决方案,它是将专用的硅片设计和FPGA至HardCopy自动迁移过程结合在一起的技术。
首先利用QuartusⅡ将系统模型成功实现于HardCopyFPGA上,然后帮助设计者把可编程解决方案无缝的迁移到低成本的ASIC上的实现方案。
这样,HardCopy器件就把大容量FPGA的灵活性和ASIC的市场优势结合起来,实现对于有较大批量要求并对成本敏感的电子系统产品上,从而避开了直接设计ASIC的困难,达到降低成本,加快面市周期的目的。
2.3SOPC技术的特点
SoPC技术主要面向单片系统级专用集成电路设计的计算机技术,与传统的专用集成电路设计技术相比,其特点有:
●设计全程,包括电路系统描述、硬件设计、仿真测试、综合、调试、系统软件设计,直至整个系统的完成,都由计算机进行。
●设计技术直接面向用户,即专用集成电路的被动使用者同时也可能是专用集成电路的主动设计者。
●系统级专用集成电路的实现有了更多的途径,即除传统的ASIC器件外,还能通过大规模FPGA等可编程器件来实现。
2.4NiosII处理器
Nios嵌入式处理器是用户可配置的通用RISC嵌入式处理器,它是一个非常灵活和强大的处理器。
Nios处理器的易用和灵活已经使它成为世界上最流行的嵌入式处理器。
嵌入式设计者SoPCBuilder系统开发工具能够很容易地创建自己的处理器系统。
SoPCBuilder可用于集成一个或多个可配置的带有许多标准外围设备的NiosCPU,并利用自动形成的Avalon交换结构总线将这些系统连接在一起。
Nios嵌入式处理器是FPGA生产厂商Altera公司推出的软核(SoftCore)CPU,是一种面向用户的,可以灵活定制的通用RISC(精简指令集架构)嵌入式CPU。
Nios以软核的方式提供给用户,并专为在Altera的FPGA上实现作了优化,用于SoPC集成,最后在FPGA上实现。
SOPC系统主要包括一个CPU、I/O终端申请、计时器、UART口及大量的通用寄存器。
Nios的数据总线和地址总线由用户定义(最大为32位),也可以根据具体需求增加并行输入输出端、连接外设的接口逻辑等。
NiosⅡ系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS(DhrystoneMillionInstructionsexecutedPerSecond)。
Altera的Stratix、StratixGX、StratixⅡ和Cyclone系列FPGA全面支持NiosⅡ处理器,以后推出的FPGA器件也将支持NiosⅡ。
NiosⅡ系列能够满足任何应用32位嵌入式微处理器的需要,用户可以将第一代Nios处理器设计移植到某种NiosⅡ处理器上,Altera将长期支持现有FPGA系列上的第一代Nios处理器。
另外,Altera提供了一键式移植选项,可以升级至NiosⅡ系列。
NiosⅡ处理器也能够在HardCopy器件中实现,Altera还为基于NiosⅡ处理器的系统提供ASIC的移植方式。
NiosⅡ处理器还具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、JTAG调试器、实时操作系统(RTOS)和TCP/IP协议。
设计者能够用AlteraQuartusⅡ开发软件中的SoPCBuilder系统开发工具很容易地创建专用的处理器系统,并能够根据系统的需求添加NiosⅡ处理器核的数量。
使用NiosII软件开发工具能够为NiosII系统构建软件,即一键式自动生成适用于系统硬件的专用C/C++运行环境。
NiosII集成开发环境(IDE)提供了许多软件模板,简化了项目设置。
此外,NiosII开发套件包括两个第三方实时操作系统(RTOS)——MicroC/OS-II(Micrium),NucleusPlus(ATI/Mentor)以及供网络应用使用的TCP/IP协议。
在FPGA中使用软核处理器比硬核的优势在于,硬核实现没有灵活性,通常无法使用最新的技术。
随着系统日益先进,基于标准处理器的方案会被淘汰,而基于NiosII处理器的方案是基于HDL(HardwareDescriptionLanguage,硬件描述语言)源码构建的,能够修改以满足新的系统需求,避免了被淘汰的命运。
将处理器实现为HDL的IP核,开发者能够完全定制CPU和外设,获得恰好满足需求的处理器。
2.5Avalon总线简介
Avalon总线是Altera公司设计的用于SoPC中,连接片上处理器和其它IP模块的一种简单的总线协议,规定了主部件和从部件之间进行连接的端口和通信的时序。
Avalon总线的主要设计目的如下:
简单性,提供一种非常易于理解的协议;
优化总线逻辑的资源使用率,将逻辑单元保存在PLD中;
同步操作,将其它的逻辑单元很好地集成到同一PLD中,同时避免复杂的时序。
Avalon交换式总线使用最少的逻辑资源来支持数据总线的复用、地址译码、等待周期的产生、外设的地址对齐(包括支持原始的和动态的总线尺寸对齐)、中断优先级的指定以及高级的交换式总线传输。
传统的总线结构中,一个中心仲裁器控制多个主设备和从设备之间的通信。
这种结构会产生一个瓶颈,因为任何时候只有一个主设备能访问系统总线。
Avalon总线的开关构造使用一种称之为从设备仲裁(Slave-sidearbitration)的技术,允许多个主设备控制器真正地同步操作。
当有多个主设备访问同一个从设备时,从设备仲裁器将决定哪个主设备获得访问权。
Avalon规范的制定是为了适应单可编程芯片系统(SoPC)上的外设的开发。
这个规范给那些外设设计工程师提供了一个基本的描述——基于地址的Avalon总线上主(微处理器)从(存储器、UART、定时器外设等)设备的读/写口。
这个规范还描述了各个端口在Avalon交换总线上的传输方式。
根据规范,任何一个Avalon上的主设备都可以动态的连接到Avalon上的任何一个从设备上。
Avalon是一个灵活的接口,工程师可以只使用他们系统所需的数量和类型都有限的几个信号来进行数据传输。
Avalon总线定义的内联线的策略使得任何一个Avalon总线上的主设备都可以与任何一个从设备沟通。
Avalon总线还支持大范围的系统结构,包括单个的,多个的主设备系统,还具有在外设之间通过不同路径进行无缝的数据传输能力。
可以看到Avalon总线为用户提供了非常友好的接口,使得系统搭建中的一些细节问题得到屏蔽,大大减轻了系统搭建的工作量。
2.6DMA技术
(一)DMA的概念:
DMA是在专门的硬件(DMAC)控制下,实现高速外设和主存储器之间自动成批交换数据尽量减少CPU干预的输入/输出操作方式。
通常有两种方式:
独占总线方式
周期挪用方式
(二)DMA的组成:
●主存地址寄存器
●数据数量计数器
●DMA的控制/状态逻辑
●DMA请求触发器
●数据缓冲寄存器
●中断机构
(三)DMA的传送数据的过程:
由三阶段组成:
●传送前的预处理:
由CPU完成一下步骤,向DMA卡送入设备识别信号,启动设备,测试设备运行状态,送入内存地址初值,传送数据个数,DMA的功能控制信号;
●数据传送:
DMA自动完成;
●传送结束处理。
(四)DMA上应包括通用接口的全部组成部分,并多出如下内容:
主存地址寄存器,传送字数计数器,DMA控制逻辑,DMA请求,DMA响应,DMA工作方式,DMA优先级及排队逻辑等。
(五)一次完整的DMA传送过程:
DMA预处理,CPU向DMA送命令,如DMA方式,主存地址,传送的字数等,之后CPU执行原来的程序。
(六)DMA控制在I/O设备与主存间交换数据:
准备一个数据,向CPU发DMA请求,取得总线控制权,进行数据传送,修改卡上主存地址,修改字数计数器且检查其值是否为零,不为零则继续传送,若已经为零,则向CPU发中断请求。
这就是DMA的大概工作原理和特点。
图2-1FPGA中DMA单元结构框图
Fig.2-1structurediagramofDMAunitsonFPGA
2.7QuartusⅡ和SoPCBuilder简介
图2-2QuartusII软件
Fig.2-2QuartusIIsoftware
2.7.1AlteraQuartusⅡ简介
Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。
该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。
Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。
改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。
Altera公司的QuartusII设计软件提供完整的多平台设计环境,它可以轻易满足特定设计的需要。
它是单芯片可编程系统(SOPC)设计的综合性环境。
QuartusII软件拥有FPGA和CPLD设计的所有阶段的解决方案。
QuartusII支持多种输入法,包括原理图,VerilogHDL、VHDL、AHDL、EDIF等。
QuartusII支持不同的仿真方式,包括功能仿真和时序仿真。
仿真波形的激励可以是图形方式输入信号,也可以是Testbench方式文本文件(即用Tck写仿真脚本文件)。
此外,其还支持第三方的仿真工具。
用第一种方式进行仿真时,对输入信号加入相应激励就可以了。
在局部布线后,会产生以个.SOF和.POF文件,两者都可以进行下载。
我们就利用这个平台来进行工程项目开发的。
2.7.2SoPCBuilder简介
QuartusⅡ软件支持SoPCBuilder和DSPBuilder的系统级设计流程。
系统级设计流程使工程师能够以更高水平的抽象概念快速地设计和评估单芯片可编程系统(SoPC)体系结构和设计。
SoPCBuilder是自动化系统开发工具,可以有效简化建立高性能SoPC设计的任务。
此工具能够完全在QuartusⅡ软件中使系统定义和SoPC开发的集成阶段实现自动化。
SoPCBuilder允许选择系统组件,定义和自定义系统,并在集成之前生成和验证系统。
下图显示了SoPCBuilder设计流程。
图2-3SOPC设计流程
Fig.2-3SOPCdesignflowchart
SoPCBuilder可以导入或提供到达用户自定义逻辑块的接口。
SoPCBuilder系统与用户定义逻辑配合使用时具有以下四种机制:
简单的PIO连接、系统模块内实例化、到达外部逻辑的总线接口以及发布局域SoPCBuilder组件。
SoPCBuilder与QuartusⅡ软件一起提供,它为建立SoPC设计提供标准化的图形环境,其中,SoPC由CPU、存储器接口、标准外围设备和用户自定义的外围设备等组件组成。
SoPCBuilder允许选择和自定义系统模块的各个组件和接口。
SoPCBuilder将这些组件组合起来,生成对这些组件进行实例化的单个系统模块,并自动生成必要的总线逻辑,以将这些组件连接到一起。
●SoPCBuilder库组件包括:
处理器
知识产权(IP)和外围设备
存储器接口
通信外设总线和接口,包括Avalon总线和AMBA高性能总线(AHB)
数字信号处理(DSP)内核
软件
标题文件
一般C驱动器
操作系统(OS)内核
可以使用SoPCBuilder构建包括CPU、存储器接口和I/O外设的嵌入式微处理器系统;但是,还可以生成不包括CPU的数据流系统。
它允许指定具有多个主连接和从连接的总线拓扑结构。
SoPCBuilder还可以导入或提供到达用户自定义逻辑块的接口,其中,逻辑块作为自定义外设连接到系统上。
●建立系统
在SoPCBuilder中构建系统时,可以选择用户自定义模块或模块集组件库中提供的模块。
SoPCBuilder可以导入或提供到达用户自定义逻辑块的接口。
SoPCBuilder系统与用户定义逻辑配合使用时具有以下四种机制:
简单的PIO连接、系统模块内实例化、到达外部逻辑的总线接口以及发布局域SoPCBuilder组件。
SoPCBuilder提供用于下载的库组件(模块),包括Excalibur嵌入式处理器带区和NIOS处理器等处理器、UART、定时器、PIO、Avalon三态桥接器、多个简单的存储器接口和OS/RTOS内核。
此外,还可以从一系列的MegaCore、OpenCore生成系统生成系统。
可以在模块集中选择库组件,并在模块表中显示添加的组件。
可以使用模块表或单独向导中的信息定义以下组件选项:
系统组件和接口
主连接和从连接
系统地址映射
系统IRQ分配
共享从连接的仲裁优先级
系统时钟频率
●生成系统
SoPCBuilder中的每个工程包含系统描述文件(PTF文件),它包含在SoPCBuilder中输入的所有设置、选项和参数。
此外,每个模块具有相应的PTF文件。
在生成系统期间,SoPCBuilder使用这些文件为系统生成源代码、软件组件和仿真文件。
完成系统设计之后,可以使用SoPCBuilder的SystemGeneration页或使用命令行生成系统。
SoPCBuilder软件自动生成所有必要逻辑,用以将处理器、外围设备、内存、总线、仲裁器、IP内核及到达系统外逻辑和存储器的接口集成在一起,并建立将组件捆绑在一起的HDL源代码。
SoPCBuilder还可以建立软件开发工具包(SDK)软件组件,例如,标题文件、一般外围设备驱动程序、自定义软件库和OS/实时操作系统(RTOS内核),以便在生成系统时提供完整的设计环境。
为了仿真,SoPCBuilder建立了ModelTechnologyModelSim仿真目录,它包含ModelSim工程文件、所有存储器组件的仿真数据文件、提供设置信息的宏文件、别名和最初的一组总线接口波形。
它还建立仿真测试台,可以实例化系统模块、驱动时钟和复位输入,并可以实例化和连接仿真模型。
还生成Tcl脚本,用于在QuartusⅡ软件中设置系统编译所需的所有文件。
3方案设计
根据系统设计的要求,以及NiosII嵌入式系统的特点,提出以下两个方案,做相应的比较和分析,从而确定更为合适的、可行的、有实用价值的设计方案。
3.1方案
(一)
方案
(一),逻辑器件由以下组成:
表3-1方案一逻辑器件
Table3-1logicdeviceofNo.1blueprint
NiosCPU
DMA
MUX
SDRAM
Flash
1
1
2
2
1
Flash存储初始化信息和图像数据,当系统上电复位时,将存储的信息通过CPU分别存入SDRAM
(1)、
(2);此时SDRAM
(1)用于系统程序运行存储,而SDRAM
(2)用于独立显示存储。
DMA负责把显示信息从SDRAM
(2)中顺序提取,并送入LCD控制模块中的视频缓存FIFO中,并配合LCD的控制时序,把显示像素数据RGB送到LCD显示器上显示。
这个设计的特点是给与系统以独立的程序运行空间和视频数据的缓存。
但存在一定的局限性。
这个方案的特点是系统结构清晰;系统程序和像素数据分开存储,划分严格,有良好的操作性。
图3-1方案
(一)系统框图
Fig.3-1SystemdiagramofNo.1blueprint
3.2方案
(二)
方案
(二)设计,逻辑器件由以下组成:
表3-2方案二逻辑器件
Table3-2logicdeviceofNo.2blueprint
NiosCPU
DMA
MUX
SDRAM
Flash
1
1
1
1
1
同方案
(一)Flash用来存储初始化程序和图像信息,系统上电复位后,信息通过NiosCPU将信息存于同一个SDRAM中,划分SDRAM的地址分配,使系统和像素信息共享SDRAM空间。
这个系统的特点就是把系统