CN110187918B - 二进制至格雷转换电路、相关的fifo存储器、集成电路和方法 - Google Patents

二进制至格雷转换电路、相关的fifo存储器、集成电路和方法 Download PDF

Info

Publication number
CN110187918B
CN110187918B CN201910133529.3A CN201910133529A CN110187918B CN 110187918 B CN110187918 B CN 110187918B CN 201910133529 A CN201910133529 A CN 201910133529A CN 110187918 B CN110187918 B CN 110187918B
Authority
CN
China
Prior art keywords
binary
signal
circuit
value
gray
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.)
Active
Application number
CN201910133529.3A
Other languages
English (en)
Other versions
CN110187918A (zh
Inventor
S·M·罗塞利
G·谷亚纳西亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SRL
Original Assignee
STMicroelectronics SRL
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SRL filed Critical STMicroelectronics SRL
Publication of CN110187918A publication Critical patent/CN110187918A/zh
Application granted granted Critical
Publication of CN110187918B publication Critical patent/CN110187918B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/16Conversion to or from unit-distance codes, e.g. Gray code, reflected binary code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/102Avoiding metastability, i.e. preventing hazards, e.g. by using Gray code counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/106Details of pointers, i.e. structure of the address generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1018Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Logic Circuits (AREA)
  • Communication Control (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Abstract

本公开的各实施例涉及二进制至格雷转换电路、相关的FIFO存储器、集成电路和方法。公开了一种用于执行二进制至格雷转换的电路和方法。第一二进制信号表示目标值并且第二二进制信号存储在寄存器中。确定一组二进制候选值,其中每个二进制候选值的相应的格雷等效具有距第二二进制值的格雷等效为1的汉明距离。根据第一二进制信号和第二二进制信号的选择二进制候选值中的一个。在寄存器的输入处提供所选择的二进制候选值。通过确定所选择的二进制候选值的格雷编码等效来生成编码信号。

Description

二进制至格雷转换电路、相关的FIFO存储器、集成电路和方法
相关申请的交叉引用
本申请要求于2018年2月23日提交的意大利申请号102018000003008的权益,该申请通过引用并入本文。
技术领域
本发明一般涉及二进制至格雷转换电路、以及相关的FIFO存储器、集成电路和方法。
背景技术
促进以不同频率计时的组件之间的系统中的数据交换的可能方法包括如在例如欧洲专利文献EP2362318A1中描述的先入先出(FIFO)存储器。
可以经由用于读/写操作的单独逻辑块来访问这样的FIFO存储器,其可以属于单独的时钟域。具体地,FIFO存储器的操作可以包括响应于第一时钟域而写入以及响应于第二时钟域而进行读取。
FIFO存储器电路可以包括存储区,例如,用多个寄存器实现的寄存器组。此外,FIFO存储器包括:写接口,被配置为生成指示用于写操作的存储区中的地址/存储位置的写指针;以及读接口,被配置为生成指示用于读操作的存储区中的地址/存储位置的读指针。因此,FIFO存储器可以耦合到第一数字电路和第二数字电路,第一数字电路被配置为向写入接口提供数据以将数据存储在存储区中,第二数字电路被配置为访问读取接口以从存储区读取数据。
通常,存储位置的数目是有限的。因此,写接口应该能够确定存储区未满,并且读接口应该能够确定存储区不为空。为此,通常通过比较写指针和读指针来生成控制信号。
在这方面,可以通过使用与FIFO相关联的同步电路来促进信号一致性,该同步电路被配置为在写指针和读指针之间提供同步。此外,通常写指针和读指针不作为二进制值交换,但是写指针和读指针从二进制编码转换为格雷编码。格雷码在本领域中是公知的。例如,可以参考用于构造具有给定数目的位的格雷码的美国专利申请公开号2008/0013386A1,为此目的其通过引用并入本文。
因此,这种同步涉及例如第一时钟域中的二进制编码写指针的格雷编码操作(写时钟信号)和第二时钟域中的格雷编码操作(读时钟信号)以便再次获得二进制编码写指针。也可以对读指针执行类似的操作。
具体地,这种格雷编码确保在写指针和读指针增加时仅单个位改变。实际上,在传统的FIFO存储器中,每个时钟周期写入或读取单个存储位置,例如,分别响应于由第一或第二数字电路提供的写或读使能信号。例如,在该方案中,写指针在每个写时钟周期只能增加一个,从而导致格雷编码的写指针仅改变单个位,即两个连续写指针之间的汉明距离最多是1,从而减少传输过程中可能出现的故障。
然而,写接口和/或读接口也可以支持突发模式(burst mode),其中可以在单个时钟周期中写入或读取多个存储位置,从而通过可能大于一个的存储位置的数目来增加写指针或读指针。然而,二进制编码的写指针的这种跳转可能在同步期间导致错误,只要这样的增量将导致格雷编码的写指针相对于大于1的汉明距离的先前值的变化。对于读指针也存在类似的问题。
发明内容
该描述涉及用于从二进制码信号生成格雷码信号的技术。例如,这种格雷编码信号可用于通过多个时钟域同步数据。一个或多个实施例可以应用于包括能够进行突发写入的FIFO存储器的同步电路。
本说明书的一个或多个实施例可以提供用于根据二进制信号生成格雷编码值的序列的解决方案,其中最终值对应于二进制信号的格雷编码值,而格雷编码值的连续中间值之间的汉明距离保持单位汉明距离,即,在两个连续中间值之间最多发生单个位变化。
例如,这种格雷编码值序列可以再次用于FIFO存储器的写指针和/或读指针的同步。
在一个或多个实施例中,可以通过具有在所附权利要求中阐述的特征的电路来实现该目的。一个或多个实施例可以涉及包括这种电路的相应设备,例如FIFO存储器,以及相关方法。
如前所述,本公开的各种实施例涉及二进制至格雷转换电路。
在各种实施例中,二进制至格雷转换电路包括用于接收第一二进制信号的输入。
在各种实施例中,二进制至格雷转换电路还包括存储第二二进制信号的寄存器。预测电路在输入出接收第二二进制信号并在输出端提供一组二进制候选值,其中每个二进制候选值的相应格雷等效与第二二进制信号的格雷等效具有1的汉明距离。具体地,在各种实施例中,预测电路被配置为提供与第一二进制信号的位的数目对应的多个二进制候选值。
在各种实施例中,仲裁器根据第一二进制信号和第二二进制信号选择二进制候选值中的一个二进制候选值,其中将所选择的二进制候选值再次提供给寄存器。例如,仲裁器可以关联预处理电路,该预处理电路被配置为选择一组二进制候选值的在第二二进制信号的值与第一二进制信号的值之间的二进制候选值,第二二进制信号的值表示下限并且第一二进制信号的值表示上限或者目标值。
例如,预处理电路可以包括用于每个二进制候选值的相应的超范围电路,每个超范围电路被配置为生成相应的屏蔽信号,该相应的屏蔽信号指示相应的二进制候选值是/否在上限和下限之间。因此,仲裁器可以忽略具有相应的屏蔽信号的二进制候选值,该屏蔽信号指示相应的二进制候选值不在下限和上限之间。另外,仲裁器还可以忽略具有距第二二进制信号的距离大于给定最大距离的二进制候选值。在各种实施例中,仲裁器因此可以在剩余的二进制候选值中选择二进制候选值。例如,仲裁器可以选择具有最大值的二进制候选值。
在各种实施例中,还将所选择的二进制候选值提供给编码器块,该编码器块被配置为在输出处提供所选择的二进制候选值的格雷编码等效。
在各种实施例中,预测电路利用组合逻辑电路实现。例如,如下面将描述的,预测电路针对每个二进制候选值可以包括相应子电路。具体地,在各种实施例中,子电路具有关联的电路,该电路被配置为在输出处提供与具有反转的位的第二二进制信号相对应的第一信号。在各种实施例中,每个子电路包括被配置为通过选择第二二进制信号的给定数目的最高有效位来生成第二信号的电路,被配置为通过选择给定数目的最低有效位来生成第三信号的电路,以及被配置为通过组合第二信号和第三信号来生成相应的二进制候选值的电路。具体地,最高有效位和最低有效位的数目取决于由相应子电路提供的二进制候选值的索引。
例如,这种二进制至格雷转换电路可以用在FIFO存储器中。例如,FIFO存储器通常包括包含多个存储位置的存储区和控制电路。具体地,控制电路包括:写接口,被配置为生成指示用于将数据写入存储区的存储位置的二进制写指针;以及读接口,被配置为生成指示用于从存储区读取数据的存储位置的二进制读指针。
为了确定FIFO存储器的全和/或空状态,控制电路还包括用于在写接口和读接口之间交换二进制写指针和/或二进制读指针的同步电路。具体地,通常这种同步电路被配置为交换格雷码信号。因此,在各种实施例中,FIFO存储器包括至少一个如前所述的二进制至格雷转换电路,其中二进制至格雷转换电路在输入处接收二进制写指针或二进制读指针,其中在二进制至格雷转换电路的输出处所选择的二进制候选值的格雷编码等效被提供给同步电路。
附图说明
现在将参考附图仅通过非限制性示例描述一个或多个实施例,其中:
图1示出了FIFO存储器的示例性架构;
图2示出了适于在图1的FIFO存储器中生成写指针或读指针的示例性控制电路;
图3示出了用于生成格雷编码写指针或读指针的示例性电路;
图4示出了图3的电路的操作的时序图;
图5示出了用于生成格雷编码写指针或读指针的另一电路;
图6示出了图5的电路的操作的时序图;
图7示出了用于生成格雷编码写指针或读指针的电路的实施例;和
图8、9、10和11示出了图7的电路的操作细节。
具体实施方式
在以下描述中,给出各种具体细节以提供对各种示例性实施例的透彻理解。可以在没有一个或多个特定细节的情况下或者利用其他方法、组件、材料等来实践实施例。在其他情况下,未详细示出或描述公知的结构、材料和操作以避免模糊实施例的各个方面。
本说明书中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
本文提供的标题仅为了方便,并且因此不解释实施例的保护成都或范围。
如前所述,在包括多个时钟域的诸如片上系统(SoC)的系统中,信号的亚稳定性是跨越时钟域时存在的一般问题,例如,当数据从以第一时钟操作的第一数字电路传输到以不同于第一时钟的第二时钟操作的第二数字电路时。不同的时钟信号可以具有不同的频率,例如,如在异步系统中,或者它们可以具有相同的频率但是具有不相关的相对相位差,例如在同步系统中。
例如,这适用于前面描述的写和读指针。为了将信号从第一时钟域转移到另一个时钟域,现有技术包括使信号通过同步链,例如通过第二时钟信号控制的级联D型触发器。当触发器的建立/保持时间期间同步链的输入信号改变时,自然发生亚稳定性。
减少由亚稳态引起的错误可能性的传统方法是格雷编码。当信号穿过时钟域时,格雷码可以防止捕获无效的瞬态(“毛刺(glitches)”)。非确定性地对信号的每个位进行采样,以用于该时钟域传输。因此,对于每个位,传播旧值或新值。因此,如果多位信号中的多于一位在采样点处改变,则可以传播“毛刺”二进制值(既不是新的也不是旧的)。通过保证仅一个位可以改变,即保证后续信号值之间的单一汉明距离,格雷码使得唯一可能的采样值是新的或旧的多位值。格雷编码与强力同步有助于减少甚至消除任何毛刺,因为任何寄存器的输出都保持稳定。
现在将在FIFO存储器的示例中再次描述上述同步问题。
具体地,图1示出了FIFO存储器50的示例性架构,FIFO存储器50耦合到以第一时钟信号Clock1操作的第一数字电路(写逻辑块)10和以第二时钟信号Clock2操作的第二数字电路(读逻辑块)40。
具体地,FIFO存储器50包括:存储区30,包括多个存储位置,例如,利用寄存器实现;以及控制电路20,被配置为管理写指针和读指针,以用于对存储器30的存储位置的写访问和读访问。
例如,写逻辑块10能够经由时钟信号Clock1的频率处的写指针将数据写入由控制电路20当前选择的一个或多个存储位置,并且读逻辑块40可以经由读指针以时钟信号Clock2的频率从由控制电路20当前选择的一个或多个存储单元读取数据。
在各种实施例中,控制电路20可以被配置为对写指针使用二进制编码,并且读指针用于选择相应的写存储位置和读存储位置,例如,二进制序列“100”对应于十进制数4。
在各种实施例中,控制电路20可以被配置为根据写指针和读指针生成全信号和空信号。
为此目的,控制电路20可以被配置为通过强力同步器(例如,寄存器链)来同步写指针和/或读指针。
经由与FIFO相关联的控制电路20的构造可以促进信号在穿过时钟域时的一致性,该控制电路20被配置为提供格雷编码指针的同步。当地址总线向上或向下计数时,格雷编码确保只有一位改变。因此,在每个写时钟周期,写指针可以仅增加一个,否则使用格雷编码的优点可能变得无关紧要。
例如,图2示出了控制电路20的可能实施例。
在所考虑的实施例中,控制电路20包括以由写逻辑块10提供的时钟频率Clock1操作的第一子电路20a和以由读逻辑块40提供的第二时钟频率Clock2操作的第二子电路20b。
如前所述,控制电路20被配置为生成写指针和读指针。
在所考虑的实施例中,控制电路20包括累加器,累加器包括二进制加法器202和寄存器201。具体地,加法器202在输入处接收寄存器201的内容和信号200。因此,加法器202在输出处提供对应于寄存器201的内容和信号200之和的信号,其再次写入寄存器201。在所考虑的实施例中,加法器202的输出处的信号因此可以对应于具有二进制编码WPB的写指针。
例如,当使用传统的FIFO存储器时,信号200可以对应于写使能信号,由此当写使能信号被设置为高时写指针WPB递增1并且当写使能信号设置为低时写指针WPB保持恒定。具体地,加法器202和寄存器201形成利用时钟信号Clock1操作的子电路20a的一部分。
相反,当实现支持突发写入模式的FIFO存储器时,信号200可以对应于要在单个时钟周期中写入的存储位置的数目。
类似地,子电路20b可以包括利用二进制加法器222和寄存器221实现的累加器,其中加法器在输出处提供具有对应于寄存器221的内容和信号200之和的二进制编码RPB的读指针,其可以对应于读使能信号或指示要读取的多个存储位置。具体地,加法器222和寄存器221形成以时钟信号Clock2操作的子电路20b的一部分。
在各种实施例中,控制电路20还可以包括:第一电路232,被配置为确定FIFO全信号234;和/或第二电路212,被配置为确定FIFO空信号214。
通常,电路232被配置为通过将写指针与读指针进行比较来生成FIFO满信号234。类似地,电路212被配置为通过将写指针与读指针进行比较来生成FIFO空信号214。
因此,在所考虑的实施例中,控制电路20包括用于将写指针传递到时钟域20b的电路,和/或用于将读指针传递到时钟域20a的电路。
具体地,在各种实施例中,该电路分别传递写指针和读指针的格雷编码版本。
具体地,在所考虑的实施例中,加法器202的输出处的二进制写指针WPB被提供给二进制至格雷转换电路204,二进制至格雷转换电路204因此在输出处提供格雷编码的写指针WPG
在所考虑的实施例中,二进制至格雷转换电路204的输出(即,信号WPG)被提供给同步电路211。
例如,在一个或多个实施例中,同步电路211包括多个寄存器206、208和210。在一个或多个实施例中,至少一个寄存器(例如,寄存器206)可以由时钟信号Clock1驱动并且至少一个寄存器(例如,寄存器208和210)可以由时钟信号Clock2驱动。同步电路211的寄存器可以统称为强力同步器(BFS)。同步电路210的最后一个寄存器210因此在输出处提供格雷编码的写指针WP'G的延迟版本。
类似地,可以将加法器222的输出处的二进制读指针RPB提供给二进制至格雷转换电路224,二进制至格雷转换电路224因此在输出处提供格雷编码读指针RPG。格雷编码读指针RPG可以被提供给同步电路231,因此同步电路231提供格雷编码读指针RP'G的输出延迟版本。同样在这种情况下,同步电路231可以利用多个寄存器226、228和230实现,其中至少一个寄存器(例如,寄存器226)可以由时钟信号Clock2驱动并且至少一个寄存器(例如,寄存器228和230)可以由时钟信号Clock1驱动。
因此,在各种实施例中,第一电路232可以确定FIFO满信号234,例如,通过将延迟的格雷编码读指针RP'G转换回二进制编码并将相应的二进制指针与二进制编码写指针WPB进行比较,或者将延迟的格雷编码读指针RP'G与格雷编码写指针WPG进行比较。
类似地,第二电路212可以确定FIFO空信号214,例如,通过将延迟的格雷编码写指针WP'G转换回二进制编码并将相应的二进制指针与二进制编码读指针RPB进行比较,或者将延迟的格雷编码读指针RPG与格雷编码写指针WP'G进行比较。
因此,通常,电路212和/或电路232可以包括格雷至二进制解码器。具体地,在所考虑的实施例中,控制电路20通过子电路205控制写指针增量,子电路205包括耦合到信号200的输入节点、寄存器201、加法器202和二进制至格雷转换电路204。类似地,控制电路20控制子电路225内的读指针增量,子电路225包括耦合到信号220的输入节点、寄存器221、加法器222和二进制至格雷转换电路224.在各种实施例中,子电路205和子电路225可以具有相同的电路结构。
在这方面,美国专利号9,311,975提供了用于实现子电路205和/或225的解决方案。具体地,该文档描述了一种解决方案,其中FIFO存储器50可以被配置为允许在读/写指针中指向新的存储位置的非连续跳转。例如,写指针可以是来自写逻辑块10的数据突发的结果。本质上,该文献提出了一种FIFO存储器50,其被配置为针对来自当前存储位置的写指针和/或读指针确定多个地址跳转候选(其可以备选地称为跳转候选或候选)。接下来,FIFO存储器50可以被配置为从多个地址跳转候选中选择地址跳转候选。
图3中示出了没有特定数据突发设计的控制电路20的子电路205的实施例,以说明如下概念:使用具有数据突发使能的格雷编码不保证两个连续格雷编码指针之间的距离(时钟周期)保持与其先前值的单一汉明距离。
在该示例性实施例中,二进制加法器201包括耦合到信号200和寄存器201的加法器。具体地,加法器202在输入处接收寄存器201的内容和信号200。因此,加法器202在输出处提供对应于寄存器的内容和信号200之和的信号,该信号再次写入寄存器201。在所考虑的实施例中,加法器202的输出处的信号因此可对应于具有二进制编码WPB的写指针。对于具有二进制编码RPB的读指针也是如此。因此,由这两个值的总和产生的值将在下文中一般地表示为目标指针/信号PTR_target。
在所考虑的实施例中,然后将目标指针PTR_target提供给二进制至格雷转换电路204。在所考虑的实施例中,二进制至格雷转换电路204的输出的输出处的信号因此对应于输入值PTR_target的格雷编码等效并且将在下面表示为信号PTR_gray。
图4示出了根据图3的示例性实施例中的前述信号的内容的时间图。
例如,在指示为T0的时钟周期,信号PTR_target的值是PTR_target(T0)=(4)10,其中10表示指针值的十进制表示。例如,在二进制编码中,十进制值4对应于位序列“0100”。信号PTR_gray的值是在时钟周期T0期间信号PTR_target的值的格雷编码等效,例如通过使用包括四个位的位序列,信号PTR_gray可以是“0110”=(4)10
在所考虑的示例中,在相同的时钟周期期间,信号200的值WE是例如。WE(T0)=(9)10。因此,在随后的时钟周期,表示为T1,存储在寄存器401中的值PTR_target改变并且用T0处的信号PTR_target和WE之和的值更新,例如。PTR_target(T1)=PTR_target(T0)+WE(T0)=(13)10。因此,当使用图3的电路时,T1处的PTR_target的格雷等效将是例如PTR_gray(T1)=“1011”=(13)10,其距离先前值的汉明距离大于1。因此,在随后的同步链中,与PTR_gray信号的连续值的汉明距离大于1,导致可能的错误,因为必须在时钟域上传递多于一位的变化。
图5中示出了符合美国专利号9,311,975的控制电路20的子电路205的示例性实施例。
在该示例性实施例中,二进制加法器201再次由耦合到信号200和寄存器201的加法器组成。具体地,加法器202在输入处接收寄存器201的内容和信号200。加法器202在输出处提供对应于寄存器201的内容和信号200之和的信号PTR_target,该信号在下一个时钟周期再次写入寄存器201。
结果PTR_target被传递到执行二进制至格雷转换204的电路204。然而,该电路204不实现直的二进制至格雷转换器204,而是执行更复杂的转换。为此目的,将信号PTR_target提供给二进制至格雷转换电路240a。电路240a包括用于接收二进制编码信号的输入节点,例如信号PTR_target,以及提供格雷编码信号PTR_gray的输出节点。如下所述,在给定的时钟周期中,格雷编码输出信号PTR_gray不一定对应于二进制编码输入信号PTR_target的格雷编码值。因此,在各种实施例中,输入节点可以耦合到加法器电路202的输出。
在所考虑的实施例中,二进制至格雷转换电路240a还包括另一输入节点,其被配置为接收格雷编码输出信号PTR_gray,从而实现输出信号PTR_gray的反馈环路。
具体地,根据美国专利号9,311,975,二进制至格雷转换电路240a生成具有与当前信号PTR_gray的单一汉明距离的所有格雷值/候选。接下来,电路240a确定这些格雷值/候选的二进制等效并选择格雷值,其二进制等效最接近信号PTR_target。这些操作重复一个或多个时钟周期,直到输出信号PTR_gray的二进制等效达到信号PTR_target的值。结果是格雷编码值PTR_gray的序列,其中最后的值PTR_gray对应于二进制信号PTR_target的格雷等效。
图6示出了根据图5的实施例中的数据传输的时间图。
例如,在指示为T0的时钟周期,PTR_target信号的值再次是PTR_target(T0)=(4)10。信号PTR_gray的值是在T0时钟周期期间PTR_target信号的值的格雷编码等效,例如,PTR_gray=“0110”=(4)10。在同一时钟周期期间,信号200的值WE再次为WE(T0)=(9)10
在随后的表示为T1的时钟周期,存储在寄存器201中的信号PTR_target的值改变并且用T0处的PTR_target和WE之和的值更新,例如,PTR_target(T1)=PTR_target(T0)+WE(T0)=(13)10
因此,提供给二进制至格雷转换电路240a的信号PTR_target的值改变并且现在是(13)10
具体地,在所考虑的实施例中,二进制至格雷转换电路240a从当前信号PTR_gray生成汉明距离为1的格雷值/候选,例如信号“1110”、“0010”、“0100”、“0111”为所考虑的示例。此外,二进制至格雷转换电路240a确定这些格雷值/候选的二进制等效,例如“1110”=(11)10、“0010”=(3)10、“0100”=(7)10、“0111”=(5)10为所考虑的示例。接下来,二进制至格雷转换电路240a选择格雷值,其二进制等效与信号PTR_target具有最小的正距离(即,二进制等效,其最接近并且小于信号PTR_target),即“1110”=(11)10为所考虑的示例。因此,在所考虑的示例中,电路240a现在在输出处提供PTR_gray(T1)=“1110”=(11)10
这些操作重复一个或多个时钟周期,直到输出信号PTR_gray的二进制等效达到信号PTR_target的值。结果是格雷编码值序列PTR_gray(“1110”=(11)10、“1010”=(12)10、“1011”=(13)10)其中最后的值PTR_gray对应于二进制的格雷等效信号PTR_target。
因此,该实现确实保证了后续同步链中的信号的一致性。
然而,发明人已经观察到该解决方案是缓慢的(例如,形成针对每个候选值执行的格雷至二进制解码操作)并且就组件的面积占用而言是昂贵的。
在图7中示出了根据本说明书的控制电路20的子电路205的一个或多个实施例。例如,该电路也可以用在支持数据突发模式的FIFO存储器中。具体地,该电路也确保子电路205的输出处的两个连续格雷值PTR_gray之间的汉明距离保持单一。
同样在该示例性实施例中,二进制加法器202包括耦合到信号200和寄存器201的加法器,如前所述。加法器202的输出处的信号PTR_target被传递到执行二进制至格雷转换204的电路。具体地,在所考虑的实施例中,电路204包括二进制至格雷转换电路240b,其在输入处接收二进制编码信号PTR_target并在输出端提供格雷编码信号序列PTR_gray,其中最后格雷编码值再次对应于信号PTR_target的格雷等效。
图8示出了控制电路20的子电路205的示例性硬件实施例。
在一个或多个实施例中,电路240b包括用于接收二进制信号PTR_target的输入节点和用于提供信号PTR_gray的输出节点。
在所考虑的实施例中,电路240b还包括寄存器61。具体地,在所考虑的实施例中,寄存器61被配置为存储信号PTR_gray的二进制等效PTRf。
具体地,在所考虑的实施例中,寄存器61的输出信号PTRf被提供给预测电路62。具体地,预测电路62被配置为在输入处接收信号PTRf并在输出处提供一组二进制候选值63a-63c,其中每个二进制候选值的相应的格雷等效与信号PTRf的格雷等效的汉明距离为1。例如,假设值PTRf具有二进制值(4)10(对应于格雷值“0110”),预测电路62可以在输出处提供二进制值(11)10(对应于格雷值“1110”)、(3)10(对应于格雷值“0010”)、(7)10(对应于格雷值“0100”),以及(5)10(对应于格雷值“0111”)。
在各种实施例中,二进制候选值的数目对应于信号PTRf的位的数目。
通常,可以预先计算信号PTRf的每个值的可能的二进制候选值63a-63c。因此,预测电路62可以用查找表来实现,该查找表已经为信号PTRf的每个值存储了相应的二进制候选值集合,其中每个二进制候选值的相应的格雷等效与相应的信号PTRf的格雷等效具有1的汉明距离。
相反,图8示出了一个实施例,其中预测电路62包括多个预测电路62a-62c。预测电路62a-62c的数目对应于信号PTRf的位的数目,其中每个预测电路62a-62c在输出处提供相应的二进制候选值63a-63c。
具体地,在各种实施例中,预测电路62a-62c用组合逻辑电路实现,该组合逻辑电路被配置为实时计算相应的二进制候选值,如下所述。
在一个或多个实施例中,二进制候选值63a-64c被提供给仲裁器66,仲裁器66被配置为选择二进制候选值63a-63c中的一个。仲裁器66的输出处的信号因此对应于下一个二进制信号PTRf,并因此在输入处馈送到寄存器61。此外,仲裁器66的输出处的信号被提供给二进制到格雷编码器块。具体地,在各种实施例中,编码器块68是组合逻辑电路,其在输出处提供在输入处接收的信号PTRf的格雷编码等效。
例如,为了为给定信号PTR_target选择“最佳”二进制候选值,仲裁器可以关联预处理电路64。例如,在各种实施例中,预处理电路64被配置为仅选择二进制候选值63a-63c的在表示下限的信号PTRf的当前值和表示上限或目标值的信号PTR_target之间的二进制候选值。
例如,在所考虑的实施例中,每个二进制候选值63a-63c可以被提供给相应的超范围块64a-64c,每个超范围块64a-64c被配置为生成相应的屏蔽信号65a-65c,相应的屏蔽信号65a-65c指示相应的二进制候选值在下限和上限之间。
因此,在所考虑的实施例中,仲裁器66可以仅考虑具有指示二进制候选值63a-63c在下限和上限之间的相应屏蔽信号的二进制候选值63a-63c,即超出范围的候选值63a-63c不被考虑在内。
在各种实施例中,预处理电路64/超范围块64a-64c还可以限制(除了下限和上限之外)对具有与信号PTRf的当前值的最大距离的二进制候选值63a-63c的选择。例如,该最大距离可以是可编程的,从而允许设置最大允许跳转值。
因此,一旦通过屏蔽信号65a-65c(例如,当选择相应的二进制候选值63a-63c并且在允许的限制之间时可以设置相应的屏蔽信号)接收到二进制候选值63a-63c的子集,如图所示,仲裁器66可以选择二进制候选值63a-63c的子集的值中的一个。
例如,仲裁器66可以选择二进制候选值63a-63c的子集的最大值。例如,预测电路62可以在输出处以递增(或者备选地递减)的顺序提供二进制候选值63a-63c的序列。因此,仲裁器66可以选择二进制候选值63a-63c的子集的值,该二进制候选值63a-63c的子集是具有指示相应的二进制候选值63a-63c在允许限制之间的屏蔽信号的最后(或备选地第一)值。
在各种实施例中,仲裁器66可以用组合逻辑电路实现,从而在单个时钟周期内选择二进制候选值。
现在将在下面描述预测电路62的可能实现方式。
通常,任何二进制编码值V可以由给定数目的位k表示。
通过对这样的二进制编码值V使用格雷编码,相应的格雷编码值VG通常也具有k位。由于候选值应该具有与该格雷编码值VG为1的汉明距离的事实,存在k个可能的格雷编码候选值,其中第i个格雷编码候选具有格雷编码值VG倒置的第i个位。
代替对格雷编码值执行这些操作,本公开的各种实施例直接用二进制值操作,以便估计k个二进制编码候选值C1...Ck
具体地,在各种实施例中,可以通过求解等式来计算第i个(具有i=1...k)二进制编码候选值:
其中操作“mod”对应于模运算,并且操作“floor”在输入处接收实数并在输出处提供小于或等于输入数的最大整数。
上述等式可以凭经验确定,并且基本上由格雷码的属性产生,其可以通过“镜像”先前位的代码来生成(参见例如美国专利申请公开2008/0013386 A1用于构建格雷代码的描述)。
图9中示出了预测电路62如何根据等式(1)实时计算各个二进制候选值的示例性概念图。
具体地,在所考虑的示例中,在图9中表示为621的值V具有对应于十进制数V=17的值。在所考虑的示例中,用于表示二进制编码中的十进制数V的位的数目是例如k=5。
在该示例中,然后可以在预测电路62的组合逻辑中处理信号V的值,从而提供根据等式(1)计算的一组k=5个二进制候选值622-626。具体地,在各种实施例中,预测电路62确定多个跳转候选622-626,每k个位的第i位中的一个第i个候选表示十进制数V的二进制等效。
在所考虑的操作示例中,利用等式(1)计算的二进制候选值622-626分别对应于十进制值16、18、22、30、14。
在一个或一个以上示范性实施例中,可通过组合逻辑电路获得一组值C1...Ck
图10示出了第i个预测电路62a-62c的示例性硬件实施例62i,因此在输出处提供第i个二进制候选值63i。
因此,在该示例性实施例中,电路62i在输入处接收来自寄存器61的信号PTRf值,并在输出处提供第i个二进制候选值63i,其中第i个二进制候选值的格雷等效具有距信号PTRf的格雷等效为1的汉明距离。
具体地,电路62i针对给定的i实现等式(1)。
具体地,发明人已经观察到术语“floor(V/2i)”可以通过右移位操作来实现。相反,可以利用左移位操作实现与2i的乘法。
这也在图10中示出,其中电路62i包括右逻辑移位621和左逻辑移位622。具体地,在所考虑的示例性实施例中,右逻辑移位块621在输入处接收来自指针块61的信号PTRf并且针对给定值i计算V与2的第i次方之比的floor函数的值。右逻辑移位块621的输出被提供给左逻辑移位块622,左逻辑移位块622因此计算2的i次方和V与2的i次方之比的floor函数的乘积。
通常,在给定电路62i的值i固定的范围内,可以硬连线移位操作。例如,代替明确地实现右移位和左移为操作,电路621和622可以组合在电路627中,电路627被配置为简单地将信号PTRf的i最低有效位(LSB)设置为“0”,从而基本上仅保持信号PTRf的第(k-i)最高有效位(MSB)。
在所考虑的实施例中,电路62i还包括二进制减法器电路623,其被配置为计算在图中表示为输出值620的项(2k-1)和V的值之间的差-其中k再次为用于表示V的位的数目。
例如,在硬件实现中,二进制减法器电路623可以用二进制加法电路实现。具体地,两个项A和B的二进制减法可以在硬件水平处利用其中(A+NOT(B)+1)的二进制加法实现。因此,二进制加法器电路623可以在输入处接收信号PTRf并在输出处提供(2k+NOT(PTRf))的二进制加法的结果,其中逻辑操作NOT对应于信号PTRf的每个位的逻辑反转并且术语2k可以预先计算并在硬件水平处固定。
然而,具有项2k的二进制加法确实不改变操作的结果,因此,电路623可以在输出处简单地提供NOT(PTRf)。
通常,电路623不考虑参数i,因此电路623可以对所有预测电路62a-62c是公共的,即,电路623可以不存在于电路62i内,因为对于所有预测电路值620都相同。
电路623的输出值620可以作为输入传递到被配置为计算模运算的电路624。
例如,在各种实施例中,电路624用最低有效位(LSB)限幅器实现,其被配置为仅维持信号620的i个最低有效位(LSB),即信号620的(k-i)各最高有效位(MSB)被设置为“0”。
在所考虑的实施例中,然后将由电路621/622和624提供的信号提供给二进制加法器625,从而产生第i个二进制候选值63i的值。
具体地,电路627提供具有设置为“0”的i最低有效位的信号,并且电路624提供具有设置为“0”的(k-i)最高有效位(MSB)的信号。因此,加法器电路625还可以通过选择由电路627提供的信号的(k-i)最高有效位(MSB),并选择由电路624提供的信号的最低有效位来简单地生成信号。
图11示出了在i可以被认为是第i个实例的硬连线常数的情况下实现等式(1)的第i个预测电路62a-62c的示例性硬件实现62i的实施例。
在该示例性实施例中,类似于前面段落中描述的内容,电路62i在输入处接收来自寄存器61的信号PTRf值,并在输出处提供第i个二进制候选值63i,其中第i个二进制候选值的格雷等效值具有距信号PTRf的格雷等效为1的汉明距离。
移位电路627接收PTRf信号的k位,而电路627的输出作为输入提供给二进制加法器625。具体地,电路627仅传播(k-i)最高有效位(MSB)。信号PTRf可能将信号PTRf的i最低有效位(LSB)设置为“0”。例如,在k=5且i=4的情况下,移位电路627可以在输出处提供由具有PTRf的MSB值的单个位组成的信号。
电路623可以用反相器(或非逻辑门)实现,在输入处接收PTRf信号并在输出处提供信号620,信号620的位相对于输入位被设置为相反的逻辑电平。
再次,电路623的输出值620可以作为输入传递到被配置为计算模运算的电路624。例如,在各种实施例中,电路624接收信号620的k位,而电路624的输出处的i位作为输入提供给二进制加法器625。
具体地,电路624仅传播信号620的i个最低有效位(LSB),并且信号620的(k-i)最高有效位(MSB)可能被设置为“0”。例如,在k=5且i=4的情况下,电路624可以在输出端提供由具有PTRf的最后四个有效位的值的4位组成的信号。
在所考虑的实施例中,再次将由电路627和624提供的信号提供给电路625,通过组合来自电路624和627的信号产生表示第i个二进制候选值63i的值的k位,例如通过使用由电路627提供的第(k-i)最高有效位和由电路624提供的第i最低有效位(LSB)。
因此,使用图11中所示的电路来实现图10中所示的电路的操作将提供对应于二进制候选值63a-63c中的任何的第i个二进制候选值63i。
因此,通过在图8的预测电路62中使用图10中所示的电路,预测电路62将在输出k处提供二进制候选值,并且仲裁器66将选择k个二进制候选值63a-63c中的一个。如前所述。因此,仲裁器在输出处提供二进制值,该二进制值被馈送到寄存器61和二进制到格雷编码器68。
例如,如在FIFO存储器的上下文中关于图7所描述的,信号PTR_target可以对应于二进制值写指针或读指针。因此,在这种情况下,电路240b在输出处提供格雷编码值PTR_gray的序列(连续格雷值之间的汉明距离为1),其中最后格雷值对应于信号PTR_target的格雷编码版本。
因此,在如图2所示的FIFO存储器的上下文中,图7中所示的电路可以与同步器结合使用,以将写指针和/或读指针递送到另一个时钟域。
因此,先前描述的电路对于支持突发模式写操作和/或读操作的FIFO存储器特别有用,其中在一个时钟周期期间写入/读取多个存储位置。通常,虽然信号PTR_gray(对应于WPG或RPG)不一定对应于二进制写/读指针WPB或RPB(对应于PTR_target)的值,但这并不代表格雷编码值序列仅增加直到达到相应的二进制写/读指针的问题。例如,即使读取接口已经读取数据信号EMPTY仍保持置位或者即使写接口已经写入数据信号FULL仍保持置位,同时避免了同步期间的错误。
因此,类似于具有写/读操作的传统FIFO存储器,该解决方案确保了同步期间的信号一致性。而且,与已知的解决方案相比,可以节省面积并且实现更紧凑。具体地,各种实施例基于也可以直接确定二进制指针候选的公式,其可以在简单的、改进的硬件实现中被利用。因此,各种实施例可以通过减少组件的数目来呈现减小的电路面积占用,同时解决前面讨论的各种问题。
通常,前面讨论的电路还可以用于其中必须将经历“跳转”的二进制值之间的转换转换成相应的格雷编码值的其他布置中。例如,有时电子系统中的数字总线用于传送只能增加或减少的量,例如计数器的输出,然后计数器的输出在时钟域之间传递或者传递到数模转换器。类似地,可能存在用于传输传感器信号的问题,其中信号一致性比数据传输的等待时间更相关。因此,通常,该解决方案也可以用在其他传输系统中,其中使用格雷码。
在不偏离基本原理的情况下,在不脱离保护范围的情况下,关于本文中仅通过非限制性示例描述的内容、实现细节和实施例可以变化,甚至可以明显改变。

Claims (21)

1.一种二进制至格雷转换电路,包括:
输入,被配置为接收第一二进制信号;
寄存器,被配置为存储第二二进制信号;
预测电路,被配置为接收第二二进制信号,并且提供一组二进制候选值,其中每个二进制候选值的相应的格雷等效与所述第二二进制信号的格雷等效具有1的汉明距离;
仲裁器,被配置为根据所述第一二进制信号和所述第二二进制信号,选择所述二进制候选值中的一个二进制候选值,其中所选择的所述二进制候选值被提供给所述寄存器;和
编码器块,被配置为接收所选择的所述二进制候选值,并且输出所选择的所述二进制候选值的格雷编码等效。
2.根据权利要求1所述的电路,其中所述第一二进制信号、所述第二二进制信号和所选择的所述二进制候选值的所述格雷编码等效各自具有给定数目k的位,并且所述预测电路被配置为提供给定数目k的二进制候选值。
3.根据权利要求2所述的电路,其中所述预测电路包括k个子电路,每个子电路被配置为在输出处提供第i个二进制候选值,其中i=1...k。
4.根据权利要求3所述的电路,其中所述预测电路包括第一电路,所述第一电路被配置为接收所述第二二进制信号,并且通过计算项2k-1与所述第二二进制信号的值之间的差来提供第一信号。
5.根据权利要求4所述的电路,其中所述子电路各自包括:
输入,被配置为接收第二二进制信号;
第二电路,被配置为通过选择所述第二二进制信号的k-i个最高有效位来生成第二信号;
第三电路,被配置为通过选择所述第一信号的i个最低有效位来生成第三信号;和
第四电路,被配置为通过组合所述第二信号和所述第三信号来生成相应的二进制候选值。
6.根据权利要求3所述的电路,其中所述预测电路包括第一电路,所述第一电路被配置为接收所述第二二进制信号,并且通过反转所述第二二进制信号的位来提供第一信号。
7.根据权利要求6所述的电路,其中所述子电路各自包括:
输入,被配置为接收所述第二二进制信号;
第二电路,被配置为通过选择所述第二二进制信号的k-i个最高有效位来生成第二信号;
第三电路,被配置为通过选择第一信号的i个最低有效位来生成第三信号;和
第四电路,被配置为通过组合所述第二信号和所述第三信号来生成相应的二进制候选值。
8.根据权利要求1所述的电路,其中所述仲裁器与预处理电路相关联,所述预处理电路被配置为选择所述一组二进制候选值的、在所述第二二进制信号的值与所述第一二进制信号的值之间的所述二进制候选值,所述第二二进制信号的值表示下限,并且所述第一二进制信号的值表示上限或者目标值。
9.根据权利要求8所述的电路,其中对于每个二进制候选值,所述预处理电路包括相应的超范围电路,每个超范围电路被配置为生成相应的屏蔽信号,所述相应的屏蔽信号指示相应的二进制候选值是否在所述上限与所述下限之间。
10.根据权利要求9所述的电路,其中所述仲裁器被配置为忽略具有相应的屏蔽信号的二进制候选值,所述相应的屏蔽信号指示所述相应的二进制候选值不在所述下限与所述上限之间。
11.根据权利要求9所述的电路,其中所述仲裁器被配置为忽略具有距所述第二二进制信号的距离大于给定的最大距离的二进制候选值。
12.根据权利要求1所述的电路,其中所述仲裁器被配置为选择具有最大值的二进制候选值。
13.根据权利要求1所述的电路,其中所述仲裁器利用组合逻辑电路实现。
14.一种FIFO存储器,包括:
存储区,包括多个存储位置;
写接口,被配置为生成二进制写指针,所述二进制写指针指示用于将数据写入所述存储区的存储位置;
读接口,被配置为生成二进制读指针,所述二进制读指针指示用于从所述存储区读取数据的存储位置;
同步电路,被配置为在所述写接口和所述读接口之间交换所述二进制写指针或者所述二进制读指针,其中所述同步电路被配置为交换格雷编码信号;和
二进制至格雷转换电路,被配置为接收所述二进制写指针或者所述二进制读指针,其中由所述二进制至格雷转换电路确定的二进制候选值的格雷编码等效被提供给所述同步电路。
15.根据权利要求14所述的FIFO存储器,其中所述二进制至格雷转换电路包括:
寄存器,被配置为存储第二二进制信号;
预测电路,被配置为接收所述第二二进制信号,并且提供一组二进制候选值,其中每个二进制候选值的相应的格雷等效与所述第二二进制信号的格雷等效具有1的汉明距离;
仲裁器,被配置为根据第一二进制信号和所述第二二进制信号,选择所述二进制候选值中的一个二进制候选值,其中所述第一二进制信号是所述二进制写指针或者所述二进制读指针,并且其中所选择的所述二进制候选值被提供给所述寄存器;和
编码器块,被配置为接收所选择的所述二进制候选值,并且输出所选择的所述二进制候选值的格雷编码等效。
16.一种执行二进制至格雷转换的方法,所述方法包括:
接收表示目标值的第一二进制信号;
将第二二进制信号存储在寄存器中;
确定一组二进制候选值,其中每个二进制候选值的相应的格雷等效与所述第二二进制信号的格雷等效具有1的汉明距离;
根据所述第一二进制信号和第二二进制信号,选择所述二进制候选值中的一个二进制候选值,其中所选择的所述二进制候选值在输入处被提供给所述寄存器;和
通过确定所选择的所述二进制候选值的格雷编码等效来生成编码信号。
17.根据权利要求16所述的方法,其中所选择的所述二进制候选值的所述第一二进制信号、所述第二二进制信号和所述格雷编码等效各自具有给定数目k的位,并且所述一组二进制候选值具有给定数目k的二进制候选值。
18.根据权利要求16所述的方法,其中选择所述二进制候选值中的一个二进制候选值包括:选择所述一组二进制候选值的、在所述第二二进制信号的值与所述第一二进制信号的值之间的所述二进制候选值,所述第二二进制信号的值表示下限,并且所述第一二进制信号的值表示上限或者目标值。
19.根据权利要求18所述的方法,还包括:对于每个二进制候选值,生成相应的屏蔽信号,所述相应的屏蔽信号指示相应的二进制候选值是否在所述下限和所述上限之间。
20.根据权利要求19所述的方法,还包括:忽略具有相应的屏蔽信号的二进制候选值,所述相应的屏蔽信号指示相应的二进制候选值不在所述下限和所述上限之间。
21.根据权利要求19所述的方法,还包括:忽略具有距所述第二二进制信号的距离大于给定最大距离的二进制候选值。
CN201910133529.3A 2018-02-23 2019-02-22 二进制至格雷转换电路、相关的fifo存储器、集成电路和方法 Active CN110187918B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IT102018000003008 2018-02-23
IT102018000003008A IT201800003008A1 (it) 2018-02-23 2018-02-23 Un circuito di conversione da binario a gray, relativi memoria fifo, circuito integrato e procedimento

Publications (2)

Publication Number Publication Date
CN110187918A CN110187918A (zh) 2019-08-30
CN110187918B true CN110187918B (zh) 2024-03-12

Family

ID=62218255

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201920225037.2U Withdrawn - After Issue CN209417720U (zh) 2018-02-23 2019-02-22 二进制至格雷转换电路和fifo存储器
CN201910133529.3A Active CN110187918B (zh) 2018-02-23 2019-02-22 二进制至格雷转换电路、相关的fifo存储器、集成电路和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201920225037.2U Withdrawn - After Issue CN209417720U (zh) 2018-02-23 2019-02-22 二进制至格雷转换电路和fifo存储器

Country Status (4)

Country Link
US (1) US10635394B2 (zh)
EP (1) EP3531560B1 (zh)
CN (2) CN209417720U (zh)
IT (1) IT201800003008A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT201800003008A1 (it) * 2018-02-23 2019-08-23 St Microelectronics Srl Un circuito di conversione da binario a gray, relativi memoria fifo, circuito integrato e procedimento

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314154B1 (en) * 1999-11-04 2001-11-06 Vlsi Technology, Inc Non-power-of-two Gray-code counter and binary incrementer therefor
US6934198B1 (en) * 2004-05-04 2005-08-23 Xilinx, Inc. First-in, first-out buffer system in an integrated circuit
US7796062B1 (en) * 2007-10-17 2010-09-14 Tellabs San Jose, Inc. Method and apparatus for providing non-power-of-two even count gray code
CN101944976A (zh) * 2010-10-11 2011-01-12 复旦大学 一种基于格雷映射的优化网格编码调制系统编码设计方法
CN105487836A (zh) * 2014-10-07 2016-04-13 意法半导体股份有限公司 带跳转候选的双同步电子设备和fifo存储器电路及相关方法
CN209417720U (zh) * 2018-02-23 2019-09-20 意法半导体股份有限公司 二进制至格雷转换电路和fifo存储器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6337893B1 (en) 1999-11-04 2002-01-08 Philips Electronics North America Corp. Non-power-of-two grey-code counter system having binary incrementer with counts distributed with bilateral symmetry
US7668983B2 (en) * 2003-10-24 2010-02-23 Broadcom Corporation System for designing data structures
CN101292484B (zh) * 2005-10-21 2011-08-31 日本电气株式会社 调制解调方法以及调制装置和解调装置
EP1879101B1 (en) 2006-07-11 2010-04-07 STMicroelectronics Srl A method and system for controlling data synchronization in FIFO memories, and related synchronizer
US8458427B2 (en) 2010-02-26 2013-06-04 Stmicroelectronics S.R.L. Synchronization system and related integrated circuit
US9727306B2 (en) * 2014-10-07 2017-08-08 Stmicroelectronics S.R.L. Bi-synchronous electronic device with burst indicator and related methods
US10048893B2 (en) * 2015-05-07 2018-08-14 Apple Inc. Clock/power-domain crossing circuit with asynchronous FIFO and independent transmitter and receiver sides

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314154B1 (en) * 1999-11-04 2001-11-06 Vlsi Technology, Inc Non-power-of-two Gray-code counter and binary incrementer therefor
US6934198B1 (en) * 2004-05-04 2005-08-23 Xilinx, Inc. First-in, first-out buffer system in an integrated circuit
US7796062B1 (en) * 2007-10-17 2010-09-14 Tellabs San Jose, Inc. Method and apparatus for providing non-power-of-two even count gray code
CN101944976A (zh) * 2010-10-11 2011-01-12 复旦大学 一种基于格雷映射的优化网格编码调制系统编码设计方法
CN105487836A (zh) * 2014-10-07 2016-04-13 意法半导体股份有限公司 带跳转候选的双同步电子设备和fifo存储器电路及相关方法
CN209417720U (zh) * 2018-02-23 2019-09-20 意法半导体股份有限公司 二进制至格雷转换电路和fifo存储器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Design and simulation of optical Ex-OR gate and binary to gray code converter using semiconductor optical amplifier;Babita Singh 等;《2016 International Conference on Emerging Trends in Electrical Electronics & Sustainable Energy Systems (ICETEESES)》;第1-4页 *
基于PLC程序实现格雷码转换成二进制码;马东来;《自动化技术与应用》;第36卷(第5期);第1-3页 *

Also Published As

Publication number Publication date
IT201800003008A1 (it) 2019-08-23
CN209417720U (zh) 2019-09-20
US10635394B2 (en) 2020-04-28
EP3531560A1 (en) 2019-08-28
EP3531560B1 (en) 2020-06-17
US20190265947A1 (en) 2019-08-29
CN110187918A (zh) 2019-08-30

Similar Documents

Publication Publication Date Title
EP2149083B1 (en) Fifo buffer
US6553448B1 (en) Method for unit distance encoding of asynchronous pointers for non-power-of-two sized buffers
US7555590B2 (en) Fast buffer pointer across clock domains
US6263410B1 (en) Apparatus and method for asynchronous dual port FIFO
EP1410509B1 (en) Non-power-of-two gray-code counter system having binary incrementer with counts distributed with bilateral symmetry
CN1236450C (zh) 用以控制一非同步先进先出存储器的装置及其操作方法
JP2010160653A (ja) リングバッファ回路及びその制御回路
CN101373424A (zh) 一种异步先进先出存储器的数据读写方法、装置及系统
US6801143B2 (en) Method and apparatus for generating gray code for any even count value to enable efficient pointer exchange mechanisms in asynchronous FIFO'S
CN110187918B (zh) 二进制至格雷转换电路、相关的fifo存储器、集成电路和方法
KR100282516B1 (ko) 길쌈부호 생성기 및 이를 내장한 디지털 신호 프로세서
US20040255188A1 (en) Method and apparatus for determining a status of an asynchronous memory
US6857043B1 (en) Shift register implementations of first-in/first-out memories utilizing a double increment gray code counter
US9311975B1 (en) Bi-synchronous electronic device and FIFO memory circuit with jump candidates and related methods
CN209765494U (zh) 一种异步fifo装置
CN110427168B (zh) 一种实现任意深度低传输延时的异步fifo的方法及装置
KR101370606B1 (ko) 스위칭 횟수 및 크로스톡 지연을 최소화한 버스 인코딩 장치
US7668983B2 (en) System for designing data structures
US7796062B1 (en) Method and apparatus for providing non-power-of-two even count gray code
JPH07111459A (ja) データ圧縮方法
KR100294770B1 (ko) 반도체기억장치
CN110515419B (zh) 一种优化格雷码编码方式实现跨时钟域的装置
JP3471275B2 (ja) 同期化回路
US7277906B2 (en) Method for determining an output value having a lowest error value from an input value
CN113760795A (zh) 一种异步fifo存储器读写控制方法、装置及设备

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
GR01 Patent grant
GR01 Patent grant