首页> 中国专利> 一种选择SDRAM时钟参数的方法和SOC芯片

一种选择SDRAM时钟参数的方法和SOC芯片

摘要

本发明涉及一种选择SDRAM时钟参数的方法,包括:对SDRAM进行初始化;在所述SDRAM的指定地址写入数据;读取所述SDRAM的指定地址中的数据;判断从所述指定地址读取的数据与所述指定地址写入的数据是否相同;当判断结果为相同时,通过URAT串口打印第一标识符号;当判断结果为不相同时,通过所述URAT串口打印第二标识符号;将所述第一标识符号和所述第二标识符号组建为二维MAP地图;通过所述二维地图选择SDRAM的时钟参数,从而提高选择SDRAM的时钟参数的效率。

著录项

  • 公开/公告号CN103678142A

    专利类型发明专利

  • 公开/公告日2014-03-26

    原文格式PDF

  • 申请/专利权人 深圳艾科创新微电子有限公司;

    申请/专利号CN201210355196.7

  • 发明设计人 李森;张荣;刘彬;常军锋;石岭;

    申请日2012-09-21

  • 分类号G06F12/02(20060101);G06F1/04(20060101);

  • 代理机构

  • 代理人

  • 地址 518057 广东省深圳市南山区科技中二路软件园一期4栋406室

  • 入库时间 2023-12-17 01:00:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-05

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F12/02 变更前: 变更后: 申请日:20120921

    专利权人的姓名或者名称、地址的变更

  • 2017-12-22

    授权

    授权

  • 2015-08-26

    实质审查的生效 IPC(主分类):G06F12/02 申请日:20120921

    实质审查的生效

  • 2014-03-26

    公开

    公开

说明书

技术领域

本发明涉及通信领域,尤其涉及一种选择SDRAM时钟参数的方法和SOC芯片。 

背景技术

在车载方案中,随着核心芯片多媒体片上系统(System On Chip,SOC)不断推陈出新,对该SOC中的同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)控制也有了更高的要求。通常SOC对SDRAM的频率控制不会超过132MHz,并且所配备的SDRAM内存容量也不超过32MB,但目前的发展趋势要求SOC对SDRAM的频率控制超过132MH,并且实现在高低温的环境下稳定工作。 

在现有的车载方案中,在SOC对SDRAM的频率控制过程中,若对SDRAM的时钟参数选择不正确,将会导致系统不能稳定工作,其主要原因有两个:第一个最重要的原因在于硬件系统中芯片的内核电压对SDRAM的时钟参数的影响很大,在1.2V,1.3V,1.32V和1.4V测试得到的SDRAM时钟参数有增大趋势,必须取到公共的参数才有可能符合使用要求,但范围很小,且不一定稳定;第二个原因在于根据不同环境温度选择的SDRAM时钟参数会造成系统在常温下工作不稳定。 

在现有技术中,现有的SDRAM的时钟参数选择方法为经验试探法,该方法是对SDRAM读写时序影响比较大的两个Delay cell和两个SDRAM_CLK时钟序列参数采用人工经验选择,进行大量的测试实验,甚至采用穷举的方法,选择的 SDRAM_CLK范围为0或1,选择的Delay cell范围为0到63,一共64个数值可以被选择,这四个SDRAM时钟序列参数又分为两组,按照排列组合结合经验选择,效率非常的低下,选择的SDRAM时钟参数对SDRAM读写时序影响很大,不准确,更多的是依靠非常有经验的工程师。 

发明内容

本发明要解决的技术问题是提供一种智能终端及其通过GPS追踪的方法,以提高选择SDRAM的时钟参数的效率。 

本发明的发明目的是通过以下技术方案来实现的: 

一种选择SDRAM时钟参数的方法,包括:对SDRAM进行初始化;在所述SDRAM的指定地址写入数据;读取所述SDRAM的指定地址中的数据;判断从所述指定地址读取的数据与所述指定地址写入的数据是否相同;当判断结果为相同时,通过URAT串口打印第一标识符号;当判断结果为不相同时,通过所述URAT串口打印第二标识符号;将所述第一标识符号和所述第二标识符号组建为二维MAP地图;通过所述二维地图选择SDRAM的时钟参数。 

上述的选择SDRAM时钟参数的方法,其中:所述SDRAM的指定地址包括第一指定地址、第二指定地址和第三指定地址,所述在所述SDRAM的指定地址写入数据的步骤包括:将预定的相同大小的数据分别写入所述第一指定地址、第二指定地址和第三指定地址;所述读取所述SDRAM的指定地址中的数据的步骤包括:分别读取所述第一指定地址、第二指定地址和第三指定地址中的相同大小的数据。 

上述的选择SDRAM时钟参数的方法,其中:所述判断从所述指定地址读取 的数据与所述指定地址写入的数据是否相同的步骤包括:判断从所述第一指定地址读取的数据与在所述第一指定地址写入的数据是否相同,判断从所述第二指定地址读取的数据与在所述第二指定地址写入的数据是否相同,判断从所述第三指定地址读取的数据与在所述第三指定地址写入的数据是否相同。 

上述的选择SDRAM时钟参数的方法,其中:所述判断从所述指定地址读取的数据与所述指定地址写入的数据是否相同的步骤进一步包括:当判断从所述第一指定地址读取的数据与在所述第一指定地址写入的数据相同,并判断从所述第二指定地址读取的数据与在所述第二指定地址写入的数据相同,以及判断从所述第三指定地址读取的数据与在所述第三指定地址写入的数据相同时,判断从所述指定地址读取的数据与该指定地址写入的数据相同。 

上述的选择SDRAM时钟参数的方法,其中:所述判断从所述指定地址读取的数据与所述指定地址写入的数据是否相同的步骤进一步包括:当判断从所述第一指定地址读取的数据与在所述第一指定地址写入的数据不相同时,或,判断从所述第二指定地址读取的数据与在所述第二指定地址写入的数据不相同时,或,判断从所述第三指定地址读取的数据与在所述第三指定地址写入的数据不相同时,判断从所述指定地址读取的数据与该指定地址写入的数据不相同。 

一种应用于选择SDRAM时钟参数的SOC芯片,包括:处理器、SDRAM、时钟单元和通用异步接收发送单元;其中,所述时钟单元用于为所述SDRAM提供时钟参数;所述处理器用于先对所述SDRAM进行初始化,在所述SDRAM的指定地址写入数据,再读取所述SDRAM的所述指定地址中的数据,判断从所述指定地址读取的数据与所述指定地址写入的数据是否相同;所述通用异步接收发送单元用于当所述处理器的判断结果为相同时,打印第一标识符号,并当判断结果 为不相同时,打印第二标识符号;所述处理器进一步用于将所述第一标识符号和所述第二标识符号组建为二维MAP地图,通过所述二维地图为所述时钟单元选择SDRAM的时钟参数。 

上述的应用于选择SDRAM时钟参数的SOC芯片,其中:所述SDRAM的指定地址包括第一指定地址、第二指定地址和第三指定地址,所述处理器具体用于将预定的相同大小的数据分别写入所述第一指定地址、第二指定地址和第三指定地址,当写入后,并分别读取所述第一指定地址、第二指定地址和第三指定地址中的相同大小的数据。 

上述的应用于选择SDRAM时钟参数的SOC芯片,其中:所述处理器具体用于判断从所述第一指定地址读取的数据与在所述第一指定地址写入的数据是否相同,判断从所述第二指定地址读取的数据与在所述第二指定地址写入的数据是否相同,判断从所述第三指定地址读取的数据与在所述第三指定地址写入的数据是否相同。 

上述的应用于选择SDRAM时钟参数的SOC芯片,其中:所述处理器具体用于当判断从所述第一指定地址读取的数据与在所述第一指定地址写入的数据相同,并判断从所述第二指定地址读取的数据与在所述第二指定地址写入的数据相同,以及判断从所述第三指定地址读取的数据与在所述第三指定地址写入的数据相同时,判断从所述指定地址读取的数据与该指定地址写入的数据相同。 

上述的应用于选择SDRAM时钟参数的SOC芯片,其中:所述处理器具体用于当判断从所述第一指定地址读取的数据与在所述第一指定地址写入的数据不相同时,或,判断从所述第二指定地址读取的数据与在所述第二指定地址写入的数据不相同时,或,判断从所述第三指定地址读取的数据与在所述第三指定 地址写入的数据不相同时,判断从所述指定地址读取的数据与该指定地址写入的数据不相同。 

通过本发明实施例提供的技术方案,可以不额外增加硬件资源,仅使用UART串口工具和二维MAP图选择工具,即可实现SDRAM控制时钟参数的准确选择,并不需要依靠有经验的工程师,从而可提高选择SDRAM的时钟参数的效率。 

附图说明

为了易于说明,本发明由下述的较佳实施例及附图作以详细描述。 

图1所示为本发明实施例提供的选择SDRAM时钟参数的方法的流程图; 

图2所示为本发明实施例提供的存储空间的矩形区域示意图; 

图3所示为本发明实施例提供的二维MAP地图的示意图; 

图4所示为本发明实施例提供的参数的示意图; 

图5所示为本发明实施例提供的选择SDRAM时钟参数的SOC芯片的结构图; 

图6所示为本发明实施例提供的选择SDRAM时钟参数的SOC芯片具体结构图。 

具体实施方式

下面将结合附图对本发明的实施例进行详细说明。 

图1为本发明实施例提供的选择SDRAM时钟参数的方法的流程图。 

在本实施例中,对SDRAM读写时序影响比较大的Delay cell参数和SDRAM_CLK参数作为例子进行说明。在本实施例中,将SDRAM时钟序列参数分为两组,第一组为Delay cell参数,第二组为SDRAM_CLK参数;其中,Delay cell参数为延时时间参数,将该Delay cell参数分为两个数据参数,分别包括读数据的延时时间参数和写数据的延时时间参数,因而,第一组Delay cell参数中存在四种状态,比如,用0表示读数据,用1表示写数据,就会有四种状态; SDRAM_CLK参数为SDRAM的时钟参数,也是包括两个数据参数,分别为上升沿状态的时钟参数和下降沿状态的时钟参数。 

在本实施例中,步骤S100,对SDRAM进行初始化。在本实施例中,SDRAM在上电之后,必须先进行初始化才能正常的运行。 

步骤S102,在SDRAM的指定地址写入数据。在本实施例中,将对SDRAM的指定地址的连续数据进行先进行写操作,再进行读操作。在本实施例中,在搬移数据中取其中的矩形区域地址先进行写操作,再进行读操作。 

如图2所示,将存储空间可以分别8MB,16MB,32MB,和64MB的矩形区域地址,当然也可以有其它容量的矩形区域地址,比如24MB。若该SDRAM的容量为32MB,在写入数据的时候,将16MB地址的前后2048Byte作为第一指定地址,即将16MB地址的前后2048Byte作为写入数据的第一目的地址,再将预定的数据写入该第一指定地址,即写入4096Byte;同时,还将8MB地址的前后2048Byte作为第二指定地址,即将8MB地址的前后2048Byte作为写入数据的第二目的地址,再将预定的数据写入该第二指定地址,即写入4096Byte,另外,再将还将24MB地址的前后2048Byte作为第三指定地址,即将24MB地址的前后2048Byte作为写入数据的第三目的地址,即写入4096Byte。当然,上述的写入数据操作,可以同时进行,也可以分别进行。在本实施例中,上述的预定的数据可以0xa55a5aa5,当然,也可以取其它数值,本发明不进行限制,即将0xa55a5aa5中的4096Byte写入指定地址。 

步骤S104,读取SDRAM中指定地址中的数据。在本实施例中,读取SDRAM中第一指定地址、第二指定地址和第三指定地址中的数据。在本实施例中,读取第一指定地址的前后2048Byte数据,读取第二指定地址的前后2048Byte数据,读取第三指定地址的前后2048Byte数据。 

步骤S106,判断从该指定地址读取的数据与该指定地址写入的数据是否相同。在本实施例中,可以理解为,判断该指定地址的读写数据是否正确或是否相同。在本实施例中,判断从第一指定地址读取的数据与该第一指定地址写入的数据是否相同,判断从第二指定地址读取的数据与该第二指定地址写入的数据是否相同,判断从第三指定地址读取的数据与该第三指定地址写入的数据是否相同。 

在本实施例中,当判断从第一指定地址读取的数据与该第一指定地址写入的数据相同,并判断从第二指定地址读取的数据与该第二指定地址写入的数据相同,以及判断从第三指定地址读取的数据与该第三指定地址写入的数据相同时,即判断从指定地址读取的数据与该指定地址写入的数据相同时,执行步骤S108; 

在本实施例中,当判断从第一指定地址读取的数据与该第一指定地址写入的数据不相同时,或,判断从第二指定地址读取的数据与该第二指定地址写入的数据不相同时,或,判断从第三指定地址读取的数据与该第三指定地址写入的数据不相同时,即只要有一个判断结果为不相同时,就执行步骤S110。 

步骤S108,通过URAT串口打印第一标识符号。在本实施例中,该第一标识符号可以用“!”表示,当然,也可以用其它符号进行标识,本发明对此不限制。 

步骤S110,通过URAT串口打印第二标识符号。在本实施例中,该第二标符号可以用“.”表示,当然,也可以用其它符号进行标识,本发明对此不限制。 

当执行完步骤S108和S110后,执行步骤S112,即,将第一标识符号和第二标识符号组建为二维MAP地图。可以参考图3所示。在本实施例中,图3中顶端的第一行为两个SDRAM时钟信号的状态,即上升沿和下降沿状态,也可以理解时钟信号的两个参数。图3中的列方向为第一组Delay cell参数中的第一DELAY_CELL参数,行方向为第二个DELAY_CELL参数,因而,通过上述的四 个参数就可以组建为一张二维地图。 

当然,由于第一组Delay cell参数存在四个状态,因而,针对每一个状态,都可以组建一张二维地图,因而,可以有四张二维地图。 

步骤S114,通过该二维地图选择SDRAM的时钟参数。在本实施例中,可以通过加载所生成的二维地图,就可以自动生成符合SDRAM的控制时钟稳定时序的DELAY_CELL参数和SDRAM_CLK参数,再合并到实际的软件程序使用。在本实施例中,可以通过使用SdramUtils工具打开该二维地图文件,可以得到clk5-0,clk17,clk19,clk31-26,S-COL-ADDR_WIDTH,S_ROW_ADDR_WIDTH,SDRAM Column address,S_BANK_ADDR_WIDTH,FULL_SIZE这些参数,参考图4所示,再将上述得到的参数的值整理到实际的工程中进行测试和使用。合并到实际的软件工程中测试,测试结果表明,选择的参数立即可以稳定使用,基本不需要再次选择,即使在高温低稳的环境下,通过该方法选择的参数也基本一次性通过测试,选择的参数直接可以使用。 

从定量上对本发明所述的方法和经验穷举法比较分析,能更清晰地看出效率提升的实际效果。假设访问的地址物理空间为4096Byte,使用经验穷举法,很耗时费力,虽然SDRAM_CLK参数只有4种选择,但DELAY_CELL有64x64=4096种选择,不依靠经验,穷举法基本无法实现对参数的选择,应用本发明所述的方法来实现SDRAM控制时钟参数的选择,效率明显提升。而实际上单靠经验选择的参数,能稳定工作的只有10%左右。换句话说在通常情况下,应用本发明所述的方法来实现SDRAM控制时钟参数的选择在通常情况下将有90%的效率提升。 

因而,通过使用本发明提供的技术方案,可以不额外增加硬件资源,仅使用UART串口工具和二维MAP图选择工具,即可实现SDRAM控制时钟参数的准确选择,并提高选择SDRAM的时钟参数的效率。 

在本实施例中,图5所示为本发明实施例提供的选择SDRAM时钟参数的SOC芯片的结构图。 

在本实施例中,该SOC芯片20可以与显示单元10和输入输出设备30分别通信相连接。显示单元10可以为显示器,输入输出设备30可以为键盘或是按键。当然,该SOC芯片可以集成于导航装置或通信装置中。 

在本实施例中,SOC芯片20包括处理器200,SDRAM202,时钟单元204,和通用异步接收发送单元UART206。在本实施例中,通用异步接收发送单元UART206与显示单元10和输入输出设备30分别通信连接,并与处理器200通信连接,该处理器200分别与SDRAM202和时钟单元204通信连接,SDRAM202与时钟单元204通信连接。 

在本实施例中,时钟单元204用于为SDRAM202提供时钟参数,处理器200用于根据时钟单元204提供的时钟参数对SDRAM202进行数据的读写操作。 

为更好的选择一个好的时钟参数,在本实施例中,处理器200还用于先对SDRAM202进行初始化,在SDRAM202的指定地址写入数据,再读取SDRAM202中该指定地址中的数据,判断从该指定地址读取的数据与该指定地址写入的数据是否相同,当判断相同时,通过通用异步接收发送单元UART206打印第一标识符号;当判断不相同时,通过通用异步接收发送单元UART206打印第二标识符号。 

处理器200还用于根据第一标识符号和第二标识符号组建为二维地图,通过该二维地图选择SDRAM202的时钟参数。 

当处理器200获得稳定的时钟参数时,时钟单元204将该时钟参数作为控制SDRAM202的时钟参数。 

在本实施例中,处理器200可以划分为初始化单元2000、数据写入单元 2002、数据读取单元2004、判断单元2006、组建单元2008,选择单元2010,如图6所示。 

在本实施例中,初始化单元2000与SDRAM202通信连接,用于对SDRAM200进行初始化; 

数据写入单元2002与SDRAM202通信连接,用于在SDRAM200的指定地址写入数据。在本实施例中,将对SDRAM202的指定地址的连续数据进行先进行写操作,再进行读操作。在本实施例中,在搬移数据中取其中的矩形区域地址先进行写操作,再进行读操作。在本实施例中,将存储空间可以分别8MB,16MB,32MB,和64MB的矩形区域地址,当然也可以有其它容量的矩形区域地址,比如24MB。若该SDRAM的容量为32MB,在写入数据的时候,将16MB地址的前后2048Byte作为第一指定地址,即将16MB地址的前后2048Byte作为写入数据的第一目的地址,再将预定的数据写入该第一指定地址,即写入4096Byte;同时,还将8MB地址的前后2048Byte作为第二指定地址,即将8MB地址的前后2048Byte作为写入数据的第二目的地址,再将预定的数据写入该第二指定地址,即写入4096Byte,另外,再将还将24MB地址的前后2048Byte作为第三指定地址,即将24MB地址的前后2048Byte作为写入数据的第三目的地址,即写入4096Byte。当然,上述的写入数据操作,可以同时进行,也可以分别进行。在本实施例中,上述的预定的数据可以0xa55a5aa5,当然,也可以取其它数值,本发明不进行限制,即将0xa55a5aa5中的4096Byte写入指定地址。 

数据读取单元2004与SDRAM202通信连接,用于读取SDRAM200中指定地址中的数据。在本实施例中,读取SDRAM202中第一指定地址、第二指定地址和第三指定地址中的数据。在本实施例中,读取第一指定地址前后2048Byte数据,读取第二指定地址前后2048Byte数据,读取第三指定地址前后2048Byte数据。 

判断单元2006与数据写入单元2002、数据读取单元2004和通用异步接收发送单元UART206分别通信连接,用于判断数据读取单元2004从SDRAM200该指定地址读取的数据与据写入单元2002在SDRAM200中该指定地址写入的数据是否相同。在本实施例中,可以理解为,判断该指定地址的读写数据是否正确或是否相同。在本实施例中,判断从第一指定地址读取的数据与该第一指定地址写入的数据是否相同,判断从第二指定地址读取的数据与该第二指定地址写入的数据是否相同,判断从第三指定地址读取的数据与该第三指定地址写入的数据是否相同。 

在本实施例中,当判断从第一指定地址读取的数据与该第一指定地址写入的数据相同,并判断从第二指定地址读取的数据与该第二指定地址写入的数据相同,以及判断从第三指定地址读取的数据与该第三指定地址写入的数据相同时,即判断从指定地址读取的数据与该指定地址写入的数据相同时,判断单元2006将判断的相同结果输出至通用异步接收发送单元UART206,由通用异步接收发送单元UART206打印第一标识符号,并通过显示单元10显示给操作人员; 

在本实施例中,当判断从第一指定地址读取的数据与该第一指定地址写入的数据不相同时,或,判断从第二指定地址读取的数据与该第二指定地址写入的数据不相同时,或,判断从第三指定地址读取的数据与该第三指定地址写入的数据不相同时,即只要有一个判断结果为不相同时,判断单元2006将判断的不相同结果通过输出单元2008输出至通用异步接收发送单元UART206,由通用异步接收发送单元UART206打印第二标识符号,并通过显示单元10显示给操作人员; 

当通用异步接收发送单元UART206通过输入输出设备30接收操作人员的操作指令时(可以是生成或组建二维MAP地图命令),将打印的第一标识符号和 第二标识符号输出至处理器200,由组建单元2008将第一标识符号和第二标识符号组建为二维MAP地图,将生成的二维MAP地图经由通用异步接收发送单元UART206输出至显示单元10。可以参考图3所示。在本实施例中,图3中顶端的第一行为两个SDRAM时钟信号的状态,即上升沿和下降沿状态,也可以理解时钟信号的两个参数。图3中的列方向为第一组Delay cell参数中的第一DELAY_CELL参数,行方向为第二个DELAY_CELL参数,因而,通过上述的四个参数就可以组建为一张二维地图。 

当通用异步接收发送单元UART206通过输入输出设备30接收操作人员的操作指令时(可以是选择SDRAM的时钟参数的命令),由选择单元2010根据组建单元2008组建的该二维地图选择SDRAM的时钟参数。 

从定量上将本发明和经验穷举法比较分析,能更清晰地看出效率提升的实际效果。假设访问的地址物理空间为4096Byte,使用经验穷举法,很耗时费力,虽然SDRAM_CLK参数只有4种选择,但DELAY_CELL有64x64=4096种选择,不依靠经验,穷举法基本无法实现对参数的选择,应用本发明的技术方案来实现SDRAM控制时钟参数的选择,效率明显提升。而实际上单靠经验选择的参数,能稳定工作的只有10%左右。换句话说在通常情况下,应用本发明所述的方法来实现SDRAM控制时钟参数的选择在通常情况下将有90%的效率提升。 

因而,通过使用本发明提供的技术方案,可以不额外增加硬件资源,仅使用UART串口工具和二维MAP图选择工具,即可实现SDRAM控制时钟参数的准确选择。 

以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式。凡依照本发明之形状、结构所作的等效变化均包含本发明的保护范围内。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号