依据NiosII 软核的SOPC(System ON Programmable Chip)是Altera 公司提出的片上可编程体系解决方案,它将CPU、存储器、I/O接口、DSP 模块以及锁相环(PLL)的体系规划所有必要的模块集成到一片FPGA 上,构成一个可编程的片上体系,使所规划的电路在其规划、可靠性、体积、功耗、功用、上市周期、开发本钱、产品保护以及硬件晋级等多方面完结最优化。
现在在Altera SOPC Builder 下集成了包含UART、SPI、Ethernet、SDRAM、Flash、DMA等操控器的IP 核。此外,用户也能够依据体系的需求自己规划或许购买第三方厂商的IP 核经过Avalon 总线像搭积木相同便利地将这些IP 绑缚的体系上。但是在显现接口上,Altera公司只供给了一个16*2 的字符型LCD 操控器的IP 核,只能用来显现数字和英文字母。如用户需求图形显现(如MP4 和PDA)则需求外接专用操控芯片或自己规划IP 核,运用起来很不便利。因而咱们规划一个依据Nios II 体系的可装备LCD 操控器的IP 核,本IP 核能够便利的经过Avalon 挂接到Nios II 的体系上。考虑到现在LCD 显现屏的实际需求,咱们规划的LCD 显现操控IP 核具有以下首要功用:
·以Avalon 总线流传输形式供给接口;
·为LCD 屏供给扫描时序信号和显现数据;
·供给能够挑选的分辨率,最大能够支撑1024*768;
·能够经过软件装备显存的基地址和巨细;
1. Avalon 总线规范
1.1 总线概述
Avalon 总线是Altera 公司为SOPC 体系开发的一种专用的内部连线技能,是一种抱负的用于体系处理器和外设之间的内联总线。它是构建在Nios II 软核的基础上,由Altera 公司供给SOPC Builder 体系规划东西主动生成。
Avalon 总线支撑多个主外设,任何一个主外设都能够直接进行存储器拜访(DMA),而无须Nios II 处理器的干涉。一般的体系总线(如AMBA 总线)都是选用主端总裁机制,而Avalon 选用DMA 从端裁定机制,能够完结真实意义上的多模块DMA 并行传输,而不相互影响。
Avalon 总线答应多个主端口连接到总线模块,完结总线的的并发多主端口传输的功用,而总线模块不需求额定的特别信号;当有多个主外设企图一起拜访同一外设时,由Avalon总线模块内部的从端口裁定逻辑来处理抵触,关于主端口来说,它并不会感到有另一个主端口也在争用该外设,而是简略的发现它的等候恳求信号一向有用,直到方针外设从端口预备好来处理自己的恳求。因而,多个主外设只需不是一起拜访同一个从外设,即可一起进行总线传输。裁定的详细信息被封装在总线内部,主外设和从外设的接口是共同的,与外设的数量无关。
1.2 Avalon 总线流传输形式
Avalon 规则了各种传输形式,这儿只介绍本IP 核所运用的流传输形式。关于其他的总线形式读者能够Avalon 的总线规范。
流传输形式是在流形式主外设和流形式从外设之间树立一个敞开的信道以供接连的数据传输。该信道使得只需存在有用数据,数据便能在主从端口对之间活动,主外设不用为了确认从端口是否可用而不断地拜访从外设的寄存器。流传输形式使得主从端口之间的数据吞吐量到达最大,一起避免了从外设数据溢出。流传输形式最适合DMA 传输。一个只包含简略的流操控信号和一个计数器的DMA 操控器就能够用来在一个从外设和一个存储器之间接连地传输数据。
因为数据流是从Avalon 总线流向LCD 操控器,所以是流形式的从端口写传输。图1 显现了流形式从端口写传输的模型。
除了根本从端口传输中运用的信号外,流形式外设的接口中又引入了readyfordata、dataavailable 和 endofpacket 三个信号。流形式从端口便是指运用了一个或多个上述信号的从端口。readyfordata 有用表明外设预备好承受 Avalon 总线模块的写传输;dataavailable 有用表明能够为来自 Avalon 总线模块的读传输供给数据。Avalon 总线模块只在 readyfordata或 dataavailable 有用时才会建议传输行为。endofpacket 信号的意义取决于用户规划。
2. Avalone 流形式LCD 操控器IP 核规划
LCD 操控器按功用可划分为三个模块:接口模块,数据处理模块和时序发生模块。接口模块首要用来对体系进行装备,获取体系状况信息以及从内存读出即将显现的数据信息;数据处理模块依据体系的装备信息,对读入操控器的内存数据进行相应的处理,以契合用户设置的显现要求;时序发生模块发生显现时序信号,使得体系在不同的装备下都能发生与之相应的准确时序,以确保图象的正确显现。
在详细完结时,这三个部分又能够划分为不同的功用模块来完结体系的整体功用。整个模块包含装备寄存器接口模块、DMA 接口模块组成和异步FIFO 模块,时序发生部分由时序发生模块构成。
2.1 DMA 接口模块
一般情况下,LCD 显现需求进行大批量的数据传送。在规范 VGA(640×480 60Hz)形式下,每个像素点的扫描周期只要40ns。如此高速的数据传输,假如直接经过CPU 来操作,将会耗费很多的CPU 时刻。为了进步CPU 的作业效率,咱们在Nios II 下运用DMA(Direct Memory Access,直接存储器拜访)来完结。运用DMA 操控器在LCD 操控器和显现存储器SDRAM 之间树立一条专用的DMA 传输通道,经过DMA 操控器主动的读去图象数据,不需求CPU 干涉。
在DMA 传输时,首要需求由CPU 对DMA 进行初始化,设置显现存储器的基地址和长度以及LCD 操控器输入寄存器的地址,然后翻开DMA 传输通道,使DMA 在没有CPU 干涉的情况下直接从显现存储器读取显现数据传送到LCD操控的FIFO中。Nios II 能够在DMA暂停传输的期间操作SDRAM 中的显存,完结LCD 显现图画的更新。
DMA 接口选用Avalon 主设备端口来完结。
2.2 装备积存器接口模块
体系能够经过装备寄存器接口模块对LCD 显现操控器进行各种功用装备;LCD 操控器也能够经过接口模块向体系反应所需的状况信息,然后完结对体系状况的检测和操控。经过针对不同品种的LCD 屏幕和不同的显现形式供给相应寄存器,能够确保关于各种LCD 显现屏的兼容。
2.3 异步FIFO 模块
因为总线接口模块和LCD 操控器作业在不同的时钟域,假如直接传送数据将会使电路进入亚稳态,无法正常作业。所以运用异步FIFO 做为接口在两个时钟之间传递数据。典型的异步FIFO 由异步双端口RAM 和操控逻辑构成。