CN116226018A - 一种数据解码结构 - Google Patents
一种数据解码结构 Download PDFInfo
- Publication number
- CN116226018A CN116226018A CN202310158263.4A CN202310158263A CN116226018A CN 116226018 A CN116226018 A CN 116226018A CN 202310158263 A CN202310158263 A CN 202310158263A CN 116226018 A CN116226018 A CN 116226018A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- storage unit
- decoding
- bit width
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本申请属于数据处理技术领域,公开了一种数据解码结构,所述数据解码结构包括:写控制模块,接收解码数据、报文头指示信息和有效检测信息,将解码数据中的有效解码数据和报文头指示信息写入第一存储单元;第一存储单元,存储写控制模块写入的有效解码数据和报文头指示信息,并根据有效解码数据的位宽修改第一存储单元的写指针的地址,以及在有效解码数据被读出时,根据读出的有效解码数据的位宽修改第一存储单元的读指针的地址;读控制模块,在第一存储单元存储的有效解码数据的位宽大于第一存储单元的读出位宽时,读出位宽为读出位宽的有效解码数据;本申请提供的数据解码结构,支持任意位宽的SKP数据块的解码,有效拓展了数据解码结构的应用。
Description
技术领域
本申请属于数据处理技术领域,涉及一种数据解码结构。
背景技术
128Bit/130Bit的编码/解码是PCIE(Peripheral Component InterconnectExpress)协议相关的常见功能,serdes IP(SERializer,串行器/DESerializer,解串器)在对传输数据进行128Bit/130Bit的编码/解码时,对于传输数据中用于频差补偿的SKPblock(SKP数据块),因为所述SKP数据块由serdes的发送端传输至接收端进行解码时可能会经过数据的增添或删减,所以会导致所述SKP数据块的位宽在serdes中进行数据传输时有不确定性,而SKP数据块位宽的不确定性会使得接收端的解码过程变得复杂。
现有的一种对SKP数据块进行解码处理的技术方案是限制SKP数据块的位宽,解码时仅支持SKP数据块的位宽为64/128/192bit,而PCIE协议规定SKP数据块的位宽可以为64/96/128/160/192bit,当SKP数据块的位宽为64bit或64bit的整数倍时,则在serdes中对传输数据进行解码时可以使得任意一个周期输出的64bit数据属于同一个数据块,即使得位宽为64/128/192bit的SKP数据块在输出时始终属于同一个数据块,然而现有的技术方案虽然解决了SKP数据块位宽的不确定性导致的数据解码过程变得复杂的技术问题,但显而易见的是,现有的技术方案不支持位宽为非64bit整数倍数的SKP数据块如96bit、160bit,极大地限制了数据解码结构的应用场景。
发明内容
本申请的目的在于提供一种数据解码结构,以解决现有的数据解码结构只能支持对位宽为64bit和64bit整数倍的SKP数据块解码的技术问题。
为解决上述技术问题,本申请的技术方案如下:
本申请提供一种数据解码结构,包括写控制模块、第一存储单元和读控制模块;
所述写控制模块,用于接收解码数据、报文头指示信息和有效检测信息,将所述解码数据中的有效解码数据和所述报文头指示信息写入所述第一存储单元,所述报文头指示信息用于指示所述有效解码数据是否包括报文头,所述有效检测信息用于检测所述解码数据中的所述有效解码数据;
所述第一存储单元,用于存储所述写控制模块写入的所述有效解码数据和所述报文头指示信息,并根据所述有效解码数据的位宽修改所述第一存储单元的写指针的地址;以及,
用于在所述有效解码数据被读出时,根据读出的所述有效解码数据的位宽修改所述第一存储单元的读指针的地址;
所述读控制模块,用于在所述第一存储单元存储的所述有效解码数据的位宽大于所述第一存储单元的读出位宽时,读出位宽为所述读出位宽的所述有效解码数据。
在一些实施例中,所述写控制模块,用于接收解码数据、报文头指示信息和有效检测信息,将所述解码数据中的有效解码数据和所述报文头指示信息写入所述第一存储单元,包括:
所述解码数据全部为所述有效解码数据时,将所述有效解码数据写入所述第一存储单元;
所述解码数据部分为所述有效解码数据时,将所述有效解码数据和补位数据写入所述第一存储单元,所述补位数据用于使写入所述第一存储单元的数据的位宽与所述解码数据的位宽相同。
在一些实施例中,所述读控制模块,用于在所述第一存储单元存储的所述有效解码数据的位宽大于所述第一存储单元的读出位宽时,读出位宽为所述读出位宽的所述有效解码数据,包括:
获取所述第一存储单元的读指针的地址和所述第一存储单元的写指针的地址,确定所述第一存储单元存储的所述有效解码数据的位宽;
获取写入所述第一存储单元的所述报文头指示信息,判断待读出的所述有效解码数据是否包括所述报文头;
若待读出的所述有效解码数据包括所述报文头,则在所述第一存储单元存储的所述有效解码数据的位宽大于第一读出位宽时,读出位宽为所述第一读出位宽的所述有效解码数据;
若待读出的所述有效解码数据不包括所述报文头,则在所述第一存储单元存储的所述有效解码数据的位宽大于第二读出位宽时,读出位宽为所述第二读出位宽的所述有效解码数据。
在一些实施例中,所述数据解码结构,还包括:
第二存储单元,用于存储SKP数据指示信息,所述SKP数据指示信息用于指示写入所述第一存储单元的所述有效解码数据是否为SKP数据。
在一些实施例中,所述写控制模块还包括:
接收所述SKP数据指示信息,将所述SKP数据指示信息写入所述第二存储单元。
在一些实施例中,所述写控制模块还包括:
生成解码开始指示信息,将所述解码开始指示信息写入所述第一存储单元和所述第二存储单元,所述解码开始指示信息用于在所述写控制模块第一次接收到所述解码数据时指示解码开始。
在一些实施例中,所述第一存储单元还包括:
接收所述解码开始指示信息,在所述解码开始指示信息指示解码开始时,初始化所述第一存储单元的读指针的地址和所述第一存储单元的写指针的地址。
在一些实施例中,所述读控制模块还包括:
生成解码结束指示信息,在所述解码结束指示信息指示解码结束时读出所述第一存储单元存储的所述有效解码数据,并使所述第一存储单元的读指针的地址与所述第一存储单元的写指针的地址重合。
在一些实施例中,所述数据解码结构,还包括:
SKP数据控制模块,用于在所述读控制模块读出的所述有效解码数据包括所述报文头时读出写入所述第二存储单元的所述SKP数据指示信息;
SKP数据处理模块,用于获取所述读控制模块读出的所述有效解码数据和所述SKP数据控制模块读出的所述SKP数据指示信息,在所述有效解码数据中存在所述SKP数据时,判断所述有效解码数据中的所述SKP数据是否存在误码数据;
若所述有效解码数据中的所述SKP数据存在所述误码数据,则根据所述误码数据修改所述SKP数据指示信息;
若所述有效解码数据中不存在所述误码数据,存储所述SKP数据指示信息。
在一些实施例中,所述读控制模块还包括:
生成预读指示信息并输出至所述SKP数据控制模块,所述预读指示信息用于指示所述读控制模块下一次是否进行读操作,以及在确定所述读控制模块下一次会进行读操作时,指示下一次读出的所述有效解码数据是否包括所述报文头。
相比于现有技术,本申请的有益效果在于:
本申请提供的数据解码结构,支持符合PCIE协议的任意位宽的SKP数据块的解码,解决了现有的数据解码结构对SKP数据块相关的频差补偿功能的限制,有效拓展了数据解码结构的应用场景。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据解码结构的一种模块框图。
图2为本申请实施例提供的数据解码结构的另一种模块框图。
图3为本申请实施例提供的数据解码结构的一种应用示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的数据解码结构,支持对符合PCIE协议的任意位宽的SKP数据块进行解码操作,其支持的SKP数据块的位宽至少包括有64bit/96bit/128bit/160bit/192bit,以下结合附图对本申请实施例提供的数据解码结构进行说明。
图1为本申请实施例提供的数据解码结构的一种模块框图,如图1所示,本申请实施例提供的数据解码结构包括写控制模块、第一存储单元和读控制模块。
写控制模块用于接收解码数据、报文头指示信息和有效检测信息,将解码数据中的有效解码数据和报文头指示信息写入第一存储单元,报文头指示信息用于指示有效解码数据是否包括报文头,有效检测信息用于检测解码数据中的有效解码数据。
在一些实施例中,写控制模块用于接收解码数据、报文头指示信息和有效检测信息,将解码数据中的有效解码数据和报文头指示信息写入第一存储单元,包括:
解码数据全部为有效解码数据时,将有效解码数据写入第一存储单元;
解码数据部分为有效解码数据时,将有效解码数据和补位数据写入第一存储单元,补位数据用于使写入第一存储单元的数据的位宽与解码数据的位宽相同。
图3为本申请实施例提供的数据解码结构的一种应用示意图,如图3所示,写控制模块接收解码数据(dec_din)、报文头指示信息(dec_headervld_in、dec_headeraddr_in)和有效检测信息(dec_align_in),在写使能(wr_en)有效时(即高电平),将解码数据(dec_din)中的有效解码数据写入第一存储单元,并将报文头指示信息(dec_headervld_in、dec_headeraddr_in)写入第一存储单元。
有效检测信息(dec_align_in)用于检测解码数据(dec_din)中的有效解码数据,如设置检测解码数据(dec_din)中的有效解码数据的方式为:使有效检测信息(dec_align_in)位于高电平时,表示解码数据(dec_din)中与有效检测信息(dec_align_in)高电平对应的数据为有效解码数据,当有效检测信息(dec_align_in)检测到的解码数据中只存在部分有效解码数据时,为了使写入第一存储单元的数据的位宽与写控制模块接收到的解码数据(dec_din)的位宽相同,写控制模块向第一存储单元写入的数据(wr_data)包括有效解码数据和补位数据,通常,还可以设置为根据前后不同时期接收到的有效检测信息(dec_align_in)共同确认解码数据中的有效数据;其中,补位数据没有意义,只用于使写入第一存储单元的数据的位宽与解码数据的位宽相同;事实上,大多数应用场景下,本申请实施例提供的数据解码结构进行数据解码时,写控制模块只有解码开始时第一次接收到的解码数据和解码结束时最后一次接收到的解码数据只包括部分有效解码数据,而解码过程中接收到的解码数据全部为有效解码数据。
报文头指示信息(dec_headervld_in)用于指示有效解码数据是否包括报文头,如报文头指示信息(dec_headervld_in)为高电平时,表示有效解码数据包括报文头;如图3所示,为了进一步对报文头进行检测,写控制模块接收的报文头指示信息包括dec_headervld_in信号和dec_headeraddr_in信号,dec_headeraddr_in信号用于在dec_headervld_in信号高电平时指示报文头在解码数据中的具***置,此时,写控制模块接收报文头指示信息(dec_headervld_in、dec_headeraddr_in),将报文头指示信息(dec_headervld_in、dec_headeraddr_in)以指示信号(wr_header_vld)的形式写入第一存储单元,应当明确,本申请实施例将报文头指示信息(dec_headervld_in、dec_headeraddr_in)从写控制模块输出后重新命名为(wr_header_vld)仅为了便于简化信号名称数量。
应当明确,如图3所示的写控制模块的信号传输仅仅是本申请实施例提供的数据解码结构的写控制模块的一种信号设置方法,并不表示本申请实施例提供的数据解码结构的写控制模块只能使用如图3所示的设置方法,事实上,本申请实施例提供的数据解码结构只要设计人员所设计的信号能实现相应功能即可,如为了进一步指示写入第一存储单元的数据,写控制模块还可以包括向第一存储单元输出wr_length信号,以指示写入第一存储单元的数据的位宽;又如报文头指示信息(dec_headervld_in、dec_headeraddr_in)即可以设置为两个信号,也可以通过设置为一个信号使其既指示有效数据是否包括报文头,还指示报文头在有效数据中的具***置。
第一存储单元用于存储写控制模块写入的有效解码数据和报文头指示信息,并根据有效解码数据的位宽修改第一存储单元的写指针的地址;以及用于在有效解码数据被读出时,根据读出的有效解码数据的位宽修改第一存储单元的读指针的地址;其中,第一存储单元所能存储的有效解码数据的位宽和报文头指示信息的位宽根据所述第一存储单元的位深度决定,如当第一存储单元包括2个位深度为131bit的存储模块,分别用于存储有效解码数据和报文头指示信息,则表示第一存储单元能存储132bit的有效解码数据和132bit的报文头指示信息,设置写控制模块一次写入的数据为64bit时,则写控制模块第三次写入的有效解码数据的bit[5]将开始覆盖第一存储单元之前存储的有效解码数据。
如图3所示,第一存储单元包括两个存储模块(Mem_data和Mem_header_vld),分别用于存储写控制模块写入的数据(wr_data)和报文头指示信息(wr_header_vld),当第一存储单元接收到写控制模块写入的数据(wr_data)和报文头指示信息(wr_header_vld),第一存储单元的写指针根据有效解码数据的位宽移动,如在数据写入前写指针的地址为bit[0],当第一存储单元接收到64bit的有效解码数据时,则此时写指针移动64bit,具体为写指针移动到bit[64]的地址上;或在数据写入前写指针的地址为bit[0],当接收到32bit的有效解码数据和32bit的补位数据时,则此时写指针根据有效解码数据的位宽移动32bit,具体为移动到bit[32]的地址上;同理,当存储在第一存储单元的有效解码数据被读出时,根据读出的有效解码数据的位宽移动读指针,如在数据被读出前读指针的地址为bit[0],当第一存储单元被读出66bit的有效解码数据时,则将读指针移动66bit,具体为读指针移动到bit[66]的地址上。
读控制模块用于在第一存储单元存储的有效解码数据的位宽大于第一存储单元的读出位宽时,读出位宽为读出位宽的有效解码数据。
在一些实施例中,读控制模块用于在第一存储单元存储的有效解码数据的位宽大于第一存储单元的读出位宽时,读出位宽为读出位宽的有效解码数据,包括:
获取第一存储单元的读指针的地址和第一存储单元的写指针的地址,确定第一存储单元存储的有效解码数据的位宽,对于本申请实施例提供的数据解码结构,第一存储单元始终是先写入数据,然后读出数据,因此除了解码开始和解码结束时读指针和写指针位于同一地址,解码过程读指针将始终落后于写指针,即解码过程中读指针落后于写指针的位宽差即为第一存储单元存储的有效解码数据的位宽;
获取写入第一存储单元的报文头指示信息,判断待读出的有效解码数据是否包括报文头;
若待读出的有效解码数据包括报文头,则在第一存储单元存储的有效解码数据的位宽大于第一读出位宽时,读出位宽为第一读出位宽的有效解码数据;
若待读出的有效解码数据不包括报文头,则在第一存储单元存储的有效解码数据的位宽大于第二读出位宽时,读出位宽为第二读出位宽的有效解码数据。
如图3所示,读控制模块从第一存储单元获取到读指针的地址(wptr)、写指针的地址(rptr)以及存储模块(Mem_header_vld)中存储的数据,存储模块(Mem_header_vld)中存储的数据至少包括报文头指示信息以及写控制模块写入至第一存储单元的其他指示信息(写入的有效解码数据外的所有信息),第一存储单元的存储模块(Mem_data)中存储的有效解码数据的位宽即为读指针和写指针之间的位宽差,应当明确,存储模块(Mem_data)的位深度为131bit,即将读指针和写指针之间所能移动的距离131bit视为一个周期,计算读指针和写指针之间的位宽差时应当包括读指针和写指针之间的周期差,其中,读指针和写指针之间包括位宽差时,该位宽差将始终小于周期值131,否则可能造成第一存储单元中的数据丢失;将如图3所示的数据解码结构设置为64bit位宽,128Bit/130Bit的数据解码结构,则读控制模块所能读出的有效数据位宽应当为64Bit(不包括报文头)/66Bit(包括报文头),其中,当通过报文头指示信息检测到读指针所在地址对应的有效解码数据为报文头数据时,或读指针所在地址之后的32bit的地址上对应的有效解码数据有报文头数据时,则表示待读出的有效解码数据包括报文头数据,第一存储单元的读出位宽为第一读出位宽66bit,否则,表示第一存储单元的读出位宽为第二读出位宽64bit,读控制模块输出读使能(rd_en),在读使能(rd_en)高电平时读出相应位宽的有效解码数据(rd_data)进行输出。
为了进一步对待读出的有效解码数据进行指示,如图3所示,读控制单元还可以包括向第一存储单元输出的rd_length信号,用于指示待读出的有效解码数据的位宽;其中,读控制模块在输出数据时,会将有效解码数据(rd_data)中的报文头数据和有效数据分开输出,即读控制模块输出的数据包括报文头数据(rx_header)以及有效数据(dec_dout),在读控制模块读出的有效解码数据(rd_data)不包括报文头数据时,有效数据(dec_dout)与有效解码数据(rd_data)相同。
为了进一步对读控制模块输出的数据指示,如图3所示,读控制模块的输出还可以包括:align_out信号,用于指示读控制模块的输出是否存在有效数据、rx_data_vld信号,用于指示有效数据(rd_data)是否有效、rx_header_vld信号,用于指示报文头数据(rx_header)是否有效。
应当明确,如图3所示的读控制模块的信号传输仅仅是本申请实施例提供的数据解码结构的写控制模块的一种信号设置方法,并不表示本申请实施例提供的数据解码结构的读控制模块只包括如图3所示的信号设置方法,事实上,只要设计人员所设计的信号符合相应功能即可。
图2为本申请实施例提供的数据解码结构的另一种模块框图,如图2所示,在一些实施例中,本申请实施例提供的数据解码结构还包括:
第二存储单元,用于存储SKP数据指示信息,SKP数据指示信息用于指示写入第一存储单元的有效解码数据是否为SKP数据;其中,写控制模块接收SKP数据指示信息,将SKP数据指示信息写入第二存储单元。
SKP数据控制模块,用于在读控制模块读出的有效解码数据包括报文头时读出写入第二存储单元的SKP数据指示信息。
SKP数据处理模块,用于获取读控制模块读出的有效解码数据和SKP数据控制模块读出的SKP数据指示信息,在有效解码数据中存在SKP数据时,判断有效解码数据中的SKP数据是否存在误码数据,如一种根据SKP数据指示信息判断有效解码数据中存在SKP数据的设计为:SKP数据处理模块接收到的SKP数据指示信息包含有2bit指示信号,分别用于指示输出的64bit有效解码数据的高32bit和低32bit是否为SKP数据;
若有效解码数据中的SKP数据存在误码数据,则根据误码数据修改SKP数据指示信息,如一种根据误码数据修改SKP数据指示信息的设计为:当判断出当前时刻SKP数据中包含了不符合SKP特征的错误(即误码数据),则下个时钟上升沿开始,使该SKP数据所对应的SKP指示均处于低电平,直至该SKP数据所在数据块的数据均被输出;
若有效解码数据中不存在误码数据,存储SKP数据指示信息,不修改SKP数据指示信息。
在一些实施例中,为了进一步指示数据解码开始以及数据解码结束,如图2所示,写控制模块还包括:
生成解码开始指示信息,将解码开始指示信息写入第一存储单元和第二存储单元,解码开始指示信息用于在写控制模块第一次接收到解码数据时指示解码开始。
第一存储单元接收解码开始指示信息,在解码开始指示信息指示解码开始时,初始化第一存储单元的读指针的地址和第一存储单元的写指针的地址,即确保读指针和写指针在解码开始时均位于同一地址,通常将读指针和写指针重置于bit[0]的地址上,应当明确,读指针和写指针重置的地址指的是第一存储单元的位深度地址。
读控制模块还包括:
生成解码结束指示信息,在解码结束指示信息指示解码结束时读出第一存储单元存储的有效解码数据,并使第一存储单元的读指针的地址与第一存储单元的写指针的地址重合;
生成预读指示信息并输出至SKP数据控制模块,预读指示信息用于指示读控制模块下一次是否进行读操作,以及在确定读控制模块下一次会进行读操作时,指示下一次读出的有效解码数据是否包括报文头。
如图3所示,写控制模块包括第一存储单元控制区(For Mem)和第二存储单元控制区(For Mem_header_related),分别用于处理第一存储单元的信息和第二存储单元的信息,写控制模块接收SKP数据指示信息(dec_skp_in)并根据写使能(wr_en)将SKP数据指示信息(dec_skp_in)输出至第二存储单元。
为指示数据解码开始,写控制模块在第一次接收到解码数据时,还会生成解码开始指示信息(din_new_start)分别输出至第一存储单元和第二存储单元,第二存储单元接收到SKP数据指示信息(dec_skp_in)和解码开始指示信息(din_new_start),将SKP数据指示信息(dec_skp_in)和解码开始指示信息(din_new_start)处理后合并为一个信号,即(rd_seqstart_skp),该信号用于指示SKP数据,以及用于指示解码循环开始;其中,解码循环表示一次解码循环,如一次解码循环包括32个数据块,当写控制模块向第一存储单元写入32次数据时,表示一次解码循环。
为指示数据解码结束,写控制模块/读控制模块对align信号(dec_align_in/align_out)和报文头指示信息进行逻辑处理生成解码结束指示信息(din_last_end),写控制模块根据解码结束指示信息(din_last_end)判断出解码结束,将写使能设置为低电平,使第一存储单元的写指针不进行更新;读控制模块根据解码结束指示信息(din_last_end)判断出解码结束,读控制单元向第一存储单元输出next_last_vld_dout信号,用于指示即将进行的读操作为最后一次读操作,并在最后一次读出第一存储单元存储的有效解码数据后将读使能设为低电平,并使读指针和写指针重合;其中,读控制模块还包括:将next_last_vld_dout信号输出至SKP数据控制模块。
为进一步指示读控制模块读出的数据,读控制模块还能根据读指针、写指针和报文头指示信息确定下一次读控制模块是否要进行读操作以及下一次进行读操作时读出的数据是否包括报文头;对于数据解码过程而言,写入第一存储单元的有效解码数据的位宽不变,如设置数据解码过程写入第一存储单元的有效解码数据为64bit时,则读控制模块在当前时刻读取有效解码数据时,可以预估第一存储单元下一次被写入有效解码数据时写指针的地址为写指针当前所在地址加上64bit,进一步则能判断出此时读指针的地址与下一次写指针的地址之间的位宽差,即能获取到第一存储单元下一次被写入有效解码数据后所存储的有效解码数据的位宽,进而确定下一次读控制模块是否会进行读操作;下一次进行读操作时读出的数据是否包括报文头则根据报文头指示信息进行判断。
SKP数据控制模块从读控制模块接收rx_data_vld信号和rx_header_vld信号,根据rx_data_vld信号和rx_header_vld信号确定读控制模块读出的有效解码数据是否包括报文头,并在有效解码数据包括报文头时,根据读使能(rd_en_seqstart_skp)读出第二存储单元存储的SKP数据指示信息。
为进一步指示SKP数据控制模块读出第二存储单元存储的数据,SKP数据控制模块从读控制模块接收next_rx_data_vld信号和next_rx_header_vld信号,分别用于指示下一次读控制模块是否进行读操作,以及指示下一次读控制模块进行读操作时读出的数据是否包括报文头数据。
SKP数据处理模块从读控制模块接收有效数据(dec_dout)、报文头数据(rx_header_vld),并接收SKP数据控制模块输出的rd_seqstart_skp信号,应用rd_seqstart_skp信号中的SKP数据指示信息判断有效数据(dec_dout)和报文头数据(rx_header_vld)组成的有效解码数据中是否存在SKP数据;在有效解码数据存在SKP数据时,进一步判断有效解码数据中的SKP数据是否存在误码数据;
若存在所述误码数据,则根据误码数据修改rd_seqstart_skp信号中的SKP数据指示信息,将误码数据以及位数高于误码数据的有效解码数据指示为非SKP数据;
若不存在误码数据,则SKP数据处理模块不修改rd_seqstart_skp信号中的SKP数据指示信息。
在一些实施例中,如图3所示,为了便于外部电路应用SKP数据,写控制模块还用于接收SKP类型指示信息(dec_skp_endctrl),将SKP类型指示信息(dec_skp_endctrl)与SKP数据指示信息(dec_skp_in)处理后合并为一个输出信号(wr_header_related)写入第二存储单元,第二存储单元包括两个存储模块(Mem_skp_enctrl和Mem_seqstart_skp)分别用于存储SKP类型指示信息(dec_skp_endctrl)、rd_seqstart_skp信号(包括SKP数据指示信息和解码开始指示信息),SKP类型指示信息(dec_skp_endctrl)用于指示SKP数据的类型为“standard”或“control”;SKP数据控制模块根据读使能(rd_en_skp_endctrl)读出SKP类型指示信息(rd_skp_endctrl),并将SKP类型指示信息(rd_skp_endctrl)输出至SKP数据处理模块。
此外,应当明确,如图3所示的数据解码结构,第一存储单元和第二存储单元所接收的时钟信号(clk)、复位信号(rst_n)和时钟使能(clk_en)属于配置存储单元的常用信号,因此本申请实施例对此不进行进一步说明。
应当明确,如图3所示的SKP数据控制模块和SKP数据处理模块的信号传输仅仅是本申请实施例提供的数据解码结构的写控制模块的一种信号设置方法,并不表示本申请实施例提供的数据解码结构的读控制模块只包括如图3所示的信号设置方法,事实上,只要设计人员所设计的信号符合相应功能即可。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换,都应视为本申请的保护范围。
Claims (10)
1.一种数据解码结构,其特征在于,包括写控制模块、第一存储单元和读控制模块;
所述写控制模块,用于接收解码数据、报文头指示信息和有效检测信息,将所述解码数据中的有效解码数据和所述报文头指示信息写入所述第一存储单元,所述报文头指示信息用于指示所述有效解码数据是否包括报文头,所述有效检测信息用于检测所述解码数据中的所述有效解码数据;
所述第一存储单元,用于存储所述写控制模块写入的所述有效解码数据和所述报文头指示信息,并根据所述有效解码数据的位宽修改所述第一存储单元的写指针的地址;以及,
用于在所述有效解码数据被读出时,根据读出的所述有效解码数据的位宽修改所述第一存储单元的读指针的地址;
所述读控制模块,用于在所述第一存储单元存储的所述有效解码数据的位宽大于所述第一存储单元的读出位宽时,读出位宽为所述读出位宽的所述有效解码数据。
2.如权利要求1所述的数据解码结构,其特征在于,所述写控制模块,用于接收解码数据、报文头指示信息和有效检测信息,将所述解码数据中的有效解码数据和所述报文头指示信息写入所述第一存储单元,包括:
所述解码数据全部为所述有效解码数据时,将所述有效解码数据写入所述第一存储单元;
所述解码数据部分为所述有效解码数据时,将所述有效解码数据和补位数据写入所述第一存储单元,所述补位数据用于使所述写控制模块写入所述第一存储单元的数据的位宽与所述解码数据的位宽相同。
3.如权利要求1所述的数据解码结构,其特征在于,所述读控制模块,用于在所述第一存储单元存储的所述有效解码数据的位宽大于所述第一存储单元的读出位宽时,读出位宽为所述读出位宽的所述有效解码数据,包括:
获取所述第一存储单元的读指针的地址和所述第一存储单元的写指针的地址,确定所述第一存储单元存储的所述有效解码数据的位宽;
获取写入所述第一存储单元的所述报文头指示信息,判断待读出的所述有效解码数据是否包括所述报文头;
若待读出的所述有效解码数据包括所述报文头,则在所述第一存储单元存储的所述有效解码数据的位宽大于第一读出位宽时,读出位宽为所述第一读出位宽的所述有效解码数据;
若待读出的所述有效解码数据不包括所述报文头,则在所述第一存储单元存储的所述有效解码数据的位宽大于第二读出位宽时,读出位宽为所述第二读出位宽的所述有效解码数据。
4.如权利要求1所述的数据解码结构,其特征在于,还包括:
第二存储单元,用于存储的SKP数据指示信息,所述SKP数据指示信息用于指示写入所述第一存储单元的所述有效解码数据是否为SKP数据。
5.如权利要求4所述的数据解码结构,其特征在于,所述写控制模块还包括:
接收所述SKP数据指示信息,将所述SKP数据指示信息写入所述第二存储单元。
6.如权利要求4所述的数据解码结构,其特征在于,所述写控制模块还包括:
生成解码开始指示信息,将所述解码开始指示信息写入所述第一存储单元和所述第二存储单元,所述解码开始指示信息用于在所述写控制模块第一次接收到所述解码数据时指示解码开始。
7.如权利要求6所述的数据解码结构,其特征在于,所述第一存储单元还包括:
接收所述解码开始指示信息,在所述解码开始指示信息指示解码开始时,初始化所述第一存储单元的读指针的地址和所述第一存储单元的写指针的地址。
8.如权利要求6所述的数据解码结构,其特征在于,所述读控制模块还包括:
生成解码结束指示信息,在所述解码结束指示信息指示解码结束时读出所述第一存储单元存储的所述有效解码数据,并使所述第一存储单元的读指针的地址与所述第一存储单元的写指针的地址重合。
9.如权利要求4所述的数据解码结构,其特征在于,还包括:
SKP数据控制模块,用于在所述读控制模块读出的所述有效解码数据包括所述报文头时读出写入所述第二存储单元的所述SKP数据指示信息;
SKP数据处理模块,用于获取所述读控制模块读出的所述有效解码数据和所述SKP数据控制模块读出的所述SKP数据指示信息,在所述有效解码数据中存在所述SKP数据时,判断所述有效解码数据中的所述SKP数据是否存在误码数据;
若所述有效解码数据中的所述SKP数据存在所述误码数据,则根据所述误码数据修改所述SKP数据指示信息;
若所述有效解码数据中不存在所述误码数据,存储所述SKP数据指示信息。
10.如权利要求9所述的数据解码结构,其特征在于,所述读控制模块还包括:
生成预读指示信息并输出至所述SKP数据控制模块,所述预读指示信息用于指示所述读控制模块下一次是否进行读操作,以及在确定所述读控制模块下一次会进行读操作时,指示下一次读出的所述有效解码数据是否包括所述报文头。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310158263.4A CN116226018A (zh) | 2023-02-13 | 2023-02-13 | 一种数据解码结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310158263.4A CN116226018A (zh) | 2023-02-13 | 2023-02-13 | 一种数据解码结构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226018A true CN116226018A (zh) | 2023-06-06 |
Family
ID=86570984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310158263.4A Pending CN116226018A (zh) | 2023-02-13 | 2023-02-13 | 一种数据解码结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226018A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116721614A (zh) * | 2023-06-13 | 2023-09-08 | 广东高云半导体科技股份有限公司 | Edid信息获取装置、液晶显示屏检测装置及方法 |
-
2023
- 2023-02-13 CN CN202310158263.4A patent/CN116226018A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116721614A (zh) * | 2023-06-13 | 2023-09-08 | 广东高云半导体科技股份有限公司 | Edid信息获取装置、液晶显示屏检测装置及方法 |
CN116721614B (zh) * | 2023-06-13 | 2024-07-23 | 广东高云半导体科技股份有限公司 | Edid信息获取装置、液晶显示屏检测装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160124889A1 (en) | Asynchronous fifo buffer with johnson code write pointer | |
KR100680473B1 (ko) | 액세스 시간이 감소된 플래시 메모리 장치 | |
US8291138B2 (en) | Skip based control logic for first in first out buffer | |
US20090323728A1 (en) | Asynchronous data fifo that provides uninterrupted data flow | |
CN116226018A (zh) | 一种数据解码结构 | |
US6798707B2 (en) | Memory control apparatus for serial memory | |
JP3814470B2 (ja) | データ転送方法及びデータ転送装置 | |
CN106776374B (zh) | 一种基于fpga的高效数据缓冲方法 | |
KR20100024255A (ko) | 입출력 인터페이스 및 입출력 데이터 전송 방법 | |
JP4160068B2 (ja) | ベースバンドプロセッサと無線周波数集積モジュールとの間のデジタルプログラミングインターフェース | |
EP3125251A1 (en) | Hamming code-based data access method and integrated random access memory | |
CN108804372B (zh) | 显示装置的V-by-One接口的控制方法、装置及显示装置 | |
CN110798269A (zh) | 基于gpio实现pcm从机功能的方法及*** | |
CN110427168B (zh) | 一种实现任意深度低传输延时的异步fifo的方法及装置 | |
CN111104166B (zh) | 寄存器的写入方法和写入装置 | |
US10573215B2 (en) | Method and device for simplifying TCON signal processing | |
CN115202612A (zh) | 基于异步fifo的超导单磁通量子跨时钟域通信方法及*** | |
US20070130395A1 (en) | Bus processing apparatus | |
CN109031368B (zh) | 一种结合pps信号读取gps接收输出有效数据的方法 | |
JPS58173933A (ja) | 符号信号伝送方式 | |
CN116501268B (zh) | 应用于ddr phy的数据读取方法 | |
US6229866B1 (en) | Apparatus for detecting errors in asynchronous data receiver and transmitter | |
CN116708808A (zh) | Dsc解码器的视频输出电路、dsc解码器***及视频输出方法 | |
US6363132B1 (en) | Asynchronous data conversion system for enabling error to be prevented | |
CN114443560A (zh) | 一种dsp处理器与fpga周期性通信的防帧错方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |