一种支持多个音视频ip核寻址ddr的控制结构的制作方法

文档序号:6597327阅读:166来源:国知局
专利名称:一种支持多个音视频ip核寻址ddr的控制结构的制作方法
技术领域
本发明涉及集成电路设计领域,具体涉及一种支持多个音视频IP核寻址DDR的控 制结构。
背景技术
在消费电子产品的解决方案中,许多音视频模块,如MPEG编解码,图像增强,音频 的高保真回放等,都需要高速存取大量的中间数据,并且要求连续的读写数据,不能时断时 续,这就需要支持的硬件系统中有大容量的高速缓存,目前DDR因其高存储容量、低成本、 合理的通道带宽和可靠的供货能力而被大量使用,但却存在接口使用不便以及控制结构复 杂的问题。DDR是采用时钟双边沿触发的同步动态储存单元,包含有若干块(Bank),每个 Bank由很多的行(Row)和列(Column)组成。为了存取大量数据到DDR,相应的电路中需要 有DDR控制结构来控制DDR的操作。在原理和接口上,三代DDR存储器一DDR、DDR2和DDR3 有类似的结构,因此可以设计一个通用的DDR控制器,来实现对DDR、DDR2和DDR3数据读写 的控制。在当前的ASIC设计,往往把DDR控制结构分为控制层(CON=Control Layer)和物 理层(PHY=Physical Layer)层两层,控制层与应用层交换信息,负责接受应用层发来的读 写指令,而物理层则把这些指令翻译成具体的信号时序,从而控制DDR的操作。随着集成度的提高,在SoC(System on Chip)设计中集成的不同类型不同标准的 音视频IPdntel lectual Property)越来越多,不同的音视频IP都会有存取数据到DDR的 要求,这就要求这些音视频IP共享DDR,因此要设计多接口 DDR的控制结构。同时,由于DDR 的特殊架构,读写数据时需要初始化,激活(Active),刷新(Refresh),预充电(Precharge) 等特定操作,不同类型和规格的DDR对这些特殊的操作的要求并不完全一致,不同总线宽 度的DDR对这行为也有不同的操作。因此,为满足多个音视频I P对同一个DDR存储器的访问要求,需要设计一个面向 多个音视频IP的DDR控制结构。

发明内容
本发明要解决的技术问题是,设计一个面向多个音视频IP的DDR控制结构。为解决以上技术问题,本发明提供一种支持多个音视频IP核寻址DDR的控制结 构,所述控制结构包括物理层和控制层,所述物理层包括端口选择状态机、控制状态机、时 钟生成器、地址生成器、命令生成器、自动刷新器和数据通路;所述端口选择状态机包括多个连接音视频IP核信号的输入端口 ;所述控制状态机的输入端口分别和端口选择状态机、时钟生成器的输出连接,时 钟生成器的输出端口还和端口选择状态机的输入端口连接;所述控制状态机的输出端口分别和地址生成器、命令生成器以及自动刷新器的输 入端口连接;
3
所述控制状态机的输入输出端口和数据通路的输入输出端口连接;所述地址生成器、命令生成器和自动刷新器的输入端口连接DDR。优选地,所述端口选择状态机指定各IP核访问其接口的优先级,各音视频IP核按 优先级顺序访问物理层;或者,所述端口选择状态机指定各IP核的访问物理层的优先级相 同,以轮询的模式访问物理层。优选地,所述一种支持多个音视频IP核寻址DDR的控制结构支持不同的总线宽 度,总线宽度根据选定的DDR的个数以及组合来确定。优选地,所述一种支持多个音视频IP核寻址DDR的控制结构支持不同类型和规格 的 DDR。优选地,所述一种支持多个音视频IP核寻址DDR的控制结构支持DDR的突发 (Burst)工作模式。优选地,所述一种支持多个音视频IP核寻址DDR的控制结构支持交错Burst的工 作模式。优选地,所述一种支持多个音视频IP核寻址DDR的控制结构的物理层在FPGA上 实现时,通过输入/输出串化器或解串器(ISEDRES/OSEDRES)来实现数据的双沿触发。优选地,所述一种支持多个音视频IP核寻址DDR的控制结构的物理层通过FPGA 中的输入引脚延迟单元(Idelay)延迟元件,自动实现读写时选通信号的边沿与数据眼的 不同地方对齐。本发明的技术效果是,通过提供一种支持多个音视频IP核寻址DDR的控制结构, 支持多个音视频I P核寻址DDR。同时支持不同厂家的产品,通用性强。该控制结构还支持 不同的总线宽度,根据选定的DDR的个数以及组合来确定总线宽度。该控制结构支持DDR 的Burst工作模式,实现了对DDR的高速数据存取,提高了 DDR的带宽利用率。在FPGA上 实现时,通过ISEDRES和0SEDRES来实现数据的双沿触发,充分发挥了 DDR的性能。通过 FPGA中的Idelay延迟元件,自动实现读写时选通信号的边沿与数据眼的不同地方对齐,保 证了数据采集的精确性。


图1为本发明提供的一种支持多个音视频IP核寻址DDR的控制结构物理层的结 构图。图2为本发明提供的一种支持多个音视频IP核寻址DDR的控制结构物理层的接 口查询图。图3为本发明提供的一种支持多个音视频IP核寻址DDR的控制结构状态转移图。图4为DDR2在读写时采用交错Bank方式的信号时序图。图5为利用IDELAY实现DQS读数据相位对齐的原理框图。图6为ISERDES和0SERDES实现双沿触发模式的电路图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步 的详细描述。
如图1是所示是一种支持多个音视频IP核寻址DDR的控制结构物理层的结构图, 控制结构的物理层包括端口选择状态机、控制状态机、时钟生成器、地址生成器、命令生成 器、自动刷新器和数据通路。端口选择状态机包括多个连接音视频IP核信号的输入端口 ; 控制状态机的输入端口分别和端口选择状态机、时钟生成器的输出连接,时钟生成器的输 出端口还和端口选择状态机的输入端口连接;控制状态机的输出端口分别和地址生成器、 命令生成器以及自动刷新器的输入端口连接;控制状态机的输入输出端口和数据通路的输 入输出端口连接,地址生成器、命令生成器和自动刷新器的输入端口连接DDR。本发明的 DDR存储器包括DDR,DDR2和DDR3。在本实施例中,为DDR2。如图1所示,SoC设计中的多个音视频IP都有访问储存器DDR2的要求,分别用图 1中的IPl接口、IP2接口、......IPn接口等表示。下面的程序一定义音视频IP接口数和总线宽度。ENTITY DDR2_sdc_v5 ISGENERIC (SDC_P0RTS INTEGER ;BOARD:B0ARD_REC_TYPE ;FPGA:FPGA_REC_TYPE ;SDRAM DDR2_SDRAM_REC_TYPE);PORT (—standardsdc_reset :IN STD_L0GIC ;sdc_clk_in :IN STD_L0GIC ;sdc_clk_out :0UT STD_L0GIC ;sdc_aDDRess :IN STD_L0GIC_VECT0R ((SDC_P0RTS *(SDRAM. R0W_ Bff+SDRAM. COLUMN_Bff+SDRAM. BANK_Bff+DRAM. SELECT_Bff-l-2))-IDOffNTO 0);sdc_in_data :INSTD_L0GIC_VECT0R ((SDC_P0RTS ABOARD. SHARED_DEVICE_NUMBER*4*SDRAM. DATA_Bff)-IDOffNTO 0);sdc_out_data UT STD_L0GIC_VECT0R ((SDC_P0RTS ABOARD. SHARED_ DEVICE_NUMBER*4*SDRAM. DATA_Bff)-IDOffNTO 0);sdc_rnw :IN STD_L0GIC_VECT0R(SDC_P0RTS-1D0WNT0 0);sdc_req :IN STD_L0GIC_VECT0R(SDC_P0RTS-1D0WNT0 0);sdc_ack :0UT STD_L0GIC_VECT0R(SDC_P0RTS-1D0WNT0 0);sdc_out_data_valid :0UT STD_L0GIC_VECT0R(SDC_P0RTS-1D0WNT0 0);m_aDDRess :0UT STD_L0GIC_VECT0R(BOARD. SHARED_DEVICE_NUMBER*(SDRAM. R0ff_Bff+SDRAM. BANK_Bff)-IDOffNTO 0);m_data JNOUT STD_L0GIC_VECT0R(BOARD. SHARED_DEVICE_NUMBER*SDRAM. DATA_BW-1D0WNT0 0);m_csn :0UT STD_L0GIC_VECT0R(BOARD. SHARED_DEVICE_NUMBER*SDRAM. SELECT_Bff-IDOffNTO 0);m_clk:0UT STD_L0GIC_VECT0R(BOARD. SHARED_DEVIGE_NUMBER*SDRAM.CL0CK_BW-1D0WNT0 0);m_clkn :0UT STD_L0GIC_VECT0R(BOARD. SHARED_DEVICE_NUMBER*SDRAM. CL0CK_BW-1D0WNT0 0);m_cke NUMBER*SDRAM. CLOCK_Bff-IDOffNTOm_rasn NUMBER-IDOffNTO 0);m_casn NUMBER-IDOffNTO 0);m_wen NUMBER-IDOffNTO 0);m_dqs :INOUT STD_LOGIC_VECTOR(BOARD. SHARED_DEVICE_NUMBER*SDRAM. DATA_BW/8-lD0WNT0 0);m_dqsn JNOUT STD_LOGIC_VECTOR(BOARD. SHARED_DEVICE_NUMBER*SDRAM. DATA_BW/8-lD0WNT0 0);m_dm :OUT STD_LOGIC_VECTOR(BOARD. SHARED_DEVICE_NUMBER*SDRAM. DATA_ BW/8-1D0WNT0 0);m_odtOUT STD_LOGIC_VECTOR(BOARD. SHARED_DEVICE_ NUMBER*SDRAM. SELECT_Bff-IDOffNTO 0);m_rnwOUT STD_LOGIC_VECTOR(BOARD. SHARED_DEVICE_ NUMBER-IDOffNTO O));END DDR2_sdc_v5 ;下面的程序二为通用DDR2、FPGA板和FPGA参数的定义。TYPE DDR2_SDRAM_REC_TYPE IS RECORDDATA_Bff INTEGER ;R0W_BW : INTEGER ;COLUMN_Bff INTEGER ;BANK_Bff INTEGER ;CL0CK_BW : INTEGER ;
SELECT_Bff INTEGER ;INIT_WAIT_TIME_US INTEGER ;INIT_WAIT_PRECHARGE_TIME_PS INTEGER ;ACT I VE_T0_READ_0R_WRI TE_PS INTEGER ;PRECHARGE_COMMAND_PS INTEGER ;LOAD_MODE_REGISTER_CLOCK_CYCLES INTEGER ;AUTO_REFRESH_COMMAND_PS INTEGER ;WRITE_RECOVERY_TIME_PS INTEGER ;MAX_AUTO_REFRESH_PERIOD_PS INTEGER ;CLOCK_CYCLES_AFTER_DLL_RESET INTEGER ;
OUTSTD_LOGIC_VECTOR(BOARD. SHARED_DEVICE.
0);
OUTSTD_LOGIC_VECTOR(BOARD. SHARED_DEVICE.
OUTSTD_LOGIC_VECTOR(BOARD. SHARED_DEVICE. OUTSTD_LOGIC_VECTOR(BOARD. SHARED_DEVICE.
60081]CAS_LATENCY_VALUE STD_L0GIC_VECT0R (2D0WNT0 0);
0082]CAS_LATENCY_CORRECT 10N_CL0CK_CYCLES =REAL ;
0083]END RECORD ;
0084]-------------------------------------------------
0085]TYPE BOARD_REC_TYPE IS RECORD
0086]SHARED_DEVICE_NUMBER INTEGER ;
0087]DEVICE DDR2_SDRAM_REC_TYPE ;
0088]BOARD_DELAY_PS INTEGER ;
0089]USE_DQS_AS_SAMPLE_CLOCK INTEGER ;
0090]DQSN_ENABLE_VALUE :STD_LOGIC ;
0091]RTT_VALUE :STD_LOGIC_VECTOR (IDOffNTO 0);
0092]DLL_VALUE :STD_LOGIC ;
0093]OUTPUT_DRIVE_STRENGTH_VALUE :STD_LOGIC ;
0094]NUMBER_OF_IDELAYCTRL_INSTANCES INTEGER ;
0095]READ_CLK_OFFSET_PS INTEGER ;
0096]END RECORD ;
0097]------------------------------------------------
0098]—type definition for FPGA specific information
0099]TYPE FPGA_REC_TYPE IS RECORD
0100]I0B_0UT_DELAY_PS INTEGER ; 0101 ] IOB_IN_DELAY_PS INTEGER ;
0102]INT_DQS_ROUTE_DELAY_PS INTEGER ;
0103]IDELAY_RESOLUTION_PSINTEGER ;
0104]SYNC_PATH_DELAY_PS INTEGER ;
0105]CLKIN_PERIOD_DLL_LF_MS_MIN_PS INTEGER ;
0106]END RECORD ;
0107]CONSTANT MT47H32M16_3 DDR2_SDRAM_REC_TYPE =(
0108]DATA_Bff=>16,0109]R0ff_BW=>13,0110]COLUMN_Bff=>10,0111]BANK_Bff=>2,0112]SELECT_Bff=>1,0113]CLOCK_Bff=>1,0114]INIT_WAIT_TIME_US=>200,0115]INIT_WAIT_PRECHARGE_TIME_PS=>400000,0116]ACTIVE_TO_READ_OR_WRITE_PS=>15000,0117]PRECHARGE_COMMAND_PS=>15000,0118]LOAD_MODE_REGISTER_CLOCK_CYCLES=>2,0119]AUTO_REFRESH_COMMAND_PS=>105000,
WRITE_RECOVERY_TIME_PSMAX_AUTO_REFRESH_PERIOD_PSCLOCK_CYCLES_AFTER_DLL_RESET
=> 15000, => 7800000, => 200, CAS_LATENCY_VALUE
100" , —CAS Latency 4CAS_LATENCY_CORRECT 10N_CL0CK_CYCLES =>0.0);SoC设计中需要的具体接口数,可以在上述程序中的generic中定义。在本实施 例程序一的generic中,同时定义了 3个REC0DER,每一个REC0DER定义将要使用的某厂家 的DDR2元件的参数,该DDR2在板子上的集成参数,以及控制结构的物理层在某型号的FPGA 上的实现的参数。程序二定义具体的参数,如在定义DDR2的RECORD中,DATA_BW参数定义 DDR2的总线宽度,R0ff_BW参数定义DDR2的行宽度,C0LUMN_BW定义DDR2的列宽度,BANK_ Bff定义DDR2的BANK宽度,CL0CK_BW定义DDR2的时钟宽度,SELECT_BW定义DDR2的片选 宽度。在定义了这些参数之后,组成一个封装(package),在实现控制结构的物理层的源代 码中,根据实际使用的FPGA,PCB板以及DDR2的具体型号,例化该封装。这样就生成了一个 通用DDR2的控制结构的物理层。这些音视频IP在访问DDR2时,可以有优先级,这种情况下,在上一个IP核的接口 访问结束后,高优先级的接口进行下一个访问。这些IP也可以是优先级相同,所有IP以 轮询的方式工作,各接口都是访问环中的一个节点,按顺序对DDR2进行访问,访问时,占据 DDR2的整个带宽。图2是多接口控制结构中的接口查询图,这是一个状态转移图,主要由s_p0rt_ search和s_port_next_port两个状态组成,在s_port_search状态中,根据有无优先级 的工作模式,核实各接口的请求状态(req),或优先插入,或按顺序确认(ACK)下一个访问 的接口,并进入s_port_transfer_start状态,由于读音视频IP读写DDR2都工作在Burst 模式下,每一次的读和写均占据多个时钟,所以某个接口在被赋予读或写的权利后,进入s_ p0rt_transfer进行数据的有效传输。考虑到读数据操作时数据有延迟,在接口查询的状 态转移图中,特意多插入一个状态s_port_wait_for_end,这个状态在最后一个读数据获取 后,进入s_p0rt_next_p0rt状态,准备获取下一个有效接口。在获取了有效的访问接口后,这个接口将对DDR2的控制结构进行访问,其中时钟 生成器通过使用DCM资源为FPGA内部的时序元件和DDR2提供稳定可靠的时钟;DDR2需 要不断的刷新操作,同一行的存储单元每隔刷新一次,自动刷新器完成这一功能,在 自动刷新器中有刷新计数器,每当刷新计数器值减为0,便会发出刷新命令,保证DDR2内 的数据不丢失,自动刷新之后直接进行预充电来关闭工作行。地址生成器用来自动生成对 DDR2进行存取操作的Bank地址,即起始地址;命令生成器根据控制状态机的状态,生成访 问DDR2的各种控制命令,如激活(Active),读(Read),写(Write),预充电(Precharge),发 空指令(NOP)等。数据通路处理器完成读写过程中的数据处理。物理层的控制状态机是该 物理层的主控模块,其具体状态转移图如图3所示。该状态转移图分成两部分,准备阶段和 读取阶段。在准备阶段完成DDR2工作所必须的初始化工作,包括设置Burst长度为4或8, 在读取阶段完成读或写Burst的整个序列,包括Active,Read(Write),Precharge等。在音视频IP访问DDR2时,希望数据是连续的,在每一个时钟都有数据的吞吐,而
8DDR2的架构决定了其存取的数据是不连续的,通常的访问方法中,两个Burst之间至少3 个时钟的空隙,这3个时钟将没有数据的存取。为加快访问速度,提高DDR2的带宽利用率, DDR2在读写时采用交错Bank的方式,其命令序列见图4。在这种方式下,无论读或写操作 时(Burst长度为8),前后两次读(或写)操作多是针对不同的Bank进行,也就是说,在作 地址分配时,同一接口的数据被分配到不同的Bank中,例如32个word的数据(总线宽度是 16位,即lword),存入4Bank的DDR2时,其中8个word存入BankO,8个word存入Bankl, 8个word存入Bank2,8个word存入Bank3,更多word的数据会按这个顺序存入DDR2,在 读取时,这个接口的数据也是从不同的Bank顺序读出。这样做的好处是在读或写时,DDR2 吞吐的数据是连续的,在8个word和8个word数据之间没有空的时钟周期,这就克服了 由于DDR2的结构决定的两次不同行Burst操作之间必须重新发激活(Active)和预充电 (Precharge)命令,带来两组数据之间有空闲的时钟周期,从而降低了总线的利用率。在带 宽紧张的多音视频IP的SoC设计中,这中工作模式可以减少系统对DDR2元件的苛刻的带 宽要求。在状态转移图中在每一次带预充电读(Read with Auto Precharge)或待遇充电 写(Write with Auto Precharge)命令后两个周期,马上进入Active状态,激活另一 Bank 的行。在DDR2中,为了发挥DDR2的最佳性能,要求在写操作时,DSQ信号落在输出数据眼 的中心,而在读操作时,DQS信号要与数据眼的边沿对齐。在验证多接口 DDR2控制结构PHY 中,本实施例中利用FPGA中的OSERDES/1SERDES以及IDELAY等底层元件来实现,其原理框 图如图5所示。在写数据时,本实施例中指定OSERDES工作于双沿模式,送往与DQS相关的 OSERDES的分频时钟(低速时钟)相对于送往与DQ相关的OSERDES的分频时钟移相90度, 从而保证写操作时DQS落在DQ的中心。这个移相时钟可以通过FPGA中的DCM产生。在读 操作中,为克服由于板级的路径延时,和FPGA的PAD到ISERDES元件的路径延时而产生的 DQS和DQ之间的边沿对不齐,从而影响读数据的正确性,对来自DDR2的DQS经过IOBUF后插 入IDELAY元件,这样输入的DQS信号经延迟后送入ISERDES,采样双沿对齐的来自DDR2的 数据信号,从而保证采样的准确性。IDELAY是一个64-tap的可编程延迟线,能够提供对信 号的高精度的延迟,并且这个延迟不受制程、温度、压力环境的影响。在IDELAY中,本实施 例中设置IDELAY工作与固定延迟的模式,其延时值来自于板级DQ和DQS走线的差异,FPGA 内IOB到ISERDES的布线延时,BUFIO的固定延时等,一旦确定了 FPGA的型号和DDR2的板 子,这些值就固定了。经过IDELAY延时的DQS信号送入BUFIO驱动相邻管脚的ISERDES的 时钟管脚。由于DDR2中的DQ和DQS信号都是双向信号,在IOB中,调用IOBUF来实现读写 时信号的不同方向,如图6所示。在不偏离本发明的精神和范围的情况下还可以构成许多有很大差别的实施例。应 当理解,除了如所附的权利要求所限定的,本发明不限于在说明书中所述的具体实施例。
权利要求
1.一种支持多个音视频I P核寻址DDR的控制结构,所述控制结构包括物理层和控制 层,其特征在于,所述物理层包括端口选择状态机、控制状态机、时钟生成器、地址生成器、 命令生成器、自动刷新器和数据通路;所述端口选择状态机包括多个连接音视频IP核信号的输入端口 ; 所述控制状态机的输入端口分别和端口选择状态机、时钟生成器的输出连接,时钟生 成器的输出端口还和端口选择状态机的输入端口连接;所述控制状态机的输出端口分别和地址生成器、命令生成器以及自动刷新器的输入端 口连接;所述数据通路的输入输出端口分别和控制状态机的输入输出端口、DDR的输入输出端 口连接;所述地址生成器、命令生成器和自动刷新器的输出端口连接DDR。
2.根据权利要求1所述的一种支持多个音视频IP核寻址DDR的控制结构,其特征在 于,所述端口选择状态机指定各IP核访问其接口的优先级,各音视频IP核按优先级顺序访问物理层。
3.根据权利要求1所述的一种支持多个音视频IP核寻址DDR的控制结构,其特征在 于,所述端口选择状态机指定各IP核的访问物理层的优先级相同,以轮询的模式访问物理层。
4.根据权利要求1或2或3所述的一种支持多个音视频IP核寻址DDR的控制结构,其 特征在于,所述控制结构支持不同的总线宽度,总线宽度根据选定的DDR的个数以及组合 来确定。
5.根据权利要求1所述的一种支持多个音视频IP核寻址DDR的控制结构,其特征在 于,所述控制结构支持不同型号和规格的DDR。
6.根据权利要求1所述的一种支持多个音视频IP核寻址DDR的控制结构,其特征在 于,所述控制结构支持DDR的突发工作模式。
7.根据权利要求1所述的一种支持多个音视频IP核寻址DDR的控制结构,其特征在 于,所述控制结构支持交错块的工作模式。
8.根据权利要求1所述的一种支持多个音视频IP核寻址DDR的控制结构,其特征在 于,所述控制结构的物理层在FPGA上实现时,通过输入/输出串化器或解串器来实现数据 的双沿触发。
9.根据权利要求1所述的一种支持多个音视频IP核寻址DDR的控制结构,其特征在 于,所述控制结构的物理层通过FPGA中的输入引脚延迟单元,自动实现读写时选通信号的 边沿与数据眼的不同地方对齐。
全文摘要
本发明提供一种支持多个音视频IP核寻址DDR的控制结构,该控制结构包括物理层和控制层,该物理层包括端口选择状态机、控制状态机、时钟生成器、地址生成器、命令生成器、自动刷新器和数据通路;端口选择状态机包括多个连接音视频IP核信号的输入端口。该控制结构支持多个音视频IP核寻址DDR,提高了DDR的使用效率。
文档编号G06F12/02GK102117244SQ20101002242
公开日2011年7月6日 申请日期2010年1月5日 优先权日2010年1月5日
发明者俞慧月, 刘芸, 史佳欢, 张辉, 徐步陆, 樊炜, 赵乾, 陈娟, 陈玉梅, 顾文雅 申请人:上海硅知识产权交易中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1