Abstract:
A clock and data distribution network is proposed that distributes clock and data signals without buffers, thus achieving very low jitter, skew, loose timing requirements, and energy consumption. Such network uses resonant drivers and is generally applicable to architectures for programmable logic devices (PLDs) such as field programmable gate arrays (FPGAs), as well as other semiconductor devices with multiple clock networks operating at various clock frequencies, and high-performance and low-power clocking requirements such as microprocessors, applications specific integrated circuits (ASICs), and Systems-on-a-Chip (SOCs).

Description:
RELATED APPLICATIONS 
       [0001]    This application claims priority to United States Nonprovisional patent application Ser. No. 12/125,009 filed May 21, 2008, and entitled “Resonant Clock and Interconnect Architecture for Digital Devices with Multiple Clock Networks” by Alexander T. Ishii, et al., which claims priority to U.S. Provisional Patent Application No. 60/931,582 filed May 23, 2007, and entitled “Resonant Clock and Interconnect Architecture for Programmable Logic Devices,” by Alexander Ishii, et al., both of which are hereby incorporated herein by reference. 
         [0002]    This disclosure is related to the technologies described in U.S. Pat. No. 6,879,190 (“Low-power driver with energy recovery”), U.S. Pat. No. 6,777,992 (“Low-power CMOS flip-flop”), U.S. Pat. No. 6,742,132 (“Method and apparatus for generating a clock signal having a driven oscillator circuit formed with energy storage characteristics of a memory storage device”), U.S. Patent Application No. 20070096957 (“Ramped clock digital storage control), U.S. Pat. No. 7,355,454 (“Energy recovery boost logic”), U.S. patent application Ser. No. 11/949,664 (“Clock distribution network architecture for resonant-clocked systems”), U.S. patent application Ser. No. 11/949,669 (“Clock distribution network architecture with resonant clock gating”), and the U.S. patent application Ser. No. 11/949,673 (“Clock distribution network architecture with clock skew management”), the entire disclosures of which are hereby incorporated by reference. 
     
    
     FIELD OF THE DISCLOSURE 
       [0003]    This disclosure relates generally to clock and data distribution network architectures for programmable logic devices (PLDs) such as field programmable gate arrays (FPGAs). It also relates generally to clock distribution network architectures for digital devices with multiple clock networks and various clock frequencies such as microprocessors, application-specific integrated circuits (ASICs), and System-on-a-Chip (SOC) devices. 
       BACKGROUND 
       [0004]    Resonant drivers have recently been proposed for the energy-efficient distribution of signals in synchronous digital systems. For example, in the context of clock distribution networks, energy efficient operation with resonant drivers is achieved using an inductor to resonate the parasitic capacitance of the clock distribution network. Clock distribution with extremely low jitter is achieved through the elimination of buffers. Moreover, extremely low skew is achieved among the distributed clock signals through the design of relatively symmetric distribution networks. Network performance depends on operating speed and overall network inductance, resistance, size, and topology, with lower-resistance symmetric networks resulting in lower jitter, skew, and energy consumption when designed with adequate inductance. 
         [0005]    The distribution of clock and data signals presents a particular challenge in the context of FPGAs, resulting in limited operating speeds and high energy dissipation. Typically, FPGAs deploy multiple clock networks, operating at various clock frequencies. To ensure a high degree of programmability, FPGAs typically provide the means for connecting any storage device (flip-flop) in the FPGA to any of these multiple clock networks. Moreover, all clock networks must be distributed across the entire FPGA. The resulting clock distribution networks are thus highly complex, resulting in relatively lower operating speeds. To exacerbate the situation, the large size and high complexity of these clock networks require the extensive deployment of sophisticated power management techniques such as clock gating, so that overall power consumption is kept at acceptable levels. These power management techniques result in additional design complexity, increased uncertainty in signal timing, and therefore additional limitations to operating speeds. 
         [0006]    To maximize programming flexibility, FPGAs typically include one or more large-scale networks for distributing data across the entire device. These networks comprise multiple programmable switches to provide for selective connectivity among the logic blocks in the FPGA. They also include multiple and long interconnects that typically rely on multiple buffers (repeaters) to propagate data. The high complexity of these networks results in increased timing uncertainty in signal timing, limiting operating speeds. The extensive deployment of buffers results in increased energy dissipation. To exacerbate the situation, these networks are often pipelined to provide for higher data transfer rates, resulting in even higher complexity and energy dissipation. 
         [0007]    In addition to FPGA devices, multiple clock networks operating at various clock frequencies are generally deployed in microprocessor, ASIC, and SOC designs to implement complex computations and achieve high performance. These clock networks are distributed across the entire device and make extensive use of power management techniques such as clock gating to keep power consumption at acceptable levels. They are therefore highly complex, and their maximum achievable performance is limited by increased timing uncertainty. 
         [0008]    One disclosure of design methods for resonant clock networks can be found in U.S. Pat. No. 5,734,285 (“Electronic circuit utilizing resonance technique to drive clock inputs of function circuitry for saving power”). A single resonant domain is described along with methods for synthesizing harmonic clock waveforms that include the fundamental clock frequency and a small number of higher-order harmonics. It also describes clock generators that are driven at a reference frequency, forcing the entire resonant clock network to operate at that frequency. However, the methods do not address clock network architectures or scaling issues that encompass the requirements of FPGA devices. Moreover, it is not concerned with devices that include multiple clock networks operating at various clock frequencies. 
         [0009]    Another disclosure of design methods for resonant clock networks can be found in U.S. Pat. No. 6,882,182 (“Tunable clock distribution system for reducing power dissipation”). A method is described for using inductance and capacitance to tune the frequency of a clock distribution network in a programmable logic device. This method focuses on frequency tuning and does not address any clock scaling issues that encompass the requirements of large FPGA devices. Moreover, it does not disclose any clock network architectures for FPGAs. 
         [0010]    Resonant clock network designs for local clocking (i.e., for driving flip-flops or latches) are described and empirically evaluated in the following articles: “A 225 MHz Resonant Clocked ASIC Chip,” by Ziesler C., et al., International Symposium on Low-Power Electronic Design, August 2003; “Energy Recovery Clocking Scheme and Flip-Flops for Ultra Low-Energy Applications,” by Cooke, M., et al., International Symposium on Low-Power Electronic Design, August 2003; “Resonant Clocking Using Distributed Parasitic Capacitance,” by Drake, A., et al., Journal of Solid-State Circuits, Vol. 39, No. 9, September 2004, and “Resonant-Clock Latch-Based Design” by Sathe, V., et al., Journal of Solid-State Circuits, Vol. 43, No. 4, April 2008. The designs set forth in these papers are directed to a single resonant domain, however, and do not describe the design of large-scale chip-wide resonant clock network architectures for FPGAs or other devices with multiple clock networks and various clock frequencies. 
         [0011]    The design and evaluation of resonant clocking for high-frequency global clock networks was addressed in “Design of Resonant Global Clock Distributions,” by Chan, S., et al., International Conference on Computer Design, October 2003, “A 4.6 GHz Resonant Global Clock Distribution Network,” by Chan, S., et al., International Solid-State Circuits Conference, February 2004, and “1.1 to 1.6 GHz Distributed Differential Oscillator Global Clock Network,” by Chan, S., et al., International Solid-State Circuits Conference, February 2005. These articles focus on global clocking, however, and do not provide any methods for designing a large-scale resonant network that distributes clock signals with high energy efficiency all the way to the individual flip-flops in an FPGA device. Moreover, they are not directed to FPGAs or other devices with multiple clock networks and various clock frequencies. 
         [0012]    Another approach for addressing the speed limitations of current FPGA devices is the use of asynchronous logic design. In this approach, clocks are eliminated from the device, and computations are coordinated through the deployment of handshake circuitry. A design for asynchronous FPGAs is described in “Highly Pipelined Asynchronous FPGAs” by Teifel, J., et al., ACM FPGA Conference, 2004. The design and evaluation of a small-scale asynchronous FPGA prototype is described in “A High Performance Asynchronous FPGA: Test Results” by Fang, D., et al., IEEE Symposium on Field Programmable Custom Computing Machines, 2005. A significant drawback of asynchronous FPGAs is the challenge of verifying that the design meets performance requirements under worst-case conditions. FPGA tools are not tailored to perform worst-case timing analysis of a logic structure having multiple clocks. For complex asynchronous structures, checking the worst-case timing of each clock and datapath to verify that worst-case timing constraints are met is an extremely tedious or next to impossible task. Other drawbacks of asynchronous FPGAs include the difficulty in interfacing with conventional synchronous designs and the difficulty in ensuring during testing that they meet worst-case performance requirements under all operating conditions (temperature, supply voltage etc.). With regard to energy consumption, asynchronous circuitry still dissipates the CV 2  energy that is required to charge and discharge a capacitive load. It therefore dissipates more energy than resonant drivers when used to drive a signal over capacitive interconnect across an FPGA device. 
       SUMMARY 
       [0013]    A clock and data distribution network is proposed that uses resonant drivers to distribute clock and data signals without buffers, thus achieving low jitter, skew, and energy consumption, and relaxed timing requirements. Such a network is generally applicable to architectures for programmable logic devices (PLDs) such as field programmable gate arrays (FPGAs), as well as other semiconductor devices with multiple clock networks and various clock frequencies, and high-performance and low-power clocking requirements such as microprocessors, ASICs, and SOCs. 
         [0014]    This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]      FIG. 1  (Prior Art) shows a typical clock network architecture for FPGAs. 
           [0016]      FIG. 2  shows a high-level view of the resonant clock network architecture for FPGAs in accordance with one aspect of the disclosure. 
           [0017]      FIG. 3  shows an example of a resonant clock network with multiple resonant clock domains for the entire FPGA device in accordance with one aspect of the disclosure. 
           [0018]      FIG. 4  shows an example of a clock distribution network for each resonant clock domain in accordance with an aspect of the disclosure. 
           [0019]      FIG. 5  illustrates one embodiment of a simple clock generator that can be used to generate a resonant clock waveform of essentially sinusoidal shape and of the same frequency f as a reference clock signal. 
           [0020]      FIG. 6  illustrates an example of a flip-flop with gate enable that can be used with an essentially sinusoidal resonant clock waveform within a resonant clock domain and in conjunction with a signal for disabling the flip-flop. 
           [0021]      FIG. 7  illustrates a high-level view of the resonant interconnect architecture in accordance with one aspect of the disclosure. 
           [0022]      FIG. 8  shows a possible implementation of a dual-rail resonant driver as the boost driver. 
           [0023]      FIG. 9  shows a possible implementation of the circuitry that generates two complementary phases. 
           [0024]      FIGS. 10(   a )-( b ) illustrate functioning of the boost driver in accordance with one aspect of the disclosure. 
           [0025]      FIG. 11  illustrates multiplexing multiple bits over the same physical rail as illustrated in the disclosed resonant interconnect architecture. 
       
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
       [0026]      FIG. 1  shows a typical clock network architecture for FPGAs. Multiple clocks CLK 1 , CLK 2 , . . . , CLK N  are distributed across the entire device using buffered distribution networks. Multiplexers are used to enable the selective association of each flip-flop in the device with each of the multiple clocks. These multiplexers introduce uncertainty in the timing of the clock signals and limit overall operating speed. Moreover, the deployment of clock gating structures (not shown in figure) and buffers introduces additional timing uncertainties and further degrades performance. 
         [0027]      FIG. 2  shows a high-level view of the resonant clock network architecture for FPGAs in accordance with one aspect of the disclosure. In this architecture, a resonant clock distribution network is used to provide a high-speed clock signal of frequency f with very low jitter and skew to all flip-flops in the design. (In an alternative implementation, multiple resonant clock distribution networks may be used, each running at a different frequency.) To allow for clocking at frequencies lower than f, multiple enable signals EN 2 , . . . , EN N  are used that selectively enable their corresponding flip-flops. These enable signals are distributed using buffered distribution networks. Each signal EN i  is asserted with a frequency f/j i , where j i  is an integer, and therefore, the flip-flops enabled by signal EN i  are clocked at a frequency f/j i . 
         [0028]    Beyond FPGAs, the disclosed resonant clock architecture is applicable to other semiconductor devices with high-performance and low-power clocking requirements such as microprocessors, ASICs, and SOCs. In these devices, the disclosed resonant clock architecture with its multiple enable signals EN 2 , . . . , EN N  provides a higher-performance, lower-power, and lower-complexity alternative to clock gating. 
         [0029]    The timing requirements of the signals EN 2 , . . . , EN N  are significantly less stringent that those of the conventional clock signals CLK 2 , . . . , CLK N . Therefore, the resonant clock network architecture shown in  FIG. 2  has a significantly higher tolerance to timing uncertainties in these signals and, thus, achieves higher overall performance than the conventional clocking approach shown in  FIG. 1 . Furthermore, the energy consumption of the resonant clock network architecture shown in  FIG. 2  is lower than that of the conventional approach described in  FIG. 1 . Specifically, although the resonant clock is distributed to all flip-flops in the device, its intrinsic energy efficiency is significantly higher than that of its conventional counterpart. (For example, when clocking the same capacitive load, the resonant clock consumes less than 25% of the energy dissipated by its conventional counterpart at operating frequencies exceeding 1 GHz.) Moreover, the distribution networks for the enable signals EN 2 , . . . , EN N  have less capacitance and less stringent timing requirements than their conventional counterparts for the clock signals CLK 2 , . . . , CLK N  in  FIG. 1 , thus resulting in lower energy dissipation. 
         [0030]    Another factor that contributes to the high performance of the disclosed resonant clock network architecture is its high energy efficiency. Specifically, due to its intrinsically higher energy efficiency, the resonant clock network architecture enables the deeper pipelining of data paths and data interconnect. In conventional clock networks, the introduction of additional clocked pipeline stages (e.g., flip-flops) raises energy dissipation to prohibitively high levels. 
         [0031]      FIG. 3  shows an example of a network for distributing the resonant clock from  FIG. 2  across an entire FPGA device. In this preferred embodiment, the network has multiple clock domains A, B, . . . , H. A global synchronization signal of frequency f is distributed to these multiple clock domains. This synchronization signal may be distributed using a conventional buffered network, as shown in  FIG. 3 . Alternatively, it can be distributed using a resonant clock network. All clock domains are synchronized, operating at frequency f. Within each conventional clock domain (B, C, E), the clock signal is distributed using a buffered distribution network. Within each resonant clock domain (A, D, F, G, H), the clock signal is distributed using a buffer-less distribution network. For energy efficiency purposes, each resonant clock domain is using its own inductor and resonant clock driver CG. The inductors can be implemented on-chip using standard bulk silicon processes. Alternatively, the inductors can be implemented off-chip in the package of the device. Here, the enable signals EN 2 , . . . , EN N  can be distributed by a buffered network (not shown) following similar topologies of the clock network. 
         [0032]    An example of a buffer-less clock distribution network for each resonant clock domain from  FIG. 3  is shown in  FIG. 4  in accordance with an aspect of the disclosure.  FIG. 5  illustrates one embodiment of a simple clock generator that can be used to generate a resonant clock waveform RCLK of essentially sinusoidal shape and of the same frequency f as a reference clock signal CLK.  FIG. 6  illustrates an example of a flip-flop with gate enable that can be used with an essentially sinusoidal resonant clock waveform RCLK within a resonant clock domain and in conjunction with a signal FFg for disabling the flip-flop. This flip-flop provides support for reset through the devices driven by the signals R and its complement RN. It also provides support for scan of data DS through the signal SE. Numerous alternative implementations of this flip-flop with gate enable are possible. For example, an NMOS device driven by FFNg (the inverse of FFg) can be inserted between the NMOS footer clocked by RCLK and ground, replacing the two PMOS devices driven by FFg. Here, FFg can be a complementary signal of the enable signal EN. 
         [0033]      FIG. 7  illustrates a high-level view of the resonant interconnect architecture in accordance with one aspect of the disclosure. In the dual-rail implementation shown in this figure, a differential encoding scheme is used in which 1s are encoded as POS-high and NEG-low and 0s are encoded as POS-low and NEG-high. For each bit, a dual-rail resonant driver is used to transmit the data. All drivers use common and complementary resonant waveforms φ and  φ  with frequency equal to the data rate f. The deployment of resonant drivers results in lower energy dissipation for charging and discharging the rails than the CV 2  required by conventional drivers. 
         [0034]    A possible implementation of a dual-rail resonant driver as the boost driver shown in  FIG. 8 . This boost driver incorporates aspects of the energy recovery boost logic described in the U.S. Pat. No. 7,355,454 (“Energy recovery boost logic”). It consists of a set-up stage with complementary data inputs D and  D  and supplies Vdd and Vss, and a boost stage. Both stages use two complementary resonant waveforms φ and  φ . A possible implementation of the circuitry that generates these two complementary phases is shown in  FIG. 9 , where Rd and Cd are lump-model representations of the resistance and capacitance associated with the distribution of the waveforms φ and  φ . In the set-up stage of the boost driver, the two evaluation trees with complementary data inputs D and  D  are used to set up an initial voltage difference between the two rails POS and NEG. The pair of cross-coupled inverters in the boost stage of the boost driver is used to first boost this initial voltage difference by driving it to VDD and to then restore it back to its initial value.  FIG. 10  shows the signals at the POS and NEG rails that are generated by a boost driver during one cycle of the waveforms φ and  φ . During the first half of the cycle, the set-up stage is driving the two rails, setting up an initial voltage difference between them, as shown in  FIG. 10(   a ). In the second half of the cycle, the PMOS and NMOS devices that are driven by φ and  φ  in the set-up stage decouple the rails POS and NEG from Vdd and Vss, allowing the boost-stage to drive these rails, first boosting their voltage difference to VDD and then restoring it back to its initial value, as shown in  FIG. 10(   b ). 
         [0035]    At the end of each bit-line in  FIG. 7 , a receiver is used to re-transmit or capture the data. To re-transmit data, the receiver is simply another boost driver. Boost drivers can be cascaded to form a high-speed low-power pipeline for transmitting data across large-scale interconnects. To capture data, a latching structure similar to a boost driver can be used. A possible implementation of such a latching structure is the flip-flop shown in  FIG. 6 . 
         [0036]    In an alternative implementation of the resonant interconnect architecture, the dual-rail drivers are replaced by single-rail drivers that use a single resonant waveform φ. In this case, straightforward amplitude-based encoding is used with a single rail per bit. In another alternative implementation, the resonant drivers operate in a “pulsed” mode, rather than in a steady-state oscillation, using a capacitive tank to store charge when not transmitting data. In this case, the waveform resulting on the bit-line is the transient response of the RLC network formed by the driver and the interconnect. 
         [0037]    In the disclosed resonant interconnect architecture, it is possible to significantly reduce interconnect overheads by multiplexing multiple bits, so that they are transmitted over the same physical rail, as illustrated in  FIG. 11 . The superior energy efficiency of the resonant interconnect enables the operation of the physical rail at a speed that is a multiple of the clock rate f. In this figure, the interconnect is driven N times faster than the clock rate f of the FPGA device, enabling the transmission of N bits over a single physical line at an effective data rate of f bits per second.