US7003423B1 - Programmable logic resource with data transfer synchronization - Google Patents
Programmable logic resource with data transfer synchronization Download PDFInfo
- Publication number
- US7003423B1 US7003423B1 US10/741,593 US74159303A US7003423B1 US 7003423 B1 US7003423 B1 US 7003423B1 US 74159303 A US74159303 A US 74159303A US 7003423 B1 US7003423 B1 US 7003423B1
- Authority
- US
- United States
- Prior art keywords
- clock
- data
- programmable logic
- output
- logic resource
- 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.)
- Expired - Lifetime, expires
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 7
- 230000015654 memory Effects 0.000 claims description 6
- 238000000034 method Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000001360 synchronised effect Effects 0.000 abstract description 21
- 238000013459 approach Methods 0.000 abstract description 4
- 230000007704 transition Effects 0.000 abstract description 3
- 230000000630 rising effect Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
Definitions
- This invention relates to programmable logic resources. More particularly, this invention relates to synchronizing the transfer of data into programmable logic resources.
- a programmable logic resource is a general-purpose integrated circuit that is programmable to perform any of a wide range of logic tasks.
- programmable logic resource technology include programmable logic devices (PLDs), complex programmable logic devices (CPLDs), erasable programmable logic devices (EPLDs), electrically erasable programmable logic devices (EEPLDs), and field programmable gate arrays (FPGAs).
- I/O circuitry is provided to facilitate the transfer of data into programmable logic resources.
- the I/O circuitry serves as an interface between programmable logic resource core circuitry and circuitry external to the programmable logic resource.
- the I/O circuitry can include a dynamic phase alignment circuit, a phase synchronizer, and a data realigner associated with each channel, and one phase-locked loop (PLL) circuit.
- the PLL circuit receives as input a forwarded clock and generates multiple clock phases based on the forwarded clock.
- the multiple clock phases and data signals are sent to the dynamic phase alignment circuit associated with each channel.
- the dynamic phase alignment circuit operates to minimize skew in the data signal relative to the clock to allow for data to be correctly transferred into the programmable logic resource core circuitry.
- Each dynamic phase alignment circuit generates a recovered clock based on the multiple clock phases generated by the PLL circuit, aligns the data signal to the recovered clock to produce retimed data, converts the retimed data to parallel data having a suitable number of bits (e.g., 8 bits, 10 bits), and outputs the parallel data at the same frequency as the programmable logic resource core clock but with a different phase.
- the parallel data is then sent to the phase synchronizer which includes a 4-bit deep first-in first-out (FIFO) buffer.
- the phase synchronizer synchronizes the phase of the parallel data to the phase of the programmable logic resource core clock for output to a data realigner.
- the data realigner which can change the boundary of the synchronized parallel data, outputs data for transmission through the corresponding channel to the programmable logic resource core circuitry.
- phase synchronizers there are several limitations with using phase synchronizers to synchronize the transfer of data into programmable logic resources.
- Implementing a phase synchronizer results in clock latency. For a 4-bit deep FIFO buffer, up to four cycles of latency can be introduced in the data path.
- the phase synchronizer requires a large amount of logic to implement, which increases the area and thus cost of the programmable logic resource.
- Each data transfer block includes a dynamic phase alignment circuit, a reset register, and a data realigner.
- Each dynamic phase alignment circuit receives as input a data signal and multiple clock phases based on a forwarded clock generated by a phase-locked loop (PLL) circuit.
- the dynamic phase alignment circuit generates a recovered clock based on the multiple clock phases and aligns the data signal to the recovered clock using a digital PLL circuit, and then outputs parallel synchronized data using a deserializer and J counter.
- a programmable logic resource core clock and reset signal are sent to a reset register for each channel.
- the programmable logic resource core clock is generated from the same clock source used to generate the multiple clock phases and thus has a predetermined frequency relationship with the multiple clock phases.
- Each reset register controls the reset of the J counter for the deserializer. When the reset signal of the J counter transitions from logic 1 to logic 0, the counter begins to count at a next clock cycle and sets an enable signal accordingly.
- the enable signal controls the output of the synchronized parallel data from the deserializer. Because the programmable logic resource core clock is used to release the reset signal of the J counter in each channel, the enable signal generated by the J counter and the programmable logic resource core clock are phase associated.
- the synchronized parallel data is sent as input to the data realigner.
- the data realigner can change the boundary of the synchronized parallel data and then outputs the data based on the programmable logic resource core clock for input to the programmable logic resource core circuitry.
- the reset register eliminates the latency associated with storing data in the FIFO buffer of the phase synchronizer.
- the invention therefore makes it easier for a user to design logic in, and can potentially save logic elements used in, the programmable logic resource core circuitry.
- less logic is needed to implement the reset register, which decreases the area and thus cost of the programmable logic resource.
- FIG. 1 is a simplified block diagram of an illustrative embodiment of a programmable logic resource in accordance with the invention
- FIG. 2 is a more detailed, but still simplified block diagram of a representative portion of the programmable logic resource shown in FIG. 1 in accordance with the invention
- FIG. 3 is a more detailed, but still simplified block diagram of the data transfer block of FIG. 2 ;
- FIGS. 4A–B represent a timing diagram of the input and output signals in the data transfer block of FIG. 3 ;
- FIG. 5 is a more detailed, but still simplified block diagram of the data transfer block of FIG. 2 in accordance with the invention.
- FIG. 6 is a timing diagram of the input and output signals in the data transfer block of FIG. 5 in accordance with the invention.
- FIG. 7 is a simplified schematic block diagram of an illustrative system employing a programmable logic resource, multi-chip module, or other suitable device in accordance with the invention.
- Programmable logic resource 100 is an integrated circuit that includes programmable logic resource core circuitry 110 and input-output (I/O) circuitry 120 .
- Programmable logic resource core circuitry 110 can be typical programmable logic circuitry of any of several known types and constructions.
- I/O circuitry 120 can be any suitable interface that allows the transfer of data between programmable logic resource core circuitry 110 and circuitry external to programmable logic resource 100 .
- I/O circuitry can be, for example, high speed serial interface circuitry implemented in an intellectual property block.
- circuitry can be provided on any suitable device such as, for example, an application-specific standard product (ASSP), an application-specific integrated circuit (ASIC), a full-custom chip, or a dedicated chip.
- ASSP application-specific standard product
- ASIC application-specific integrated circuit
- I/O circuitry 120 is used to receive one or more signals via connection(s) 122 and to pass the information thus received on to programmable logic resource core circuitry 110 in a form that is more readily usable by the core circuitry. Alternatively or additionally, I/O circuitry 120 may be used to output via connection(s) 122 one or more signals indicative of information received from programmable logic resource core circuitry 110 . Leads 130 are used to convey signals between programmable logic resource core circuitry 110 and I/O circuitry 120 .
- FIG. 2 illustrates a more detailed but still simplified block diagram of a programmable logic resource 200 .
- Programmable logic resource 200 receives differential signal pairs 202 and 204 via input pins from circuitry external to programmable logic resource 200 or from another suitable source.
- Signal pairs 202 and 204 can be routed via a backplane, cables, over a printed circuit board, or another suitable path.
- Signal pair 202 can be a forwarded clock.
- Signal pairs 204 can be input data signals.
- Signal pairs 202 and 204 are applied to conventional differential signaling drivers 206 and 208 , respectively, to convert the signals back to a single-ended signal.
- circuitry 200 can receive as input single-ended signals from any suitable source.
- FIG. 2 is described herein primarily in the context of data being received from external circuitry for transfer to programmable logic resource core circuitry 110 , data can also be transmitted from programmable logic resource core circuitry 110 to external circuitry.
- the output of driver 206 is input to a phase-locked loop (PLL) circuit 210 that generates multiple clocks 212 having a multiple of the frequency of the forwarded clock with different phases that are equally-spaced apart.
- the number of clocks 212 generated can be any suitable number (e.g., 8). The more clocks 212 that are generated, the smaller the phase difference between clocks and thus the better the resolution.
- the clocks can sample at a double data rate (DDR) (i.e., at a rising edge and a falling edge) or at a single data rate (i.e., at a rising edge or at a falling edge).
- DDR double data rate
- PLL circuit 210 can also generate another clock 214 based on one of clocks 212 .
- PLL circuit 210 can include circuitry that divides one of clocks 212 by a predetermined factor to generate clock 214 .
- Clock 214 can be sent to programmable logic resource core circuitry 110 to be used as the programmable logic resource core clock.
- clock 214 can be sent as input to a multiplexer along with one or more clocks, from external circuitry or from other suitable sources, that are generated from the same clock source as signal pair 202 .
- the multiplexer can be controlled by a signal that selects which input to send to the output as the programmable logic resource core clock.
- PLL circuit 210 can be a digital PLL, an enhanced PLL, or another suitable type of PLL.
- each driver 208 , clocks 212 , and signals 222 from programmable logic resource core circuitry 110 are input to a data transfer block 216 in each channel 218 .
- Signals 222 can include, for example, a common reset signal, a common programmable logic resource core clock, and control signals. Signals 222 can be the same for each data transfer block 216 or alternatively, can differ for each data transfer block 216 .
- Each data transfer block 216 processes the input data (i.e., data from driver 208 ) into a form suitable for transfer to programmable logic resource core circuitry 110 .
- Each data transfer block 216 outputs a data signal 220 through a respective channel 218 to programmable logic resource core circuitry 110 .
- FIG. 3 is a more detailed diagram of a data transfer block 300 (e.g., block 216 ) that uses a phase synchronizer.
- Block 300 receives clocks 212 from PLL circuit 210 , data signal 204 from external circuitry via driver 208 , and signals 222 from programmable logic resource core circuitry 110 .
- Block 300 includes a dynamic phase alignment circuit (i.e., a digital PLL (DPLL) circuit 310 , a deserializer 320 , and a J counter 330 ), a phase synchronizer 340 and a data realigner 350 .
- DPLL digital PLL
- DPLL 310 J counter 330 , phase synchronizer 340 , and data realigner 350 can each receive a reset signal 352 (part of signals 222 ) that may be set during initialization of a programmable logic resource or at another suitable time.
- Reset signal 352 controls when registers are to be cleared.
- DPLL 310 which receives data signal 204 and clocks 212 , generates a recovered clock 314 based on clocks 212 and aligns data signal 204 to recovered clock 314 to produce retimed data 312 .
- Retimed data 312 is sent to deserializer 320 .
- Recovered clock 314 which has the same frequency as one of clocks 212 but can be offset in phase, is sent to deserializer 320 and J counter 330 .
- Deserializer 320 converts the retimed data 312 to parallel data 322 having any suitable number of bits (e.g., 8 bits, 10 bits).
- J counter 330 controls the output of parallel data 322 from deserializer 320 .
- J counter 330 (where J represents the number of bits in parallel data 322 ) maintains a counter that keeps track of the number of bits of retimed data 312 that are input to deserializer 320 , sends an enable signal 332 to deserializer 320 indicating that deserializer 320 is to output the eight bits of parallel data 322 , and resets the counter to keep track of a next set of eight bits of retimed data 312 .
- J counter 330 also outputs a parallel clock 334 having the same frequency as core clock signal 354 (part of signals 222 ) but with a different phase.
- Data is read into and written out of phase synchronizer 340 using different clocks.
- Parallel data 322 is written into a 4-bit deep first-in first-out (FIFO) buffer in phase synchronizer 340 based on parallel clock 334 .
- Synchronized parallel data 342 is read out of the FIFO buffer from phase synchronizer 340 based on core clock signal 354 .
- Synchronized parallel data 342 is input to data realigner 350 , which can change the boundary of synchronized parallel data 342 .
- Data realigner 350 outputs data 220 based on core clock signal 354 for input to programmable logic resource core circuitry 110 .
- Data realigner 350 can also receive one or more control signals 356 (part of signals 222 ) that control whether to change the boundary of synchronized parallel data 342 .
- FIGS. 4A–B represent a timing diagram 400 of the input and output signals in data transfer block 300 .
- Registers in block 300 can be initially reset by setting reset signal 352 to logic 1.
- Input data signal 204 can be a serial bit stream (e.g., Bit 0 , Bit 1 , . . . Bit 7 , Bit 0 , Bit 1 , . . . ) that is sent as input to DPLL 310 .
- DPLL 310 can output retimed data 312 that is phase aligned to recovered clock 314 (e.g., at reference 402 ).
- J counter 330 sets enable signal 332 to logic 1 so that at an eighth recovered clock cycle (at reference 406 ), deserializer 320 sends out a first byte of parallel data 322 (Byte 0 ) and the counter is reset.
- the first byte of parallel data 322 is written into the FIFO buffer in phase synchronizer 340 .
- J counter 330 sets enable signal 332 to logic 1 so that at an eighth recovered clock cycle (at reference 410 ), deserializer 320 sends out a second byte of parallel data 322 (Byte 1 ) and the counter is reset. At the next rising edge of parallel clock 334 (at reference 411 ), the second byte of parallel data 322 is written into the FIFO buffer in phase synchronizer 340 .
- deserializer 320 sends out a third byte of parallel data 322 (Byte 2 ) and the counter is reset.
- the third byte of data is written into the FIFO buffer in phase synchronizer 340 .
- deserializer 320 sends out a fourth byte of parallel data 322 (Byte 3 ) and the counter is reset.
- the fourth byte of data is written into the FIFO buffer in phase synchronizer 340 .
- the 4-bit deep FIFO buffer is now full.
- phase synchronizer 340 reads out the first byte of synchronized parallel data 342 (Byte 0 ) to data realigner 350 .
- deserializer 320 sends out a fifth byte of parallel data 322 (Byte 4 ) and the counter is reset.
- the fifth byte of data is written into the FIFO buffer in phase synchronizer 340 .
- phase synchronizer 340 At the next rising edge of core clock signal 354 (at reference 420 ), data realigner 350 outputs the first byte of output data 220 (Byte 0 ) and phase synchronizer 340 reads out the second byte of synchronized parallel data 342 (Byte 1 ) to data realigner 350 .
- phase synchronizer 340 introduces up to four clock cycles of latency.
- data can be synchronized between the dynamic phase alignment circuit and the programmable logic resource core circuitry without implementing a phase synchronizer.
- a programmable logic resource core clock and reset signal can be routed to a reset register for each channel.
- Each reset register controls the reset of the J counter for the deserializer.
- the reset signal of the J counter transitions from logic 1 to logic 0, the counter begins to count and sets the enable signal accordingly.
- the programmable logic resource core clock is used to release the reset signal of the J counter in each channel.
- the enable signal generated by the J counter and the programmable logic resource core clock are phase associated.
- the DPLL generates a recovered clock (which can affect the enable signal) having a phase that can vary from one of the PLL clock phases by at most half a serial cycle, the minimum setup and hold times needed to correctly transfer the synchronized parallel data from the deserializer to the data realigner are met.
- the programmable logic resource core clock also clocks the data realigner to output the data to the programmable logic resource core circuitry. This ensures synchronization between the dynamic phase alignment circuit and the programmable logic resource core circuitry without logic element replacement restrictions as long as setup and hold times are met for all interface registers under the same programmable logic resource core clock domain.
- FIG. 5 is a more detailed diagram of a data transfer block 500 (e.g., block 216 ) that does not use a phase synchronizer in accordance with the invention.
- Block 500 receives clocks 212 from PLL circuit 210 , data signal 204 from external circuitry via driver 208 , and signals 222 from programmable logic resource core circuitry 110 .
- Block 500 includes a DPLL circuit 510 , a deserializer 520 , a J counter 530 , a reset register 540 , and a data realigner 550 .
- DPLL 510 generates a recovered clock 514 and aligns data signal 204 to recovered clock 514 to produce retimed data 512 .
- Retimed data 512 is sent to deserializer 520 .
- Recovered clock 514 is sent to deserializer 520 and J counter 530 .
- Reset register 540 is a flip-flop that receives as input reset signal 552 (part of signals 222 ) and outputs a reset signal 552 based on core clock signal 554 (part of signals 222 ). Reset signal 552 , which is released from reset by core clock signal 554 , is used to control the reset of DPLL 510 , J counter 530 , and data realigner 550 .
- Reset register 540 therefore determines when J counter 530 is to begin counting. Based on when J counter 530 is to begin counting, enable signal 532 is set accordingly. Enable signal 532 and core clock signal 554 are phase associated. When enable signal 532 is set, deserializer 520 outputs synchronized parallel data 522 to data realigner 550 . Data realigner 550 outputs data 220 based on core clock signal 554 for input to programmable logic resource core circuitry 110 . Data realigner 550 can also receive one or more control signals 556 (part of signals 222 ) that control whether to change the boundary of synchronized parallel data 522 .
- Core clock signal 554 can come from any suitable source that is based on the same clock source used to generate clocks 212 . As a result, core clock signal 554 has a predetermined frequency relationship with clocks 212 .
- core clock 554 can be a clock generated from PLL circuit 210 .
- PLL circuit 210 can include a clock divider that divides one of clocks 212 by a predetermined factor.
- core clock 554 can be generated from the same clock source by a separate clock divider circuit either external to the programmable logic resource or within programmable logic resource core circuitry 110 .
- FIG. 6 represents a timing diagram 600 of the input and output signals in data transfer block 500 .
- Registers in block 600 can be initially reset by setting reset signal 552 to logic 1.
- Reset signal 552 can be clocked in reset register 540 by programmable logic resource core clock 554 for output as reset signal 542 .
- Input data signal 204 can be a serial bit stream (e.g., Bit 0 , Bit 1 , . . . Bit 7 , Bit 0 , Bit 1 , . . . ) that is sent as input to DPLL 510 .
- DPLL 510 can output retimed data 512 that is phase aligned to recovered clock 514 (at reference 602 ).
- J counter 530 sets enable signal 532 to logic 1 so that at an eighth recovered clock cycle (at reference 606 ), deserializer 520 sends out a first byte of synchronized parallel data 522 (Byte 0 ) and the counter is reset.
- the usual definition of a byte is eight bits, but as used herein “byte” can refer to any plural number of bits such as eight bits, nine bits, ten bits, eleven bits, or fewer or more than these number of bits.
- data realigner 550 outputs the first byte of output data 220 (Byte 0 ). As shown in references 608 and 610 , synchronized parallel data 522 meets the respective setup (Ts) and hold (TH) times for correctly transferring the first byte of output data 220 to programmable logic resource core circuitry 110 .
- J counter 530 sets enable signal 532 to logic 1 so that at an eighth recovered clock cycle (at reference 616 ), deserializer 520 sends out a second byte of synchronized parallel data 522 (Byte 1 ) and the counter is reset.
- data realigner 550 outputs the second byte of output data 220 (Byte 1 ).
- synchronized parallel data 522 meets the respective setup (Ts) and hold (TH) times for correctly transferring the second byte of output data 220 to programmable logic resource core circuitry 110 .
- the signals are described herein primarily in the context of being set and sent as input and output during the rising edges of various clock signals. However, the signals can be set and sent as input and output during the falling edges or both during the rising and falling edges of the various clock signals.
- the reset register eliminates the latency associated with storing data in the 4-bit deep FIFO buffer of the phase synchronizer.
- the invention therefore makes it easier for a user to design logic in, and can potentially save logic elements used in, the programmable logic resource core circuitry.
- less logic is needed to implement the reset register, which decreases the area and thus cost of the programmable logic resource.
- FIG. 7 illustrates a programmable logic resource 702 , multi-chip module 704 , or other device (e.g., ASSP, ASIC, full-custom chip, dedicated chip), which includes embodiments of this invention in a data processing system 700 .
- Data processing system 700 can include one or more of the following components: a processor 706 , memory 708 , I/O circuitry 710 , and peripheral devices 712 . These components are coupled together by a system bus or other interconnections 720 and are populated on a circuit board 730 which is contained in an end-user system 740 .
- System 700 can be used in a wide variety of applications, such as computer networking, data networking, instrumentation, video processing, digital signal processing, or any other application where the advantage of using programmable or reprogrammable logic is desirable.
- Programmable logic resource/module 702 / 704 can be used to perform a variety of different logic functions.
- programmable logic resource/module 702 / 704 can be configured as a processor or controller that works in cooperation with processor 706 .
- Programmable logic resource/module 702 / 704 may also be used as an arbiter for arbitrating access to a shared resource in system 700 .
- programmable logic resource/module 702 / 704 can be configured as an interface between processor 706 and one of the other components in system 700 . It should be noted that system 700 is only exemplary, and that the true scope and spirit of the invention should be indicated by the following claims.
- each PLC can be a relatively simple programmable connector such as a switch or a plurality of switches for connecting any one of several inputs to an output.
- each PLC can be a somewhat more complex element that is capable of performing logic (e.g., by logically combining several of its inputs) as well as making a connection.
- each PLC can be a product term logic, implementing functions such as AND, NAND, OR, or NOR.
- components suitable for implementing PLCs include EPROMs, EEPROMs, pass transistors, transmission gates, antifuses, laser fuses, metal optional links, etc.
- PLCs and other circuit components may be controlled by various, programmable, function control elements (“FCEs”).
- FCEs can be SRAMS, DRAMS, magnetic RAMS, ferro-electric RAMS, first-in first-out (“FIFO”) memories, EPROMS, EEPROMs, function control registers, ferro-electric memories, fuses, antifuses, or the like. From the various examples mentioned above it will be seen that this invention is applicable to both one-time-only programmable and reprogrammable resources.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
Abstract
Description
Claims (23)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/741,593 US7003423B1 (en) | 2003-12-18 | 2003-12-18 | Programmable logic resource with data transfer synchronization |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/741,593 US7003423B1 (en) | 2003-12-18 | 2003-12-18 | Programmable logic resource with data transfer synchronization |
Publications (1)
Publication Number | Publication Date |
---|---|
US7003423B1 true US7003423B1 (en) | 2006-02-21 |
Family
ID=35810769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/741,593 Expired - Lifetime US7003423B1 (en) | 2003-12-18 | 2003-12-18 | Programmable logic resource with data transfer synchronization |
Country Status (1)
Country | Link |
---|---|
US (1) | US7003423B1 (en) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060036888A1 (en) * | 2004-07-05 | 2006-02-16 | Stmicroelectronics Limited | Reset in a system-on-chip circuit |
US20060047990A1 (en) * | 2004-09-01 | 2006-03-02 | Micron Technology, Inc. | System and method for data storage and transfer between two clock domains |
US20070104302A1 (en) * | 2005-11-09 | 2007-05-10 | Henrion Carson D | Method and apparatus for reducing synchronizer shadow |
US20070240012A1 (en) * | 2006-04-07 | 2007-10-11 | Ali Burney | Memory interface circuitry with phase detection |
US7398492B2 (en) * | 2004-06-03 | 2008-07-08 | Lsi Corporation | Rules and directives for validating correct data used in the design of semiconductor products |
US20080244299A1 (en) * | 2007-03-30 | 2008-10-02 | Andrew David Tune | Data processing apparatus and method for translating a signal between a first clock domain and a second clock domain |
US20080263480A1 (en) * | 2004-06-03 | 2008-10-23 | Lsi Corporation | Language and templates for use in the design of semiconductor products |
US7535254B1 (en) | 2007-05-14 | 2009-05-19 | Xilinx, Inc. | Reconfiguration of a hard macro via configuration registers |
US7555667B1 (en) | 2006-04-07 | 2009-06-30 | Altera Corporation | Programmable logic device integrated circuit with dynamic phase alignment capabilities and shared phase-locked-loop circuitry |
US7557607B1 (en) | 2007-05-14 | 2009-07-07 | Xilinx, Inc. | Interface device reset |
US7573295B1 (en) * | 2007-05-14 | 2009-08-11 | Xilinx, Inc. | Hard macro-to-user logic interface |
US7590211B1 (en) | 2006-04-07 | 2009-09-15 | Altera Corporation | Programmable logic device integrated circuit with communications channels having sharing phase-locked-loop circuitry |
US7626418B1 (en) | 2007-05-14 | 2009-12-01 | Xilinx, Inc. | Configurable interface |
US7644296B1 (en) | 2006-04-07 | 2010-01-05 | Altera Corporation | Programmable logic device integrated circuits with configurable dynamic phase alignment circuitry |
US7702840B1 (en) | 2007-05-14 | 2010-04-20 | Xilinx, Inc. | Interface device lane configuration |
US7707448B1 (en) * | 2007-05-03 | 2010-04-27 | Oracle America, Inc. | Deterministic test strand unparking |
US7715467B1 (en) * | 2006-04-07 | 2010-05-11 | Altera Corporation | Programmable logic device integrated circuit with dynamic phase alignment capabilities |
US20100135666A1 (en) * | 2008-11-28 | 2010-06-03 | Electronics And Telecommunications Research Institute | Clock phase aligning apparatus for burst-mode data |
US20100268978A1 (en) * | 2002-10-11 | 2010-10-21 | Broadcom Corporation | Apparatus and method to interface two different clock domains |
US20140347108A1 (en) * | 2012-03-26 | 2014-11-27 | Rambus Inc. | Method and apparatus for source-synchronous signaling |
US9727306B2 (en) | 2014-10-07 | 2017-08-08 | Stmicroelectronics S.R.L. | Bi-synchronous electronic device with burst indicator and related methods |
US20180137226A1 (en) * | 2016-11-17 | 2018-05-17 | Intel Corporation | Methods for verifying retimed circuits with delayed initialization |
US10354038B1 (en) | 2016-11-15 | 2019-07-16 | Intel Corporation | Methods for bounding the number of delayed reset clock cycles for retimed circuits |
US11210393B2 (en) * | 2016-05-27 | 2021-12-28 | Arm Ip Limited | Context data control |
US11372461B2 (en) * | 2020-04-23 | 2022-06-28 | Nordic Semiconductor Asa | Circuitry for transferring data across reset domains |
US11855633B2 (en) | 2022-05-27 | 2023-12-26 | Stmicroelectronics (Rousset) Sas | Programmable logic array with reliable timing |
US20240094789A1 (en) * | 2021-02-04 | 2024-03-21 | Nordic Semiconductor Asa | Reset domain control |
US11942935B2 (en) | 2022-07-08 | 2024-03-26 | Stmicroelectronics (Rousset) Sas | Programmable logic block with multiple types of programmable arrays and flexible clock selection |
US11979153B2 (en) | 2022-04-29 | 2024-05-07 | Stmicroelectronics (Rousset) Sas | Input signal shaping for a programmable logic array |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010033188A1 (en) | 2000-03-14 | 2001-10-25 | Edward Aung | Clock data recovery circuitry associated with programmable logic device circuitry |
US6650140B2 (en) | 2001-03-19 | 2003-11-18 | Altera Corporation | Programmable logic device with high speed serial interface circuitry |
US20040236977A1 (en) * | 2003-05-22 | 2004-11-25 | Kizer Jade M. | Method and apparatus for programmable sampling clock edge selection |
-
2003
- 2003-12-18 US US10/741,593 patent/US7003423B1/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010033188A1 (en) | 2000-03-14 | 2001-10-25 | Edward Aung | Clock data recovery circuitry associated with programmable logic device circuitry |
US6650140B2 (en) | 2001-03-19 | 2003-11-18 | Altera Corporation | Programmable logic device with high speed serial interface circuitry |
US20040236977A1 (en) * | 2003-05-22 | 2004-11-25 | Kizer Jade M. | Method and apparatus for programmable sampling clock edge selection |
Non-Patent Citations (3)
Title |
---|
Altera Corporation, "Using Source-Synchronous Signaling with DPA in Stratix GX Devices," Application Note 236, Version 1.0, Nov. 2002, pp. 1-18. |
U.S. Appl. No. 10/059,014, filed Jan. 29, 2002, Lee et al. |
U.S. Appl. No. 10/713,877, filed Nov. 13, 2003, Churchill et al. |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171334B2 (en) * | 2002-10-11 | 2012-05-01 | Broadcom Corporation | Apparatus and method to interface two different clock domains |
US20100268978A1 (en) * | 2002-10-11 | 2010-10-21 | Broadcom Corporation | Apparatus and method to interface two different clock domains |
US20080263480A1 (en) * | 2004-06-03 | 2008-10-23 | Lsi Corporation | Language and templates for use in the design of semiconductor products |
US7945878B2 (en) | 2004-06-03 | 2011-05-17 | Lsi Corporation | Rules and directives for validating correct data used in the design of semiconductor products |
US8037448B2 (en) | 2004-06-03 | 2011-10-11 | Lsi Corporation | Language and templates for use in the design of semiconductor products |
US7398492B2 (en) * | 2004-06-03 | 2008-07-08 | Lsi Corporation | Rules and directives for validating correct data used in the design of semiconductor products |
US7366938B2 (en) * | 2004-07-05 | 2008-04-29 | Stmicroelectronics Limited | Reset in a system-on-chip circuit |
US20060036888A1 (en) * | 2004-07-05 | 2006-02-16 | Stmicroelectronics Limited | Reset in a system-on-chip circuit |
US20060047990A1 (en) * | 2004-09-01 | 2006-03-02 | Micron Technology, Inc. | System and method for data storage and transfer between two clock domains |
US7515667B2 (en) * | 2005-11-09 | 2009-04-07 | Hewlett-Packard Development Company, L.P. | Method and apparatus for reducing synchronizer shadow |
US20070104302A1 (en) * | 2005-11-09 | 2007-05-10 | Henrion Carson D | Method and apparatus for reducing synchronizer shadow |
US7715467B1 (en) * | 2006-04-07 | 2010-05-11 | Altera Corporation | Programmable logic device integrated circuit with dynamic phase alignment capabilities |
US7555667B1 (en) | 2006-04-07 | 2009-06-30 | Altera Corporation | Programmable logic device integrated circuit with dynamic phase alignment capabilities and shared phase-locked-loop circuitry |
US20070240012A1 (en) * | 2006-04-07 | 2007-10-11 | Ali Burney | Memory interface circuitry with phase detection |
US7590211B1 (en) | 2006-04-07 | 2009-09-15 | Altera Corporation | Programmable logic device integrated circuit with communications channels having sharing phase-locked-loop circuitry |
US7644296B1 (en) | 2006-04-07 | 2010-01-05 | Altera Corporation | Programmable logic device integrated circuits with configurable dynamic phase alignment circuitry |
US7664978B2 (en) | 2006-04-07 | 2010-02-16 | Altera Corporation | Memory interface circuitry with phase detection |
US20080244299A1 (en) * | 2007-03-30 | 2008-10-02 | Andrew David Tune | Data processing apparatus and method for translating a signal between a first clock domain and a second clock domain |
US7809972B2 (en) * | 2007-03-30 | 2010-10-05 | Arm Limited | Data processing apparatus and method for translating a signal between a first clock domain and a second clock domain |
US7707448B1 (en) * | 2007-05-03 | 2010-04-27 | Oracle America, Inc. | Deterministic test strand unparking |
US7702840B1 (en) | 2007-05-14 | 2010-04-20 | Xilinx, Inc. | Interface device lane configuration |
US7626418B1 (en) | 2007-05-14 | 2009-12-01 | Xilinx, Inc. | Configurable interface |
US7573295B1 (en) * | 2007-05-14 | 2009-08-11 | Xilinx, Inc. | Hard macro-to-user logic interface |
US7557607B1 (en) | 2007-05-14 | 2009-07-07 | Xilinx, Inc. | Interface device reset |
US7535254B1 (en) | 2007-05-14 | 2009-05-19 | Xilinx, Inc. | Reconfiguration of a hard macro via configuration registers |
US20100135666A1 (en) * | 2008-11-28 | 2010-06-03 | Electronics And Telecommunications Research Institute | Clock phase aligning apparatus for burst-mode data |
US10840920B2 (en) | 2012-03-26 | 2020-11-17 | Rambus Inc. | Method and apparatus for source-synchronous signaling |
US9748960B2 (en) * | 2012-03-26 | 2017-08-29 | Rambus Inc. | Method and apparatus for source-synchronous signaling |
US20140347108A1 (en) * | 2012-03-26 | 2014-11-27 | Rambus Inc. | Method and apparatus for source-synchronous signaling |
US10211841B2 (en) | 2012-03-26 | 2019-02-19 | Rambus Inc. | Method and apparatus for source-synchronous signaling |
US10541693B2 (en) | 2012-03-26 | 2020-01-21 | Rambus Inc. | Method and apparatus for source-synchronous signaling |
US9727306B2 (en) | 2014-10-07 | 2017-08-08 | Stmicroelectronics S.R.L. | Bi-synchronous electronic device with burst indicator and related methods |
US11210393B2 (en) * | 2016-05-27 | 2021-12-28 | Arm Ip Limited | Context data control |
US10354038B1 (en) | 2016-11-15 | 2019-07-16 | Intel Corporation | Methods for bounding the number of delayed reset clock cycles for retimed circuits |
US20180137226A1 (en) * | 2016-11-17 | 2018-05-17 | Intel Corporation | Methods for verifying retimed circuits with delayed initialization |
US10372850B2 (en) * | 2016-11-17 | 2019-08-06 | Intel Corporation | Methods for verifying retimed circuits with delayed initialization |
US11372461B2 (en) * | 2020-04-23 | 2022-06-28 | Nordic Semiconductor Asa | Circuitry for transferring data across reset domains |
US20240094789A1 (en) * | 2021-02-04 | 2024-03-21 | Nordic Semiconductor Asa | Reset domain control |
US11979153B2 (en) | 2022-04-29 | 2024-05-07 | Stmicroelectronics (Rousset) Sas | Input signal shaping for a programmable logic array |
US11855633B2 (en) | 2022-05-27 | 2023-12-26 | Stmicroelectronics (Rousset) Sas | Programmable logic array with reliable timing |
US11942935B2 (en) | 2022-07-08 | 2024-03-26 | Stmicroelectronics (Rousset) Sas | Programmable logic block with multiple types of programmable arrays and flexible clock selection |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7003423B1 (en) | Programmable logic resource with data transfer synchronization | |
EP2056516B1 (en) | Clock data recovery circuitry associated with programmable logic device circuitry | |
US20170155529A1 (en) | Clock Data Recovery Circuitry Associated With Programmable Logic Device Circuitry | |
US7366267B1 (en) | Clock data recovery with double edge clocking based phase detector and serializer/deserializer | |
US7343569B1 (en) | Apparatus and method for reset distribution | |
US6724328B1 (en) | Byte alignment for serial data receiver | |
EP1670199B1 (en) | Design of channel alignment, error handling, and clock routing using hard-wired blocks for data transmission within programmable logic integrated circuits | |
US7183797B2 (en) | Next generation 8B10B architecture | |
US7046174B1 (en) | Byte alignment for serial data receiver | |
US7340021B1 (en) | Dynamic phase alignment and clock recovery circuitry | |
US10439615B2 (en) | Dynamic clock-data phase alignment in a source synchronous interface circuit | |
US7272677B1 (en) | Multi-channel synchronization for programmable logic device serial interface | |
US7242737B2 (en) | System and method for data phase realignment | |
US8860475B1 (en) | Techniques for adjusting phases of clock signals | |
JP4448076B2 (en) | Timing adjustment circuit for data transmission / reception circuit, LSI and data transmission / reception system | |
US8718215B2 (en) | Method and apparatus for deskewing data transmissions | |
JP5610540B2 (en) | Serial communication interface circuit and parallel serial conversion circuit | |
US8923440B1 (en) | Circuitry for padded communication protocols | |
US7460040B1 (en) | High-speed serial interface architecture for a programmable logic device | |
US7688116B1 (en) | Read data path | |
JP2596336B2 (en) | Asynchronous digital communication device | |
US8391432B2 (en) | Data serializer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ALTERA CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KABANI, MALIK;LUI, HENRY;REEL/FRAME:015290/0470;SIGNING DATES FROM 20040421 TO 20040423 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALTERA CORPORATION;REEL/FRAME:060778/0032 Effective date: 20220708 |
|
AS | Assignment |
Owner name: TAHOE RESEARCH, LTD., IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTEL CORPORATION;REEL/FRAME:061827/0686 Effective date: 20220718 |