Self-programmable bidirectional buffer circuit and method
Abstract
The present invention is directed to programmable bidirectional buffers and methods for programming such buffers. One method of according to an aspect of the present invention is a method of configuring a bidirectional buffer including first and second signal nodes. The method includes applying a configuration signal on one of the first and second signal nodes and configuring the buffer responsive to the applied configuration signal.

Term
Term ended
Projected expiry passed 22 September 2024, 2 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
24 claims: 5 independent, 19 dependent
- 1A method of configuring a bidirectional buffer, the buffer including first and second signal nodes and the method comprising:applying a configuration signal on one of the first and second signal nodes;andconfiguring the buffer responsive to the applied configuration signal.
- 7A method of configuring a bidirectional buffer, the buffer including first and second signal nodes and the method comprising:applying a configuration signal on one of the first and second signal nodes;storing a first memory bit responsive to the applied configuration signal;andenabling the buffer to operate in a first direction responsive to the stored memory bit.
- 11A bidirectional programmable buffer, comprising:a pair of cross-coupled buffer circuits, each buffer circuit including an enable input and the cross-coupled pair of buffer circuits having two data nodes;anda detection and configuration circuit coupled to the enable inputs of the buffer circuits and coupled to the two data nodes, the detection and configuration circuit operable in a configuration mode to detect a configuration signal applied on one of the data nodes and to enable a corresponding one of the buffer circuits responsive to the detected configuration signal, and operable in a data mode to provide through the enabled buffer circuit a data signal applied on one of the data nodes responsive to the data signal being applied on the other of the data nodes.
- 20A semiconductor circuit, comprising:a plurality of bidirectional programmable buffers, each buffer including,a pair of cross-coupled buffer circuits, each buffer circuit including an enable input and the cross-coupled pair of buffer circuits having two data nodes;anda detection and configuration circuit coupled to the enable inputs of the buffer circuits and coupled to the two data nodes, the detection and configuration circuit operable in a configuration mode to detect a configuration signal applied on one of the data nodes and to enable a corresponding one of the buffer circuits responsive to the detected configuration signal, and operable in a data mode to provide through the enabled buffer circuit a data signal applied on one of the data nodes responsive to the data signal being applied on the other of the data nodes;andlogic circuitry coupled to at least some of the buffers and operable to execute a desired function.
- 22An electronic system, comprising:processing circuitry coupled to an integrated circuit, the integrated circuit including a plurality of bidirectional bidirectional programmable buffers and each buffer including,a pair of cross-coupled buffer circuits, each buffer circuit including an enable input and the cross-coupled pair of buffer circuits having two data nodes;anda detection and configuration circuit coupled to the enable inputs of the buffer circuits and coupled to the two data nodes, the detection and configuration circuit operable in a configuration mode to detect a configuration signal applied on one of the data nodes and to enable a corresponding one of the buffer circuits responsive to the detected configuration signal, and operable in a data mode to provide through the enabled buffer circuit a data signal applied on one of the data nodes responsive to the data signal being applied on the other of the data nodes.
Independent claims5
38 paragraphs, as filed
The present invention relates generally to integrated circuits, and more specifically to configuring or programming components contained in an integrated circuit.
In digital electronic circuits, buffers are circuits that receive a digital input signal on an input and develop a digital output signal on an output in response to the input signal. The function of a buffer is typically to isolate logic circuitry supplying the digital input signal to the input of the buffer from a capacitive load coupled to the output of the buffer. The logic circuitry is not typically designed to drive a large capacitive load and thus, if coupled directly to such a load, a long delay may result in driving a voltage across the load to a desired level.
A bidirectional buffer is a buffer circuit that may be programmed or configured to operate either in a first direction or a second direction. Typically, a bidirectional buffer is formed by a pair of cross-coupled buffers that operate in the first direction to drive a signal on a first node in response to a signal on a second node. Conversely, the cross-coupled buffers operate in the second direction to drive a signal on the second node in response to a signal on the first node. Such a bidirectional buffer has memory elements that are utilized to control the direction of operation of the buffer. Each bidirectional buffer includes two memory elements, each memory element being associated with a respective one of the cross-coupled buffers. Each memory element stores data to either enable or disable the corresponding buffer and thereby set the direction of operation of the bidirectional buffer. For example, when each memory element stores a first logic state the corresponding buffer is activated, and when the memory element stores a second logic state the buffer is placed in a high impedance state or disabled. In operation, data having complementary logic states is stored in the memory elements to activate the buffers in the desired direction, or, alternatively, the second logic state is stored in both memory elements to disable both buffers. Note the first logic state is not typically be stored in both memory elements since in this case both buffers would be activated, as will be appreciated by those skilled in the art.
Bidirectional buffers are commonly utilized in programmable integrated circuits, such as field programmable gate arrays (FPGAs), to interconnect functional components within the circuit as required. <b>FIG. 1</b> is functional block diagram illustrating a portion of a conventional programmable integrated circuit 100 including a number of bidirectional buffers <b><i>102a-e</i></b>, with each buffer including an associated pair of memory cells <b><i>MC</i></b> that store data to program the direction of operation of the buffer. A first programmable switch <b><i>104</i></b> is coupled in series with the buffers <b><i>102a, 102b</i></b> between a first node <b><i>A</i></b> and a second node <b><i>B,</i></b> where nodes <b><i>A</i></b> and <b><i>B</i></b> represent either input or output connections to other functional circuitry (not shown) in the integrated circuit <b><i>100</i></b>. A programming logic circuit <i>106</i> applies configuration signals <b><i>108</i></b> to the programmable switch <b><i>104</i></b> which, in response to these signals, couples selected pairs of the buffers <b><i>102a</i></b>, <b><i>102b</i></b>, and <b><i>102e</i></b> together. In the example of <b>FIG. 1</b>, the switch <b><i>104</i></b> couples buffer <b><i>102a</i></b> to buffer <b><i>102e</i></b> as indicated by the solid line in the switch.
A second programmable switch <b><i>110</i></b> is coupled in series with the buffers <b><i>102c, 102d</i></b> between nodes <b><i>C</i></b> and <b><i>D</i></b> and operates in the same way as the switch <b><i>104</i></b> to couple selected pairs of the buffers <b><i>102c, 102d, 102e</i></b> together responsive to the signals <b><i>108.</i></b> The switch <b><i>110</i></b> couples the buffer <b><i>102e</i></b> to the buffer <b><i>102d</i></b> in the example of <b>FIG. 1.</b> Thus, in <b>FIG. 1</b> node <b><i>A</i></b> is coupled to node <b><i>D</i></b> through buffer <b><i>102a</i></b>, switch <b><i>104</i></b><i>,</i> buffer <b><i>102e</i></b><i>,</i> switch <b><i>110</i></b>, and buffer <b><i>102d,</i></b> with either node <b><i>A</i></b> being the input or output depending on the direction of operation of these buffers as determined by the data stored in the corresponding memory cells <b><i>MC.</i></b>
In operation, the programming logic <b><i>106</i></b> receives input signals <b><i>112</i></b> which would typically include the configuration data for each buffer <b><i>102</i></b> in form of data to be stored in the associated memory cells <b><i>MC</i></b> of the buffer. In response to the input signals <b><i>112</i></b>, the programming logic <b><i>106</i></b> develops the configuration signals <b><i>108</i></b> to transfer the configuration data into all the memory cells <b><i>MC</i></b> to thereby configure the buffers <i><b>102</b></i>. The programming logic 106 also develops the configuration signals <i><b>108</b></i> to program the switches <i><b>104</b></i> using corresponding configuration data.
The programming logic <b><i>106</i></b> typically transfers the configuration data into the memory cells <b><i>MC</i></b> of each buffer <b><i>102</i></b> in one of two ways. In a first approach, the memory cells <b><i>MC</i></b> are serially connected (not shown) and the programming logic <i><b>106</b></i> applies reset, clocking, and data signals to sequentially shift configuration data into a first pair of memory cells <i><b>MC</b></i> and then from pair to pair of memory cells until each pair of memory cells stores the required configuration data. In a second approach, the programming logic <b><i>106</i></b> includes addressing circuitry (not shown) and the input signals <b><i>112</i></b> include configuration data and address information for each pair of memory cells <b><i>MC.</i></b> With this approach, the programming logic <b><i>106</i></b> applies reset, address, data, and control signals to the memory cells <b><i>MC</i></b> to store the desired configuration data in each pair of memory cells.
In both of these conventional approaches to loading configuration data into the memory cells <b><i>MC</i></b>, a significant amount of circuitry may needed to form the programming logic <i><b>106</b></i>, thus consuming valuable space in the integrated circuit <b><i>100</i></b> that could otherwise be utilized for other functionality. Moreover, each of these approaches requires a significant number of physical lines be routed to provide the signals <b><i>108</i></b> to each of the memory cells <b><i>MC</i></b> and transfer the configuration data into the memory cells. For example, as previously mentioned with the first approach where the memory cells <b><i>MC</i></b> are serially connected, the signals <b><i>108</i></b> must include reset, clocking, and data signals routed to the memory cells. The second approach requires even more physical lines for the signals <b><i>108</i></b> be routed to the memory cells <b><i>MC</i></b> to perform the required reset, addressing, and data transfer to the cells, and the programming logic <b><i>106</i></b> would typically be more complicated and thus require more circuitry in this approach.
There is a need for configuring bidirectional buffers in an integrated circuit in a way that simplifies programming logic on the chip required to perform such configuration and simplifies the routing of configuration lines to each buffer that are required for configuration.
According to one aspect of the present invention, a method of configuring a bidirectional buffer is disclosed. The buffer includes first and second signal nodes, and the method includes applying a configuration signal on one of the first and second signal nodes and configuring the buffer responsive to the applied configuration signal. <ul id="ul0001" list-style="none"><li><b>FIG. 1</b> is a functional block diagram of a portion of a conventional programmable integrated circuit including a plurality of bidirectional buffers that are individually programmed.</li><li><b>FIG. 2</b> is a functional block diagram of a detection and configuration circuit for configuring a bidirectional buffer according to one embodiment of the present invention.</li><li><b>FIG. 3</b> is a functional block diagram of illustrating in more detail an edge-triggered embodiment of the detection and configuration circuit of <b>FIG. 2</b>.</li><li><b>FIG. 4</b> is a functional block diagram illustrating two series-connected bidirectional buffers each having an associated edge-triggered detection and configuration circuit of <b>FIG. 3</b>.</li><li><b>FIG. 5</b> is a signal timing diagram illustrating signals on various nodes during programming of the series-connected bidirectional buffers of <b>FIG. 4</b>.</li><li><b>FIG. 6</b> is a functional block diagram of a level-triggered embodiment of the detection and configuration circuit of <b>FIG. 2</b>.</li><li><b>FIG. 7</b> is a functional block diagram of a computer system including an integrated circuit containing a number of bidirectional buffers and detection and configuration circuits of <b>FIGS. 2, 3</b>, and/or <b>6</b>.</li></ul>
<b>FIG. 2</b> is a functional block diagram of a detection and configuration circuit <b><i>200</i></b> for configuring a bidirectional buffer <b><i>202</i></b> in response to a signal applied on either a first node <b><i>204</i></b> or a second node <b><i>206</i></b> according to one embodiment of the present invention. One of the first node <b><i>204</i></b> or second node <b><i>206</i></b> functions as the input of the buffer <b><i>202</i></b> and the other node as the output of the buffer, with the function of each node depending on direction in which the buffer is configured to operate. In this way, the detection and configuration circuit <b><i>200</i></b> configures the bidirectional buffer <b><i>202</i></b> responsive to signals applied on the input and output nodes <b><i>204, 206</i></b> of the buffer and thus eliminates the need to route configuration lines to each buffer as with conventional bidirectional buffer circuits, as will be explained in more detail below.
In the following description, certain details are set forth to provide a sufficient understanding of the present invention, but one skilled in the art will appreciate that the invention may be practiced without these particular details. Furthermore, one skilled in the art will appreciate that the example embodiments described below do not limit the scope of the present invention, and will also understand various modifications, equivalents, and combinations of the disclosed example embodiments and components of such embodiments are within the scope of the present invention. Illustrations of the various embodiments, when presented by way of illustrative examples, are intended only to further illustrate certain details of the various embodiments, and should not be interpreted as limiting the scope of the present invention. Finally, in other instances below, the operation of well known components has not been shown or described in detail to avoid unnecessarily obscuring the present invention.
The detection and configuration circuit <b><i>200</i></b> includes a first detection circuit <i><b>208</b></i> that detects whether a configuration signal is applied on the node <i><b>204</b></i> and a second detection circuit <i><b>210</b></i> that detects whether a configuration signal is applied on the node <b><i>206.</i></b> When the first detection circuit <b><i>208</i></b> detects the configuration signal on node <b><i>204,</i></b> the detection circuit activates a first disable signal <b><i>DIS1</i></b> that is applied to the second detection circuit <b><i>210</i></b> and also activates a first direction signal <b><i>DS1</i></b> that is applied to a first memory element <b><i>212.</i></b> The second detection circuit <b><i>210</i></b> operates in the same way in response to a configuration signal on the node <b><i>206,</i></b> namely applying an active second disable signal <b><i>DIS2</i></b> to the first detection circuit <b><i>208</i></b> and activating a second direction signal <b><i>DS2</i></b> that is applied to a second memory element <b><i>214.</i></b> In response to the active <b><i>DS1</i></b> signal, the memory element <b><i>212</i></b> stores data having a logic state that enables a first cross-coupled buffer circuit <b><i>216</i></b> in the bidirectional buffer <b><i>202</i></b>, and in response to the active <b><i>DS2</i></b> signal the memory element <i><b>214</b></i> stores data having a logic state that enables a second cross-coupled buffer circuit <b><i>218</i></b> in the bidirectional buffer. When either of the detection circuits <b><i>208, 210</i></b> receives the active <b><i>DIS</i></b> signal from the other detection circuit, the detection circuit receiving the <b><i>DIS</i></b> signal is disabled to prevent the circuit from generating the corresponding <b><i>DS1, DS2</i></b> signal. For example, in response to the <b><i>DIS1</i></b> signal from the first detection circuit <b><i>208,</i></b> the second detection circuit <b><i>210</i></b> is disabled and thus will not activate the corresponding <b><i>DIS2</i></b> and <b><i>DS2</i></b> signals regardless of the presence of the configuration signal on the node <b><i>206.</i></b>
The node <b><i>204</i></b> is coupled to source/sink logic <b><i>220</i></b> corresponding to other circuitry contained in the integrated circuit in which the bidirectional buffer <b><i>202</i></b> and detection and configuration circuit <b><i>200</i></b> are formed. The same is true of source/sink logic <b><i>222</i></b> coupled to the node <b><i>206.</i></b> For example, the source/sink logic <b><i>220, 222</i></b> could correspond to additional bidirectional buffers <b><i>202</i></b> and associated detection and configuration circuits <b><i>200</i></b>, or could correspond to combinational logic that is being configured to perform a desired function, or could be an external terminal of the integrated circuit containing the buffer <b><i>202.</i></b> A reset signal <b><i>RST</i></b> is applied by external circuitry (not shown) to the detection and configuration circuit <b><i>200,</i></b> and in response to the reset signal the first and second detection circuits <b><i>208, 210</i></b> deactivate the corresponding <b><i>DIS1, DIS2, DS1, DS2</i></b>, signals, and the memory elements <b><i>212, 214</i></b> store logic states to disable the corresponding buffer circuits <b><i>216, 218.</i></b>
In operation, the external circuitry initially activates the reset signal RST to reset the detection circuits <b><i>208, 210</i></b> to thereby deactivate the <b><i>DIS1</i></b>, <b><i>DIS2, DS1</i></b>, <b><i>DS2</i></b> signals and to cause the memory elements <b><i>212, 214</i></b> to disable the corresponding buffer circuits <b><i>216, 218</i></b>. At this point, the logic <b><i>220, 222</i></b> applies the configuration signal on either the node <b><i>204</i></b> or <b><i>206</i></b> depending upon the desired direction of operation of the bidirectional buffer <b><i>202</i></b>. For example, when the bidirectional buffer <b><i>202</i></b> is to operate in a first direction such that the node <b><i>204</i></b> corresponds to an input node and the node <b><i>206</i></b> corresponds to an output node of the buffer, the configuration signal is applied on node <b><i>204.</i></b> In response to the configuration signal, the detection circuit <b><i>208</i></b> activates the <b><i>DIS1</i></b> signal to thereby deactivate the detection circuit <b><i>210.</i></b> Once deactivated, the detection circuit <b><i>210</i></b> maintains the <b><i>DIS2, DS2</i></b> signals inactive regardless of the signals present on the node <b><i>206.</i></b> The detection circuit <b><i>208</i></b> also activates the <b><i>DS1</i></b> signal in response to the configuration signal on node <b><i>204,</i></b> and in response to the active <b><i>DS1</i></b> signal the memory element <b><i>212</i></b> stores a logic state that activates the buffer circuit <b><i>216.</i></b> Note that at this point the memory element <b><i>214</i></b> stores a logic state that disables the buffer circuit <b><i>21</i>8</b>, and thus the bidirectional buffer <b><i>202</i></b> has been programmed to operate in a first direction with the buffer circuit <b><i>216</i></b> providing an output signal on the node <b><i>206</i></b> in response to an input signal applied on the node <b><i>204</i></b>.
When the configuration signal is applied on node <b><i>206</i></b>, the bidirectional buffer <b><i>202</i></b> and the detection and configuration circuit <b><i>200</i></b> operate in the same way as just described to configure the bidirectional buffer for operation in a second direction such that the node <b><i>206</i></b> corresponds to an input node and the node <b><i>204</i></b> corresponds to an output node. In response to the configuration signal on node <b><i>206</i></b>, the detection circuit <b><i>210</i></b> activates the <b><i>DIS2</i></b> signal to thereby deactivate the detection circuit <b><i>208</i></b> and also activates the <b><i>DS2</i></b> signal. In response to the active <b><i>DS2</i></b> signal the memory element <b><i>214</i></b> stores a logic state that activates the buffer circuit <b><i>218.</i></b> At this point the memory element <b><i>212</i></b> stores a logic state that disables the buffer circuit <b><i>216</i></b>, and thus the bidirectional buffer <i><b>202</b></i> has been programmed to operate in a second direction with the buffer circuit <b><i>218</i></b> providing an output signal on the node <b><i>204</i></b> in response to an input signal applied on the node <b><i>206</i></b>.
With the detection and configuration circuit <b><i>200</i></b>, the bidirectional buffer <b><i>202</i></b> may be programmed to operate in the desired direction without routing separate configuration lines to the memory elements <b><i>212, 214</i></b> associated with the buffer. Instead, the configuration signal is merely applied on one of the nodes <b><i>204, 206</i></b> that function as the input and output nodes of the bidirectional buffer <b><i>202.</i></b> The elimination of the separate configuration lines saves space in the integrated circuit containing the bidirectional buffers <i><b>202</b></i>, allowing for the formation of additional functional circuitry in the integrated circuit such as additional bidirectional buffers are additional logic circuitry. Furthermore, elimination of the configuration lines simplifies the interconnection of components in the integrated circuit and thereby lowers the cost and improves the reliability of the integrated circuit, as will be appreciated by those skilled in the art.
The configuration signal applied on either node <b><i>204</i></b> or <b><i>206</i></b> may take a variety of different forms with the detection circuits <b><i>208, 210</i></b> being designed to detect the type of configuration signal being utilized. For example, as shown in <b>FIG. 2</b> the configuration signal may correspond to a series of pulses <b><i>224</i></b> as shown on node <b><i>204</i></b>. Conversely, the configuration signal may correspond to a signal having a particular voltage level which is then detected by the detection circuits <b><i>208, 210.</i></b> Still another example is a configuration signal having a specific frequency which, once again, maybe detected by the detection circuits <b><i>208, 210.</i></b> The configuration signal may take these and other forms as will be appreciated by those skilled in the art.
<b>FIG. 3</b> is a functional block diagram illustrating an edge-triggered detection and configuration circuit <b><i>300</i></b> according to one embodiment of the detection and configuration circuit <b><i>200</i></b> of <b>FIG. 2.</b> In <b>FIG. 3,</b> components that are the same as previously described with reference to <b>FIG. 2</b> has been given the same reference numerals and will BL again be described in detail. The edge-triggered detection and configuration circuit <b><i>300</i></b> includes a first flip-flop <b><i>302</i></b> that is clocked in response to the configuration signal being applied on the node <b><i>204</i></b> and a second flip-flop <b><i>304</i></b> that is clocked in response to the configuration signal being applied on the node <b><i>206.</i></b> An output signal of the flip-flop <b><i>302</i></b> is designated <b><i>BL</i></b> and is applied through an inverter <b><i>306</i></b> to generate an input signal <b><i>AR</i></b> that is applied to an input of the flip-flop <b><i>304.</i></b> Similarly, an output signal of the flip-flop <b><i>304</i></b> is designated <b><i>BR</i></b> and is applied through an inverter <b><i>308</i></b> to generate an input signal <b><i>AL</i></b> that is applied to an input of the flip-flop <b><i>302.</i></b> The reset signal <b><i>RST</i></b> is applied to reset inputs of the flip-flops <b><i>302, 304,</i></b> and in response to the reset signal each flip-flop latches its output inactive low. The flip-flops <b><i>302, 304</i></b> and inverters <b><i>306, 308</i></b> operate in combination to perform the functions of the detection circuits <b><i>208, 210</i></b> and a memory elements <b><i>212, 214</i></b> of <b>FIG. 2,</b> as will be explained in more detail below.
In operation, the reset signal <b><i>RST</i></b> is initially activated to reset the flip-flops <b><i>302, 304.</i></b> In response to the <b><i>RST</i></b> signal, the flip-flops <b><i>302</i></b> and <b><i>304</i></b> latch the output signals <i><b>BL</b></i> and <i><b>BR</b></i> inactive low, respectively. At this point, the low <i><b>BL</b></i> signal from the flip-flop <b><i>302</i></b> is applied through the inverter <b><i>306</i></b> to provide a high <i><b>AR</b></i> signal to the input of the flip-flop <b><i>304</i></b>. Similarly, the low <i><b>BR</b></i> signal from the flip-flop <b><i>304</i></b> is applied through the inverter <b><i>308</i></b> to provide a high <b><i>AL</i></b> signal to the input of the flip-flop <b><i>302.</i></b> Once the flip-flops <b><i>302, 304</i></b> have been reset, the configuration signal is applied on one of the nodes <b><i>204, 206</i></b> to configure the bidirectional buffer <b><i>202</i></b> in the desired direction. For example, if the bidirectional buffer <b><i>202</i></b> is to be configured to operate in a first direction such that the input node corresponds to node <b><i>204</i></b> and the output node corresponds to node <i><b>206</b></i> then the configuration signal is applied on the node <b><i>204.</i></b> In the embodiment of <b>FIG. 3,</b> the configuration signal takes the form of a pulse or a series of pulses applied on the appropriate node <b><i>204, 206,</i></b> as indicated by pulses <b><i>310.</i></b>
In response to the first rising edge of the configuration signal <b><i>310,</i></b> the flip-flop <b><i>302</i></b> latches the high <b><i>AL</i></b> signal on its input and drives the <b><i>BL</i></b> signal high in response to the latched <b><i>AL</i></b> signal. The high <b><i>BL</i></b> signal activates the buffer circuit <b><i>216</i></b> in the bidirectional buffer <b><i>202</i></b>, and is also applied through the inverter <b><i>306</i></b> to drive the <i><b>AR</b></i> signal applied to the input of the flip-flop <b><i>304</i></b> low. At this point, when the rising edge of the configuration signal <b><i>310</i></b> or a next rising edge of the configuration signal propagates through the buffer circuit <b><i>216</i></b>, the corresponding rising edge generated on the node <b><i>206</i></b> clocks the flip-flop <b><i>304.</i></b> In response to the rising edge on node <b><i>206,</i></b> the flip-flop <b><i>304</i></b> latches the low <b><i>AR</i></b> signal on its input and thus continues providing the low <b><i>BR</i></b> signal in response to the latched <b><i>AR</i></b> signal.
At this point, even if clocked by the rising edges of subsequent configuration signals <b><i>310</i></b>, the flip-flops <b><i>302</i></b>, <b><i>304</i></b> do not change state and in this way configure the bidirectional buffer to operate in the desired direction. This is true because each time the <b><i>AL</i></b> signal input to flip-flop <b><i>302</i></b> remains high in response to the low signal <b><i>BR</i></b> output from flip-flop <b><i>304</i></b> and the <i>AR</i> signal input to flip-flop <b><i>304</i></b> remains low in response to the high signal <b><i>BL</i></b> output from flip-flop <b><i>302.</i></b> In this way, the first flip-flop <b><i>302</i></b>, <b><i>304</i></b> to be clocked enables the corresponding buffer circuit <b><i>216</i></b>, <b><i>218</i></b> and disables the other flip-flop from enabling the other buffer circuit. Thus, when the configuration signal <b><i>310</i></b> is applied on node <b><i>204</i></b> the flip-flop <b><i>302</i></b> enables buffer circuit <b><i>216</i></b> and disables flip-flop <b><i>304</i></b> from enabling buffer circuit <b><i>218</i></b>, and, conversely, when the configuration signal is applied on node <b><i>206</i></b> the flip-flop <b><i>304</i></b> enables buffer circuit <b><i>218</i></b> and disables flip-flop 302 from enabling buffer circuit <b><i>216.</i></b> Once the desired buffer circuit <b><i>216</i></b> or <b><i>218</i></b> has been enabled, the enabled buffer circuit provides a signal on its output responsive to a signal on it input and thereby defines the direction of operation of the bidirectional buffer.
In the edge-triggered embodiment of <b>FIG. 3,</b> the flip-flop <b><i>302, 304</i></b> that is being disabled must not be clocked before the low input signal <b><i>AL</i></b> or <b><i>AR</i></b> has been applied to the input of that flip-flop, as will be appreciated by those skilled in the art. For example, if the configuration signal <b><i>310</i></b> is applied on node <b><i>204</i></b> then the <b><i>BL</i></b> signal output from flip-flop <b><i>302</i></b> must go high and then propagate through the inverter <b><i>306</i></b> to drive the <b><i>AR</i></b> signal low before the flip-flop <b><i>304</i></b> is clocked. If the <b><i>AR</i></b> signal is not low before the flip-flop <b><i>304</i></b> is clocked, then the <b><i>BR</i></b> signal will be latched high and enable the buffer circuit <b><i>218</i></b>. In this situation, both buffer circuits <b><i>216, 218</i></b> would undesirably be enabled. The delay through the enabled buffer circuit <b><i>216</i></b> may be longer than the delay through the inverter <b><i>306</i></b> and thus there will be no problem with the flip-flop <b><i>304</i></b> being clocked before the <b><i>AR</i></b> signal goes low. Alternatively, one of the flip-flips <b><i>302, 304</i></b> could be positive edge triggered and the other negative edge triggered and this would eliminate any concern with the flip-flop being disabled (<i>i.e</i>., flip-flop <b><i>304</i></b> in the present example) being clocked to quickly. The same potential issue applies to clocking the flip-flop <b><i>302</i></b> when the configuration signal <b><i>310</i></b> is applied to node <b><i>206</i></b> to configure the buffer <b><i>202</i></b> to operate in the opposite direction, and the solutions just discussed with reference to flip-flop <b><i>304</i></b> apply to flip-flop <b><i>302</i></b> in this situation.
<b>FIG. 4</b> is a functional block diagram illustrating two series-connected bidirectional buffers <b><i>400-1</i></b> and <b><i>400-2</i></b> having associated edge-triggered detection and configuration circuits <b><i>402-1</i></b> and <b><i>402-2,</i></b> respectively. The edge-triggered detection and configuration circuits <b><i>402-1, 402-2</i></b> are each the same as the detection and configuration circuit <b><i>300</i></b> of <b>FIG. 3</b> and have been assigned new reference numerals merely for ease of reference. The same is true of bidirectional buffers <b><i>400-1, 400-2,</i></b> with each of the buffers including cross-coupled buffer circuits <b><i>404, 406</i></b> and each buffer being the same as the bidirectional buffer <b><i>202</i></b> and buffer circuits <b><i>216, 218</i></b> of <b>FIG. 2.</b>
The operation of the edge-triggered detection and configuration circuits <b><i>402-1</i></b> and <b><i>402-2</i></b> in configuring the series-connected bidirectional buffers <i><b>400-1</b></i> and <b><i>400-2</i></b> of <b><i>FIG. 4</i></b> will now be described in more detail with reference to <b>FIGS. 3- 5. <i>FIG. 5</i></b> is a timing diagram that illustrates various signals in the detection and configuration circuits <b><i>402-1, 402-2</i></b> during operation. Between a time <b><i>T0</i></b> and a time <b><i>T1</i></b> the timing diagram shows the signals in the detection and configuration circuits <b><i>402-1, 402-2</i></b> when the bidirectional buffers <b><i>400-1, 400-2</i></b> are being configured with a node <b><i>N1</i></b> as an input and a node <b><i>N3</i></b> as an output. A node <b><i>N2</i></b> is defined as the node interconnecting the bidirectional buffers <b><i>402-1, 402-2.</i></b> Between the time <b><i>T1</i></b> and a time <b><i>T2</i></b> the timing diagram shows signals in the detection and configuration circuits <b><i>402-1, 402-2</i></b> when the bidirectional buffers <b><i>400-1, 400-2</i></b> are being configured with the node <b><i>N3</i></b> as the input node and node <b><i>N1</i></b> as the output node.
The operation of each of the bidirectional buffers <b><i>400-1, 400-2</i></b> may be viewed as operating in three different modes: 1) reset mode; 2) configuration mode; and 3) data mode. First, the operation of the buffers <b><i>400-1, 400-2</i></b> will be described between the times <b><i>T0</i></b> and <b><i>T1</i></b> in which the buffers are configured to operate with node <b><i>N1</i></b> as the input node and node <b><i>N3</i></b> as the output node. At a time <b><i>T3</i></b>, the <b><i>RST</i></b> signal is pulsed active to initiate the reset mode of operation and reset the flip-flops <b><i>302, 304</i> (FIG. 3)</b> in the buffers <b><i>400-1, 400-2.</i></b> Each of the flip-flops <b><i>302, 304</i></b> latches the associated <b><i>BL, BR</i></b> signal inactive low responsive to the active <b><i>RST</i></b> signal, and each <b><i>AL, AR</i></b> signal goes high responsive to the low <b><i>BL, BR</i></b> signals, as previously discussed with reference to <b>FIG. 3.</b>
At a time <b><i>T4,</i></b> a rising-edge of a configuration signal is applied on node <b><i>N1</i></b> to initiate the configuration mode of operation. In response to the rising edge of this signal, the flip-flop <b><i>302</i></b> in detection and configuration circuit <b><i>402-1</i></b> latches the <b><i>BL</i></b> signal high at a time <b><i>T5</i></b> to enable the buffer circuit <i>404</i> (circuit <b><i>216</i></b> in <b>FIG. 3</b>). Also shown occurring at time <b><i>T5</i></b> is the <b><i>AR</i></b> signal going low as the high <b><i>BL</i></b> signal is applied through the inverter <b><i>306</i></b> to thereby disable the flip-flop <b><i>304</i></b> from enabling the associated buffer circuit <b><i>406</i></b> (circuit <b><i>218</i></b> in <b>FIG. 3</b>). Note that in <b>FIG. 5</b> and in the present description the delays of some components in the circuits <b><i>402-1, 402-2</i></b> and buffers <b><i>400-1, 400-2</i></b> are ignored for ease of explanation. For example, the <b><i>AR</i></b> signal would actually go low slightly after time <b><i>T5</i></b> due the inherent delay of the inverter <b><i>306,</i></b> as will be understood by those skilled in the art. The <b><i>AL</i></b> and <b><i>BR</i></b> signals remain high and low, respectively, at this point.
The enabled buffer circuit <b><i>404</i></b> provides a rising edge of the configuration signal on the node <b><i>N2</i></b> at the time <b><i>T5</i></b> responsive to the rising edge of the configuration signal on node <b><i>N1</i></b>. In response to this rising edge on the node <b><i>N2,</i></b> the flip-flops <b><i>302, 304</i></b> in the detection and configuration circuit <b><i>402-2</i></b> operate in the same way as just described for circuit <b><i>402-1</i></b> to drive the <b><i>BL</i></b> signal high and <b><i>AR</i></b> signal low at a time <b><i>T6,</i></b> with the corresponding <b><i>AL</i></b> and <b><i>BR</i></b> signals remaining high and low, respectively. The enabled buffer circuit <b><i>404</i></b> in the buffer <b><i>400-2</i></b> provides a rising edge of the configuration signal on the node <b><i>N3</i></b> at the time <b><i>T6</i></b> responsive to the rising edge of the configuration signal on node <b><i>N2,</i></b> and the configuration of the buffers <b><i>400-1, 400-2</i></b> is now complete. At this point, the buffers <b><i>400-1, 400-2</i></b> commence operation in the data mode, and at a time <b><i>T7</i></b> a rising edge of a data signal is applied on node <b><i>N1</i></b> and this edge propagates through the enabled buffer circuits <b><i>404</i></b> in buffers <b><i>400-1, 400-2</i></b> to generate corresponding rising edges on nodes <b><i>N2</i></b> and <b><i>N3</i></b> as shown. Once again, note that the delays of the buffer circuits <b><i>404</i></b> in buffers <b><i>400-1, 400-2</i></b> are ignored in <b>FIG. 5.</b>
Now the operation of the buffers <b><i>400-1, 400-2</i></b> will be described between the times <b><i>T1</i></b> and <b><i>T2</i></b> in which the buffers are configured to operate with node <b><i>N3</i></b> as the input node and node <b><i>N1</i></b> as the output node. At a time <b><i>T8,</i></b> the <b><i>RST</i></b> signal is pulsed active to initiate the reset mode of operation and reset the flip-flops <b><i>302, 304</i> (FIG></b> 3) in the buffers <b><i>400-1, 400-2.</i></b> Each of the flip-flops <b><i>302, 304</i></b> latches the associated <b><i>BL, BR</i></b> signal inactive low responsive to the active <b><i>RST</i></b> signal, and each <b><i>AL, AR</i></b> signal goes high responsive to the low <b><i>BL, BR</i></b> signals.
At a time <b><i>T9</i></b>, a rising-edge of a configuration signal is applied on node <b><i>N3</i></b> to initiate the configuration mode of operation. In response to the rising edge of this signal, the flip-flop <b><i>304</i></b> in detection and configuration circuit <b><i>402-2</i></b> latches the <b><i>BR</i></b> signal high at a time <b><i>T10</i></b> to enable the buffer circuit <b><i>406</i></b> (circuit <b><i>218</i></b> in <b>FIG. 3</b>). Also at time <b><i>T10</i></b> the <b><i>AL</i></b> signal goes low as the high <b><i>BR</i></b> signal is applied through the inverter <b><i>308</i></b> (<b>FIG. 3</b>) to thereby disable the flip-flop <b><i>302</i></b> from enabling the associated buffer circuit <b><i>404</i></b> (circuit <b><i>216</i></b> in <b>FIG. 3</b>). The <b><i>AR</i></b> and <b><i>BL</i></b> signals remain high and low, respectively, at this point.
The enabled buffer circuit <b><i>406</i></b> provides a rising edge of the configuration signal on the node <b><i>N2</i></b> at the time <b><i>T10</i></b> responsive to the rising edge of the configuration signal on node <b><i>N3.</i></b> In response to this rising edge on the node <b><i>N2,</i></b> the flip-flops <b><i>302, 304</i></b> in the detection and configuration circuit <b><i>402-1</i></b> operate in the same way as just described for circuit <b><i>402-2</i></b> to drive the <b><i>BR</i></b> signal high and <b><i>AL</i></b> signal low at a time <b><i>T11</i></b>, with the corresponding <b><i>AR</i></b> and <b><i>BL</i></b> signals remaining high and low, respectively. The enabled buffer circuit <b><i>406</i></b> in the buffer <i><b>400-1</b></i> provides a rising edge of the configuration signal on the node <b><i>N1</i></b> at the time <b><i>T11</i></b> responsive to the rising edge of the configuration signal on node <b><i>N2,</i></b> and the configuration of the buffers <b><i>400-1, 400-2</i></b> in this direction is now complete. At this point, the buffers <b><i>400-1, 400-2</i></b> commence operation in the data mode and at a time <b><i>T12</i></b> a rising edge of a data signal is applied on node <b><i>N3</i></b> and this edge propagates through the enabled buffer circuits <b><i>406</i></b> in the buffers <b><i>400-2</i></b> and then <b><i>400-1</i></b> to generate corresponding rising edges on nodes <b><i>N2</i></b> and <b><i>N1</i></b> as shown. <b>FIGS. 4</b> and <b>5</b> illustrate that the detection and configuration circuits <b><i>402-1, 402-2</i></b> enable the associated bidirectional buffers <b><i>400</i></b> to be sequentially configured to operate in the desired direction. Thus, in an integrated circuit including a plurality of buffers <b><i>400</i></b>, the buffers may be sequentially configured in the manner described with reference to <b>FIG. 5</b>.
<b>FIG. 6</b> is a functional block diagram of a level-triggered detection and configuration circuit <b><i>600</i></b> corresponding to one embodiment of the detection and configuration circuit <b><i>200</i></b> of <b>FIG. 2.</b> In this embodiment, the circuit <b><i>600</i></b> configures the direction of operation of a bidirectional buffer <b><i>602</i></b> including cross-coupled buffer circuits <b><i>604, 606</i></b> in response to the voltage levels of signals applied on nodes <b><i>N1</i></b> and <b><i>N2,</i></b> as will now be described in more detail below. The detection and configuration circuit <b><i>600</i></b> includes a <b><i>PMOS</i></b> transistor <b><i>608</i></b> and two <b><i>NMOS</i></b> transistors <b><i>610, 612</i></b> coupled in series between a supply voltage <b><i>VCC</i></b> and ground, with the <b><i>PMOS</i></b> transistor receiving a reset signal <b><i>RST*</i></b> on its gate and the gate of the <b><i>NMOS</i></b> transistor <b><i>610</i></b> being coupled to node <b><i>N1</i></b>. The "*" indicates the <b><i>RST*</i></b> signal is active low. A <b><i>PMOS</i></b> transistor <b><i>614</i></b> and two <b><i>NMOS</i></b> transistors <b><i>616, 618</i></b> are coupled in series between the supply voltage <b><i>VCC</i></b> and ground, with this <b><i>PMOS</i></b> transistor also receiving the <b><i>RST*</i></b> signal on its gate and the gate of the <b><i>NMOS</i></b> transistor <b><i>616</i></b> being coupled to node <b><i>N2.</i></b> The <b><i>AL</i></b> signal is also applied to the gate of transistor <b><i>618</i></b> and the <b><i>AR</i></b> signal applied to the gate of transistor <b><i>612.</i></b>
A first latch 620 is formed by a pair of cross-coupled inverters <b><i>622</i></b>, <b><i>624</i></b> that latch to desired levels a signal <b><i>AL</i></b> applied to the gate of transistor <b><i>610</i></b> and a signal <b><i>BL</i></b> applied to the buffer circuit <b><i>604.</i></b> A second latch <b><i>626</i></b> is formed by a pair of cross-coupled inverters <b><i>628, 630</i></b> that latch to desired levels a signal <b><i>AR</i></b> applied to the gate of transistor <b><i>616</i></b> and a signal <b><i>BR</i></b> applied to buffer circuit <b><i>606.</i></b> A first pair of series-coupled reset transistors <b><i>632, 634</i></b> are coupled between the node <b><i>N1</i></b> and ground and a second pair of reset transistors <b><i>636, 638</i></b> are coupled between node <b><i>N2</i></b> and ground, each pair of transistors receiving the <b><i>AL</i></b> and <b><i>AR</i></b> signals on their respective gates.
In operation, the <b><i>RST</i></b>* signal goes active low to initiate a reset mode of operation in which the circuit <b><i>600</i></b> is reset prior to configuration of the buffer <b><i>602.</i></b> In response to the low <b><i>RST</i></b>* signal, the <b><i>PMOS</i></b> transistors <b><i>608, 614</i></b> turn ON, causing the latch <b><i>620</i></b> to latch the signal <b><i>AL</i></b> high and <b><i>BL</i></b> low and the latch <b><i>626</i></b> to latch the signal <b><i>AR</i></b> high and <b><i>BR</i></b> low. The low <b><i>BL, BR</i></b> signals disable the buffer circuits <b><i>604, 606,</i></b> respectively, and the high <b><i>AL, AR</i></b> signals enable both pairs of reset transistors <b><i>632-638</i></b> such that the transistors <b><i>632</i></b> and <b><i>634</i></b> drive node <b><i>N1</i></b> low and transistors <b><i>636</i></b> and <b><i>638</i></b> drive node <b><i>N2</i></b> low.
The <b><i>RST*</i></b> signal then goes inactive high to terminate the reset mode and a configuration signal having an active high voltage is applied on either node <b><i>N1</i></b> or <b><i>N2</i></b> to commence the configuration mode of operation. Note that it is the voltage "level" of the configuration signal that configures the buffer <b><i>602</i></b> in contrast to the edge-triggered embodiment of <b>FIG. 3</b> in which transitions of the configuration signal function to configure the buffer. The configuration signal is applied on node <b><i>N1</i></b> to configure the buffer <b><i>602</i></b> to operate in a first direction with the node <b><i>N1</i></b> as an input node and <b><i>N2</i></b> as an output node, and is applied on node <b><i>N2</i></b> to configure the buffer to operate in a second direction with the node <b><i>N2</i></b> as an input node and <b><i>N1</i></b> as an output node. When the active high configuration signal is applied on node <b><i>N1</i></b>, the voltage on this node goes high and transistor <b><i>610</i></b> turns ON. The reset transistors <b><i>632</i></b>, <b><i>634</i></b> are very small transistors so that the configuration signal may easily drive node <b><i>N1</i></b> high, as will be appreciated by those skilled in the art. The same is true of reset transistors <b><i>636, 638</i></b> and node <b><i>N2.</i></b> When the transistor <b><i>610</i></b> turns ON responsive to the high signal on node <b><i>N1</i></b>, both transistors <b><i>610</i></b> and transistor <b><i>612,</i></b> which receives a high <b><i>AR</i></b> signal, are activated and thereby drive the signal <b><i>AL</i></b> low.
At this point, the latch <b><i>620</i></b> latches the <b><i>AL</i></b> signal low and the <b><i>BL</i></b> signal high, with the high <b><i>BL</i></b> signal being applied to enable the buffer circuit <b><i>604.</i></b> The transistor <b><i>618</i></b> is turned OFF responsive to the low <b><i>AL</i></b> signal and thus even when the high configuration signal on node <b><i>N1</i></b> propagates through the buffer circuit <b><i>604,</i></b> the state of latch <b><i>626</i></b> does not change since transistor <b><i>616</i></b> will turn ON but transistor 618 remains turned OFF. The bidirectional buffer <i><b>602</b></i> now commences operation in the data mode and the buffer circuit <b>603</b> provides a data signal on node <b>N2</b> responsive to a data signal on node <b><i>N1</i></b>. The operation of the detection and configuration circuit <b>600</b> to configure the bidirectional buffer <b>602</b> to operate in the opposite direction such that the buffer circuit <b><i>606</i></b> is enabled will by understood by those skilled in the art from the above description, and thus, for the sake of brevity, will not be described in more detail. Similarly, the operation of the circuit 600 in configuring series-connected buffers <b><i>602</i></b> is analogous to the previous description of <b>FIG. 4</b> and thus also will be understood by those skilled in the art and not described in more detail.
<b>FIG. 7</b> is a functional block diagram of a computer system or other electronic system <b><i>700</i></b> including an integrated circuit <b><i>702</i></b> containing a number of bidirectional buffers and detection and configuration circuits (not shown) of <b>FIGS. 2, 3</b>, and/or <b>6</b>. The integrated circuit 702 may be any of a variety of types of integrated circuit, such as an FPGA, memory device, or digital signal processing chip including the present bidirectional buffers and detection and configuration circuits. The computer system <b><i>700</i></b> includes computer circuitry <b><i>704</i></b> coupled to the integrated circuit <b><i>702</i></b> for performing various computing functions, such as executing specific software to perform specific calculations or tasks. In addition, the computer system <b><i>700</i></b> includes one or more input devices <b><i>706</i></b>, such as a keyboard or a mouse, coupled to the computer circuitry <i>704</i> to allow an operator to interface with the computer system. Typically, the computer system <i><b>700</b></i> also includes one or more output devices <i><b>708</b></i> coupled to the computer circuitry <i><b>704</b></i>, such as output devices typically including a printer and a video terminal. One or more data storage devices <b><i>710</i></b> are also typically coupled to the computer circuitry <b><i>704</i></b> to store data or retrieve data from external storage media (not shown). Examples of typical storage devices <b><i>710</i></b> include hard and floppy disks, tape cassettes, compact disk read-only (CD-ROMs) and compact disk read-write (CD-RW) memories, and digital video disks (DVDs).
In the above description of embodiments of the present invention, one skilled in the art will understand suitable circuitry for forming various components in these embodiments. For example, the buffer circuits described in the various embodiments could be formed by series connected inverters, each inverter being formed by a series-connected <b><i>PMOS</i></b> and <b><i>NMOS</i></b> transistor and having another series connected <b><i>NMOS</i></b> transistor coupled to receive the corresponding <b><i>BL</i></b> or <b><i>BR</i></b> signal. Moreover, one skilled in the art will understood that even though various embodiments and advantages of the present invention have been set forth in the foregoing description, the above disclosure is illustrative only, and changes may be made in detail and yet remain within the broad principles of the invention. For example, some of the components described above may be implemented using either digital or analog circuitry, or a combination of both, and also, where appropriate, may be realized through software executing on suitable processing circuitry. Therefore, the present invention is to be limited only by the appended claims.
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9501133B2 | Cited by | United States of America | Applicant |
| CN103703681A | Cited by | China | Search report |
| EP0479575A2 | Cites | European Patent Office (EPO) | Examiner |
| US2002053925A1 | Cites | United States of America | Examiner |
| US5214330A | Cites | United States of America | Search report |
| US5517135A | Cites | United States of America | Examiner |
| US5736870A | Cites | United States of America | Search report |
6 members in 2 offices
Priority claims5
| Document | Office | Kind | Date |
|---|---|---|---|
| 671416 | United States of America | – | |
| 67141603 | United States of America | A | |
| 67141603 | United States of America | A | |
| 671416 | – | – | – |
| US20030671416 | – | – | – |
Members6
| Document | Office | Kind | |
|---|---|---|---|
| US2005062500A1 | United States of America | A1 | |
| EP1519488A2This record | European Patent Office (EPO) | A2 | |
| US7061274B2 | United States of America | B2 | |
| US2006164123A1 | United States of America | A1 | |
| EP1519488A3 | European Patent Office (EPO) | A3 | |
| US7205793B2 | United States of America | B2 |
11 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Application deemed to be withdrawnWithdrawn18D | 18D | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWNSTAA | STAA | |
| First examination report despatched17Q | 17Q | |
| Designation fees paidAKX | AKX | |
| Request for examination filed17P | 17P | |
| Designated contracting statesAK | AK | |
| Request for extension of the european patentAX | AX | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | |
| Designated contracting statesAK | AK | |
| Request for extension of the european patentAX | AX | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI |
Numbers
- Publication
- 1519488
- Publication, DOCDB
- 1519488
- Publication, EPODOC
- EP1519488
- Application
- 4255770
- Application, DOCDB
- 04255770
- Application, EPODOC
- EP20040255770
Titles3
- German
- Selbst-Programmierbarer bidirektionaler Buffer Schaltkreis und Verfahren
- English
- Self-programmable bidirectional buffer circuit and method
- French
- Circuit buffer bidirectionnel auto-programmable et méthode associée
Classification
- CPC, 1
- H03K19/01759
- IPC, 1
- H03K19 0175
Designated states33
- Contracting states, 28
- Austria
- Belgium
- Bulgaria
- Switzerland
- Cyprus
- Czechia
- Germany
- Denmark
- Estonia
- Spain
- Finland
- France
- United Kingdom
- Greece
- Hungary
- Ireland
- Italy
- Liechtenstein
- Luxembourg
- Monaco
- Netherlands (Kingdom of the)
- Poland
- Portugal
- Romania
and 4 moreShow fewer
- Sweden
- Slovenia
- Slovakia
- Türkiye
- Extension states, 5
- Albania
- Croatia
- Lithuania
- Latvia
- North Macedonia