基于MIPS内核的HDTV-SoC平台总线接口模块

分享到:

        在系统级芯片(SoC)的设计当中,MIPS的RISC处理器是一种应用非常广泛的嵌入式CPU,它具有高性能、低功耗的特点,可以很方便地集成到一个完整的片上系统之中,使开发者能够专注于用户IP模块的设计。 

       MIPS架构的处理器占据了数字机顶盒微处理器和解码器用CPU架构市场领域的领先地位。在MIPS家族的产品当中,32位的4KcTM处理器是具有代表性的一款,它采用了MIPS32的CPU架构,支持MIPS IITM指令集。在本文介绍的SoC系统设计中,就采用了MIPS32TM4KcTM处理器作为芯片的CPU内核。

  在当前的数字消费电子市场领域,基于SoC平台的HDTV芯片是所有数字电视接收及播放设备的核心器件。SoC芯片具体到HDTV解码系统,就是把MPEG-2解复用(DeMux)、音视频解码(AVD)、视频格式转换(VTP)、画面后处理(OSD)以及接口I/O控制等功能模块都集成在一块芯片上。而要把众多功能复杂的系统控制模块和用户IP模块集成到一个芯片上并使其能够协调工作,就必须设计好各个模块之间的接口。本文针对高清数字电视SoC平台的项目,提出了系统总线接口模块(Host Bus InteRFace,HIF)的设计方案,并进行了仿真实验。

  HIF模块在系统中的主要功能

  HDTV-SoC平台是一个功能强大、结构复杂的系统,本文重点介绍了SoC架构中片上总线控制器的设计。片上总线能够提供针对特定应用的灵活多样的集成方法,它需要结构简单,速度快捷,在单芯片中实现多资源互联。HDTV-SoC系统的总线结构如图1所示。它分为3个层次,即与MIPS处理器接口的Ec总线(EcInterface)、系统总线和外围总线。由图1可见,HIF模块在系统中所处的位置是十分关键的,它是系统总线(Host Bus)和各个IP模块以及周边I/O模块之间的接口单元,即系统总线和外围总线之间的桥梁,在系统中起着“承前启后”的作用,是CPU和外部模块之间数据交换的重要通道。具体而言,HIF模块主要完成3大功能,分别为外部模块W/R寄存器的设置和状态寄存器的读取、外部模块双口RAM的读写控制、外部模块中断的控制和管理。

HDTV-SoC系统框图


  图1  HDTV-SoC系统框图

  电路功能模块设计

  由上文所述可知,HIF电路设计主要分为3个模块:寄存器读写模块,双口RAM读写模块和中断处理模块。

  寄存器读写模块

  CPU和外部模块之间进行数据交互的一个重要方式就是通过寄存器的读写,实现对外部模块功能的控制和初始化。系统总线按照规定的时序读写HIF模块内部的寄存器资源,这些寄存器的每个比特位以连线的方式直接与外部模块互连。HIF模块在接收到系统总线过来的地址和数据之后,首先进行地址译码,选择相应的寄存器,再将数据写入。

       图2为该模块的逻辑框图。

寄存器读写模块框图

                                                   图2  寄存器读写模块框图

  MIPS的4Kc处理器支持猝发(burst)操作,所谓猝发操作是指在给出首地址之后,可以连续进行多个读写操作,而无须再给出每次操作的相应地址。在总线上,一个猝发指令与单个操作指令一样,只占用一个时钟周期。HIF模块在处理猝发操作时,将一个猝发指令转换为4个单周期指令,在转换之后,要保证从总线上过来的写数据与其相应的指令同步。这样在猝发操作时,从寄存器组的角度看到的写数据与指令是同时发生的,尽管实际情况并不是这样。而要实现这种猝发操作,就必须引入一种FIFO机制。FIFO的深度为4,这与4Kc处理器所支持的猝发长度是一致的。在系统复位之后FIFO清空,可以随时接收总线上的猝发数据。在系统正常工作时,FIFO模块分别通过“in”和“out”指针来指示输入和输出的数据,以跟踪FIFO的使用情况。FIFO还需要用到一个“bypass”信号来确定是否旁路该模块,这发生在单个指令操作的情况下(bypass=‘1’),这时数据是绕过FIFO而直接通向寄存器的。FIFO机制的逻辑框图见图3。

FIFO机制逻辑框图


  图3  FIFO机制逻辑框图

精彩活动