2 SoPC系统结构
如图3所示,SoPC系统以32位Nios II处理器为核心,将所有的接口模块集成到一块FPGA内。其中,多口SDRAM控制器作为一个自定制外设与其他通用外设(DMA控制器、SRAM控制器、Flash接口等)一同挂在Avalon总线上,并与图像采集模块、VGA显示控制模块以及12C通信模块等一起构成SoPC视频采集系统。本设计中,片外SDRAM容量较大,作为视频数据源缓冲区以及显示缓冲区;片外SRAM速度快但资源有限,可用于视频处理缓冲区。从SDRAM(数据源)到SRAM(处理缓冲区)以及从SRAM(处理缓冲区)到SDRAM(显示缓冲区)的传输,则由DMAC采用流模式的方法来实现数据的搬运。
3 流模式接口的设计
(1)四口SDRAM控制器
本系统采用片外SDRAM作为帧缓冲区,而对SDRAM使用的关键在于其控制接口的设计。在SoPCBuilder集成开发软件中,可直接使用系统元件库提供的单口SDRAM控制器,但是该控制器IP核无法满足采集、传输和显示同时进行的要求。因此,自定制了一个四口SDRAM控制器。如图4所示,该四口SDRAM控制器中的2个端口用于流模式的读和写,另外2个端口一个作为图像数据源输入,还有一个作为VGA显示输出。
由于数据采集、VGA监控、流模式传输数据流速度与SDRAM控制器存取不匹配,因此,对于这四口中的任何一个口,都用FIFO来对数据进行缓冲,以协调数据的同步而不至于错位。而每个FIFO都有个水位检测器,当水位到半满时根据仲裁电路判断的优先级启用SDRAM读写命令,以100 MHz(系统时钟频率50 MHz)的频率根据用户给定的地址信号进行批量数据的存取,从而满足了四口并用的要求。该SDRAM控制器的内部结构如图5所示。