一种提升数据通道速度的方法、装置、存储介质和终端
技术领域
本发明涉及半导体集成电路
技术领域
,尤其涉及的是一种提升数据通道速度的方法、装置、存储介质和终端。背景技术
常见的数据流通道如图1所示,数据流时序如图2所示。第一个时钟上升沿①产生byte sel信号,byte sel信号4选1,选出1个byte的数据,传输到DFF的输入端;在第二个时钟的上升沿②DFF将输入端的数据传递到输出端,经过一系列移位寄存的操作将并行数据转为串行数据。在第二个时钟的下降沿③将DFF输出端的数据传递到IO;在第三个时钟的上升沿④,用户采样数据,数据串行输出。
为了保证用户以及内部DFF采样到的都是正确的数据,byte select后的数据要在第二个时钟的上升沿②之前传递到DFF的输入端。由于内部电路的复杂性,从byte sel信号产生,到数据更新并传递到DFF的输入端存在一定的延时,这个延时制约了数据传输的最大速度。在有较快时钟需求的条件下,这个延时很容易导致DFF采样到错误的数据(DFF可能会采集到前一个byte的数据),如图3所示。而为了保证数据采集的准确性,只能牺牲数据的传输速度。
因此,现有的技术还有待于改进和发展。
发明内容
本发明的目的在于提供一种提升数据通道速度的方法、装置、存储介质和终端,旨在解决现有技术中存在的一个或多个问题。
本发明的技术方案如下:本技术方案提供一种提升数据通道速度的方法,具体包括以下步骤:
接收需要进行传输的数据;
在第一时钟信号的一个周期内的第一个时钟上升沿根据数据选择信号从所述需要进行传输的数据中选择出对应长度的数据,并传输到触发器的数据输入端;
在第二时钟信号的一个周期内的第二个时钟上升沿将所述对应长度的数据从触发器数据输入端传输到触发器数据输出端输出;
将所述对应长度的数据从并行传输转换为串行传输;
在第一时钟信号的一个周期内的第二个时钟下降沿将串行传输的所述对应长度的数据传输到数据输出接口;
在第一时钟信号的一个周期内的第三个时钟上升沿,将所述对应长度的数据通过数据输出接口串行输出;
所述第一时钟信号和第二时钟信号具有相同的时钟周期,所述第二时钟信号为第一时钟信号延时设定时间后的时钟信号。
进一步地,所述在第一时钟信号的一个周期内的第一个时钟上升沿根据数据选择信号从所述需要进行传输的数据中选择出对应长度的数据,并传输到触发器的数据输入端,具体过程如下:在第一时钟信号的一个周期内的第一个时钟上升沿,所述数据选择器产生一个数据选择信号,从所述需要进行传输的数据中选择出对应长度的数据,并将所述对应长度的数据传输到触发器的数据输入端。
进一步地,所述数据选择器采用2选1数据选择器或4选1数据选择器或8选1数据选择器。
进一步地,所述触发器采用D类触发器。
进一步地,通过移位寄存器将所述对应长度的数据从并行传输转换为串行传输。
进一步地,所述数据输入接口和数据输出接口采用IO接口实现。
进一步地,所述第二时钟信号为第一时钟信号延时设定时间后的时钟信号,延时设定时间的设置具体如下:所述第二时钟信号的一个周期内的第二个时钟上升沿需要设置在所述对应长度的数据传输到D类触发器的数据输入端之后,且在将串行传输的所述对应长度的数据传输到数据输出接口之前。
本技术方案还提供一种提升数据通道速度的装置,包括:
数据接收模块,接收需要进行传输的数据;
数据选择模块,在第一时钟信号的一个周期内的第一个时钟上升沿根据数据选择信号从所述需要进行传输的数据中选择出对应长度的数据,并传输到触发器的数据输入端;
数据传输模块,在第二时钟信号的一个周期内的第二个时钟上升沿将所述对应长度的数据从触发器数据输入端传输到触发器数据输出端输出;
转换模块,将所述对应长度的数据从并行传输转换为串行传输;
接口传输模块,在第一时钟信号的一个周期内的第二个时钟下降沿将串行传输的所述对应长度的数据传输到数据输出接口;
数据输出模块,在第一时钟信号的一个周期内的第三个时钟上升沿,将所述对应长度的数据通过数据输出接口串行输出;
时钟模块,产生所述第一时钟信号和第二时钟信号,所述第二时钟信号为第一时钟信号延时设定时间后的时钟信号。
本技术方案还提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述任一项所述的方法。
本技术方案还提供一种终端,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行上述任一项所述的方法。
通过上述可知,本技术方案通过将第一时钟信号延时设定时间后得到第二时钟信号,在数据传输过程中,使D类触发器采用第二时钟信号进行操作,而数据传输的其他操作仍然沿用第一时钟信号,既保证了数据可以适应任何要求的传输速度,又避免了D类触发器因数据从选择到传输到D类触发器数据输入端存在的延时导致采集到的数据出错的问题。
附图说明
图1是现有技术中数据流在通道传输的过程示意图。
图2是现有技术中数据流传输的时序示意图。
图3是现有技术中在较快时钟需求的条件下DFF采样到错误数据的示意图。
图4是本发明中提升数据通道速度的方法的步骤流程图。
图5是本发明中提升数据通道速度的装置的示意图。
图6是本发明中终端的示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图4所示,一种提升数据通道速度的方法,具体包括以下步骤:
S1:接收需要进行传输的数据。
其中,所述需要进行传输的数据的长度可以根据实际需要而设置,如32byte的数据,64byte的数据,等。
其中,通过数据输入接口接收需要进行传输的数据。
S2:在第一时钟信号的一个周期内的第一个时钟上升①沿根据数据选择信号从所述需要进行传输的数据中选择出对应长度的数据,并传输到D类触发器的数据输入端。
其中,在第一时钟信号的一个周期内的第一个时钟上升沿①,所述数据选择器产生一个数据选择信号,从所述需要进行传输的数据中选择出对应长度的数据,并将所述对应长度的数据传输到D类触发器的数据输入端。
对应地,所述数据选择器可以根据实际需要采用不同的类型,如2选1数据选择器,4选1数据选择器,8选1数据选择器。
S3:在第二时钟信号的一个周期内的第二个时钟上升沿②将所述对应长度的数据从D类触发器数据输入端传输到D类触发器数据输出端输出。
S4:将所述对应长度的数据从并行传输转换为串行传输。
其中,所述D类触发器(所述D触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路)在第二时钟信号的一个周期内的第二个时钟上升沿②将所述对应长度的数据从数据输入端传输到数据输出端,所述对应长度的数据进入移位寄存器,所述移位寄存器将所述对应长度的数据从并行传输转换为串行传输。
S5:在第一时钟信号的一个周期内的第二个时钟下降沿③将串行传输的所述对应长度的数据传输到数据输出接口。
其中,所述数据输入接口和数据输出接口采用IO接口实现。
S6:在第一时钟信号的一个周期内的第三个时钟上升沿④,将所述对应长度的数据通过数据输出接口串行输出。
其中,所述一个周期是指一个时钟周期。
具体地,所述第一时钟信号和第二时钟信号为同一个时钟产生的时钟信号,所以第一时钟信号和第二时钟信号具有相同的时钟周期,所述第二时钟信号为第一时钟信号延时设定时间后的时钟信号:即时钟先产生第一时钟信号,延时设定时间后,再产生第二时钟信号。
其中,所述第二时钟信号为第一时钟信号延时设定时间后的时钟信号,延时设定时间的设置具体如下:所述第二时钟信号的一个周期内的第二个时钟上升沿②需要设置在所述对应长度的数据传输到D类触发器的数据输入端之后(所述对应长度的数据传输到D类触发器的数据输入端之后的时间点可以通过计算所述对应长度的数据从数据选择器传输到D类触发器的数据输入端的时间长度确定),且在将串行传输的所述对应长度的数据传输到数据输出接口之前(即在第一时钟信号的一个周期内的第二个时钟下降沿③之前),所述第二时钟信号的一个周期内的第二个时钟上升沿②可以设置为在这个时间段内的任一时间点。
根据上述所述的提升数据通道速度的方法,现列举以下实施例加以说明:
Sclk_fast_delay(即第二时钟信号)为Sclk_fast(即第一时钟信号)延时一段时间后的时钟信号,Sclk_fast_delay这个时钟只是传输至DFF(即D类触发器)中使用,其余操作(如数据选择,将串行传输的数据传输到数据输出接口、数据经过IO接口输出,等)沿用Sclk_fast。
本技术方案中,数据流时序为:第一个时钟(Sclk_fast)上升沿①产生byte sel信号,byte sel信号4选1,选出1个byte的数据(从4byte中选择出1byte(即8bit)的数据出来),传到(即D类触发器)的输入端;在第二个时钟(Sclk_fast_delay)的上升沿②DFF将输入端的数据传递到输出端,经过一系列移位寄存的操作将并行数据转为串行数据;在第二个时钟(Sclk_fast)的下降沿③将串行数据传递到IO接口;在第三个时钟(Sclk_fast)的上升沿④,用户采样数据,数据经过IO接口串行输出。
如图5所示,一种提升数据通道速度的装置,包括:
数据接收模块101,接收需要进行传输的数据;
数据选择模块102,在第一时钟信号的一个周期内的第一个时钟上升沿根据数据选择信号从所述需要进行传输的数据中选择出对应长度的数据,并传输到触发器的数据输入端;
数据传输模块103,在第二时钟信号的一个周期内的第二个时钟上升沿将所述对应长度的数据从触发器数据输入端传输到触发器数据输出端输出;
转换模块104,将所述对应长度的数据从并行传输转换为串行传输;
接口传输模块105,在第一时钟信号的一个周期内的第二个时钟下降沿将串行传输的所述对应长度的数据传输到数据输出接口;
数据输出模块106,在第一时钟信号的一个周期内的第三个时钟上升沿,将所述对应长度的数据通过数据输出接口串行输出;
时钟模块107,产生所述第一时钟信号和第二时钟信号,所述第二时钟信号为第一时钟信号延时设定时间后的时钟信号。
请参照图6,本发明实施例还提供一种终端。如示,终端300包括处理器301和存储器302。其中,处理器301与存储器302电性连接。处理器301是终端300的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或调用存储在存储器302内的计算机程序,以及调用存储在存储器302内的数据,执行终端的各种功能和处理数据,从而对终端300进行整体监控。
在本实施例中,终端300中的处理器301会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器302中,并由处理器301来运行存储在存储器302中的计算机程序,从而实现各种功能:接收需要进行传输的数据;在第一时钟信号的一个周期内的第一个时钟上升沿根据数据选择信号从所述需要进行传输的数据中选择出对应长度的数据,并传输到触发器的数据输入端;在第二时钟信号的一个周期内的第二个时钟上升沿将所述对应长度的数据从触发器数据输入端传输到触发器数据输出端输出;将所述对应长度的数据从并行传输转换为串行传输;在第一时钟信号的一个周期内的第二个时钟下降沿将串行传输的所述对应长度的数据传输到数据输出接口;在第一时钟信号的一个周期内的第三个时钟上升沿,将所述对应长度的数据通过数据输出接口串行输出;所述第一时钟信号和第二时钟信号具有相同的时钟周期,所述第二时钟信号为第一时钟信号延时设定时间后的时钟信号。
存储器302可用于存储计算机程序和数据。存储器302存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器301通过调用存储在存储器302的计算机程序,从而执行各种功能应用以及数据处理。
本申请实施例提供一种存储介质,所述计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的方法,以实现以下功能:接收需要进行传输的数据;在第一时钟信号的一个周期内的第一个时钟上升沿根据数据选择信号从所述需要进行传输的数据中选择出对应长度的数据,并传输到触发器的数据输入端;在第二时钟信号的一个周期内的第二个时钟上升沿将所述对应长度的数据从触发器数据输入端传输到触发器数据输出端输出;将所述对应长度的数据从并行传输转换为串行传输;在第一时钟信号的一个周期内的第二个时钟下降沿将串行传输的所述对应长度的数据传输到数据输出接口;在第一时钟信号的一个周期内的第三个时钟上升沿,将所述对应长度的数据通过数据输出接口串行输出;所述第一时钟信号和第二时钟信号具有相同的时钟周期,所述第二时钟信号为第一时钟信号延时设定时间后的时钟信号。其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random AccessMemory, 简称SRAM),电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory, 简称EEPROM),可擦除可编程只读存储器(Erasable ProgrammableRead Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。