WO2023279341A1 - Method for designing asynchronous circuit, and electronic device - Google Patents

Method for designing asynchronous circuit, and electronic device Download PDF

Info

Publication number
WO2023279341A1
WO2023279341A1 PCT/CN2021/105326 CN2021105326W WO2023279341A1 WO 2023279341 A1 WO2023279341 A1 WO 2023279341A1 CN 2021105326 W CN2021105326 W CN 2021105326W WO 2023279341 A1 WO2023279341 A1 WO 2023279341A1
Authority
WO
WIPO (PCT)
Prior art keywords
asynchronous
clock
asynchronous controller
controller
time period
Prior art date
Application number
PCT/CN2021/105326
Other languages
French (fr)
Chinese (zh)
Inventor
李智宇
虞志益
肖山林
唐样洋
黄宇皓
乔冰涛
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN202180098077.5A priority Critical patent/CN117651933A/en
Priority to PCT/CN2021/105326 priority patent/WO2023279341A1/en
Publication of WO2023279341A1 publication Critical patent/WO2023279341A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Definitions

  • the present disclosure relates to the field of circuits, and more particularly relates to a design method of an asynchronous circuit and an electronic device.
  • Asynchronous circuits have the characteristics of low power consumption and strong robustness. Therefore, asynchronous circuit designs are suitable for use in chip designs for these applications.
  • Asynchronous circuits can be divided into single-rail circuits and dual-rail circuits, where the data of the dual-rail circuit itself can represent its validity. Dual-rail circuits have lower timing requirements and are more robust, but have more than twice the area of corresponding synchronous circuits.
  • the monorail circuit has a data path similar to that of a synchronous circuit, and its area is similar to that of a synchronous circuit.
  • the current mainstream approach is to convert the RTC of an asynchronous monorail circuit into a static timing analysis (STA) that can be recognized by EDA tools.
  • STA static timing analysis
  • the researchers tried to separate the combinational logic part and the control part of the asynchronous circuit to make sure that the delay of the control part is greater than that of the corresponding combinational logic part.
  • the method of separating constraints does not consider the integrity of asynchronous circuits, so it is difficult to use in large-scale integrated circuits.
  • embodiments of the present disclosure aim to provide a method and an electronic device for designing an asynchronous circuit.
  • a method for designing an asynchronous circuit includes determining a first pulse signal generated by a first asynchronous controller in the asynchronous circuit as a first clock signal; and determining a second pulse signal generated by a second asynchronous controller in the asynchronous circuit as a second clock signal.
  • a second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is offset by a first predetermined amount of time relative to the first clock signal.
  • the method also includes generating a first clock propagation difference corresponding to the first clock signal and the second clock signal, and determining a first data propagation time period between the first sequential logic gate and the second sequential logic gate.
  • the first sequential logic gate is coupled to the first asynchronous controller and operates based on the first pulse signal
  • the second sequential logic gate is coupled to the second asynchronous controller and operates based on the second pulse signal.
  • the method further includes generating a delay report related to the first data propagation time period and the first clock propagation difference.
  • the delay setting of the asynchronous circuit can be determined accordingly and the timing correctness of the asynchronous circuit can be ensured. Since the timing of the combinational logic part and the control part of the asynchronous circuit is uniformly analyzed through the above method, the relative timing constraints of the asynchronous circuit can be converted into a static timing analysis that can be recognized by traditional EDA tools. On this basis, EDA tools can be used to optimize the circuit and schedule constraints on the asynchronous circuit, so as to effectively improve the efficiency of designing the asynchronous single-rail circuit. Therefore, the method can be applied to large-scale asynchronous circuit design.
  • generating the first clock propagation difference corresponding to the first clock signal and the second clock signal includes: determining the first clock propagation time period of the first clock signal and the second clock propagation time period of the second clock signal Clock propagation time period, the first clock propagation time period represents the time period from the first asynchronous controller receiving the first input request to the first asynchronous controller generating the first pulse signal, the second clock propagation time period represents the period from the first asynchronous a time period from when the controller receives the first input request to when the second asynchronous controller generates the second pulse signal; and determining a first clock propagation difference between the first clock propagation time period and the second clock propagation time period.
  • generating a delay report related to the first data propagation time period and the first clock propagation difference includes: generating a first data propagation time value representing the first data propagation time period; subtracting the propagation time value and the first clock propagation difference value to determine a first delay value; and generating a delay report including the first delay value.
  • generating a delay report related to the first data propagation time period and the first clock propagation difference includes: generating a first data propagation time value representing the first data propagation time period; The propagation time value is compared to the first clock propagation difference value to generate a comparison result; and a delay report including the comparison result is generated.
  • the method further includes determining a delay setting between the first asynchronous controller and the second asynchronous controller based on the first clock propagation difference and the first data propagation time period.
  • determining the delay setting between the first asynchronous controller and the second asynchronous controller includes responding to the first data propagation time period is greater than the first clock propagation difference, a delay circuit is set between the first asynchronous controller and the second asynchronous controller; or in response to the first data propagation time period being not greater than the first clock propagation difference, the There is no delay circuit between the controller and the second asynchronous controller.
  • the circuit design of the combinational logic device between the sequential logic devices may be optimized, so as to ensure that the data signal reaches the lower sequential logic device before the pulse signal.
  • setting the delay circuit between the first asynchronous controller and the second asynchronous controller in response to the first data propagation time period being greater than the first clock propagation difference includes determining the first clock propagation difference and The first path difference between the first data propagation differences; determine the unit delay period of the delay circuit; based on the first path difference and the unit delay period, set one or more delay circuits in series, so that one or more The total delay period of the delay circuits connected in series is not lower than the first path difference.
  • the method further includes determining the Mth pulse signal generated by the Mth asynchronous controller of the asynchronous circuit as the Mth clock signal, where M represents an integer greater than 0;
  • the Nth pulse signal generated by the controller is determined as the Nth clock signal, the first asynchronous controller to the Nth asynchronous controller are coupled step by step, and any two adjacent asynchronous controllers from the first asynchronous controller to the Nth asynchronous controller Offset from each other by a first predetermined amount of time, the output of the Nth asynchronous controller is coupled to the input of the Mth asynchronous controller, where N represents an integer greater than M; and a timing period P is determined, where P represents a time period between N and M difference; based on the timing cycle P, determine the delay setting between the Nth asynchronous controller and the Mth asynchronous controller.
  • determining the delay setting between the Nth asynchronous controller and the Mth asynchronous controller includes determining the Nth clock propagation time period of the Nth clock signal, the Nth clock propagation time The segment represents the time period from the first asynchronous controller receiving the first input request to the Nth asynchronous controller generating the Nth pulse signal; determine the time period of the Mth asynchronous controller in the Pth timing cycle after the Mth clock signal is generated Clock propagation period; determine the Nth clock propagation difference between the Nth clock propagation period and the clock propagation period in the Pth timing cycle; determine the Nth clock propagation difference between the Nth sequential logic gate and the Mth sequential logic gate During the N data transmission period, the Nth sequential logic gate is coupled to the Nth asynchronous controller and operates based on the Nth pulse signal, the Mth sequential logic gate is coupled to the Mth asynchronous controller and operates based on the Mth pulse signal; and based on The Nth clock propagation time period and the Nth
  • the method also includes maintaining the structure of the asynchronous circuit during synthesis of the asynchronous circuit.
  • maintaining the asynchronous circuit during synthesis it is ensured that the structure of the asynchronous circuit is not optimized by the EDA tool. Because there is a loop in the asynchronous controller, if it is not maintained, the integrated circuit may be different from the expected one, which will affect the function of the asynchronous circuit.
  • determining the delay setting between the first asynchronous controller and the second asynchronous controller based on the first clock propagation difference and the first data propagation time period includes The first clock propagation difference and the first data propagation time period determine a delay setting between the first asynchronous controller and the second asynchronous controller.
  • process voltage and temperature process voltage and temperature, PVT
  • PVT process voltage and temperature
  • the method further includes determining the first pulse width of the first pulse signal and the second pulse width of the second pulse signal; and responding to the first pulse width or the second pulse width being lower than the pulse width Threshold, the pulse stretching circuit is correspondingly set in the first asynchronous controller or the second asynchronous controller to widen the width of the first pulse signal or the second pulse signal.
  • Propagation timing constraints treat the handshake process of asynchronous circuits as the clock propagation process, and there are combinational logic and registers on this path, so static timing analysis cannot obtain the pulse width of the actually generated local pulse single-shot (click) signal.
  • the timing simulation of the asynchronous circuit after implementation can determine whether the click pulse width of each stage actually meets the minimum pulse width requirement of the register. If the width of the local pulse needs to be extended, a buffer unit can be added to the output pin of the register in the asynchronous controller to further ensure the timing correctness of the asynchronous circuit.
  • the asynchronous circuit includes a single-rail asynchronous circuit; the first asynchronous controller is an initial asynchronous controller; and both the first asynchronous controller and the second asynchronous controller include a phase decoupling controller.
  • the second asynchronous controller is further coupled to a fourth asynchronous controller in the asynchronous circuit.
  • the method further includes determining the fourth pulse signal generated by the fourth asynchronous controller as the fourth clock signal; determining the second pulse signal generated by the second asynchronous controller in response to the request from the fourth asynchronous controller as the fifth clock signal , the fifth clock signal is offset by a second predetermined amount of time relative to the fourth clock signal; the second clock signal is assigned to the first clock group and the fifth clock signal is assigned to the second clock group, the second clock group being different from the first clock group A clock grouping; determine the fifth clock propagation time period of the fourth clock signal and the fifth clock propagation time period of the fifth clock signal, the fifth clock propagation time period represents receiving the fourth input request from the fourth asynchronous controller to the first The time period during which the four asynchronous controllers generate the fourth pulse signal, the fifth clock propagation time period represents the time period from the fourth asynchronous controller receiving the fourth input request to the second asynchronous controller generating the fifth pulse signal;
  • multiple clocks are defined on the same port, and the clocks defined later will not overwrite the existing clocks, and the clocks that do not physically exist at the same time are grouped to interrupt the timing analysis between them.
  • the circuit is then constrained by one-to-one correspondence of multiple clocks with different inputs, and the delay is calculated.
  • correct timing analysis can also be implemented for conditionally selected asynchronous circuits including multiplexers and demultiplexers, and corresponding delay settings can be performed according to the timing analysis results, thereby expanding the application range of the present disclosure.
  • the first predetermined amount of time is less than a first proportion of the period of the pulse signal, for example less than one hundredth, one thousandth or one ten thousandth.
  • a computer readable storage medium stores a plurality of programs configured to be executed by one or more processors, the plurality of programs including instructions for performing the method according to the first aspect.
  • a computer program product comprises a plurality of programs configured for execution by one or more processors, the plurality of programs comprising instructions for performing the method according to the first aspect.
  • an electronic device comprising one or more processors; a memory comprising computer instructions which, when executed by the one or more processors of the electronic device, cause the electronic device to perform aspects of the method.
  • an electronic device including a clock signal determining unit, a clock propagation difference generating unit, a data propagation time period determining unit, and a delay report generating unit.
  • the clock signal determination unit is used to determine the first pulse signal generated by the first asynchronous controller in the asynchronous circuit as the first clock signal; determine the second pulse signal generated by the second asynchronous controller in the asynchronous circuit as the second clock signal, the second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is offset by a first predetermined amount of time relative to the first clock signal.
  • the clock propagation difference generating unit is configured to generate a first clock propagation difference corresponding to the first clock signal and the second clock signal.
  • the data propagation time period determining unit is used to determine a first data propagation time period between the first sequential logic device and the second sequential logic device, the first sequential logic device is coupled to the first asynchronous controller and operates based on the first pulse signal , the second sequential logic device is coupled to the second asynchronous controller and operates based on the second pulse signal.
  • the delay report generating unit is configured to generate a delay report related to the first data propagation time period and the first clock propagation difference.
  • conventional EDA design tools By representing the pulse signals of various asynchronous controllers used to control the operation of sequential logic devices as clock signals derived from the same source clock but with different phases and different transmission paths, conventional EDA design tools therefore treat them as synchronous clocks and calculate Timing paths for individual clock signals.
  • conventional EDA tools can analyze the timing of data propagation in the combinational logic portion of an asynchronous circuit. On this basis, by comparing the propagation delay of the control part and the combinational logic part, the delay setting of the asynchronous circuit can be determined accordingly and the timing correctness of the asynchronous circuit can be ensured.
  • the relative timing constraints of the asynchronous circuit can be converted into a static timing analysis that can be recognized by traditional EDA tools.
  • EDA tools can be used for circuit optimization and timing constraints on asynchronous circuits to effectively improve the efficiency of designing asynchronous single-rail circuits. Therefore, the method can be applied to large-scale asynchronous circuit design.
  • the clock propagation difference generating unit includes: a clock propagation time period determining unit, configured to determine a first clock propagation time period of the first clock signal and a second clock propagation time period of the second clock signal , the first clock propagation time period represents the time period from the first asynchronous controller receiving the first input request to the first asynchronous controller generating the first pulse signal, and the second clock propagation time period represents the time period from the first asynchronous controller receiving The time period from the first input request to the second asynchronous controller generating the second pulse signal; and a clock propagation difference determination unit, configured to determine the first clock propagation between the first clock propagation time period and the second clock propagation time period difference.
  • the electronic device further includes a delay setting determination unit, configured to determine the delay between the first asynchronous controller and the second asynchronous controller based on the first clock propagation difference and the first data propagation time period. delay settings.
  • the delay setting determination unit is further configured to set a delay circuit between the first asynchronous controller and the second asynchronous controller in response to the first data propagation time period being greater than the first clock propagation difference; Or in response to the fact that the first data propagation time period is not greater than the first clock propagation difference, no delay circuit is provided between the first asynchronous controller and the second asynchronous controller.
  • the clock signal determination unit is further configured to determine the Mth pulse signal generated by the Mth asynchronous controller of the asynchronous circuit as the Mth clock signal, where M represents an integer greater than 0; the asynchronous circuit
  • the Nth pulse signal generated by the Nth asynchronous controller is determined as the Nth clock signal, the first asynchronous controller to the Nth asynchronous controller are coupled step by step, and any two of the first asynchronous controller to the Nth asynchronous controller Adjacent asynchronous controllers are offset from each other by a first predetermined amount of time, an output of an Nth asynchronous controller is coupled to an input of an Mth asynchronous controller, where N represents an integer greater than M.
  • the electronic device further includes a timing period determining unit, configured to determine a timing period P, where P represents a difference between N and M.
  • the delay setting determination unit is further configured to determine the delay setting between the Nth asynchronous controller and the Mth asynchronous controller based on the timing cycle P.
  • the electronic device further includes a maintaining unit, configured to maintain the structure of the asynchronous circuit during synthesis of the asynchronous circuit.
  • a maintaining unit configured to maintain the structure of the asynchronous circuit during synthesis of the asynchronous circuit.
  • the delay setting determination unit is further configured to determine, based on the first clock propagation difference and the first data propagation time period of the asynchronous circuit at different process angles, to determine Delay settings between controllers.
  • the same chip has different delays under different operating conditions, which is very important for the delay matching process of asynchronous circuits.
  • static timing analysis analyzes circuit functions for timing models at different process corners to ensure that the constrained circuits can meet timing requirements under any conditions.
  • the electronic device further includes a pulse stretching unit.
  • the pulse stretching unit is used to determine the first pulse width of the first pulse signal and the second pulse width of the second pulse signal; and in response to the first pulse width or the second pulse width being lower than the pulse width threshold, in the first asynchronous controller Or a pulse stretching circuit is correspondingly set in the second asynchronous controller to widen the width of the first pulse signal or the second pulse signal.
  • Propagation timing constraints regard the handshake process of asynchronous circuits as the clock propagation process, and there are combinational logic and registers on this path, so static timing analysis cannot obtain the pulse width of the actually generated local pulse click signal.
  • the timing simulation of the asynchronous circuit after implementation can determine whether the pulse width of the click signal of each stage actually meets the minimum pulse width requirement of the register. If the width of the local pulse needs to be extended, a buffer unit can be added to the output pin of the register in the asynchronous controller to further ensure the timing correctness of the asynchronous circuit.
  • the second asynchronous controller is further coupled to the fourth asynchronous controller in the asynchronous circuit; the clock signal determining unit is further configured to determine the fourth pulse signal generated by the fourth asynchronous controller as the fourth a clock signal; determining a second pulse signal generated by the second asynchronous controller in response to a request from the fourth asynchronous controller as a fifth clock signal, the fifth clock signal being offset by a second predetermined amount of time relative to the fourth clock signal; electronically
  • the device also includes a clock assigning unit for assigning the second clock signal to the first clock group and assigning the fifth clock signal to the second clock group, the second clock group being different from the first clock group; the clock propagation period determining unit Further used to determine the fifth clock propagation time period of the fourth clock signal and the fifth clock propagation time period of the fifth clock signal, the fifth clock propagation time period indicates that the fourth input request is received from the fourth asynchronous controller to the fourth The time period when the asynchronous controller generates the fourth pulse signal, and the fifth clock propagation time period represents the
  • multiple clocks are defined on the same port, and the clocks defined later will not overwrite the existing clocks, and the clocks that do not physically exist at the same time are grouped to interrupt the timing analysis between them.
  • the circuit is then constrained by one-to-one correspondence of multiple clocks with different inputs, and the delay is calculated.
  • correct timing analysis can also be implemented for conditionally selected asynchronous circuits including multiplexers and demultiplexers, and corresponding delay settings can be performed according to the timing analysis results, thereby expanding the application range of the present disclosure.
  • FIG. 1 shows a schematic block diagram of a circuit system according to some embodiments of the present disclosure
  • FIG. 2 shows a schematic circuit diagram of an asynchronous circuit of a pipeline architecture according to some embodiments of the present disclosure
  • Figure 3 shows a schematic circuit diagram of an asynchronous controller according to some embodiments of the present disclosure
  • Fig. 4 shows a schematic circuit diagram of an asynchronous controller according to other embodiments of the present disclosure
  • Fig. 5 shows a schematic diagram of a clock signal propagation path according to some embodiments of the present disclosure
  • Fig. 6 shows a schematic block diagram of clock signal propagation of a sequential circuit according to some embodiments of the present disclosure
  • Fig. 7 shows a schematic block diagram of clock signal propagation of a non-sequential circuit according to some embodiments of the present disclosure
  • Fig. 8 shows a schematic block diagram of clock signal propagation of a condition selection circuit according to some embodiments of the present disclosure
  • Fig. 9 shows a schematic circuit diagram of an asynchronous controller according to other embodiments of the present disclosure.
  • Fig. 10 shows a schematic circuit diagram of an asynchronous controller according to other embodiments of the present disclosure.
  • FIG. 11 shows a schematic flowchart of a method according to some embodiments of the present disclosure
  • Figure 12 shows a schematic block diagram of an electronic device according to some embodiments of the present disclosure.
  • Figure 13 shows a block diagram of an example device that may be used to implement some embodiments of the present disclosure.
  • conventional EDA design tools So treat it as a synchronous clock and calculate the timing paths of the individual clock signals.
  • conventional EDA tools can analyze the timing of data propagation in the combinational logic portion of an asynchronous circuit. On this basis, by comparing the propagation delay of the control part and the combinational logic part, the delay setting of the asynchronous circuit can be determined accordingly and the timing correctness of the asynchronous circuit can be ensured.
  • the relative timing constraints of the asynchronous circuit can be converted into a static timing analysis that can be recognized by traditional EDA tools .
  • EDA tools can be used for circuit optimization and timing constraints on asynchronous circuits to effectively improve the efficiency of designing asynchronous single-rail circuits. Therefore, embodiments of the present disclosure may be applicable to large-scale asynchronous circuit designs.
  • FIG. 1 shows a schematic block diagram of a circuit system 100 according to some embodiments of the present disclosure.
  • the circuit system 100 includes a first device 10 , an asynchronous circuit 20 and a second device 30 .
  • the first device 10 is, for example, a source device
  • the second device 30 is, for example, a sink device.
  • circuitry 100 may be integrated into a single chip.
  • the first device 10, the asynchronous circuit 20 and the second device 30 may be implemented in different chips or devices. This disclosure is not limited in this regard.
  • the first device 10 sends a data signal to the asynchronous circuit 20 .
  • the asynchronous circuit 20 sends the processed data to the second device 30 for use or further processing by the second device 30 .
  • the first device 10 also sends a request signal to the asynchronous circuit 20 in addition to sending the data signal, and the asynchronous circuit 20 processes the data signal after receiving the request and simultaneously sends an acknowledgment signal to the first device 10 to determine A data signal is received.
  • the data signal usually arrives at the asynchronous circuit 20 earlier than the request signal.
  • the asynchronous circuit 20 also sends a request signal to the second device 30 in addition to sending the data signal, and the second device 30 processes or uses the data signal after receiving the request and simultaneously sends an acknowledgment signal to the asynchronous circuit 20 to determine A data signal is received.
  • the data signal usually arrives at the second device 30 earlier than the request signal.
  • data can be transmitted bidirectionally in the circuit system 100, that is, depending on the direction of data transmission, the first device 10 can be a sink device or a source device, and the second device 30 can be a source device or a sink device.
  • FIG. 2 shows a schematic circuit diagram of an asynchronous circuit 200 of a pipeline architecture according to some embodiments of the present disclosure.
  • the asynchronous circuit 200 may be a specific implementation of the asynchronous circuit 20 in FIG. 1 . It can be understood that the asynchronous circuit of the present disclosure is not limited to the asynchronous circuit 200, but may have other implementation forms.
  • Asynchronous circuit 200 includes a data path and a timing path. The timing path includes a first asynchronous controller 24 , a second asynchronous controller 26 , and a third asynchronous controller 28 cascadedly coupled to each other.
  • the data path includes a first sequential logic device 21 , a first functional circuit 23 , a second sequential logic device 25 , a second functional circuit 27 and a third sequential logic device 29 .
  • the data path may include more or less sequential logic devices and functional circuits, which is not limited in the present disclosure.
  • functional circuits may be implemented by one or more combinational logic devices.
  • sequential logic device means a logic device with clocked inputs or pulsed control signals. The output of a sequential logic device at any time not only depends on the input signal at that time, but also depends on the clock signal and the original state of the sequential logic device, in other words, it can also be related to the previous input.
  • Sequential logic devices include, for example, flip-flops, registers, registers, and the like.
  • "combinational logic device” means a logic device that does not have clocked inputs or pulsed control signals. The output of a combinational logic device at any moment depends only on the input at that moment, and has nothing to do with the original state of the combinational logic device.
  • Combination logic gates include, for example, AND gates, OR gates, NAND gates, XOR gates, NOT gates, and buffers.
  • the upstream device is, for example, the first device 10 and the downstream device is, for example, the third device 30 .
  • the first asynchronous controller 24, the second asynchronous controller 26 and the third asynchronous controller 28 have the same configuration, for example, the first asynchronous controller 24, the second asynchronous controller 26 and the third asynchronous controller 28 are phase solution coupled click circuit.
  • the first asynchronous controller 24 , the second asynchronous controller 26 and the third asynchronous controller 28 may be implemented by different asynchronous controllers, which is not limited in the present disclosure.
  • the first sequential logic device 21 is coupled to the upstream device and receives the data signal In_Data, and transmits the data signal In_Data to the first functional circuit 23 in response to the first pulse signal from the first asynchronous controller 24 .
  • the first functional circuit 23 receives the data signal In_Data and transmits the processed first data signal to the second sequential logic device 25 .
  • the second sequential logic device 25 transmits the first data signal to the second functional circuit 27 in response to the second pulse signal from the second asynchronous controller 26 .
  • the second functional circuit 27 receives the first data signal from the second sequential logic device 25 and transmits the processed second data signal to the third sequential logic device 29 .
  • the third sequential logic device 29 transmits the second data signal to the downstream device in response to the third pulse signal from the third asynchronous controller 28 .
  • the first sequential logic device 21, the second sequential logic device 25 and the third sequential logic device 29 have the same configuration, for example, the first sequential logic device 21, the second sequential logic device 25 and the third sequential logic device Devices 29 are all registers.
  • the first sequential logic device 21 , the second sequential logic device 25 and the third sequential logic device 29 may be implemented by different sequential logic devices, which is not limited in the present disclosure.
  • the data signal In order to ensure the correctness of the work of the asynchronous circuit, in terms of timing, the data signal should arrive at the sequential logic device before the pulse signal.
  • the data signal In_Data needs to reach the first sequential logic device 21 before the first pulse signal output by the first asynchronous controller 24 .
  • the first data signal from the first functional circuit 23 needs to reach the second sequential logic device 25 before the second pulse signal output from the second asynchronous controller 26, and the second data signal from the second functional circuit 27 It needs to reach the third sequential logic device 29 before the third pulse signal output from the third asynchronous controller 28 . Therefore, in the design stage of the asynchronous circuit, it is necessary to analyze the timing of each component of the asynchronous circuit to ensure the correct operation of the asynchronous circuit.
  • FIG. 3 shows a schematic circuit diagram of the asynchronous controller 24 according to some embodiments of the present disclosure.
  • the asynchronous controller 24 has an exclusive OR gate 31 , an exclusive OR gate 32 and an AND gate 33 , a first phase register 34 and a second phase register 35 .
  • the exclusive OR gate 31 , the exclusive OR gate 32 and the AND gate 33 are configured to generate local pulse signals.
  • the pulse signal will drive the phase registers 34, 35 and the first sequential logic device 21 for buffering data and starting the next handshake protocol.
  • the upstream device needs to send valid data, it will flip the In_Req signal once.
  • the input request signal In_Req and the input acknowledgment signal In_Ack are subjected to an exclusive OR operation at the exclusive OR gate 31 to generate a high level.
  • the downstream device When the downstream device (such as the second asynchronous controller 26 ) receives the valid data sent by the asynchronous controller 24 , it will invert the output acknowledgment signal Out_Ack. This signal is NORed with the output request signal Out_Req at the NOR gate 32 to obtain a high level.
  • the AND gate 33 When the input request signal In_Req is not equal to the input confirmation signal In_Ack and the output request signal Out_Req is equal to the output confirmation signal Out_Ack, the AND gate 33 will generate a high click signal as the clock signal of the first sequential logic device 21 to capture and store data.
  • the click signal will flip the phase registers 34 and 35, and change the values of the input confirmation signal In_Ack and the output request signal Out_Req, thereby completing a handshake protocol.
  • this handshake protocol is two-phase, that is, each flip of the input confirmation signal In_Req represents the arrival of a valid data, rather than a high level.
  • FIG. 4 shows a schematic circuit diagram of an asynchronous controller 40 according to other embodiments of the present disclosure.
  • the asynchronous controller 40 has a first AND gate 41 , a second AND gate 42 , an OR gate 43 and a phase register 44 .
  • the first AND gate 41 , the second AND gate 42 and the OR gate 43 are configured to generate local pulse signals.
  • the pulse signal will drive the phase register 44 and the first sequential logic device 21 for buffering data and starting the next handshake protocol.
  • the upstream device needs to send valid data, it will flip the In_Req signal once.
  • the inversion signal of the input request signal In_Req is ANDed with the input acknowledgment signal In_Ack signal and the output acknowledgment signal Out_Ack at the first AND gate 41, and the inversion of the input request signal In_Req and the input acknowledgment signal In_Ack signal and the output acknowledgment signal Out_Ack
  • the phase signal is ANDed at the second AND gate 42 .
  • the outputs of the first AND gate 41 and the second AND gate 42 are ORed at the OR gate 43 .
  • the OR gate 43 will generate a high click signal as the clock signal of the first sequential logic device 21 to capture and store data.
  • the click signal will flip the phase register 44 to change the values of the input confirmation signal In_Ack and the output request signal Out_Req, thereby completing a handshake protocol.
  • this handshake protocol is two-phase, that is, each flip of the input confirmation signal In_Req represents the arrival of a valid data, rather than a high level.
  • the bundled data handshake protocol in the asynchronous circuit needs delay matching to ensure the validity of the data, that is, the delay for the request signal sent by the asynchronous controller to reach the next-level asynchronous controller must be greater than the maximum delay of the corresponding data path to ensure the next Level sequential logic devices can latch to the correct data.
  • the click controller structure uses the output of the phase register as the req signal to generate the clock signal of the next click circuit, this path is not a timing path, so conventional EDA tools cannot perform timing analysis on it.
  • the asynchronous circuit can be constrained so that a conventional EDA tool can perform timing analysis on the control part and the data path of the asynchronous circuit at the same time, so as to ensure that the asynchronous circuit can work normally.
  • a method for designing an asynchronous circuit according to some embodiments of the present disclosure will be described below with reference to an example of an asynchronous circuit.
  • the method can be executed by a processor of an electronic device such as a computer.
  • the processor may perform timing analysis on the designed asynchronous circuit according to some embodiments of the present disclosure.
  • the timing analysis results show that the timing between the various components of the asynchronous circuit is incorrect (for example, the delay between two asynchronous controllers is less than the delay between the corresponding sequential logic devices)
  • the asynchronous circuit can be adjusted based on the timing analysis results , such as adding delay circuit modules between asynchronous controllers.
  • the processor determines the first pulse signal generated by the first asynchronous controller in the asynchronous circuit as the first clock signal, and determines the second pulse signal generated by the second asynchronous controller in the asynchronous circuit as Second clock signal.
  • a second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is offset by a first predetermined amount of time relative to the first clock signal.
  • the processor can use the event starting point of the asynchronous circuit as the first asynchronous controller, that is, select the asynchronous controller that generates the first local pulse signal (for example, the asynchronous controller of the first stage of the pipeline) as the first asynchronous controller.
  • An asynchronous controller select the asynchronous controller that generates the first local pulse signal (for example, the asynchronous controller of the first stage of the pipeline) as the first asynchronous controller.
  • the local pulse of the first asynchronous controller is determined as the first clock signal clk1, and its clock cycle and rising and falling edges may have default values.
  • the first clock signal clk1 is the source clock signal.
  • the processor may set the asynchronous controller 24 in FIG. 2 as the source asynchronous controller, and use the pulse signal generated by the asynchronous controller 24 as the clock signal clk1.
  • the processor may declare the local pulse generated by the next-level asynchronous controller as the second clock signal clk2, whose source clock signal is the first clock signal clk1.
  • the second clock signal clk2 is shifted by a small amount relative to the first clock signal clk1, so that the second clock signal clk2 will be regarded as shifted by a predetermined value (for example, 0.01 nanoseconds, 0.01 ns) along the propagation path of the first clock signal clk1 ), the second clock signal clk2 has a fixed phase relationship with the first clock signal clk1, and can be regarded as a synchronous clock by the EDA software.
  • the local pulse generated by the next-level controller is regarded as the third clock signal clk3 propagated by the second clock signal clk2.
  • the third clock signal clk3 is shifted relative to the second clock signal clk2 by the same small amount.
  • an n-stage pipeline can obtain n phase-related clocks clk1, clk2...clkn. Since these n clocks share the same source clock, that is, the clock corresponding to the first clock signal clk1, but the propagation paths are different and have different phase differences, the EDA tool will regard it as a synchronous clock and analyze the relationship between these n clocks. timing path.
  • the offset predetermined value By setting the offset predetermined value to be much smaller than the period of the pulse signal, it is possible to prevent a plurality of pulse signals from interfering with each other.
  • FIG. 5 shows a schematic diagram of a clock signal propagation path 500 according to some embodiments of the present disclosure.
  • the first asynchronous controller generates a first pulse signal click1
  • the second asynchronous controller generates a second pulse signal click2.
  • the first asynchronous controller provides the first pulse signal click1 to the first sequential logic device 52
  • the second asynchronous controller provides the second pulse signal click2 to the second sequential logic device 56 .
  • the first sequential logic device 52 operates in response to receiving the first pulse signal click1 , such as latching the received data and providing it to the functional circuit 54 .
  • the second sequential logic device 56 operates in response to receiving the second pulse signal click2 , eg, latches and provides the calculated data from the functional circuit 54 to downstream devices.
  • the processor determines the first pulse signal click1 generated by the first asynchronous controller in the asynchronous circuit as the first clock signal clk1, and determines the first pulse signal click1 generated by the second asynchronous controller in the asynchronous circuit
  • the second pulse signal click2 is determined as the second clock signal clk2.
  • the processor may then determine a first clock propagation period of the first clock signal clk1 and a second clock propagation period of the second clock signal clk2, wherein the first clock propagation period represents receipt of the first input from the first asynchronous controller
  • the time period from requesting In_Req to the first asynchronous controller to generate the first pulse signal click1 and the second clock propagation time period means receiving the first input request In_Req from the first asynchronous controller to the second asynchronous controller to generate the second pulse signal click2 time period.
  • the processor may determine a first data propagation time period td1 between the first sequential logic device 52 and the second sequential logic device 56 .
  • the first sequential logic device 52 is coupled to the first asynchronous controller and operates based on the first pulse signal
  • the second sequential logic device 54 is coupled to the second asynchronous controller and operates based on the second pulse signal.
  • the first data propagation time period td1 from the first sequential logic device 52 to the second sequential logic device 56 is represented by a dotted line 55 .
  • the processor may generate a delay report.
  • the delay report can be automatically displayed on the display screen during the asynchronous circuit design process or displayed on the display screen in response to user instructions or input. Alternatively, the delay may not be displayed, but sent to other electronic devices in a wired or wireless manner for analysis.
  • the delay report may include various information related to the first data propagation time period and the first clock propagation difference.
  • the delay report may include a first data propagation time value representing the first data propagation time period td1, a first clock propagation difference ⁇ tc, a phase value representing the first data propagation time period td1 and the first clock propagation difference ⁇ tc
  • the first delay value of the subtraction result, the comparison result of the first data propagation time period td1 and the first clock propagation difference ⁇ tc, the first clock propagation time value representing the first clock propagation time period, or the second clock propagation time The second clock propagation time value for the segment, and so on.
  • the delay report may include any relevant information for determining whether the data signal is earlier than the clock signal. This disclosure is not limited in this regard.
  • the processor may determine a delay setting between the first asynchronous controller and the second asynchronous controller. For example, the processor may determine latency settings based on various information in the latency report. To ensure correct timing, the data signal needs to arrive at the device in timing before the pulse signal. For example, at the second sequential logic device, the signal of the data path needs to arrive before the pulse signal click2.
  • the processor determines through the EDA tool that the first data propagation time period td1 is not greater than the first clock propagation difference ⁇ tc, for example, not greater than 4ns, it indicates that the timing of the circuit in Figure 5 is correct and the first asynchronous The current delay setting between the controller and the second asynchronous controller, i.e. no additional delay circuit needs to be added. If the processor determines through the EDA tool that the first data propagation time period td1 is greater than the first clock propagation difference ⁇ tc, for example, greater than 4 ns, it indicates that the timing of the circuit in Figure 5 is wrong, between the first asynchronous controller and the second Additional delay circuits need to be added between asynchronous controllers.
  • the delay of the added delay circuit is not smaller than the difference between the first data propagation time period td1 and the first clock propagation difference ⁇ tc.
  • an appropriate delay circuit can be selected based on the difference between the first data propagation time period td1 and the first clock propagation difference ⁇ tc.
  • a unit delay circuit having a unit delay period may be selected and inserted between the first asynchronous controller and the second asynchronous controller, and the above process is repeated to determine the first data propagation time Whether segment td1 is not greater than the modified first clock propagation difference ⁇ tc. If not, it indicates that the modified asynchronous circuit has met the timing requirements after inserting the delay circuit.
  • the circuit design of the functional circuit 54 can also be optimized to ensure that the first data propagation time period td1 is not greater than the first clock propagation difference ⁇ tc.
  • FIG. 6 shows a schematic block diagram of clock signal propagation in a sequential circuit 600 according to some embodiments of the present disclosure.
  • the processor configures the first asynchronous controller 62 to define a source clock named clk1.
  • the period of the source clock is 30 ns
  • the waveform shape is rising at 0 ns and falling at 2 ns
  • the defined point is the signal line on which the first asynchronous controller generates the click pulse.
  • the processor sets the second asynchronous controller 64, defines a sub-clock named clk2, and its clock source is the upper-level clock, that is, the clock terminal of the phase register of the first asynchronous controller 62, and the offset is the upper-level clock
  • the clock is shifted backward by 0.01 ns, and the defined point is the signal line where the second asynchronous controller 64 generates the click pulse.
  • the processor sets the third asynchronous controller 66 to define a sub-clock called CLK3, whose clock source is the clock terminal of the phase register of the second asynchronous controller 64, and whose offset is backward from the previous clock Moved by 0.01 ns, the defined point is the signal line where the third asynchronous controller 66 generates the click pulse.
  • the processor can declare it as a sub-clock generated from the n-1th clock.
  • FIG. 7 shows a schematic block diagram of clock signal propagation in a non-sequential asynchronous circuit 700 according to some embodiments of the present disclosure.
  • the non-sequential asynchronous circuit 700 includes, for example, an Mth asynchronous controller 72 , an M+1th asynchronous controller 74 and an Nth asynchronous controller 76 , where M represents an integer greater than 0, and N represents an integer greater than M.
  • M represents an integer greater than
  • N represents an integer greater than M.
  • the sequential logic device coupled with the asynchronous controller is not shown in FIG.
  • the non-sequential asynchronous circuit 700 includes a sequential logic device corresponding to the asynchronous controller.
  • the Mth asynchronous controller 72 may receive a request signal from an upstream device, and the M+1th asynchronous controller 74 may receive a request signal from the Mth asynchronous controller 72 .
  • Operations of the Mth asynchronous controller 72 and the M+1th asynchronous controller 74 may be similar to those of the first asynchronous controller 62 and the second asynchronous controller 64 in FIG. 6 , and will not be repeated here.
  • one or more asynchronous controllers may be cascaded between the Mth asynchronous controller 72 and the Nth asynchronous controller 76, for example, the M+1th asynchronous controller.
  • the Nth asynchronous controller 76 is not cascaded to downstream devices, but is coupled to the Mth asynchronous controller 72 .
  • the output of the pulse signal of the Mth asynchronous controller 72 also depends on the request signal of the Nth asynchronous controller. Therefore, the circuit in Fig. 7 constitutes a non-sequential asynchronous circuit.
  • the processor determines the Nth pulse signal generated by the Nth asynchronous controller of the asynchronous circuit as the Nth clock signal, wherein the first asynchronous controller is coupled to the Nth asynchronous controller in stages, and the first asynchronous controller Any two adjacent asynchronous controllers from the Nth asynchronous controller to the Nth asynchronous controller are offset from each other by a first predetermined amount of time, the output of the Nth asynchronous controller is coupled to the input of the Mth asynchronous controller, where N means greater than M an integer of .
  • the processor determines the timing period P, where P represents the difference between N and M.
  • the register corresponding to the Nth asynchronous controller in the pipeline needs to send data to the register corresponding to the Mth asynchronous controller, which is a non-sequential data transmission.
  • a correct settling time check should be done between the Nth pulse of the Mth asynchronous controller 72 and the Mth pulse of the Nth asynchronous controller 76 .
  • the setup time check will check the first pulse of the Mth asynchronous controller 72 and the first pulse of the Nth asynchronous controller 76 , resulting in timing analysis errors.
  • the processor sets non-sequential data transmission constraints as multi-cycle timing analysis in the EDA timing analysis, so as to ensure the correctness of the timing analysis.
  • the number of cycles of the timing cycle is jointly determined by the sending phase and the receiving phase.
  • the timing cycle P is N-M.
  • the processor determines the delay setting between the Nth asynchronous controller and the Mth asynchronous controller based on the timing cycle P.
  • a delay circuit may be added between the Nth asynchronous controller and the Mth asynchronous controller.
  • the adding method is similar to that described above with respect to FIG. 6 , and will not be repeated here. Following this principle, timing constraints can be imposed on all non-sequentially transmitted data paths to ensure their correctness.
  • the processor can set the Mth asynchronous controller, define a source clock name as clkm, the cycle is 30ns, the waveform shape is 0ns rising, 2ns falling, the definition point is that the Mth asynchronous controller generates click Pulse signal line.
  • the processor sets the M+1th asynchronous controller, defines a sub-clock named clkm+1, and its clock source is the upper-level clock, that is, the clock terminal of the phase register of the Mth asynchronous controller, and the offset is the upper
  • the primary clock moves backward by 0.01 ns, and the defined point is the signal line where the M+1th asynchronous controller generates the click pulse.
  • the processor defines a sub-clock named clkn for the Nth asynchronous controller, its clock source is the clock terminal of the phase register in the N-1th asynchronous controller, and the offset is 0.01 backwards from the upper-level clock ns, the definition point is the signal line where the Nth asynchronous controller generates the click pulse.
  • the processor sets a multi-cycle timing check, and the clock check from clkn to clkm is set to N-M cycles, and the rule is that the number of cycles of the multi-cycle timing analysis is given by
  • the sending phase and the receiving phase are jointly determined. When the sending phase is N and the receiving phase is M, the number of multi-cycle timing analysis is N-M.
  • conditional selection control multiplexer Mux
  • demultiplexer DEMUX
  • conditional selection control multiplexer Mux
  • Demultiplexer DEMUX
  • the local pulse click can be triggered by any input req signal, and the delays of these different inputs may be different, resulting in the timing of click pulse generation is not fixed of.
  • multiple clocks can be defined on the same port, and the clocks defined later will not overwrite the existing clocks, and then multiple clocks are one-to-one corresponding to different inputs, according to different The input delay determines the phase relationship between the corresponding sub-clock and the source clock, thereby covering all input timing relationships.
  • the timing analysis of the conditional selection controller can be performed.
  • FIG. 8 shows a schematic block diagram of clock signal propagation of a condition selection circuit 800 according to some embodiments of the present disclosure.
  • the condition selection circuit 800 includes, for example, a first asynchronous controller 82 , a second asynchronous controller 84 and a third asynchronous controller 86 .
  • the sequential logic device coupled with the asynchronous controller is not shown in FIG. 8 , but it can be understood that the condition selection circuit 800 includes a sequential logic device corresponding to the asynchronous controller.
  • the first asynchronous controller 82 can receive request signals from upstream devices, and both the second asynchronous controller 84 and the third asynchronous controller 86 can receive request signals from the first asynchronous controller 82 .
  • the processor sets the first asynchronous controller 82, defines a source clock name as clk1, the cycle is 30ns, the waveform shape is 0ns rising, 2ns falling, the definition point is generated by the first asynchronous controller 82 The signal line of the click pulse.
  • the processor sets the second asynchronous controller 84, defines a sub-clock called clk2, and its clock source is the upper-level clock, that is, the clock terminal of the phase register in the first asynchronous controller 82, and the offset is the last The stage clock is shifted backward by 0.01 ns, and the defined point is the signal line where the second asynchronous controller 84 generates the click pulse.
  • the processor defines a sub-clock named clk3 for the third asynchronous controller 86, the clock source of which is the clock terminal of the phase register in the first asynchronous controller 82, and the offset is 0.01 backward shifted by the upper-level clock ns, the defined point is the signal line on which the third asynchronous controller 86 generates the click pulse.
  • the third asynchronous controller 86 defines a second sub-clock called clk4 instead of covering clk3, and its clock source is the clock terminal of the phase register in the second asynchronous controller 84, and the offset is 0.01 backwards from the previous clock ns, and the definition point is consistent with clk3.
  • the clock signals clk3 and clk4 are set as clock groups that physically do not exist at the same time, interrupting the timing analysis between the two clocks.
  • the timing of the conditionally selected asynchronous circuit can also be analyzed.
  • the processor may determine a delay setting between the first asynchronous controller 82 and the second asynchronous controller 84 or the third asynchronous controller 86 . For example, whether a delay circuit needs to be inserted between the first asynchronous controller 82 and the second asynchronous controller 84 or the third asynchronous controller 86 .
  • the way of inserting the delay circuit is similar to that described above with respect to FIG. 5 and FIG. 6 , and will not be repeated here.
  • the third asynchronous controller 86 it is not only coupled to the second asynchronous controller 84 but also coupled to the first asynchronous controller 82 .
  • the different pulse signals corresponding to the requests from the first asynchronous controller 82 and the second asynchronous controller 84 can be determined as different clock signals, and each clock signal is offset relative to the upper stage Shift by a predetermined amount of time. Since two pulses or clock signals do not exist at the same time in physical implementation, different clock signals can be assigned to different clock signal groups. The processor then calculates the clock signal propagation delay for each group separately in the different groups and analyzes the existing relationship of the pulse signal to the data signal as described above to determine the delay setting between the asynchronous controllers. Thus, correct timing analysis can be performed on conditionally selected asynchronous circuits.
  • FIG. 9 shows a schematic circuit diagram of an asynchronous controller 900 according to other embodiments of the present disclosure.
  • the asynchronous controller 900 can be applied to a conditional asynchronous controller that regulates single-input multiple-output in an asynchronous circuit.
  • the asynchronous controller 900 has a first XOR gate 91, a second XOR gate 96, a first XOR gate 92, a second XOR gate 93, a third XOR gate 99, an AND gate 94, A first phase register 95 , a second phase register 97 and a third phase register 98 .
  • the first XOR gate 91 , the first XOR gate 92 , the second XOR gate 93 and the AND gate 94 are configured to generate local pulse signals.
  • the pulse signal will drive the phase registers 95, 97, 98 and sequential logic devices for buffering data and starting the next handshake protocol.
  • the upstream device When the upstream device needs to send valid data, it will flip the InA_req signal once.
  • the input request signal InA_req and the input acknowledgment signal InA_ack are subjected to an exclusive OR operation at the first exclusive OR gate 91 to generate a high level.
  • the first downstream device (such as the second asynchronous controller 26 ) receives the valid data sent by the asynchronous controller 900 , it will invert the output acknowledgment signal OutB_ack.
  • This signal is NORed with the output request signal OutB_req at the first NOR gate 92 to obtain a high level.
  • the second downstream device receives valid data sent by the asynchronous controller 900 , it will toggle the output acknowledgment signal OutC_ack.
  • This signal is NORed with the output request signal OutC_req at the first NOR gate 92 to obtain a high level.
  • the AND gate 97 will generate a high click signal as a sequential logic device
  • the clock signal used to capture and store data.
  • the click signal will flip the first phase register 95 to change the value of the input acknowledgment signal InA_ack.
  • the click signal will change the output of the phase register 97 or 98 to change the value of the output request signal OutB_req or OutC_req, thereby completing a handshake protocol.
  • this handshake protocol is two-phase, that is, each flip of the input confirmation signal In_Req represents the arrival of a valid data, rather than a high level.
  • the select signal sel may reach the asynchronous controller 900 before the data signal reaches the sequential logic gates.
  • Fig. 10 shows a schematic circuit diagram of an asynchronous controller 1000 according to other embodiments of the present disclosure.
  • the asynchronous controller 1000 can be applied to a conditional asynchronous controller that regulates multiple inputs and single outputs in an asynchronous circuit.
  • the asynchronous controller 1000 has a first exclusive OR gate 101, a second exclusive OR gate 102, a first exclusive OR gate 103, a second AND gate 104, a second AND gate 105, an OR gate 106, a first Phase register 107 , third XOR gate 108 , second phase register 109 , second XOR gate 110 and third phase register 111 .
  • the first XOR gate 101 , the second XOR gate 102 , the first XOR gate 103 , the second AND gate 104 , the second AND gate 105 and the OR gate 106 are configured to generate local pulse signals.
  • the pulse signal will drive the phase registers 107, 109, 111 and sequential logic devices for buffering data and starting the next handshake protocol.
  • the upstream device When the upstream device needs to send valid data, it will flip the InA_req or InB_req signal once.
  • the input request signal InA_req or InB_req and the input acknowledgment signal InA_ack or InB_ack are subjected to an exclusive OR operation at the first exclusive OR gate 101 or the second exclusive OR gate 102 to generate a high level.
  • a downstream device When a downstream device (such as the second asynchronous controller 26 ) receives valid data sent by the asynchronous controller 1000 , it will reverse the output acknowledgment signal OutC_ack. This signal is NORed with the output request signal OutC_req at the first NOR gate 103 to obtain a high level. Based on any high output level of the first AND gate 104 or the second AND gate 105 , the OR gate 107 will generate a pulled high click signal as a clock signal of the sequential logic device for capturing and storing data. The click signal will flip the third phase register 111 to change the value of the input acknowledgment signal InA_ack.
  • the click signal will flip the phase register 107 or 109 to change the value of the input acknowledgment signal InA_ack or InB_ack, thereby completing a handshake protocol.
  • the select signal sel may reach the asynchronous controller 1000 before the data signal reaches the sequential logic gates.
  • the processor may synthesize the asynchronous circuit. Because there is a loop in the asynchronous controller, the synthesized circuit may be different from the expected one, affecting the function of the asynchronous circuit. In order to prevent the synthesized circuit from being different than expected and from affecting the function of the asynchronous circuit, the processor may set the asynchronous circuit not to be optimized before the synthesis process, so as to maintain the structure of the asynchronous circuit during synthesis. In one embodiment, when an asynchronous circuit is synthesized using an EDA tool, the asynchronous circuit may be synthesized and implemented using a conventional EDA tool. This process can be basically the same as the integrated synchronous circuit, or it can be mixed with the synchronous circuit.
  • the processor can also perform timing analysis on the asynchronous circuit under multiple process corners. Affected by PVT, the same chip has different delays under different operating conditions, which is very important for the delay matching process of asynchronous circuits. Under the constraint of propagation timing, the static timing analysis of the present disclosure will analyze the circuit function for the timing models under different process corners, that is, multi-angle and multi-mode analysis, to ensure that the constrained circuit can meet the timing requirements under any conditions.
  • the processor can also selectively widen the pulse width.
  • Propagation timing constraints regard the handshake process of asynchronous circuits as the clock propagation process. There are combinational logic and registers on this path, so that static timing analysis cannot obtain the pulse width of the actually generated local pulse click. Therefore, the pulse width checking module also performs timing simulation on the asynchronous circuit after other timing constraints are satisfied, to determine whether the click pulse width of each stage actually meets the minimum pulse width requirement of the register.
  • the width of the local pulse is determined by the delay of the combined logic that generates the pulse, and the structure of the click controller ensures that the delay of the combined logic is generally greater than the minimum pulse width of the register, and no special processing is required.
  • the processor can add a buffer unit on the register output pin in the click unit. The expanded width of the buffer unit can be selected according to actual needs, which is not limited in the present disclosure.
  • FIG. 11 shows a schematic flowchart of a method 1100 according to some embodiments of the present disclosure. It can be understood that the various aspects described above with respect to FIGS. 1-10 can be selectively applied to the method 1100 .
  • a second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is offset by a first predetermined amount of time relative to the first clock signal.
  • a first clock propagation difference corresponding to the first clock signal and the second clock signal is generated.
  • generating the first clock propagation difference includes determining a first clock propagation time period of the first clock signal and a second clock propagation time period of the second clock signal.
  • the first clock propagation time period represents the time period from the first asynchronous controller receiving the first input request to the first asynchronous controller generating the first pulse signal
  • the second clock propagation time period represents the time period from the first asynchronous controller receiving the first A time period from an input request to the second asynchronous controller generating the second pulse signal.
  • a first clock propagation difference between the first clock propagation time period and the second clock propagation time period is determined.
  • a first data propagation time period between the first sequential logic gate and the second sequential logic gate is determined.
  • the first sequential logic gate is coupled to the first asynchronous controller and operates based on the first pulse signal
  • the second sequential logic gate is coupled to the second asynchronous controller and operates based on the second pulse signal.
  • the method further includes determining a delay setting between the first asynchronous controller and the second asynchronous controller based on the first clock propagation difference and the first data propagation time period.
  • FIG. 12 shows a schematic block diagram of an electronic device 1200 according to some embodiments of the present disclosure.
  • Electronic device 1200 may be used in the design of asynchronous circuits.
  • the electronic device 1200 includes a clock signal determination unit 1202 , a clock propagation difference determination generation unit 1204 , a data propagation time period determination unit 1206 , and a delay report generation unit 1208 .
  • the clock signal determination unit 1202 is used to determine the first pulse signal generated by the first asynchronous controller in the asynchronous circuit as the first clock signal; and determine the second pulse signal generated by the second asynchronous controller in the asynchronous circuit as the first clock signal. Two clock signals.
  • a second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is offset by a first predetermined amount of time relative to the first clock signal.
  • the clock propagation difference determining generating unit 1204 is configured to generate a first clock propagation difference corresponding to the first clock signal and the second clock signal.
  • the data propagation time period determining unit 1206 is configured to determine a first data propagation time period between the first sequential logic device and the second sequential logic device, the first sequential logic device is coupled to the first asynchronous controller and based on the The second sequential logic device is coupled to the second asynchronous controller and operates based on the second pulse signal.
  • the delay report generating unit 1208 is configured to generate a delay report related to the first data propagation time period and the first clock propagation difference.
  • FIG. 13 shows a block diagram of an example device that may be used to implement some embodiments of the present disclosure.
  • the device 1300 may be used to implement the electronic device 1200 .
  • device 1300 includes computing unit 1301, which may be loaded into RAM and/or ROM according to computer program instructions stored in random access memory (RAM) and/or read only memory (ROM) 1302 or from storage unit 1307 1302 to perform various appropriate actions and processes.
  • RAM random access memory
  • ROM read only memory
  • FIG. 13 shows a block diagram of an example device that may be used to implement some embodiments of the present disclosure.
  • the device 1300 may be used to implement the electronic device 1200 .
  • device 1300 includes computing unit 1301, which may be loaded into RAM and/or ROM according to computer program instructions stored in random access memory (RAM) and/or read only memory (ROM) 1302 or from storage unit 1307 1302 to perform various appropriate actions and processes.
  • RAM random access memory
  • ROM read only memory
  • storage unit 1307 1302 stores various programs and data necessary for the
  • the I/O interface 1304 includes: an input unit 1305, such as a keyboard, a mouse, etc.; an output unit 1306, such as various types of displays, speakers, etc.; a storage unit 1307, such as a magnetic disk, an optical disk, etc. ; and a communication unit 1308, such as a network card, a modem, a wireless communication transceiver, and the like.
  • the communication unit 1308 allows the device 1300 to exchange information/data with other devices over a computer network such as the Internet and/or various telecommunication networks.
  • the computing unit 1301 may be various general-purpose and/or special-purpose processing components having processing and computing capabilities. Some examples of computing units 1301 include, but are not limited to, central processing units (CPUs), graphics processing units (GPUs), various dedicated artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, digital signal processing processor (DSP), and any suitable processor, controller, microcontroller, etc.
  • the calculation unit 1301 executes various methods and processes described above, such as the method 1100 .
  • method 1100 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as storage unit 1307 .
  • part or all of the computer program may be loaded and/or installed onto device 1300 via RAM and/or ROM and/or communication unit 1308 .
  • a computer program When a computer program is loaded into RAM and/or ROM and executed by computing unit 1301, one or more steps of method 1100 described above may be performed.
  • the computing unit 1301 may be configured to execute the method 1100 in any other suitable manner (for example, by means of firmware).
  • Program codes for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special purpose computer, or other programmable data processing devices, so that the program codes, when executed by the processor or controller, make the functions/functions specified in the flow diagrams and/or block diagrams Action is implemented.
  • the program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
  • a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
  • a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
  • a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing.
  • machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read only memory
  • EPROM or flash memory erasable programmable read only memory
  • CD-ROM compact disk read only memory
  • magnetic storage or any suitable combination of the foregoing.

Abstract

A method for designing an asynchronous circuit. The method comprises: respectively determining, as a plurality of clock signals, a plurality of pulse signals that are generated by a plurality of asynchronous controllers in an asynchronous circuit, wherein the plurality of clock signals are derived from the same initial clock signal, and there is only phase shift between the clock signals. The method further comprises: determining the propagation time difference between any two of the plurality of clock signals, and calculating a data transmission time period between corresponding sequential logic devices. The method further comprises: comparing the propagation time difference with the data transmission time period, so as to determine whether a data signal arrives at sequential logic gates ahead of the clock signals, and according to the comparison result, setting a corresponding delay between the two asynchronous controllers. By means of the above method, the timing of a combinational logic portion and a control portion of the asynchronous circuit may be simultaneously analyzed, such that relative timing constraints of the asynchronous circuit can be converted into static timing analysis that can be identified by a traditional EDA tool. On this basis, the EDA tool may be used to perform circuit optimization and implement timing constraints on the asynchronous circuit, so as to effectively improve the efficiency of designing an asynchronous single-rail circuit. Therefore, the method is applicable to large-scale asynchronous circuit design.

Description

用于设计异步电路的方法和电子设备Method and electronic device for designing asynchronous circuits 技术领域technical field
本公开涉及电路领域,更具体而言涉及异步电路的设计方法和电子设备。The present disclosure relates to the field of circuits, and more particularly relates to a design method of an asynchronous circuit and an electronic device.
背景技术Background technique
诸如物联网(internet of things,IoT)和神经网络计算之类的各种应用场景都对芯片的功耗有很高的要求。异步电路具有低功耗、鲁棒性强等特性。因此,异步电路设计适合用于这些这些应用的芯片设计中。Various application scenarios such as Internet of Things (IoT) and neural network computing have high requirements on the power consumption of chips. Asynchronous circuits have the characteristics of low power consumption and strong robustness. Therefore, asynchronous circuit designs are suitable for use in chip designs for these applications.
然而异步电路产业化中遇到最大的阻碍是缺乏电子设计自动化(electronic design automation,EDA)工具的支持,传统的EDA工具基于全局时钟来对芯片进行时序分析和优化,而异步电路遵循的相对时序约束(relative timing constraints,RTC)目前暂时无法很好的被EDA工具所识别。异步电路可以分为单轨电路和双轨电路,其中双轨电路数据本身可代表其有效性。双轨电路对时序要求低、鲁棒性更强,但面积是相应同步电路的两倍以上。单轨电路有和同步电路相似的数据通路,面积和同步电路相近,适合迁移到同步EDA工具上进行设计。单轨电路的关键是需要进行数据和握手协议的延迟匹配,对时序要求比双轨更高。由于面积上的优势,现有芯片更多的选择单轨电路来进行异步设计。However, the biggest obstacle encountered in the industrialization of asynchronous circuits is the lack of support from electronic design automation (EDA) tools. Traditional EDA tools analyze and optimize the timing of chips based on the global clock, while the relative timing of asynchronous circuits follows Constraints (relative timing constraints, RTC) are currently not well recognized by EDA tools. Asynchronous circuits can be divided into single-rail circuits and dual-rail circuits, where the data of the dual-rail circuit itself can represent its validity. Dual-rail circuits have lower timing requirements and are more robust, but have more than twice the area of corresponding synchronous circuits. The monorail circuit has a data path similar to that of a synchronous circuit, and its area is similar to that of a synchronous circuit. It is suitable for migrating to a synchronous EDA tool for design. The key to single-rail circuits is the delay matching of data and handshake protocols, which has higher timing requirements than dual-rail circuits. Due to the advantages of area, more existing chips choose single-rail circuits for asynchronous design.
目前主流的做法是将异步单轨电路的RTC转化成可被EDA工具识别的静态时序分析(static timing analysis,STA)。在此基础上,研究者们尝试了将异步电路的组合逻辑部分和控制部分分开进行约束的方法,保证控制部分的延迟大于相应的组合逻辑部分。然而,分开约束的方法没有考虑异步电路的整体性,难于在大规模集成电路中使用。The current mainstream approach is to convert the RTC of an asynchronous monorail circuit into a static timing analysis (STA) that can be recognized by EDA tools. On this basis, the researchers tried to separate the combinational logic part and the control part of the asynchronous circuit to make sure that the delay of the control part is greater than that of the corresponding combinational logic part. However, the method of separating constraints does not consider the integrity of asynchronous circuits, so it is difficult to use in large-scale integrated circuits.
发明内容Contents of the invention
鉴于上述问题,本公开的实施例旨在提供一种用于设计异步电路的方法和电子设备。In view of the above problems, embodiments of the present disclosure aim to provide a method and an electronic device for designing an asynchronous circuit.
根据本公开的第一方面,提供一种用于设计异步电路的方法。该方法包括将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号;以及将异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号。第二异步控制器与第一异步控制器耦合,并且第二时钟信号相对于第一时钟信号偏移第一预定时间量。该方法还包括生成与第一时钟信号和第二时钟信号对应的第一时钟传播差值,以及确定第一时序逻辑门和第二时序逻辑门之间的第一数据传播时间段。第一时序逻辑门耦合至第一异步控制器并且基于第一脉冲信号进行操作,第二时序逻辑门耦合至第二异步控制器并且基于第二脉冲信号进行操作。该方法进一步包括生成与第一数据传播时间段和第一时钟传播差值相关的延迟报告。通过将各个异步控制器的用于控制时序逻辑器件操作的脉冲信号表示为源自同一个源时钟但是具有不同相位和不同传输路径的时钟信号,常规EDA设计工具因此将其视为同步时钟并且计算各个时钟信号的时序路径。此外,常规EDA工具可以对异步电路的组合逻辑部分的数据传播时序进行分析。在此基础之上,通过比较控制部分和组合逻辑部分的传播延迟,可以相应地确定异步电路的延迟设置并且确保异步电路的时序正确性。由于通过上述的方式统一地分析了异步电路的组合逻辑部分和控制部分的时序,因此可以将异步电路的相对时序约束转换为能被传统EDA工具识别的静态时序分析。在此基础之上,可以利用EDA工具对异步电路进行电路优 化和时序约束,来有效提高设计异步单轨电路的效率。因此,该方法可以适用于大规模的异步电路设计。According to a first aspect of the present disclosure, a method for designing an asynchronous circuit is provided. The method includes determining a first pulse signal generated by a first asynchronous controller in the asynchronous circuit as a first clock signal; and determining a second pulse signal generated by a second asynchronous controller in the asynchronous circuit as a second clock signal. A second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is offset by a first predetermined amount of time relative to the first clock signal. The method also includes generating a first clock propagation difference corresponding to the first clock signal and the second clock signal, and determining a first data propagation time period between the first sequential logic gate and the second sequential logic gate. The first sequential logic gate is coupled to the first asynchronous controller and operates based on the first pulse signal, and the second sequential logic gate is coupled to the second asynchronous controller and operates based on the second pulse signal. The method further includes generating a delay report related to the first data propagation time period and the first clock propagation difference. By representing the pulse signals of various asynchronous controllers used to control the operation of sequential logic devices as clock signals derived from the same source clock but with different phases and different transmission paths, conventional EDA design tools therefore treat them as synchronous clocks and calculate Timing paths for individual clock signals. In addition, conventional EDA tools can analyze the timing of data propagation in the combinational logic portion of an asynchronous circuit. On this basis, by comparing the propagation delay of the control part and the combinational logic part, the delay setting of the asynchronous circuit can be determined accordingly and the timing correctness of the asynchronous circuit can be ensured. Since the timing of the combinational logic part and the control part of the asynchronous circuit is uniformly analyzed through the above method, the relative timing constraints of the asynchronous circuit can be converted into a static timing analysis that can be recognized by traditional EDA tools. On this basis, EDA tools can be used to optimize the circuit and schedule constraints on the asynchronous circuit, so as to effectively improve the efficiency of designing the asynchronous single-rail circuit. Therefore, the method can be applied to large-scale asynchronous circuit design.
在一种可能的实现方式中,生成与第一时钟信号和第二时钟信号对应的第一时钟传播差值包括:确定第一时钟信号的第一时钟传播时间段和第二时钟信号的第二时钟传播时间段,第一时钟传播时间段表示从第一异步控制器接收到第一输入请求到第一异步控制器生成第一脉冲信号的时间段,第二时钟传播时间段表示从第一异步控制器接收到第一输入请求到第二异步控制器生成第二脉冲信号的时间段;以及确定第一时钟传播时间段和第二时钟传播时间段之间的第一时钟传播差值。In a possible implementation manner, generating the first clock propagation difference corresponding to the first clock signal and the second clock signal includes: determining the first clock propagation time period of the first clock signal and the second clock propagation time period of the second clock signal Clock propagation time period, the first clock propagation time period represents the time period from the first asynchronous controller receiving the first input request to the first asynchronous controller generating the first pulse signal, the second clock propagation time period represents the period from the first asynchronous a time period from when the controller receives the first input request to when the second asynchronous controller generates the second pulse signal; and determining a first clock propagation difference between the first clock propagation time period and the second clock propagation time period.
在一种可能的实现方式中,生成与第一数据传播时间段和第一时钟传播差值相关的延迟报告包括:生成表示第一数据传播时间段的第一数据传播时间值;将第一数据传播时间值和第一时钟传播差值相减以确定第一延迟值;以及生成包括第一延迟值的延迟报告。In a possible implementation manner, generating a delay report related to the first data propagation time period and the first clock propagation difference includes: generating a first data propagation time value representing the first data propagation time period; subtracting the propagation time value and the first clock propagation difference value to determine a first delay value; and generating a delay report including the first delay value.
在一种可能的实现方式中,生成与第一数据传播时间段和第一时钟传播差值相关的延迟报告包括:生成表示第一数据传播时间段的第一数据传播时间值;将第一数据传播时间值和第一时钟传播差值进行比较以生成比较结果;以及生成包括比较结果的延迟报告。In a possible implementation manner, generating a delay report related to the first data propagation time period and the first clock propagation difference includes: generating a first data propagation time value representing the first data propagation time period; The propagation time value is compared to the first clock propagation difference value to generate a comparison result; and a delay report including the comparison result is generated.
在一种可能的实现方式中,该方法还包括基于第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置。In a possible implementation manner, the method further includes determining a delay setting between the first asynchronous controller and the second asynchronous controller based on the first clock propagation difference and the first data propagation time period.
在一种可能的实现方式中,基于第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置包括响应于第一数据传播时间段大于第一时钟传播差值,在第一异步控制器和第二异步控制器之间设置延迟电路;或响应于第一数据传播时间段不大于第一时钟传播差值,在第一异步控制器和第二异步控制器之间不设置延迟电路。通过在异步控制器之间设置延迟电路,可以确保数据信号先于脉冲信号到达时序逻辑器件,以实现正确的时序。In a possible implementation manner, based on the first clock propagation difference and the first data propagation time period, determining the delay setting between the first asynchronous controller and the second asynchronous controller includes responding to the first data propagation time period is greater than the first clock propagation difference, a delay circuit is set between the first asynchronous controller and the second asynchronous controller; or in response to the first data propagation time period being not greater than the first clock propagation difference, the There is no delay circuit between the controller and the second asynchronous controller. By setting a delay circuit between the asynchronous controllers, it can be ensured that the data signal arrives at the sequential logic device before the pulse signal to achieve the correct timing.
在一种可能的实现方式中,可以优化时序逻辑器件之间的组合逻辑器件的电路设计,以确保数据信号先于脉冲信号到达下级的时序逻辑器件。In a possible implementation manner, the circuit design of the combinational logic device between the sequential logic devices may be optimized, so as to ensure that the data signal reaches the lower sequential logic device before the pulse signal.
在一种可能的实现方式中,响应于第一数据传播时间段大于第一时钟传播差值在第一异步控制器和第二异步控制器之间设置延迟电路包括确定第一时钟传播差值和第一数据传播差值之间的第一路径差值;确定延迟电路的单位延迟时间段;基于第一路径差值和单位延迟时间段,设置一个或多个串联的延迟电路,使得一个或多个串联的延迟电路的总延迟时间段不低于第一路径差值。通过在异步控制器之前设置一个或多个串联的单位延迟电路,可以以简单的方式确保确保数据信号先于脉冲信号到达时序逻辑器件,以确保实现的时序。此外,还可以通过一次添加一个单位延迟电路,然后重复之前的判断过程。在不满足时序要求的时候,再次添加一个单位延迟电路,其与之前添加的单位延迟电路串联在两个异步控制器之间,并且重复之前的判断过程,直至满足时序要求。通过这种方式,可以由处理器自动完成延迟电路的设置,而无需人工介入。因此,可以简化异步电路的设计。In a possible implementation manner, setting the delay circuit between the first asynchronous controller and the second asynchronous controller in response to the first data propagation time period being greater than the first clock propagation difference includes determining the first clock propagation difference and The first path difference between the first data propagation differences; determine the unit delay period of the delay circuit; based on the first path difference and the unit delay period, set one or more delay circuits in series, so that one or more The total delay period of the delay circuits connected in series is not lower than the first path difference. By arranging one or more unit delay circuits in series before the asynchronous controller, it can be ensured in a simple manner that the data signal arrives at the sequential logic device before the pulse signal to ensure the realized timing. In addition, it is also possible to add one unit delay circuit at a time, and then repeat the previous judgment process. When the timing requirement is not met, a unit delay circuit is added again, which is connected in series with the previously added unit delay circuit between the two asynchronous controllers, and the previous judging process is repeated until the timing requirement is met. In this way, the setting of the delay circuit can be done automatically by the processor without human intervention. Therefore, the design of an asynchronous circuit can be simplified.
在一种可能的实现方式中,该方法还包括将异步电路的第M异步控制器生成的第M脉冲信号确定为第M时钟信号,M表示大于0的整数;将异步电路的第N异步控制器生成的第N脉冲信号确定为第N时钟信号,第一异步控制器至第N异步控制器逐级耦合,第一异步控制器至第N异步控制器中的任意两个相邻异步控制器彼此之间偏移第一预定时间量,第N异步控制器的输出耦合至第M异步控制器的输入,其中N表示大于M的整数;确定时序周期P,其中P表示N与M之间的差值;基于时序周期P,确定第N异步控制器和第M异 步控制器之间的延迟设置。通过使用多个周期来分析非顺序异步电路,可以对包括非顺序的流水线架构的异步电路也实现时序分析,从而扩展了本公开的应用范围。In a possible implementation, the method further includes determining the Mth pulse signal generated by the Mth asynchronous controller of the asynchronous circuit as the Mth clock signal, where M represents an integer greater than 0; The Nth pulse signal generated by the controller is determined as the Nth clock signal, the first asynchronous controller to the Nth asynchronous controller are coupled step by step, and any two adjacent asynchronous controllers from the first asynchronous controller to the Nth asynchronous controller Offset from each other by a first predetermined amount of time, the output of the Nth asynchronous controller is coupled to the input of the Mth asynchronous controller, where N represents an integer greater than M; and a timing period P is determined, where P represents a time period between N and M difference; based on the timing cycle P, determine the delay setting between the Nth asynchronous controller and the Mth asynchronous controller. By using multiple cycles to analyze non-sequential asynchronous circuits, timing analysis can also be implemented for asynchronous circuits including non-sequential pipeline architectures, thereby extending the scope of application of the present disclosure.
在一种可能的实现方式中,基于时序周期P,确定第N异步控制器和第M异步控制器之间的延迟设置包括确定第N时钟信号的第N时钟传播时间段,第N时钟传播时间段表示从第一异步控制器接收到第一输入请求到第N异步控制器生成第N脉冲信号的时间段;确定第M异步控制器在生成第M时钟信号之后的第P个时序周期中的时钟传播时间段;确定第N时钟传播时间段和第P个时序周期中的时钟传播时间段之间的第N时钟传播差值;确定第N时序逻辑门和第M时序逻辑门之间的第N数据传播时间段,第N时序逻辑门耦合至第N异步控制器并且基于第N脉冲信号进行操作,第M时序逻辑门耦合至第M异步控制器并且基于第M脉冲信号进行操作;以及基于第N时钟传播时间段和第N数据传播时间段,确定在第N异步控制器和第M异步控制器之间的延迟设置。通过使用多个周期来分析非顺序异步电路,可以对包括非顺序的流水线架构的异步电路也实现时序分析,从而扩展了本公开的应用范围。In a possible implementation, based on the timing cycle P, determining the delay setting between the Nth asynchronous controller and the Mth asynchronous controller includes determining the Nth clock propagation time period of the Nth clock signal, the Nth clock propagation time The segment represents the time period from the first asynchronous controller receiving the first input request to the Nth asynchronous controller generating the Nth pulse signal; determine the time period of the Mth asynchronous controller in the Pth timing cycle after the Mth clock signal is generated Clock propagation period; determine the Nth clock propagation difference between the Nth clock propagation period and the clock propagation period in the Pth timing cycle; determine the Nth clock propagation difference between the Nth sequential logic gate and the Mth sequential logic gate During the N data transmission period, the Nth sequential logic gate is coupled to the Nth asynchronous controller and operates based on the Nth pulse signal, the Mth sequential logic gate is coupled to the Mth asynchronous controller and operates based on the Mth pulse signal; and based on The Nth clock propagation time period and the Nth data propagation time period determine the delay setting between the Nth asynchronous controller and the Mth asynchronous controller. By using multiple cycles to analyze non-sequential asynchronous circuits, timing analysis can also be implemented for asynchronous circuits including non-sequential pipeline architectures, thereby extending the scope of application of the present disclosure.
在一种可能的实现方式中,该方法还包括在异步电路的综合期间维持异步电路的结构。通过在综合期间维持异步电路,可以确保异步电路的结构不会被EDA工具所优化。由于异步控制器存在环路,如果不维持的话,综合后的电路可能和预期不同,影响异步电路的功能。In one possible implementation, the method also includes maintaining the structure of the asynchronous circuit during synthesis of the asynchronous circuit. By maintaining the asynchronous circuit during synthesis, it is ensured that the structure of the asynchronous circuit is not optimized by the EDA tool. Because there is a loop in the asynchronous controller, if it is not maintained, the integrated circuit may be different from the expected one, which will affect the function of the asynchronous circuit.
在一种可能的实现方式中,基于第一时钟传播差值和第一数据传播时间段确定在第一异步控制器和第二异步控制器之间的延迟设置包括基于异步电路在不同工艺角下的第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置。受到工艺、电压和温度(process votalge and temperature,PVT)的影响,同一芯片在不同操作条件下的延时都不同,这对异步电路的延时匹配过程是很重要的。在传播时序约束下,静态时序分析会针对不同工艺角下的时序模型来分析电路功能,确保在任何条件下被约束的电路都能满足时序要求。In a possible implementation manner, determining the delay setting between the first asynchronous controller and the second asynchronous controller based on the first clock propagation difference and the first data propagation time period includes The first clock propagation difference and the first data propagation time period determine a delay setting between the first asynchronous controller and the second asynchronous controller. Affected by process voltage and temperature (process voltage and temperature, PVT), the same chip has different delays under different operating conditions, which is very important for the delay matching process of asynchronous circuits. Under propagation timing constraints, static timing analysis analyzes circuit functions for timing models at different process corners to ensure that the constrained circuits can meet timing requirements under any conditions.
在一种可能的实现方式中,该方法还包括确定第一脉冲信号的第一脉冲宽度和第二脉冲信号的第二脉冲宽度;以及响应于第一脉冲宽度或第二脉冲宽度低于脉冲宽度阈值,在第一异步控制器或第二异步控制器中相应地设置脉冲展宽电路以增宽第一脉冲信号或第二脉冲信号的宽度。传播时序约束将异步电路的握手过程视为时钟的传播过程,并且这个路径上有组合逻辑和寄存器的存在,因此使得静态时序分析无法得到实际产生的本地脉冲单激(click)信号的脉冲宽度。通过在满足其他时序约束后还对异步电路进行了实现后的时序仿真,可以确定实际上每一级的click脉冲宽度是否满足寄存器的最小脉冲宽度要求。如果需要展宽本地脉冲的宽度,则可以在异步控制器中的寄存器输出引脚上加入缓冲单元以进一步确保异步电路的时序正确性。In a possible implementation manner, the method further includes determining the first pulse width of the first pulse signal and the second pulse width of the second pulse signal; and responding to the first pulse width or the second pulse width being lower than the pulse width Threshold, the pulse stretching circuit is correspondingly set in the first asynchronous controller or the second asynchronous controller to widen the width of the first pulse signal or the second pulse signal. Propagation timing constraints treat the handshake process of asynchronous circuits as the clock propagation process, and there are combinational logic and registers on this path, so static timing analysis cannot obtain the pulse width of the actually generated local pulse single-shot (click) signal. After satisfying other timing constraints, the timing simulation of the asynchronous circuit after implementation can determine whether the click pulse width of each stage actually meets the minimum pulse width requirement of the register. If the width of the local pulse needs to be extended, a buffer unit can be added to the output pin of the register in the asynchronous controller to further ensure the timing correctness of the asynchronous circuit.
在一种可能的实现方式中,异步电路包括单轨异步电路;第一异步控制器为初始异步控制器;以及第一异步控制器和第二异步控制器均包括相位解耦控制器。In a possible implementation manner, the asynchronous circuit includes a single-rail asynchronous circuit; the first asynchronous controller is an initial asynchronous controller; and both the first asynchronous controller and the second asynchronous controller include a phase decoupling controller.
在一种可能的实现方式中,第二异步控制器还耦合至异步电路中的第四异步控制器。该方法进一步包括将第四异步控制器生成的第四脉冲信号确定为第四时钟信号;将第二异步控制器针对来自第四异步控制器的请求生成的第二脉冲信号确定为第五时钟信号,第五时钟信号相对于第四时钟信号偏移第二预定时间量;将第二时钟信号指派至第一时钟分组并且将第五时钟信号指派至第二时钟分组,第二时钟分组不同于第一时钟分组;确定第四时钟信号的第五时钟传播时间段和第五时钟信号的第五时钟传播时间段,第五时钟传播时间段表示从第 四异步控制器接收到第四输入请求到第四异步控制器生成第四脉冲信号的时间段,第五时钟传播时间段表示从第四异步控制器接收到第四输入请求到第二异步控制器生成第五脉冲信号的时间段;确定第四时钟传播时间段和第五时钟传播时间段之间的第四时钟传播差值;确定第四时序逻辑门和第五时序逻辑门之间的第四数据传播时间段,第四时序逻辑门耦合至第四异步控制器并且基于第四脉冲信号进行操作,第五时序逻辑门耦合至第二异步控制器并且基于第五脉冲信号进行操作;以及基于第四时钟传播差值和第四数据传播时间段,确定在第四异步控制器和第二异步控制器之间的延迟设置。在该实现方式中,在同一个端口上定义多个时钟,后定义的时钟并不会覆盖之前存在的时钟,并且将物理上不会同时存在的时钟分组以打断它们之间的时序分析,然后将多个时钟与不同的输入一一对应来约束电路,并且计算延迟。这样,可以对包括复用器和解复用器在内的条件选择异步电路也能实现正确的时序分析,并且根据时序分析结果进行相应延迟设置,从而扩展了本公开的应用范围。In a possible implementation manner, the second asynchronous controller is further coupled to a fourth asynchronous controller in the asynchronous circuit. The method further includes determining the fourth pulse signal generated by the fourth asynchronous controller as the fourth clock signal; determining the second pulse signal generated by the second asynchronous controller in response to the request from the fourth asynchronous controller as the fifth clock signal , the fifth clock signal is offset by a second predetermined amount of time relative to the fourth clock signal; the second clock signal is assigned to the first clock group and the fifth clock signal is assigned to the second clock group, the second clock group being different from the first clock group A clock grouping; determine the fifth clock propagation time period of the fourth clock signal and the fifth clock propagation time period of the fifth clock signal, the fifth clock propagation time period represents receiving the fourth input request from the fourth asynchronous controller to the first The time period during which the four asynchronous controllers generate the fourth pulse signal, the fifth clock propagation time period represents the time period from the fourth asynchronous controller receiving the fourth input request to the second asynchronous controller generating the fifth pulse signal; determine the fourth A fourth clock propagation difference between the clock propagation time period and the fifth clock propagation time period; determine the fourth data propagation time period between the fourth sequential logic gate and the fifth sequential logic gate, the fourth sequential logic gate is coupled to a fourth asynchronous controller and operating based on a fourth pulse signal, a fifth sequential logic gate coupled to the second asynchronous controller and operating based on a fifth pulse signal; and based on a fourth clock propagation difference and a fourth data propagation time period , to determine a delay setting between the fourth asynchronous controller and the second asynchronous controller. In this implementation, multiple clocks are defined on the same port, and the clocks defined later will not overwrite the existing clocks, and the clocks that do not physically exist at the same time are grouped to interrupt the timing analysis between them. The circuit is then constrained by one-to-one correspondence of multiple clocks with different inputs, and the delay is calculated. In this way, correct timing analysis can also be implemented for conditionally selected asynchronous circuits including multiplexers and demultiplexers, and corresponding delay settings can be performed according to the timing analysis results, thereby expanding the application range of the present disclosure.
在一种可能的实现方式中,该第一预定时间量小于脉冲信号的周期的第一比例,例如小于百分之一、千分之一或万分之一。通过将预定时间量设置为远小于脉冲信号的周期,可以防止多个脉冲信号彼此之间的干扰。In a possible implementation manner, the first predetermined amount of time is less than a first proportion of the period of the pulse signal, for example less than one hundredth, one thousandth or one ten thousandth. By setting the predetermined amount of time to be much shorter than the period of the pulse signal, it is possible to prevent a plurality of pulse signals from interfering with each other.
根据本公开的第二方面,提供一种计算机可读存储介质。计算机可读存储介质存储多个程序,多个程序被配置为一个或多个处理器执行,多个程序包括用于执行根据第一方面的方法的指令。According to a second aspect of the present disclosure, a computer readable storage medium is provided. The computer-readable storage medium stores a plurality of programs configured to be executed by one or more processors, the plurality of programs including instructions for performing the method according to the first aspect.
根据本公开的第三方面,提供一种计算机程序产品。该计算机程序产品包括多个程序,多个程序被配置为一个或多个处理器执行,多个程序包括用于执行根据第一方面的方法的指令。According to a third aspect of the present disclosure, a computer program product is provided. The computer program product comprises a plurality of programs configured for execution by one or more processors, the plurality of programs comprising instructions for performing the method according to the first aspect.
根据本公开的第四方面,提供一种电子设备,包括一个或多个处理器;包括计算机指令的存储器,计算机指令在由电子设备的一个或多个处理器执行时使得电子设备执行根据第一方面的方法。According to a fourth aspect of the present disclosure, there is provided an electronic device comprising one or more processors; a memory comprising computer instructions which, when executed by the one or more processors of the electronic device, cause the electronic device to perform aspects of the method.
根据本公开的第五方面,提供一种电子设备,包括时钟信号确定单元、时钟传播差值生成单元、数据传播时间段确定单元和延迟报告生成单元。时钟信号确定单元用于将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号;将异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号,第二异步控制器与第一异步控制器耦合,并且第二时钟信号相对于第一时钟信号偏移第一预定时间量。时钟传播差值生成单元用于生成与第一时钟信号和第二时钟信号对应的第一时钟传播差值。数据传播时间段确定单元用于确定第一时序逻辑器件和第二时序逻辑器件之间的第一数据传播时间段,第一时序逻辑器件耦合至第一异步控制器并且基于第一脉冲信号进行操作,第二时序逻辑器件耦合至第二异步控制器并且基于第二脉冲信号进行操作。延迟报告生成单元用于生成与第一数据传播时间段和第一时钟传播差值相关的延迟报告。According to a fifth aspect of the present disclosure, there is provided an electronic device including a clock signal determining unit, a clock propagation difference generating unit, a data propagation time period determining unit, and a delay report generating unit. The clock signal determination unit is used to determine the first pulse signal generated by the first asynchronous controller in the asynchronous circuit as the first clock signal; determine the second pulse signal generated by the second asynchronous controller in the asynchronous circuit as the second clock signal, the second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is offset by a first predetermined amount of time relative to the first clock signal. The clock propagation difference generating unit is configured to generate a first clock propagation difference corresponding to the first clock signal and the second clock signal. The data propagation time period determining unit is used to determine a first data propagation time period between the first sequential logic device and the second sequential logic device, the first sequential logic device is coupled to the first asynchronous controller and operates based on the first pulse signal , the second sequential logic device is coupled to the second asynchronous controller and operates based on the second pulse signal. The delay report generating unit is configured to generate a delay report related to the first data propagation time period and the first clock propagation difference.
通过将各个异步控制器的用于控制时序逻辑器件操作的脉冲信号表示为源自同一个源时钟但是具有不同相位和不同传输路径的时钟信号,常规EDA设计工具因此将其视为同步时钟并且计算各个时钟信号的时序路径。此外,常规EDA工具可以对异步电路的组合逻辑部分的数据传播时序进行分析。在此基础之上,通过比较控制部分和组合逻辑部分的传播延迟,可以相应地确定异步电路的延迟设置并且确保异步电路的时序正确性。由于通过上述的方式统一地分析了异步电路的组合逻辑部分和控制部分的时序,因此可以将异步电路的相对时序约束转换为能被传统EDA工具识别的静态时序分析。在此基础之上,可以利用EDA工具对异 步电路进行电路优化和时序约束,来有效提高设计异步单轨电路的效率。因此,该方法可以适用于大规模的异步电路设计。By representing the pulse signals of various asynchronous controllers used to control the operation of sequential logic devices as clock signals derived from the same source clock but with different phases and different transmission paths, conventional EDA design tools therefore treat them as synchronous clocks and calculate Timing paths for individual clock signals. In addition, conventional EDA tools can analyze the timing of data propagation in the combinational logic portion of an asynchronous circuit. On this basis, by comparing the propagation delay of the control part and the combinational logic part, the delay setting of the asynchronous circuit can be determined accordingly and the timing correctness of the asynchronous circuit can be ensured. Since the timing of the combinational logic part and the control part of the asynchronous circuit is uniformly analyzed through the above method, the relative timing constraints of the asynchronous circuit can be converted into a static timing analysis that can be recognized by traditional EDA tools. On this basis, EDA tools can be used for circuit optimization and timing constraints on asynchronous circuits to effectively improve the efficiency of designing asynchronous single-rail circuits. Therefore, the method can be applied to large-scale asynchronous circuit design.
在一种可能的实现方式中,时钟传播差值生成单元包括:时钟传播时间段确定单元,用于确定第一时钟信号的第一时钟传播时间段和第二时钟信号的第二时钟传播时间段,第一时钟传播时间段表示从第一异步控制器接收到第一输入请求到第一异步控制器生成第一脉冲信号的时间段,第二时钟传播时间段表示从第一异步控制器接收到第一输入请求到第二异步控制器生成第二脉冲信号的时间段;以及时钟传播差值确定单元,用于确定第一时钟传播时间段和第二时钟传播时间段之间的第一时钟传播差值。In a possible implementation manner, the clock propagation difference generating unit includes: a clock propagation time period determining unit, configured to determine a first clock propagation time period of the first clock signal and a second clock propagation time period of the second clock signal , the first clock propagation time period represents the time period from the first asynchronous controller receiving the first input request to the first asynchronous controller generating the first pulse signal, and the second clock propagation time period represents the time period from the first asynchronous controller receiving The time period from the first input request to the second asynchronous controller generating the second pulse signal; and a clock propagation difference determination unit, configured to determine the first clock propagation between the first clock propagation time period and the second clock propagation time period difference.
在一种可能的实现方式中,电子设备还包括延迟设置确定单元,用于基于第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置。In a possible implementation manner, the electronic device further includes a delay setting determination unit, configured to determine the delay between the first asynchronous controller and the second asynchronous controller based on the first clock propagation difference and the first data propagation time period. delay settings.
在一种可能的实现方式中,延迟设置确定单元进一步用于响应于第一数据传播时间段大于第一时钟传播差值,在第一异步控制器和第二异步控制器之间设置延迟电路;或响应于第一数据传播时间段不大于第一时钟传播差值,在第一异步控制器和第二异步控制器之间不设置延迟电路。通过在异步控制器之间设置延迟电路,可以确保数据信号先于脉冲信号到达时序逻辑器件,以实现正确的时序。In a possible implementation manner, the delay setting determination unit is further configured to set a delay circuit between the first asynchronous controller and the second asynchronous controller in response to the first data propagation time period being greater than the first clock propagation difference; Or in response to the fact that the first data propagation time period is not greater than the first clock propagation difference, no delay circuit is provided between the first asynchronous controller and the second asynchronous controller. By setting a delay circuit between the asynchronous controllers, it can be ensured that the data signal arrives at the sequential logic device before the pulse signal to achieve the correct timing.
在一种可能的实现方式中,时钟信号确定单元进一步用于将所述异步电路的第M异步控制器生成的第M脉冲信号确定为第M时钟信号,M表示大于0的整数;将异步电路的第N异步控制器生成的第N脉冲信号确定为第N时钟信号,第一异步控制器至第N异步控制器逐级耦合,第一异步控制器至第N异步控制器中的任意两个相邻异步控制器彼此之间偏移第一预定时间量,第N异步控制器的输出耦合至第M异步控制器的输入,其中N表示大于M的整数。电子设备还包括时序周期确定单元,用于确定时序周期P,其中P表示N与M之间的差值。延迟设置确定单元进一步用于基于时序周期P,确定第N异步控制器和第M异步控制器之间的延迟设置。通过使用多个周期来分析非顺序异步电路,可以对包括非顺序的流水线架构的异步电路也实现时序分析,从而扩展了本公开的应用范围。In a possible implementation manner, the clock signal determination unit is further configured to determine the Mth pulse signal generated by the Mth asynchronous controller of the asynchronous circuit as the Mth clock signal, where M represents an integer greater than 0; the asynchronous circuit The Nth pulse signal generated by the Nth asynchronous controller is determined as the Nth clock signal, the first asynchronous controller to the Nth asynchronous controller are coupled step by step, and any two of the first asynchronous controller to the Nth asynchronous controller Adjacent asynchronous controllers are offset from each other by a first predetermined amount of time, an output of an Nth asynchronous controller is coupled to an input of an Mth asynchronous controller, where N represents an integer greater than M. The electronic device further includes a timing period determining unit, configured to determine a timing period P, where P represents a difference between N and M. The delay setting determination unit is further configured to determine the delay setting between the Nth asynchronous controller and the Mth asynchronous controller based on the timing cycle P. By using multiple cycles to analyze non-sequential asynchronous circuits, timing analysis can also be implemented for asynchronous circuits including non-sequential pipeline architectures, thereby extending the scope of application of the present disclosure.
在一种可能的实现方式中,电子设备还包括维持单元,用于在异步电路的综合期间维持异步电路的结构。通过在综合期间维持异步电路,可以确保异步电路的结构不会被EDA工具所优化。由于异步控制器存在环路,如果不维持的话,综合后的电路可能和预期不同,影响异步电路的功能。In a possible implementation manner, the electronic device further includes a maintaining unit, configured to maintain the structure of the asynchronous circuit during synthesis of the asynchronous circuit. By maintaining the asynchronous circuit during synthesis, it is ensured that the structure of the asynchronous circuit is not optimized by the EDA tool. Because there is a loop in the asynchronous controller, if it is not maintained, the integrated circuit may be different from the expected one, which will affect the function of the asynchronous circuit.
在一种可能的实现方式中,延迟设置确定单元进一步用于基于异步电路在不同工艺角下的第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置。受到工艺、电压和温度(process votalge and temperature,PVT)的影响,同一芯片在不同操作条件下的延时都不同,这对异步电路的延时匹配过程是很重要的。在传播时序约束下,静态时序分析会针对不同工艺角下的时序模型来分析电路功能,确保在任何条件下被约束的电路都能满足时序要求。In a possible implementation manner, the delay setting determination unit is further configured to determine, based on the first clock propagation difference and the first data propagation time period of the asynchronous circuit at different process angles, to determine Delay settings between controllers. Affected by process voltage and temperature (process voltage and temperature, PVT), the same chip has different delays under different operating conditions, which is very important for the delay matching process of asynchronous circuits. Under propagation timing constraints, static timing analysis analyzes circuit functions for timing models at different process corners to ensure that the constrained circuits can meet timing requirements under any conditions.
在一种可能的实现方式中,电子设备还包括脉冲展宽单元。脉冲展宽单元用于确定第一脉冲信号的第一脉冲宽度和第二脉冲信号的第二脉冲宽度;以及响应于第一脉冲宽度或第二脉冲宽度低于脉冲宽度阈值,在第一异步控制器或第二异步控制器中相应地设置脉冲展宽电路以增宽第一脉冲信号或第二脉冲信号的宽度。传播时序约束将异步电路的握手过程视为时钟的传播过程,并且这个路径上有组合逻辑和寄存器的存在,因此使得静态时序分析无法得到实际产生的本地脉冲click信号的脉冲宽度。通过在满足其他时序约束后还对异步电路进行 了实现后的时序仿真,可以确定实际上每一级的click信号的脉冲宽度是否满足寄存器的最小脉冲宽度要求。如果需要展宽本地脉冲的宽度,则可以在异步控制器中的寄存器输出引脚上加入缓冲单元以进一步确保异步电路的时序正确性。In a possible implementation manner, the electronic device further includes a pulse stretching unit. The pulse stretching unit is used to determine the first pulse width of the first pulse signal and the second pulse width of the second pulse signal; and in response to the first pulse width or the second pulse width being lower than the pulse width threshold, in the first asynchronous controller Or a pulse stretching circuit is correspondingly set in the second asynchronous controller to widen the width of the first pulse signal or the second pulse signal. Propagation timing constraints regard the handshake process of asynchronous circuits as the clock propagation process, and there are combinational logic and registers on this path, so static timing analysis cannot obtain the pulse width of the actually generated local pulse click signal. After satisfying other timing constraints, the timing simulation of the asynchronous circuit after implementation can determine whether the pulse width of the click signal of each stage actually meets the minimum pulse width requirement of the register. If the width of the local pulse needs to be extended, a buffer unit can be added to the output pin of the register in the asynchronous controller to further ensure the timing correctness of the asynchronous circuit.
在一种可能的实现方式中,第二异步控制器还耦合至异步电路中的第四异步控制器;时钟信号确定单元进一步用于将第四异步控制器生成的第四脉冲信号确定为第四时钟信号;将第二异步控制器针对来自第四异步控制器的请求生成的第二脉冲信号确定为第五时钟信号,第五时钟信号相对于第四时钟信号偏移第二预定时间量;电子设备还包括时钟指派单元,用于将第二时钟信号指派至第一时钟分组并且将第五时钟信号指派至第二时钟分组,第二时钟分组不同于第一时钟分组;时钟传播时间段确定单元进一步用于确定第四时钟信号的第五时钟传播时间段和第五时钟信号的第五时钟传播时间段,第五时钟传播时间段表示从第四异步控制器接收到第四输入请求到第四异步控制器生成第四脉冲信号的时间段,第五时钟传播时间段表示从第四异步控制器接收到第四输入请求到第二异步控制器生成第五脉冲信号的时间段;时钟传播差值确定单元进一步用于确定第四时钟传播时间段和第五时钟传播时间段之间的第四时钟传播差值;数据传播时间段进一步用于确定第四时序逻辑门和第五时序逻辑门之间的第四数据传播时间段,第四时序逻辑门耦合至第四异步控制器并且基于第四脉冲信号进行操作,第五时序逻辑门耦合至第二异步控制器并且基于第五脉冲信号进行操作;以及延迟设置确定单元进一步用于基于第四时钟传播差值和第四数据传播时间段,确定在第四异步控制器和第二异步控制器之间的延迟设置。在该实现方式中,在同一个端口上定义多个时钟,后定义的时钟并不会覆盖之前存在的时钟,并且将物理上不会同时存在的时钟分组以打断它们之间的时序分析,然后将多个时钟与不同的输入一一对应来约束电路,并且计算延迟。这样,可以对包括复用器和解复用器在内的条件选择异步电路也能实现正确的时序分析,并且根据时序分析结果进行相应延迟设置,从而扩展了本公开的应用范围。In a possible implementation manner, the second asynchronous controller is further coupled to the fourth asynchronous controller in the asynchronous circuit; the clock signal determining unit is further configured to determine the fourth pulse signal generated by the fourth asynchronous controller as the fourth a clock signal; determining a second pulse signal generated by the second asynchronous controller in response to a request from the fourth asynchronous controller as a fifth clock signal, the fifth clock signal being offset by a second predetermined amount of time relative to the fourth clock signal; electronically The device also includes a clock assigning unit for assigning the second clock signal to the first clock group and assigning the fifth clock signal to the second clock group, the second clock group being different from the first clock group; the clock propagation period determining unit Further used to determine the fifth clock propagation time period of the fourth clock signal and the fifth clock propagation time period of the fifth clock signal, the fifth clock propagation time period indicates that the fourth input request is received from the fourth asynchronous controller to the fourth The time period when the asynchronous controller generates the fourth pulse signal, and the fifth clock propagation time period represents the time period from when the fourth asynchronous controller receives the fourth input request to when the second asynchronous controller generates the fifth pulse signal; the clock propagation difference The determining unit is further used to determine the fourth clock propagation difference between the fourth clock propagation time period and the fifth clock propagation time period; the data propagation time period is further used to determine the difference between the fourth sequential logic gate and the fifth sequential logic gate The fourth data propagation time period, the fourth sequential logic gate is coupled to the fourth asynchronous controller and operates based on the fourth pulse signal, and the fifth sequential logic gate is coupled to the second asynchronous controller and operates based on the fifth pulse signal; And the delay setting determining unit is further configured to determine a delay setting between the fourth asynchronous controller and the second asynchronous controller based on the fourth clock propagation difference and the fourth data propagation time period. In this implementation, multiple clocks are defined on the same port, and the clocks defined later will not overwrite the existing clocks, and the clocks that do not physically exist at the same time are grouped to interrupt the timing analysis between them. The circuit is then constrained by one-to-one correspondence of multiple clocks with different inputs, and the delay is calculated. In this way, correct timing analysis can also be implemented for conditionally selected asynchronous circuits including multiplexers and demultiplexers, and corresponding delay settings can be performed according to the timing analysis results, thereby expanding the application range of the present disclosure.
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。It should be understood that what is described in the Summary of the Invention is not intended to limit the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will be readily understood through the following description.
附图说明Description of drawings
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:The above and other features, advantages and aspects of the various embodiments of the present disclosure will become more apparent with reference to the following detailed description when taken in conjunction with the accompanying drawings. In the drawings, identical or similar reference numerals denote identical or similar elements, wherein:
图1示出了根据本公开的一些实施例的电路系统的示意框图;FIG. 1 shows a schematic block diagram of a circuit system according to some embodiments of the present disclosure;
图2示出了根据本公开的一些实施例的流水线架构的异步电路的示意电路图;2 shows a schematic circuit diagram of an asynchronous circuit of a pipeline architecture according to some embodiments of the present disclosure;
图3示出了根据本公开的一些实施例的异步控制器的示意电路图;Figure 3 shows a schematic circuit diagram of an asynchronous controller according to some embodiments of the present disclosure;
图4示出了根据本公开的另一些实施例的异步控制器的示意电路图;Fig. 4 shows a schematic circuit diagram of an asynchronous controller according to other embodiments of the present disclosure;
图5示出了根据本公开的一些实施例的时钟信号传播路径示意图;Fig. 5 shows a schematic diagram of a clock signal propagation path according to some embodiments of the present disclosure;
图6示出了根据本公开的一些实施例的顺序电路的时钟信号传播示意框图;Fig. 6 shows a schematic block diagram of clock signal propagation of a sequential circuit according to some embodiments of the present disclosure;
图7示出了根据本公开的一些实施例的非顺序电路的时钟信号传播示意框图;Fig. 7 shows a schematic block diagram of clock signal propagation of a non-sequential circuit according to some embodiments of the present disclosure;
图8示出了根据本公开的一些实施例的条件选择电路的时钟信号传播示意框图;Fig. 8 shows a schematic block diagram of clock signal propagation of a condition selection circuit according to some embodiments of the present disclosure;
图9示出了根据本公开的另一些实施例的异步控制器的示意电路图;Fig. 9 shows a schematic circuit diagram of an asynchronous controller according to other embodiments of the present disclosure;
图10示出了根据本公开的另一些实施例的异步控制器的示意电路图;Fig. 10 shows a schematic circuit diagram of an asynchronous controller according to other embodiments of the present disclosure;
图11示出了根据本公开的根据本公开的一些实施例的方法的示意流程图;FIG. 11 shows a schematic flowchart of a method according to some embodiments of the present disclosure;
图12示出了根据本公开的一些实施例的电子设备的示意框图;以及Figure 12 shows a schematic block diagram of an electronic device according to some embodiments of the present disclosure; and
图13示出了可以用来实施本公开的一些实施例的示例设备的框图。Figure 13 shows a block diagram of an example device that may be used to implement some embodiments of the present disclosure.
具体实施方式detailed description
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the drawings, it should be understood that the disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein; A more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for exemplary purposes only, and are not intended to limit the protection scope of the present disclosure.
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。术语“和/或”表示由其关联的两项的至少一项。例如“A和/或B”表示A、B、或者A和B。下文还可能包括其他明确的和隐含的定义。应理解,本申请实施例提供的技术方案,在以下具体实施例的介绍中,某些重复之处可能不再赘述,但应视为这些具体实施例之间已有相互引用,可以相互结合。In the description of the embodiments of the present disclosure, the term "comprising" and its similar expressions should be interpreted as an open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be read as "at least one embodiment". The terms "first", "second", etc. may refer to different or the same object. The term "and/or" means at least one of the two items associated with it. For example "A and/or B" means A, B, or A and B. Other definitions, both express and implied, may also be included below. It should be understood that for the technical solutions provided by the embodiments of the present application, in the introduction of the following specific embodiments, some repetitions may not be repeated, but it should be considered that these specific embodiments have been referred to each other and can be combined with each other.
如上所述,在异步电路设计的过程中,常规方案将异步电路的组合逻辑部分和控制部分分开进行约束,从而保证控制部分的延迟大于相应的组合逻辑部分。然而,这样的分开约束没有考虑异步电路的整体性,往往需要多次的人工迭代来满足时序,难于在大规模集成电路中使用。As mentioned above, in the process of designing an asynchronous circuit, conventional schemes separate and constrain the combinational logic part and the control part of the asynchronous circuit, so as to ensure that the delay of the control part is greater than that of the corresponding combinational logic part. However, such separation constraints do not consider the integrity of asynchronous circuits, and often require multiple manual iterations to meet the timing, which is difficult to use in large-scale integrated circuits.
在本公开的一些实施例中,通过将各个异步控制器的用于控制时序逻辑器件操作的脉冲信号表示为源自同一个源时钟但是具有不同相位和不同传输路径的时钟信号,常规EDA设计工具因此将其视为同步时钟并且计算各个时钟信号的时序路径。此外,常规EDA工具可以对异步电路的组合逻辑部分的数据传播时序进行分析。在此基础之上,通过比较控制部分和组合逻辑部分的传播延迟,可以相应地确定异步电路的延迟设置并且确保异步电路的时序正确性。在本公开的实施例中,由于通过上述的方式统一地分析了异步电路的组合逻辑部分和控制部分的时序,因此可以将异步电路的相对时序约束转换为能被传统EDA工具识别的静态时序分析。在此基础之上,可以利用EDA工具对异步电路进行电路优化和时序约束,来有效提高设计异步单轨电路的效率。因此,本公开的实施例可以适用于大规模的异步电路设计。In some embodiments of the present disclosure, by representing the pulse signals of each asynchronous controller used to control the operation of sequential logic devices as clock signals originating from the same source clock but having different phases and different transmission paths, conventional EDA design tools So treat it as a synchronous clock and calculate the timing paths of the individual clock signals. In addition, conventional EDA tools can analyze the timing of data propagation in the combinational logic portion of an asynchronous circuit. On this basis, by comparing the propagation delay of the control part and the combinational logic part, the delay setting of the asynchronous circuit can be determined accordingly and the timing correctness of the asynchronous circuit can be ensured. In the embodiment of the present disclosure, since the timing of the combinational logic part and the control part of the asynchronous circuit is uniformly analyzed in the above-mentioned manner, the relative timing constraints of the asynchronous circuit can be converted into a static timing analysis that can be recognized by traditional EDA tools . On this basis, EDA tools can be used for circuit optimization and timing constraints on asynchronous circuits to effectively improve the efficiency of designing asynchronous single-rail circuits. Therefore, embodiments of the present disclosure may be applicable to large-scale asynchronous circuit designs.
图1示出了根据本公开的一些实施例的电路系统100的示意框图。电路系统100包括第一装置10、异步电路20和第二装置30。第一装置10例如为源装置(source device),并且第二装置30例如宿装置(sink device)。在一个实施例中,电路系统100可以被集成到单个芯片中。备选地,第一装置10、异步电路20和第二装置30可以在不同的芯片或装置中实现。本公开对此不进行限制。在单向传输情形(例如电路系统100是流水线系统)中,第一装置10发送数据信号给异步电路20。异步电路20将处理好的数据发送给第二装置30以第二装置30使用或进一步处理。为了实现异步处理,第一装置10除了发送数据信号之外还要发送请求信号给异步电路20,异步电路20在接收到请求之后对数据信号进行处理并且同时发送确认信号给第一装置10以确定接收到数据信号。为了确保数据能够正确的被处理,数据信号通常要比请求信号更早地到达异步电路20。类似地,异步电路20除了发送数据信号之外还要发送请求信号给第二装置30,第二装置30在接收到请求之后对数据信号进行处理或使用并且同时发送确认信号给异步电路20以确定接收到数据信号。为了确保数据能够正确的被处理,数据信号通常要比请求信号更早地到达第二装置30。可以理解,在一些实施例中,数据在电路 系统100中可以双向传输,即,取决于数据传输方向,第一装置10可以为宿装置或源装置,并且第二装置30可以为源装置或宿装置。FIG. 1 shows a schematic block diagram of a circuit system 100 according to some embodiments of the present disclosure. The circuit system 100 includes a first device 10 , an asynchronous circuit 20 and a second device 30 . The first device 10 is, for example, a source device, and the second device 30 is, for example, a sink device. In one embodiment, circuitry 100 may be integrated into a single chip. Alternatively, the first device 10, the asynchronous circuit 20 and the second device 30 may be implemented in different chips or devices. This disclosure is not limited in this regard. In the case of unidirectional transmission (eg, the circuit system 100 is a pipeline system), the first device 10 sends a data signal to the asynchronous circuit 20 . The asynchronous circuit 20 sends the processed data to the second device 30 for use or further processing by the second device 30 . In order to realize asynchronous processing, the first device 10 also sends a request signal to the asynchronous circuit 20 in addition to sending the data signal, and the asynchronous circuit 20 processes the data signal after receiving the request and simultaneously sends an acknowledgment signal to the first device 10 to determine A data signal is received. In order to ensure that the data can be processed correctly, the data signal usually arrives at the asynchronous circuit 20 earlier than the request signal. Similarly, the asynchronous circuit 20 also sends a request signal to the second device 30 in addition to sending the data signal, and the second device 30 processes or uses the data signal after receiving the request and simultaneously sends an acknowledgment signal to the asynchronous circuit 20 to determine A data signal is received. In order to ensure that the data can be processed correctly, the data signal usually arrives at the second device 30 earlier than the request signal. It can be understood that in some embodiments, data can be transmitted bidirectionally in the circuit system 100, that is, depending on the direction of data transmission, the first device 10 can be a sink device or a source device, and the second device 30 can be a source device or a sink device.
图2示出了根据本公开的一些实施例的流水线架构的异步电路200的示意电路图。在一个实施例中,异步电路200可以是图1的异步电路20的一种具体实现方式。可以理解,本公开的异步电路不限于异步电路200,而是可以具有其它实现形式。异步电路200包括数据路径和时序路径。时序路径包括彼此级联耦合的第一异步控制器24、第二异步控制器26和第三异步控制器28。数据路径包括第一时序逻辑器件21、第一功能电路23、第二时序逻辑器件25、第二功能电路27和第三时序逻辑器件29。可以理解,数据路径可以包括更多或更少的时序逻辑器件和功能电路,本公开对此不进行限制。在一个实施例中,功能电路可以由一个或多个组合逻辑器件实现。在本文中,“时序逻辑器件”表示具有时钟控制输入或脉冲控制信号的逻辑器件。时序逻辑器件在任意时刻的输出不仅取决于当时的输入信号,而且还取决于时钟信号和时序逻辑器件原来的状态,换言之,还可以与以前的输入有关。时序逻辑器件例如包括触发器、寄存器和寄存器等。相对而言,“组合逻辑器件”表示不具有时钟控制输入或脉冲控制信号的逻辑器件。组合逻辑器件在任意时刻的输出仅仅取决于该时刻的输入,而与组合逻辑器件原来的状态无关。组合逻辑门例如包括与门、或门、与非门、异或门、非门和缓冲器等。FIG. 2 shows a schematic circuit diagram of an asynchronous circuit 200 of a pipeline architecture according to some embodiments of the present disclosure. In an embodiment, the asynchronous circuit 200 may be a specific implementation of the asynchronous circuit 20 in FIG. 1 . It can be understood that the asynchronous circuit of the present disclosure is not limited to the asynchronous circuit 200, but may have other implementation forms. Asynchronous circuit 200 includes a data path and a timing path. The timing path includes a first asynchronous controller 24 , a second asynchronous controller 26 , and a third asynchronous controller 28 cascadedly coupled to each other. The data path includes a first sequential logic device 21 , a first functional circuit 23 , a second sequential logic device 25 , a second functional circuit 27 and a third sequential logic device 29 . It can be understood that the data path may include more or less sequential logic devices and functional circuits, which is not limited in the present disclosure. In one embodiment, functional circuits may be implemented by one or more combinational logic devices. As used herein, "sequential logic device" means a logic device with clocked inputs or pulsed control signals. The output of a sequential logic device at any time not only depends on the input signal at that time, but also depends on the clock signal and the original state of the sequential logic device, in other words, it can also be related to the previous input. Sequential logic devices include, for example, flip-flops, registers, registers, and the like. In contrast, "combinational logic device" means a logic device that does not have clocked inputs or pulsed control signals. The output of a combinational logic device at any moment depends only on the input at that moment, and has nothing to do with the original state of the combinational logic device. Combination logic gates include, for example, AND gates, OR gates, NAND gates, XOR gates, NOT gates, and buffers.
在一个实施例中,第一异步控制器24从上游器件接收请求信号In_Req,并且相应地向上游器件发送确认信号In_Ack。第二异步控制器26从第一异步控制器24接收请求信号req1,并且相应地向第一异步控制器24发送确认信号ack1。第三异步控制器28从第二异步控制器26接收请求信号req2,并且相应地向第二异步控制器26发送确认信号ack2。在向下游器件发送数据信号的情形下,第三异步控制器28向下游器件发送请求信号Out_Req,并且接收来自下游器件的确认信号Out_Ack。在一个实施例中,上游器件例如是第一装置10,并且下游器件例如是第三装置30。第一异步控制器24、第二异步控制器26和第三异步控制器28具有相同的配置,例如第一异步控制器24、第二异步控制器26和第三异步控制器28均为相位解耦的click电路。备选地,第一异步控制器24、第二异步控制器26和第三异步控制器28可以由不同的异步控制器实现,本公开对此不进行限制。In one embodiment, the first asynchronous controller 24 receives a request signal In_Req from an upstream device, and accordingly sends an acknowledgment signal In_Ack to the upstream device. The second asynchronous controller 26 receives the request signal req1 from the first asynchronous controller 24 and sends an acknowledgment signal ack1 to the first asynchronous controller 24 accordingly. The third asynchronous controller 28 receives the request signal req2 from the second asynchronous controller 26 and sends an acknowledgment signal ack2 to the second asynchronous controller 26 accordingly. In the case of sending a data signal to a downstream device, the third asynchronous controller 28 sends a request signal Out_Req to the downstream device, and receives an acknowledgment signal Out_Ack from the downstream device. In one embodiment, the upstream device is, for example, the first device 10 and the downstream device is, for example, the third device 30 . The first asynchronous controller 24, the second asynchronous controller 26 and the third asynchronous controller 28 have the same configuration, for example, the first asynchronous controller 24, the second asynchronous controller 26 and the third asynchronous controller 28 are phase solution coupled click circuit. Alternatively, the first asynchronous controller 24 , the second asynchronous controller 26 and the third asynchronous controller 28 may be implemented by different asynchronous controllers, which is not limited in the present disclosure.
在数据路径中,第一时序逻辑器件21耦合至上游器件并且接收数据信号In_Data,并且响应于来自第一异步控制器24的第一脉冲信号将数据信号In_Data传输至第一功能电路23。第一功能电路23接收数据信号In_Data并且将经处理的第一数据信号传输至第二时序逻辑器件25。第二时序逻辑器件25响应于来自第二异步控制器26的第二脉冲信号将第一数据信号传输至第二功能电路27。第二功能电路27从第二时序逻辑器件25接收第一数据信号并且将经处理的第二数据信号传输至第三时序逻辑器件29。第三时序逻辑器件29响应于来自第三异步控制器28的第三脉冲信号将第二数据信号传输至下游器件。在一个实施例中,第一时序逻辑器件21、第二时序逻辑器件25和第三时序逻辑器件29具有相同的配置,例如第一时序逻辑器件21、第二时序逻辑器件25和第三时序逻辑器件29均为寄存器。备选地,第一时序逻辑器件21、第二时序逻辑器件25和第三时序逻辑器件29可以由不同的时序逻辑器件实现,本公开对此不进行限制。In the data path, the first sequential logic device 21 is coupled to the upstream device and receives the data signal In_Data, and transmits the data signal In_Data to the first functional circuit 23 in response to the first pulse signal from the first asynchronous controller 24 . The first functional circuit 23 receives the data signal In_Data and transmits the processed first data signal to the second sequential logic device 25 . The second sequential logic device 25 transmits the first data signal to the second functional circuit 27 in response to the second pulse signal from the second asynchronous controller 26 . The second functional circuit 27 receives the first data signal from the second sequential logic device 25 and transmits the processed second data signal to the third sequential logic device 29 . The third sequential logic device 29 transmits the second data signal to the downstream device in response to the third pulse signal from the third asynchronous controller 28 . In one embodiment, the first sequential logic device 21, the second sequential logic device 25 and the third sequential logic device 29 have the same configuration, for example, the first sequential logic device 21, the second sequential logic device 25 and the third sequential logic device Devices 29 are all registers. Alternatively, the first sequential logic device 21 , the second sequential logic device 25 and the third sequential logic device 29 may be implemented by different sequential logic devices, which is not limited in the present disclosure.
为了确保异步电路工作的正确性,在时序上,数据信号要在脉冲信号之前到达时序逻辑器件。例如,数据信号In_Data需要在第一异步控制器24输出的第一脉冲信号之前到达第一时序逻辑器件21。类似地,来自第一功能电路23的第一数据信号需要在来自第二异步控制 器26输出的第二脉冲信号之前到达第二时序逻辑器件25,并且来自第二功能电路27的第二数据信号需要在来自第三异步控制器28输出的第三脉冲信号之前到达第三时序逻辑器件29。因此,在异步电路的设计阶段,需要对异步电路的各个部件的时序进行分析,以确保异步电路的正确操作。In order to ensure the correctness of the work of the asynchronous circuit, in terms of timing, the data signal should arrive at the sequential logic device before the pulse signal. For example, the data signal In_Data needs to reach the first sequential logic device 21 before the first pulse signal output by the first asynchronous controller 24 . Similarly, the first data signal from the first functional circuit 23 needs to reach the second sequential logic device 25 before the second pulse signal output from the second asynchronous controller 26, and the second data signal from the second functional circuit 27 It needs to reach the third sequential logic device 29 before the third pulse signal output from the third asynchronous controller 28 . Therefore, in the design stage of the asynchronous circuit, it is necessary to analyze the timing of each component of the asynchronous circuit to ensure the correct operation of the asynchronous circuit.
图3示出了根据本公开的一些实施例的异步控制器24的示意电路图。在一个实施例中,异步控制器24具有异或门31、同或门32和与门33、第一相位寄存器34和第二相位寄存器35。异或门31、同或门32和与门33被配置为产生本地脉冲信号。该脉冲信号会驱动相位寄存器34、35和第一时序逻辑器件21,以用于缓存数据和开始下一次的握手协议。当上游器件需要发送有效数据时会将In_Req信号进行一次翻转。该输入请求信号In_Req与输入确认信号In_Ack信号在异或门31处进行异或操作产生一个高电平。下游器件(例如第二异步控制器26)接收到异步控制器24发送的有效数据时会将输出确认信号Out_Ack翻转。该信号与输出请求信号Out_Req在同或门32处进行同或得到高电平。当同时满足输入请求信号In_Req不等于输入确认信号In_Ack并且输出请求信号Out_Req等于输出确认信号Out_Ack时,与门33会产生一个拉高的click信号作为第一时序逻辑器件21的时钟信号,用来捕获和存储数据。同时click信号会将相位寄存器34和35翻转,改变输入确认信号In_Ack和输出请求信号Out_Req的值,从而完成一次握手协议。此外,这种握手协议是两相的,即输入确认信号In_Req信号的每一次翻转都代表着一个有效数据的到来,而不是高电平才有效。虽然在图3中示出了一种具体的异步控制器的示意电路图,但是本公开不限于此,也可以使用其它异步控制器。FIG. 3 shows a schematic circuit diagram of the asynchronous controller 24 according to some embodiments of the present disclosure. In one embodiment, the asynchronous controller 24 has an exclusive OR gate 31 , an exclusive OR gate 32 and an AND gate 33 , a first phase register 34 and a second phase register 35 . The exclusive OR gate 31 , the exclusive OR gate 32 and the AND gate 33 are configured to generate local pulse signals. The pulse signal will drive the phase registers 34, 35 and the first sequential logic device 21 for buffering data and starting the next handshake protocol. When the upstream device needs to send valid data, it will flip the In_Req signal once. The input request signal In_Req and the input acknowledgment signal In_Ack are subjected to an exclusive OR operation at the exclusive OR gate 31 to generate a high level. When the downstream device (such as the second asynchronous controller 26 ) receives the valid data sent by the asynchronous controller 24 , it will invert the output acknowledgment signal Out_Ack. This signal is NORed with the output request signal Out_Req at the NOR gate 32 to obtain a high level. When the input request signal In_Req is not equal to the input confirmation signal In_Ack and the output request signal Out_Req is equal to the output confirmation signal Out_Ack, the AND gate 33 will generate a high click signal as the clock signal of the first sequential logic device 21 to capture and store data. At the same time, the click signal will flip the phase registers 34 and 35, and change the values of the input confirmation signal In_Ack and the output request signal Out_Req, thereby completing a handshake protocol. In addition, this handshake protocol is two-phase, that is, each flip of the input confirmation signal In_Req represents the arrival of a valid data, rather than a high level. Although a schematic circuit diagram of a specific asynchronous controller is shown in FIG. 3 , the present disclosure is not limited thereto, and other asynchronous controllers may also be used.
图4示出了根据本公开的另一些实施例的异步控制器40的示意电路图。在一个实施例中,异步控制器40具有第一与门41、第二与门42、或门43和相位寄存器44。第一与门41、第二与门42和或门43被配置为产生本地脉冲信号。该脉冲信号会驱动相位寄存器44和第一时序逻辑器件21,以用于缓存数据和开始下一次的握手协议。当上游器件需要发送有效数据时会将In_Req信号进行一次翻转。该输入请求信号In_Req的反相信号与输入确认信号In_Ack信号和输出确认信号Out_Ack在第一与门41处进行与操作,并且该输入请求信号In_Req与输入确认信号In_Ack信号和输出确认信号Out_Ack的反相信号在第二与门42处进行与操作。第一与门41和第二与门42的输出在或门43处进行或操作。当同时满足输入请求信号In_Req不等于输入确认信号In_Ack并且输出请求信号Out_Req等于输出确认信号Out_Ack时,或门43会产生一个拉高的click信号作为第一时序逻辑器件21的时钟信号,用来捕获和存储数据。同时click信号会将相位寄存器44翻转,改变输入确认信号In_Ack和输出请求信号Out_Req的值,从而完成一次握手协议。此外,这种握手协议是两相的,即输入确认信号In_Req信号的每一次翻转都代表着一个有效数据的到来,而不是高电平才有效。FIG. 4 shows a schematic circuit diagram of an asynchronous controller 40 according to other embodiments of the present disclosure. In one embodiment, the asynchronous controller 40 has a first AND gate 41 , a second AND gate 42 , an OR gate 43 and a phase register 44 . The first AND gate 41 , the second AND gate 42 and the OR gate 43 are configured to generate local pulse signals. The pulse signal will drive the phase register 44 and the first sequential logic device 21 for buffering data and starting the next handshake protocol. When the upstream device needs to send valid data, it will flip the In_Req signal once. The inversion signal of the input request signal In_Req is ANDed with the input acknowledgment signal In_Ack signal and the output acknowledgment signal Out_Ack at the first AND gate 41, and the inversion of the input request signal In_Req and the input acknowledgment signal In_Ack signal and the output acknowledgment signal Out_Ack The phase signal is ANDed at the second AND gate 42 . The outputs of the first AND gate 41 and the second AND gate 42 are ORed at the OR gate 43 . When the input request signal In_Req is not equal to the input confirmation signal In_Ack and the output request signal Out_Req is equal to the output confirmation signal Out_Ack, the OR gate 43 will generate a high click signal as the clock signal of the first sequential logic device 21 to capture and store data. At the same time, the click signal will flip the phase register 44 to change the values of the input confirmation signal In_Ack and the output request signal Out_Req, thereby completing a handshake protocol. In addition, this handshake protocol is two-phase, that is, each flip of the input confirmation signal In_Req represents the arrival of a valid data, rather than a high level.
异步电路中的捆绑数据握手协议需要进行延迟匹配来确保数据的有效性,即,异步控制器发出的请求信号到达下一级的异步控制器的延迟要大于对应数据通路的最大延迟才能保证下一级时序逻辑器件能锁存到正确的数据。然而,由于click控制器结构是将相位寄存器的输出作为req信号来产生下一级click电路的时钟信号,这种路径并不是一条时序路径,因此常规EDA工具无法对它进行时序分析。在本公开的一些实施例中,可以对异步电路进行约束,使得常规的EDA工具能够同时对异步电路的控制部分和数据路径进行时序分析,从而确保异步电路能正常工作。The bundled data handshake protocol in the asynchronous circuit needs delay matching to ensure the validity of the data, that is, the delay for the request signal sent by the asynchronous controller to reach the next-level asynchronous controller must be greater than the maximum delay of the corresponding data path to ensure the next Level sequential logic devices can latch to the correct data. However, since the click controller structure uses the output of the phase register as the req signal to generate the clock signal of the next click circuit, this path is not a timing path, so conventional EDA tools cannot perform timing analysis on it. In some embodiments of the present disclosure, the asynchronous circuit can be constrained so that a conventional EDA tool can perform timing analysis on the control part and the data path of the asynchronous circuit at the same time, so as to ensure that the asynchronous circuit can work normally.
下面将结合异步电路的示例来描述根据本公开的一些实施例的用于设计异步电路的方 法。该方法可以由诸如计算机之类的电子设备的处理器执行。例如,在将表示异步电路的网表文件加载到电子设备中时,处理器可以根据本公开的一些实施例对所设计的异步电路进行时序分析。当时序分析结果表明该异步电路各个部件之间的时序不正确(例如两个异步控制器之间的延迟小于对应时序逻辑器件之间的延迟)时,可以基于时序分析的结果对异步电路进行调整,例如在异步控制器之间增加延迟电路模块。虽然在此以处理器来描述本公开的一些实施例的执行,但是这仅是示意,而非对本公开的范围进行限制。可以使用其它计算装置,例如图形处理器等,来实施本公开的一些实施例的方法。A method for designing an asynchronous circuit according to some embodiments of the present disclosure will be described below with reference to an example of an asynchronous circuit. The method can be executed by a processor of an electronic device such as a computer. For example, when loading a netlist file representing an asynchronous circuit into an electronic device, the processor may perform timing analysis on the designed asynchronous circuit according to some embodiments of the present disclosure. When the timing analysis results show that the timing between the various components of the asynchronous circuit is incorrect (for example, the delay between two asynchronous controllers is less than the delay between the corresponding sequential logic devices), the asynchronous circuit can be adjusted based on the timing analysis results , such as adding delay circuit modules between asynchronous controllers. Although the execution of some embodiments of the present disclosure is described herein with a processor, this is for illustration only, and not to limit the scope of the present disclosure. Other computing devices, such as graphics processors, etc., may be used to implement the methods of some embodiments of the present disclosure.
在一个实施例中,处理器将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号,并且将异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号。第二异步控制器与第一异步控制器耦合,并且第二时钟信号相对于第一时钟信号偏移第一预定时间量。In one embodiment, the processor determines the first pulse signal generated by the first asynchronous controller in the asynchronous circuit as the first clock signal, and determines the second pulse signal generated by the second asynchronous controller in the asynchronous circuit as Second clock signal. A second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is offset by a first predetermined amount of time relative to the first clock signal.
在一个实施例中,处理器可以将异步电路的事件起点作为第一异步控制器,即,选择产生第一个本地脉冲信号的异步控制器(例如流水线的第一级的异步控制器)作为第一异步控制器。然后将第一异步控制器的本地脉冲确定为第一时钟信号clk1,其时钟周期和上升沿下降沿可以具有默认值。在此情形下,第一时钟信号clk1为源时钟信号。例如,处理器可以将图2的异步控制器24设置为源异步控制器,并且将异步控制器24产生的脉冲信号作为时钟信号clk1。In one embodiment, the processor can use the event starting point of the asynchronous circuit as the first asynchronous controller, that is, select the asynchronous controller that generates the first local pulse signal (for example, the asynchronous controller of the first stage of the pipeline) as the first asynchronous controller. An asynchronous controller. Then the local pulse of the first asynchronous controller is determined as the first clock signal clk1, and its clock cycle and rising and falling edges may have default values. In this case, the first clock signal clk1 is the source clock signal. For example, the processor may set the asynchronous controller 24 in FIG. 2 as the source asynchronous controller, and use the pulse signal generated by the asynchronous controller 24 as the clock signal clk1.
处理器可以将下一级异步控制器产生的本地脉冲声明成第二时钟信号clk2,其源时钟信号为第一时钟信号clk1。第二时钟信号clk2相对于第一时钟信号clk1偏移一个微小量,这样第二时钟信号clk2会被视为是由第一时钟信号clk1沿传播路径偏移预定值(例如0.01纳秒,0.01ns)得到的一个子时钟,第二时钟信号clk2与第一时钟信号clk1有固定的相位关系,可以可以被EDA软件视为是同步时钟。由此再下一级的控制器产生的本地脉冲被视为由第二时钟信号clk2传播得到的第三时钟信号clk3。类似地,第三时钟信号clk3相对于第二时钟信号clk2偏移同样一个微小量。通过这种方法,一个n级的流水线可以得到n个有相位关系的时钟clk1、clk2……clkn。由于这n个时钟共享同一个源时钟,即第一时钟信号clk1对应的时钟,只是传播路径不同,拥有不同的相位差,因此EDA工具会将其看成同步时钟并分析这n个时钟之间的时序路径。通过将偏移预定值设置为远小于脉冲信号的周期,可以防止多个脉冲信号彼此之间的干扰。The processor may declare the local pulse generated by the next-level asynchronous controller as the second clock signal clk2, whose source clock signal is the first clock signal clk1. The second clock signal clk2 is shifted by a small amount relative to the first clock signal clk1, so that the second clock signal clk2 will be regarded as shifted by a predetermined value (for example, 0.01 nanoseconds, 0.01 ns) along the propagation path of the first clock signal clk1 ), the second clock signal clk2 has a fixed phase relationship with the first clock signal clk1, and can be regarded as a synchronous clock by the EDA software. The local pulse generated by the next-level controller is regarded as the third clock signal clk3 propagated by the second clock signal clk2. Similarly, the third clock signal clk3 is shifted relative to the second clock signal clk2 by the same small amount. Through this method, an n-stage pipeline can obtain n phase-related clocks clk1, clk2...clkn. Since these n clocks share the same source clock, that is, the clock corresponding to the first clock signal clk1, but the propagation paths are different and have different phase differences, the EDA tool will regard it as a synchronous clock and analyze the relationship between these n clocks. timing path. By setting the offset predetermined value to be much smaller than the period of the pulse signal, it is possible to prevent a plurality of pulse signals from interfering with each other.
图5示出了根据本公开的一些实施例的时钟信号传播路径500的示意图。第一异步控制器产生第一脉冲信号click1,第二异步控制器产生第二脉冲信号click2。第一异步控制器将第一脉冲信号click1提供至第一时序逻辑器件52,并且第二异步控制器将第二脉冲信号click2提供至第二时序逻辑器件56。第一时序逻辑器件52响应于接收到第一脉冲信号click1进行操作,例如将所接收的数据锁存并且提供至功能电路54。第二时序逻辑器件56响应于接收到第二脉冲信号click2进行操作,例如将来自功能电路54的经计算的数据锁存并且提供至下游器件。FIG. 5 shows a schematic diagram of a clock signal propagation path 500 according to some embodiments of the present disclosure. The first asynchronous controller generates a first pulse signal click1, and the second asynchronous controller generates a second pulse signal click2. The first asynchronous controller provides the first pulse signal click1 to the first sequential logic device 52 , and the second asynchronous controller provides the second pulse signal click2 to the second sequential logic device 56 . The first sequential logic device 52 operates in response to receiving the first pulse signal click1 , such as latching the received data and providing it to the functional circuit 54 . The second sequential logic device 56 operates in response to receiving the second pulse signal click2 , eg, latches and provides the calculated data from the functional circuit 54 to downstream devices.
如上所述,在一个实施例中,处理器将异步电路中的第一异步控制器生成的第一脉冲信号click1确定为第一时钟信号clk1,并且将异步电路中的第二异步控制器生成的第二脉冲信号click2确定为第二时钟信号clk2。处理器继而可以确定第一时钟信号clk1的第一时钟传播时间段和第二时钟信号clk2的第二时钟传播时间段,其中第一时钟传播时间段表示从第一异步控制器接收到第一输入请求In_Req到第一异步控制器生成第一脉冲信号click1的时间段, 第二时钟传播时间段表示从第一异步控制器接收到第一输入请求In_Req到第二异步控制器生成第二脉冲信号click2的时间段。例如,虚线51表示第一时钟信号clik1的传播路径,并且具有第一传播时间段tc1=1ns,而虚线53表示第二时钟信号clk2的传播路径,并且具有第二传播时间段tc2=5ns。As mentioned above, in one embodiment, the processor determines the first pulse signal click1 generated by the first asynchronous controller in the asynchronous circuit as the first clock signal clk1, and determines the first pulse signal click1 generated by the second asynchronous controller in the asynchronous circuit The second pulse signal click2 is determined as the second clock signal clk2. The processor may then determine a first clock propagation period of the first clock signal clk1 and a second clock propagation period of the second clock signal clk2, wherein the first clock propagation period represents receipt of the first input from the first asynchronous controller The time period from requesting In_Req to the first asynchronous controller to generate the first pulse signal click1, and the second clock propagation time period means receiving the first input request In_Req from the first asynchronous controller to the second asynchronous controller to generate the second pulse signal click2 time period. For example, the dashed line 51 represents the propagation path of the first clock signal clik1 and has a first propagation period tc1=1 ns, while the dashed line 53 represents the propagation path of the second clock signal clk2 and has a second propagation period tc2=5 ns.
处理器可以确定第一时钟传播时间段tc1和第二时钟传播时间段tc2之间的第一时钟传播差值△t。例如,在第一时钟传播时间段tc1为1ns,并且第二时钟传播时间段tc2为5ns的情形下,第一时钟传播差值△tc=tc2-tc1=4ns。The processor may determine a first clock propagation difference Δt between the first clock propagation time period tc1 and the second clock propagation time period tc2. For example, in the case that the first clock propagation time period tc1 is 1 ns and the second clock propagation time period tc2 is 5 ns, the first clock propagation difference Δtc=tc2−tc1=4 ns.
处理器可以确定第一时序逻辑器件52和第二时序逻辑器件56之间的第一数据传播时间段td1。第一时序逻辑器件52耦合至第一异步控制器并且基于第一脉冲信号进行操作,第二时序逻辑器件54耦合至第二异步控制器并且基于第二脉冲信号进行操作。在图5中,以虚线55表示从第一时序逻辑器件52到第二时序逻辑器件56之间的第一数据传播时间段td1。The processor may determine a first data propagation time period td1 between the first sequential logic device 52 and the second sequential logic device 56 . The first sequential logic device 52 is coupled to the first asynchronous controller and operates based on the first pulse signal, and the second sequential logic device 54 is coupled to the second asynchronous controller and operates based on the second pulse signal. In FIG. 5 , the first data propagation time period td1 from the first sequential logic device 52 to the second sequential logic device 56 is represented by a dotted line 55 .
在一个实施例中,基于第一时钟传播差值△tc和第一数据传播时间段td1,处理器可以生成延迟报告。该延迟报告可以在异步电路设计过程中自动显示在显示屏上或是响应于用户的指令或输入而在显示屏上显示。备选地,该延迟包括也可以不显示,而是以有线或无线的方式发送至其它电子设备以供分析。延迟报告可以包括与第一数据传播时间段和第一时钟传播差值相关的多种信息。例如,延迟报告可以包括表示第一数据传播时间段td1的第一数据传播时间值、第一时钟传播差值△tc、表示第一数据传播时间段td1和第一时钟传播差值△tc的相减结果的第一延迟值、第一数据传播时间段td1和第一时钟传播差值△tc的比较结果、表示第一时钟传播时间段的第一时钟传播时间值、或表示第二时钟传播时间段的第二时钟传播时间值,等等。延迟报告可以包括用于确定数据信号是否早于时钟信号的任何相关信息。本公开对此不进行限制。In one embodiment, based on the first clock propagation difference Δtc and the first data propagation time period td1, the processor may generate a delay report. The delay report can be automatically displayed on the display screen during the asynchronous circuit design process or displayed on the display screen in response to user instructions or input. Alternatively, the delay may not be displayed, but sent to other electronic devices in a wired or wireless manner for analysis. The delay report may include various information related to the first data propagation time period and the first clock propagation difference. For example, the delay report may include a first data propagation time value representing the first data propagation time period td1, a first clock propagation difference Δtc, a phase value representing the first data propagation time period td1 and the first clock propagation difference Δtc The first delay value of the subtraction result, the comparison result of the first data propagation time period td1 and the first clock propagation difference Δtc, the first clock propagation time value representing the first clock propagation time period, or the second clock propagation time The second clock propagation time value for the segment, and so on. The delay report may include any relevant information for determining whether the data signal is earlier than the clock signal. This disclosure is not limited in this regard.
在一个实施例中,基于第一时钟传播差值△tc和第一数据传播时间段td1,处理器可以确定在第一异步控制器和第二异步控制器之间的延迟设置。例如,处理器可以基于延迟报告里的各种信息来确定延迟设置。为了确保正确的时序,数据信号需要先于脉冲信号到达时序落器件。例如,在第二时序逻辑器件处,数据路径的信号需要先于脉冲信号click2到达。因此,如果处理器通过EDA工具确定第一数据传播时间段td1不大于第一时钟传播差值△tc,例如不大于4ns,则表明图5中的电路的时序是正确的,可以维持第一异步控制器和第二异步控制器之间的当前延迟设置,即无需添加额外的延迟电路。如果处理器通过EDA工具确定第一数据传播时间段td1大于第一时钟传播差值△tc,例如大于4ns,则表明图5中的电路的时序是错误的,在第一异步控制器和第二异步控制器之间需要添加额外的延迟电路。在一个实施例中,所添加的延迟电路的延迟不小于第一数据传播时间段td1和第一时钟传播差值△tc之间的差值。在一个实施例中,可以基于第一数据传播时间段td1和第一时钟传播差值△tc之间的差值去选择适当的延迟电路。在另一个实施例中,可以选择具有单位延迟时间段的单位延迟电路,并且将其插入在第一异步控制器和第二异步控制器之间,并且重复上述过程,以确定第一数据传播时间段td1是否不大于经修改的第一时钟传播差值△tc。如果不大于,则表明在插入延迟电路之后,经修改的异步电路已经符合时序要求。如果大于,则可以在第一异步控制器和第二异步控制器之间继续添加单位延迟电路,以使得新添加的单位延迟电路与先前添加的单位延迟电路串联在在第一异步控制器和第二异步控制器之间,直至满足时序要求。备选地,还可以优化功能电路54的电路设计,以确保第一数据传播时间段td1不大于第一时钟传播差值△tc。In one embodiment, based on the first clock propagation difference Δtc and the first data propagation time period td1, the processor may determine a delay setting between the first asynchronous controller and the second asynchronous controller. For example, the processor may determine latency settings based on various information in the latency report. To ensure correct timing, the data signal needs to arrive at the device in timing before the pulse signal. For example, at the second sequential logic device, the signal of the data path needs to arrive before the pulse signal click2. Therefore, if the processor determines through the EDA tool that the first data propagation time period td1 is not greater than the first clock propagation difference Δtc, for example, not greater than 4ns, it indicates that the timing of the circuit in Figure 5 is correct and the first asynchronous The current delay setting between the controller and the second asynchronous controller, i.e. no additional delay circuit needs to be added. If the processor determines through the EDA tool that the first data propagation time period td1 is greater than the first clock propagation difference Δtc, for example, greater than 4 ns, it indicates that the timing of the circuit in Figure 5 is wrong, between the first asynchronous controller and the second Additional delay circuits need to be added between asynchronous controllers. In one embodiment, the delay of the added delay circuit is not smaller than the difference between the first data propagation time period td1 and the first clock propagation difference Δtc. In one embodiment, an appropriate delay circuit can be selected based on the difference between the first data propagation time period td1 and the first clock propagation difference Δtc. In another embodiment, a unit delay circuit having a unit delay period may be selected and inserted between the first asynchronous controller and the second asynchronous controller, and the above process is repeated to determine the first data propagation time Whether segment td1 is not greater than the modified first clock propagation difference Δtc. If not, it indicates that the modified asynchronous circuit has met the timing requirements after inserting the delay circuit. If it is greater than, you can continue to add a unit delay circuit between the first asynchronous controller and the second asynchronous controller, so that the newly added unit delay circuit and the previously added unit delay circuit are connected in series between the first asynchronous controller and the second asynchronous controller between the two asynchronous controllers until the timing requirements are met. Alternatively, the circuit design of the functional circuit 54 can also be optimized to ensure that the first data propagation time period td1 is not greater than the first clock propagation difference Δtc.
图6示出了根据本公开的一些实施例的顺序电路600的时钟信号传播示意框图。在一个实施例中,处理器对第一异步控制器62进行设置,定义一个源时钟名字为clk1。该源时钟的周期为30ns,波形形状为0ns上升,2ns处下降,定义点为第一异步控制器生成click脉冲的信号线。处理器对第二异步控制器64进行设置,定义一个子时钟名为clk2,其时钟来源为上一级时钟,即第一异步控制器62的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第二异步控制器64生成click脉冲的信号线。类似地,处理器对第三异步控制器66进行设置,定义一个子时钟名为CLK3,其时钟来源为第二异步控制器64的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第三异步控制器66生成click脉冲的信号线。以此类推,对第n个click单元产生的本地脉冲信号,处理器将其声明成一个从第n-1个时钟产生的子时钟即可。FIG. 6 shows a schematic block diagram of clock signal propagation in a sequential circuit 600 according to some embodiments of the present disclosure. In one embodiment, the processor configures the first asynchronous controller 62 to define a source clock named clk1. The period of the source clock is 30 ns, the waveform shape is rising at 0 ns and falling at 2 ns, and the defined point is the signal line on which the first asynchronous controller generates the click pulse. The processor sets the second asynchronous controller 64, defines a sub-clock named clk2, and its clock source is the upper-level clock, that is, the clock terminal of the phase register of the first asynchronous controller 62, and the offset is the upper-level clock The clock is shifted backward by 0.01 ns, and the defined point is the signal line where the second asynchronous controller 64 generates the click pulse. Similarly, the processor sets the third asynchronous controller 66 to define a sub-clock called CLK3, whose clock source is the clock terminal of the phase register of the second asynchronous controller 64, and whose offset is backward from the previous clock Moved by 0.01 ns, the defined point is the signal line where the third asynchronous controller 66 generates the click pulse. By analogy, for the local pulse signal generated by the nth click unit, the processor can declare it as a sub-clock generated from the n-1th clock.
上文描述了顺序异步电路的时序情形。然而异步电路并不仅包括顺序异步电路,而是还可以包括其它类型的异步电路,例如非顺序流水线电路和条件选择异步电路等。图7示出了根据本公开的一些实施例的非顺序异步电路700的时钟信号传播示意框图。非顺序异步电路700例如包括第M异步控制器72、第M+1异步控制器74和第N异步控制器76,其中M表示大于0的整数,N表示大于M的整数。为了便于描述,在图7中未示出与异步控制器耦合的时序逻辑器件,然而可以理解非顺序异步电路700包括与异步控制器对应的时序逻辑器件。第M异步控制器72可以接收来自上游器件的请求信号,并且第M+1异步控制器74可以接收来自第M异步控制器72的请求信号。第M异步控制器72和第M+1异步控制器74可以与图6中的第一异步控制器62和第二异步控制器64的操作相似,在此不再赘述。在一些实施例中,在第M异步控制器72和第N异步控制器76之间可以级联一个或多个异步控制器,例如第M+1异步控制器。在一些实施例中,可以没有第M+1异步控制器,第N异步控制器直接级联在第M控制器之后。The timing situation for sequential asynchronous circuits was described above. However, asynchronous circuits do not only include sequential asynchronous circuits, but may also include other types of asynchronous circuits, such as non-sequential pipeline circuits and conditional selection asynchronous circuits. FIG. 7 shows a schematic block diagram of clock signal propagation in a non-sequential asynchronous circuit 700 according to some embodiments of the present disclosure. The non-sequential asynchronous circuit 700 includes, for example, an Mth asynchronous controller 72 , an M+1th asynchronous controller 74 and an Nth asynchronous controller 76 , where M represents an integer greater than 0, and N represents an integer greater than M. For ease of description, the sequential logic device coupled with the asynchronous controller is not shown in FIG. 7 , but it can be understood that the non-sequential asynchronous circuit 700 includes a sequential logic device corresponding to the asynchronous controller. The Mth asynchronous controller 72 may receive a request signal from an upstream device, and the M+1th asynchronous controller 74 may receive a request signal from the Mth asynchronous controller 72 . Operations of the Mth asynchronous controller 72 and the M+1th asynchronous controller 74 may be similar to those of the first asynchronous controller 62 and the second asynchronous controller 64 in FIG. 6 , and will not be repeated here. In some embodiments, one or more asynchronous controllers may be cascaded between the Mth asynchronous controller 72 and the Nth asynchronous controller 76, for example, the M+1th asynchronous controller. In some embodiments, there may be no M+1th asynchronous controller, and the Nth asynchronous controller is directly cascaded after the Mth controller.
与图6不同,第N异步控制器76并未级联到下游器件,而是耦合至第M异步控制器72。换言之,第M异步控制器72的脉冲信号的输出还取决于第N异步控制器的请求信号。因此,图7中的电路构成了非顺序的异步电路。在一个实施例中,处理器将异步电路的第N异步控制器生成的第N脉冲信号确定为第N时钟信号,其中第一异步控制器至第N异步控制器逐级耦合,第一异步控制器至第N异步控制器中的任意两个相邻异步控制器彼此之间偏移第一预定时间量,第N异步控制器的输出耦合至第M异步控制器的输入,其中N表示大于M的整数。处理器继而确定确定时序周期P,其中P表示N与M之间的差值。Different from FIG. 6 , the Nth asynchronous controller 76 is not cascaded to downstream devices, but is coupled to the Mth asynchronous controller 72 . In other words, the output of the pulse signal of the Mth asynchronous controller 72 also depends on the request signal of the Nth asynchronous controller. Therefore, the circuit in Fig. 7 constitutes a non-sequential asynchronous circuit. In one embodiment, the processor determines the Nth pulse signal generated by the Nth asynchronous controller of the asynchronous circuit as the Nth clock signal, wherein the first asynchronous controller is coupled to the Nth asynchronous controller in stages, and the first asynchronous controller Any two adjacent asynchronous controllers from the Nth asynchronous controller to the Nth asynchronous controller are offset from each other by a first predetermined amount of time, the output of the Nth asynchronous controller is coupled to the input of the Mth asynchronous controller, where N means greater than M an integer of . The processor then determines the timing period P, where P represents the difference between N and M.
在一个实施例中,流水线中第N异步控制器对应的寄存器要发送数据给第M异步控制器对应的寄存器,这是一个非顺序的数据传输。在此情形下,正确的建立时间检查应该在第M异步控制器72的第N个脉冲和第N异步控制器76的第M个脉冲之间进行。在常规的EDA时序分析中,建立时间检查会检查第M异步控制器72的第一个脉冲和第N异步控制器76的第一个脉冲,造成时序分析的错误。为了修正此类时序分析,在本公开的一些实施例中,处理器在EDA时序分析中将非顺序数据传输约束设置为多周期的时序分析,以保证时序分析的正确性。时序周期的周期数由发送阶段和接收阶段共同决定。当发送异步控制器为N并且接收异步控制器为M时,时序周期P为N-M。例如,当N=3并且M=1时,处理器可以确定周期数P为N-M=2。在此基础之上,处理器基于时序周期P,确定第N异步控制器和第M异步控制器之间的延迟设置。例如,当第N异步控制器传输到第M异步控制器的请求使得第M异步控制器的click信号早于从与第N异步控制器对应的时序逻辑器件传输至与第M异步 控制器对应的时序逻辑器件的数据信号到达与第M异步控制器对应的时序逻辑器件时,可以在第N异步控制器和第M异步控制器之间添加延迟电路。添加方式与上面针对图6所描述的添加方式相似,在此不再赘述。遵循这个原则,可以对所有非顺序传输的数据通路进行时序约束,保证其正确性。In one embodiment, the register corresponding to the Nth asynchronous controller in the pipeline needs to send data to the register corresponding to the Mth asynchronous controller, which is a non-sequential data transmission. In this case, a correct settling time check should be done between the Nth pulse of the Mth asynchronous controller 72 and the Mth pulse of the Nth asynchronous controller 76 . In conventional EDA timing analysis, the setup time check will check the first pulse of the Mth asynchronous controller 72 and the first pulse of the Nth asynchronous controller 76 , resulting in timing analysis errors. In order to correct this type of timing analysis, in some embodiments of the present disclosure, the processor sets non-sequential data transmission constraints as multi-cycle timing analysis in the EDA timing analysis, so as to ensure the correctness of the timing analysis. The number of cycles of the timing cycle is jointly determined by the sending phase and the receiving phase. When the sending asynchronous controller is N and the receiving asynchronous controller is M, the timing cycle P is N-M. For example, when N=3 and M=1, the processor may determine the number of cycles P to be N-M=2. On this basis, the processor determines the delay setting between the Nth asynchronous controller and the Mth asynchronous controller based on the timing cycle P. For example, when the request transmitted from the Nth asynchronous controller to the Mth asynchronous controller causes the click signal of the Mth asynchronous controller to be transmitted from the sequential logic device corresponding to the Nth asynchronous controller to the corresponding to the Mth asynchronous controller When the data signal of the sequential logic device reaches the sequential logic device corresponding to the Mth asynchronous controller, a delay circuit may be added between the Nth asynchronous controller and the Mth asynchronous controller. The adding method is similar to that described above with respect to FIG. 6 , and will not be repeated here. Following this principle, timing constraints can be imposed on all non-sequentially transmitted data paths to ensure their correctness.
在一个实施例中,处理器可以对第M异步控制器进行设置,定义一个源时钟名字为clkm,周期为30ns,波形形状为0ns上升,2ns处下降,定义点为第M异步控制器生成click脉冲的信号线。处理器对第M+1异步控制器进行设置,定义一个子时钟名为clkm+1,其时钟来源为上一级时钟,即第M异步控制器的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第M+1异步控制器生成click脉冲的信号线。类似地,处理器对第N异步控制器定义一个子时钟名为clkn,其时钟来源为第N-1异步控制器中的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第N异步控制器生成click脉冲的信号线。对第N异步控制器到第M异步控制器的时序分析,处理器设置一个多周期的时序检查,从clkn到clkm的时钟检查设置为N-M个周期,其规则为多周期时序分析的周期数由发送阶段和接收阶段共同决定。当发送阶段为N,接收阶段为M时,多周期时序分析数为N-M。In one embodiment, the processor can set the Mth asynchronous controller, define a source clock name as clkm, the cycle is 30ns, the waveform shape is 0ns rising, 2ns falling, the definition point is that the Mth asynchronous controller generates click Pulse signal line. The processor sets the M+1th asynchronous controller, defines a sub-clock named clkm+1, and its clock source is the upper-level clock, that is, the clock terminal of the phase register of the Mth asynchronous controller, and the offset is the upper The primary clock moves backward by 0.01 ns, and the defined point is the signal line where the M+1th asynchronous controller generates the click pulse. Similarly, the processor defines a sub-clock named clkn for the Nth asynchronous controller, its clock source is the clock terminal of the phase register in the N-1th asynchronous controller, and the offset is 0.01 backwards from the upper-level clock ns, the definition point is the signal line where the Nth asynchronous controller generates the click pulse. For the timing analysis of the Nth asynchronous controller to the Mth asynchronous controller, the processor sets a multi-cycle timing check, and the clock check from clkn to clkm is set to N-M cycles, and the rule is that the number of cycles of the multi-cycle timing analysis is given by The sending phase and the receiving phase are jointly determined. When the sending phase is N and the receiving phase is M, the number of multi-cycle timing analysis is N-M.
如上所述,除了上述提出的常规数据流控制器外,在实际的异步电路设计中可能还存在着更复杂的数据流控制,如条件选择控制复用器(Multiplexer,MUX)和解复用器(Demultiplexer,DEMUX)。对于单输入多输出的条件选择异步电路而言,需要保证选择信号在有效数据到达之前有效即可,这个可以延时匹配来保证。而对于多个输入和一个输出的条件选择异步电路,本地脉冲click可以由任意一个输入的req信号来触发产生,这些不同输入的延时可能是不同的,导致click脉冲产生的时间点是不固定的。因此,在本公开的一些实施例中可以块在同一个端口上定义多个时钟,后定义的时钟并不会覆盖之前存在的时钟,然后将多个时钟与不同的输入一一对应,根据不同输入的延时来决定对应子时钟与源时钟的相位关系,从而覆盖所有输入的时序关系。然而,实际上定义在同一个端口的多个时钟在物理上是不可能同时存在的,因此还需要将物理上不会同时存在的时钟分组,打断它们之间的时序分析。通过条件选择数据流约束,可以对条件选择控制器进行时序分析。As mentioned above, in addition to the conventional data flow controller proposed above, there may be more complex data flow control in the actual asynchronous circuit design, such as conditional selection control multiplexer (Mux) and demultiplexer ( Demultiplexer, DEMUX). For the single-input multiple-output conditional selection asynchronous circuit, it is necessary to ensure that the selection signal is valid before the valid data arrives, which can be guaranteed by delay matching. For multiple inputs and one output conditionally selected asynchronous circuit, the local pulse click can be triggered by any input req signal, and the delays of these different inputs may be different, resulting in the timing of click pulse generation is not fixed of. Therefore, in some embodiments of the present disclosure, multiple clocks can be defined on the same port, and the clocks defined later will not overwrite the existing clocks, and then multiple clocks are one-to-one corresponding to different inputs, according to different The input delay determines the phase relationship between the corresponding sub-clock and the source clock, thereby covering all input timing relationships. However, it is physically impossible for multiple clocks defined on the same port to exist at the same time, so it is necessary to group clocks that do not physically exist at the same time to interrupt the timing analysis between them. Through the conditional selection data flow constraints, the timing analysis of the conditional selection controller can be performed.
图8示出了根据本公开的一些实施例的条件选择电路800的时钟信号传播示意框图。条件选择电路800例如包括第一异步控制器82、第二异步控制器84和第三异步控制器86。为了便于描述,在图8中未示出与异步控制器耦合的时序逻辑器件,然而可以理解条件选择电路800包括与异步控制器对应的时序逻辑器件。第一异步控制器82可以接收来自上游器件的请求信号,并且第二异步控制器84和第三异步控制器86均可以接收来自第一异步控制器82的请求信号。在一个实施例中,处理器对第一异步控制器82进行设置,定义一个源时钟名字为clk1,周期为30ns,波形形状为0ns上升,2ns处下降,定义点为第一异步控制器82生成click脉冲的信号线。处理器对第二异步控制器84进行设置,定义一个子时钟名为clk2,其时钟来源为上一级时钟,即第一异步控制器82中的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第二异步控制器84生成click脉冲的信号线。类似地,处理器针对第三异步控制器86定义一个子时钟名为clk3,其时钟来源为第一异步控制器82中的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,定义点为第三异步控制器86生成click脉冲的信号线。此外第三异步控制器86定义第二个子时钟名为clk4而不覆盖clk3,其时钟来源为第二异步控制器84中的相位寄存器的时钟端,偏移量为上一级时钟向后移动0.01ns,并且定义点与clk3一致。同时将时钟信号clk3与clk4设置为物理上不会同时存在的 时钟分组,打断两个时钟之间的时序分析。通过上述方式,可以对条件选择异步电路的时序也进行分析。例如,处理器可以确定在第一异步控制器82和第二异步控制器84或第三异步控制器86之间的延迟设置。例如,在第一异步控制器82和第二异步控制器84或第三异步控制器86之间是否需要插入延迟电路。延迟电路的插入方式与前面针对图5和图6所述的方式相似,在此不再赘述。FIG. 8 shows a schematic block diagram of clock signal propagation of a condition selection circuit 800 according to some embodiments of the present disclosure. The condition selection circuit 800 includes, for example, a first asynchronous controller 82 , a second asynchronous controller 84 and a third asynchronous controller 86 . For ease of description, the sequential logic device coupled with the asynchronous controller is not shown in FIG. 8 , but it can be understood that the condition selection circuit 800 includes a sequential logic device corresponding to the asynchronous controller. The first asynchronous controller 82 can receive request signals from upstream devices, and both the second asynchronous controller 84 and the third asynchronous controller 86 can receive request signals from the first asynchronous controller 82 . In one embodiment, the processor sets the first asynchronous controller 82, defines a source clock name as clk1, the cycle is 30ns, the waveform shape is 0ns rising, 2ns falling, the definition point is generated by the first asynchronous controller 82 The signal line of the click pulse. The processor sets the second asynchronous controller 84, defines a sub-clock called clk2, and its clock source is the upper-level clock, that is, the clock terminal of the phase register in the first asynchronous controller 82, and the offset is the last The stage clock is shifted backward by 0.01 ns, and the defined point is the signal line where the second asynchronous controller 84 generates the click pulse. Similarly, the processor defines a sub-clock named clk3 for the third asynchronous controller 86, the clock source of which is the clock terminal of the phase register in the first asynchronous controller 82, and the offset is 0.01 backward shifted by the upper-level clock ns, the defined point is the signal line on which the third asynchronous controller 86 generates the click pulse. In addition, the third asynchronous controller 86 defines a second sub-clock called clk4 instead of covering clk3, and its clock source is the clock terminal of the phase register in the second asynchronous controller 84, and the offset is 0.01 backwards from the previous clock ns, and the definition point is consistent with clk3. At the same time, the clock signals clk3 and clk4 are set as clock groups that physically do not exist at the same time, interrupting the timing analysis between the two clocks. Through the above method, the timing of the conditionally selected asynchronous circuit can also be analyzed. For example, the processor may determine a delay setting between the first asynchronous controller 82 and the second asynchronous controller 84 or the third asynchronous controller 86 . For example, whether a delay circuit needs to be inserted between the first asynchronous controller 82 and the second asynchronous controller 84 or the third asynchronous controller 86 . The way of inserting the delay circuit is similar to that described above with respect to FIG. 5 and FIG. 6 , and will not be repeated here.
另一方面,从第三异步控制器86的角度而言,其不仅耦合至第二异步控制器84,也耦合至第一异步控制器82。在一个实施例中,可以将来自第一异步控制器82和第二异步控制器84的请求所对应生成的不同脉冲信号确定为不同的时钟信号,并且每个时钟信号都相对于上一级偏移一个预定时间量。由于物理实现上并不会同时存在两个脉冲或是时钟信号,因此可以将不同的时钟信号指派至不同的时钟信号组。处理器继而在不同的分组中,分别计算每组的时钟信号传播延迟并且如上所述地分析脉冲信号与数据信号的现有关系,以确定异步控制器之间的延迟设置。由此,可以对条件选择异步电路进行正确的时序分析。On the other hand, from the perspective of the third asynchronous controller 86 , it is not only coupled to the second asynchronous controller 84 but also coupled to the first asynchronous controller 82 . In one embodiment, the different pulse signals corresponding to the requests from the first asynchronous controller 82 and the second asynchronous controller 84 can be determined as different clock signals, and each clock signal is offset relative to the upper stage Shift by a predetermined amount of time. Since two pulses or clock signals do not exist at the same time in physical implementation, different clock signals can be assigned to different clock signal groups. The processor then calculates the clock signal propagation delay for each group separately in the different groups and analyzes the existing relationship of the pulse signal to the data signal as described above to determine the delay setting between the asynchronous controllers. Thus, correct timing analysis can be performed on conditionally selected asynchronous circuits.
图9示出了根据本公开的另一些实施例的异步控制器900的示意电路图。异步控制器900可以应用于调节异步电路中的单输入多输出的条件异步控制器。在一个实施例中,异步控制器900具有第一异或门91、第二异或门96、第一同或门92、第二同或门93、第三同或门99、与门94、第一相位寄存器95、第二相位寄存器97和第三相位寄存器98。第一异或门91、第一同或门92、第二同或门93和与门94被配置为产生本地脉冲信号。该脉冲信号会驱动相位寄存器95、97、98和时序逻辑器件,以用于缓存数据和开始下一次的握手协议。当上游器件需要发送有效数据时会将InA_req信号进行一次翻转。该输入请求信号InA_req与输入确认信号InA_ack信号在第一异或门91处进行异或操作产生一个高电平。第一下游器件(例如第二异步控制器26)接收到异步控制器900发送的有效数据时会将输出确认信号OutB_ack翻转。该信号与输出请求信号OutB_req在第一同或门92处进行同或得到高电平。类似地,第二下游器件接收到异步控制器900发送的有效数据时会将输出确认信号OutC_ack翻转。该信号与输出请求信号OutC_req在第一同或门92处进行同或得到高电平。当同时满足输入请求信号InA_req不等于输入确认信号InA_ack、输出请求信号OutB_req等于输出确认信号OutB_ack并且输出请求信号OutC_req等于输出确认信号OutC_ack时,与门97会产生一个拉高的click信号作为时序逻辑器件的时钟信号,用来捕获和存储数据。click信号会将第一相位寄存器95翻转以改变输入确认信号InA_ack的值。此外,基于sel信号、OutB_req信号和OutC_req,click信号会将相位寄存器97或98的输出改变以改变输出请求信号OutB_req或OutC_req的值,从而完成一次握手协议。此外,这种握手协议是两相的,即输入确认信号In_Req信号的每一次翻转都代表着一个有效数据的到来,而不是高电平才有效。为了确保异步电路的正确操作,选择信号sel可以在数据信号达到时序逻辑门之前到达异步控制器900。虽然在图9中示出了一种具体的异步控制器的示意电路图,但是本公开不限于此,也可以使用其它异步控制器。FIG. 9 shows a schematic circuit diagram of an asynchronous controller 900 according to other embodiments of the present disclosure. The asynchronous controller 900 can be applied to a conditional asynchronous controller that regulates single-input multiple-output in an asynchronous circuit. In one embodiment, the asynchronous controller 900 has a first XOR gate 91, a second XOR gate 96, a first XOR gate 92, a second XOR gate 93, a third XOR gate 99, an AND gate 94, A first phase register 95 , a second phase register 97 and a third phase register 98 . The first XOR gate 91 , the first XOR gate 92 , the second XOR gate 93 and the AND gate 94 are configured to generate local pulse signals. The pulse signal will drive the phase registers 95, 97, 98 and sequential logic devices for buffering data and starting the next handshake protocol. When the upstream device needs to send valid data, it will flip the InA_req signal once. The input request signal InA_req and the input acknowledgment signal InA_ack are subjected to an exclusive OR operation at the first exclusive OR gate 91 to generate a high level. When the first downstream device (such as the second asynchronous controller 26 ) receives the valid data sent by the asynchronous controller 900 , it will invert the output acknowledgment signal OutB_ack. This signal is NORed with the output request signal OutB_req at the first NOR gate 92 to obtain a high level. Similarly, when the second downstream device receives valid data sent by the asynchronous controller 900 , it will toggle the output acknowledgment signal OutC_ack. This signal is NORed with the output request signal OutC_req at the first NOR gate 92 to obtain a high level. When the input request signal InA_req is not equal to the input confirmation signal InA_ack, the output request signal OutB_req is equal to the output confirmation signal OutB_ack and the output request signal OutC_req is equal to the output confirmation signal OutC_ack, the AND gate 97 will generate a high click signal as a sequential logic device The clock signal used to capture and store data. The click signal will flip the first phase register 95 to change the value of the input acknowledgment signal InA_ack. In addition, based on the sel signal, OutB_req signal and OutC_req, the click signal will change the output of the phase register 97 or 98 to change the value of the output request signal OutB_req or OutC_req, thereby completing a handshake protocol. In addition, this handshake protocol is two-phase, that is, each flip of the input confirmation signal In_Req represents the arrival of a valid data, rather than a high level. To ensure proper operation of the asynchronous circuit, the select signal sel may reach the asynchronous controller 900 before the data signal reaches the sequential logic gates. Although a schematic circuit diagram of a specific asynchronous controller is shown in FIG. 9 , the present disclosure is not limited thereto, and other asynchronous controllers may also be used.
图10示出了根据本公开的另一些实施例的异步控制器1000的示意电路图。异步控制器1000可以应用于调节异步电路中的多输入单输出的条件异步控制器。在一个实施例中,异步控制器1000具有第一异或门101、第二异或门102、第一同或门103、第二与门104、第二与门105、或门106、第一相位寄存器107、第三异或门108、第二相位寄存器109、第二同或门110和第三相位寄存器111。第一异或门101、第二异或门102、第一同或门103、第二与门104、第二与门105和或门106被配置为产生本地脉冲信号。该脉冲信号会驱动相位寄存 器107、109、111和时序逻辑器件,以用于缓存数据和开始下一次的握手协议。当上游器件需要发送有效数据时会将InA_req或InB_req信号进行一次翻转。该输入请求信号InA_req或InB_req与输入确认信号InA_ack或InB_ack信号在第一异或门101或第二异或门102处进行异或操作产生一个高电平。下游器件(例如第二异步控制器26)接收到异步控制器1000发送的有效数据时会将输出确认信号OutC_ack翻转。该信号与输出请求信号OutC_req在第一同或门103处进行同或得到高电平。基于第一与门104或第二与门105的任一高输出电平,或门107会产生一个拉高的click信号作为时序逻辑器件的时钟信号,用来捕获和存储数据。click信号会将第三相位寄存器111翻转以改变输入确认信号InA_ack的值。此外,基于sel信号、InA_ack信号和InB_ack,click信号会将相位寄存器107或109翻转以改变输入确认信号InA_ack或InB_ack的值,从而完成一次握手协议。为了确保异步电路的正确操作,选择信号sel可以在数据信号达到时序逻辑门之前到达异步控制器1000。Fig. 10 shows a schematic circuit diagram of an asynchronous controller 1000 according to other embodiments of the present disclosure. The asynchronous controller 1000 can be applied to a conditional asynchronous controller that regulates multiple inputs and single outputs in an asynchronous circuit. In one embodiment, the asynchronous controller 1000 has a first exclusive OR gate 101, a second exclusive OR gate 102, a first exclusive OR gate 103, a second AND gate 104, a second AND gate 105, an OR gate 106, a first Phase register 107 , third XOR gate 108 , second phase register 109 , second XOR gate 110 and third phase register 111 . The first XOR gate 101 , the second XOR gate 102 , the first XOR gate 103 , the second AND gate 104 , the second AND gate 105 and the OR gate 106 are configured to generate local pulse signals. The pulse signal will drive the phase registers 107, 109, 111 and sequential logic devices for buffering data and starting the next handshake protocol. When the upstream device needs to send valid data, it will flip the InA_req or InB_req signal once. The input request signal InA_req or InB_req and the input acknowledgment signal InA_ack or InB_ack are subjected to an exclusive OR operation at the first exclusive OR gate 101 or the second exclusive OR gate 102 to generate a high level. When a downstream device (such as the second asynchronous controller 26 ) receives valid data sent by the asynchronous controller 1000 , it will reverse the output acknowledgment signal OutC_ack. This signal is NORed with the output request signal OutC_req at the first NOR gate 103 to obtain a high level. Based on any high output level of the first AND gate 104 or the second AND gate 105 , the OR gate 107 will generate a pulled high click signal as a clock signal of the sequential logic device for capturing and storing data. The click signal will flip the third phase register 111 to change the value of the input acknowledgment signal InA_ack. In addition, based on the sel signal, InA_ack signal and InB_ack signal, the click signal will flip the phase register 107 or 109 to change the value of the input acknowledgment signal InA_ack or InB_ack, thereby completing a handshake protocol. To ensure proper operation of the asynchronous circuit, the select signal sel may reach the asynchronous controller 1000 before the data signal reaches the sequential logic gates.
在一个实施例中,在处理器完成时序分析之后,处理器可以对异步电路进行综合(synthesis)。由于异步控制器存在环路,因此综合后的电路可能和预期不同,影响异步电路的功能。为了防止综合后的电路可能和预期不同并且防止影响异步电路的功能,处理器在综合处理之前可以将异步电路设置为不被优化,以在综合期间维持异步电路的结构。在一个实施例中,当使用EDA工具对异步电路进行综合时,可以使用常规的EDA工具对异步电路进行综合和实现。该过程可以与综合同步电路基本一致,也可以与同步电路进行混合设计。In one embodiment, after the processor completes the timing analysis, the processor may synthesize the asynchronous circuit. Because there is a loop in the asynchronous controller, the synthesized circuit may be different from the expected one, affecting the function of the asynchronous circuit. In order to prevent the synthesized circuit from being different than expected and from affecting the function of the asynchronous circuit, the processor may set the asynchronous circuit not to be optimized before the synthesis process, so as to maintain the structure of the asynchronous circuit during synthesis. In one embodiment, when an asynchronous circuit is synthesized using an EDA tool, the asynchronous circuit may be synthesized and implemented using a conventional EDA tool. This process can be basically the same as the integrated synchronous circuit, or it can be mixed with the synchronous circuit.
在一个实施例中,处理器还可以对异步电路进行多工艺角下的时序分析。受到PVT的影响,同一芯片在不同操作条件下的延时都不同,这对异步电路的延时匹配过程是很重要的。而在传播时序约束下,本公开的静态时序分析会针对不同工艺角下的时序模型来分析电路功能,即多角多模分析,确保在任何条件下被约束的电路都能满足时序要求。In one embodiment, the processor can also perform timing analysis on the asynchronous circuit under multiple process corners. Affected by PVT, the same chip has different delays under different operating conditions, which is very important for the delay matching process of asynchronous circuits. Under the constraint of propagation timing, the static timing analysis of the present disclosure will analyze the circuit function for the timing models under different process corners, that is, multi-angle and multi-mode analysis, to ensure that the constrained circuit can meet the timing requirements under any conditions.
在一个实施例中,处理器还可以对脉冲宽度进行选择性地加宽。传播时序约束将异步电路的握手过程视为时钟的传播过程,这个路径上有组合逻辑和寄存器的存在,使得静态时序分析无法得到实际产生的本地脉冲click的脉冲宽度。因此脉冲宽度检查模块在满足其他时序约束后还对异步电路进行了实现后的时序仿真,以确定实际上每一级的click脉冲宽度是否满足寄存器的最小脉冲宽度要求。本地脉冲的宽度由产生脉冲的组合逻辑延时决定,而click控制器的结构保证了这个组合逻辑延时一般都大于寄存器的最小脉冲宽度,无需进行特别处理。在一些情形下,如果展宽本地脉冲的宽度,则处理器可以在click单元中的寄存器输出引脚上加入缓冲单元。缓冲单元所展宽的宽度可以根据实际需要进行选择,本公开对此不加限制。In one embodiment, the processor can also selectively widen the pulse width. Propagation timing constraints regard the handshake process of asynchronous circuits as the clock propagation process. There are combinational logic and registers on this path, so that static timing analysis cannot obtain the pulse width of the actually generated local pulse click. Therefore, the pulse width checking module also performs timing simulation on the asynchronous circuit after other timing constraints are satisfied, to determine whether the click pulse width of each stage actually meets the minimum pulse width requirement of the register. The width of the local pulse is determined by the delay of the combined logic that generates the pulse, and the structure of the click controller ensures that the delay of the combined logic is generally greater than the minimum pulse width of the register, and no special processing is required. In some cases, if the width of the local pulse is stretched, the processor can add a buffer unit on the register output pin in the click unit. The expanded width of the buffer unit can be selected according to actual needs, which is not limited in the present disclosure.
图11示出了根据本公开的根据本公开的一些实施例的方法1100的示意流程图。可以理解,上面针对图1-图10所描述的各个方面可以选择性地应用于方法1100。在1102,将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号。在1104,将异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号。第二异步控制器与第一异步控制器耦合,并且第二时钟信号相对于第一时钟信号偏移第一预定时间量。在1106,生成与第一时钟信号和第二时钟信号对应的第一时钟传播差值。在一个实施例中,生成第一时钟传播差值包括确定第一时钟信号的第一时钟传播时间段和第二时钟信号的第二时钟传播时间段。第一时钟传播时间段表示从第一异步控制器接收到第一输入请求到第一异步控制器生成第一脉冲信号的时间段,第二时钟传播时间段表示从第一异步控制器接收到第一输入请求到第二异步控制器生成第二脉冲信号的时间段。确定第一时钟传播时间段和第二时钟传播时间段之间的第一时钟传播差值。在1108,确定第一时序逻辑门和第二时序逻辑门之间的第一数据传 播时间段。第一时序逻辑门耦合至第一异步控制器并且基于第一脉冲信号进行操作,第二时序逻辑门耦合至第二异步控制器并且基于第二脉冲信号进行操作。在1110,生成与所述第一数据传播时间段和所述第一时钟传播差值相关的延迟报告。在一个实施例中,该方法还包括基于第一时钟传播差值和第一数据传播时间段,确定在第一异步控制器和第二异步控制器之间的延迟设置。FIG. 11 shows a schematic flowchart of a method 1100 according to some embodiments of the present disclosure. It can be understood that the various aspects described above with respect to FIGS. 1-10 can be selectively applied to the method 1100 . At 1102, determine the first pulse signal generated by the first asynchronous controller in the asynchronous circuit as the first clock signal. At 1104, determine a second pulse signal generated by a second asynchronous controller in the asynchronous circuit as a second clock signal. A second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is offset by a first predetermined amount of time relative to the first clock signal. At 1106, a first clock propagation difference corresponding to the first clock signal and the second clock signal is generated. In one embodiment, generating the first clock propagation difference includes determining a first clock propagation time period of the first clock signal and a second clock propagation time period of the second clock signal. The first clock propagation time period represents the time period from the first asynchronous controller receiving the first input request to the first asynchronous controller generating the first pulse signal, and the second clock propagation time period represents the time period from the first asynchronous controller receiving the first A time period from an input request to the second asynchronous controller generating the second pulse signal. A first clock propagation difference between the first clock propagation time period and the second clock propagation time period is determined. At 1108, a first data propagation time period between the first sequential logic gate and the second sequential logic gate is determined. The first sequential logic gate is coupled to the first asynchronous controller and operates based on the first pulse signal, and the second sequential logic gate is coupled to the second asynchronous controller and operates based on the second pulse signal. At 1110, generate a delay report related to the first data propagation time period and the first clock propagation difference. In one embodiment, the method further includes determining a delay setting between the first asynchronous controller and the second asynchronous controller based on the first clock propagation difference and the first data propagation time period.
图12示出了根据本公开的一些实施例的电子设备1200的示意框图。电子设备1200可以用于异步电路的设计。电子设备1200包括时钟信号确定单元1202、时钟传播差值确定生成单元1204、数据传播时间段确定单元1206、和延迟报告生成单元1208。时钟信号确定单元1202用于将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号;以及将异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号。第二异步控制器与第一异步控制器耦合,并且第二时钟信号相对于第一时钟信号偏移第一预定时间量。时钟传播差值确定生成单元1204用于生成与所述第一时钟信号和所述第二时钟信号对应的第一时钟传播差值。数据传播时间段确定单元1206用于确定第一时序逻辑器件和第二时序逻辑器件之间的第一数据传播时间段,所述第一时序逻辑器件耦合至所述第一异步控制器并且基于所述第一脉冲信号进行操作,所述第二时序逻辑器件耦合至所述第二异步控制器并且基于所述第二脉冲信号进行操作。延迟报告生成单元1208用于生成与所述第一数据传播时间段和所述第一时钟传播差值相关的延迟报告。FIG. 12 shows a schematic block diagram of an electronic device 1200 according to some embodiments of the present disclosure. Electronic device 1200 may be used in the design of asynchronous circuits. The electronic device 1200 includes a clock signal determination unit 1202 , a clock propagation difference determination generation unit 1204 , a data propagation time period determination unit 1206 , and a delay report generation unit 1208 . The clock signal determination unit 1202 is used to determine the first pulse signal generated by the first asynchronous controller in the asynchronous circuit as the first clock signal; and determine the second pulse signal generated by the second asynchronous controller in the asynchronous circuit as the first clock signal. Two clock signals. A second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is offset by a first predetermined amount of time relative to the first clock signal. The clock propagation difference determining generating unit 1204 is configured to generate a first clock propagation difference corresponding to the first clock signal and the second clock signal. The data propagation time period determining unit 1206 is configured to determine a first data propagation time period between the first sequential logic device and the second sequential logic device, the first sequential logic device is coupled to the first asynchronous controller and based on the The second sequential logic device is coupled to the second asynchronous controller and operates based on the second pulse signal. The delay report generating unit 1208 is configured to generate a delay report related to the first data propagation time period and the first clock propagation difference.
图13示出了可以用来实施本公开的一些实施例的示例设备的框图。设备1300可以用于实现电子设备1200。如图所示,设备1300包括计算单元1301,其可以根据存储在随机存取存储器(RAM)和/或只读存储器(ROM)1302的计算机程序指令或者从存储单元1307加载到RAM和/或ROM 1302中的计算机程序指令,来执行各种适当的动作和处理。在RAM和/或ROM 1302中,还可存储设备1300操作所需的各种程序和数据。计算单元1301和RAM和/或ROM 1302通过总线1303彼此相连。输入/输出(I/O)接口1304也连接至总线1303。Figure 13 shows a block diagram of an example device that may be used to implement some embodiments of the present disclosure. The device 1300 may be used to implement the electronic device 1200 . As shown, device 1300 includes computing unit 1301, which may be loaded into RAM and/or ROM according to computer program instructions stored in random access memory (RAM) and/or read only memory (ROM) 1302 or from storage unit 1307 1302 to perform various appropriate actions and processes. In the RAM and/or ROM 1302, various programs and data necessary for the operation of the device 1300 may also be stored. The computing unit 1301 and the RAM and/or ROM 1302 are connected to each other via a bus 1303. An input/output (I/O) interface 1304 is also connected to the bus 1303 .
设备1300中的多个部件连接至I/O接口1304,包括:输入单元1305,例如键盘、鼠标等;输出单元1306,例如各种类型的显示器、扬声器等;存储单元1307,例如磁盘、光盘等;以及通信单元1308,例如网卡、调制解调器、无线通信收发机等。通信单元1308允许设备1300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。Multiple components in the device 1300 are connected to the I/O interface 1304, including: an input unit 1305, such as a keyboard, a mouse, etc.; an output unit 1306, such as various types of displays, speakers, etc.; a storage unit 1307, such as a magnetic disk, an optical disk, etc. ; and a communication unit 1308, such as a network card, a modem, a wireless communication transceiver, and the like. The communication unit 1308 allows the device 1300 to exchange information/data with other devices over a computer network such as the Internet and/or various telecommunication networks.
计算单元1301可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1301的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1301执行上文所描述的各个方法和处理,例如方法1100。例如,在一些实施例中,方法1100可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1307。在一些实施例中,计算机程序的部分或者全部可以经由RAM和/或ROM和/或通信单元1308而被载入和/或安装到设备1300上。当计算机程序加载到RAM和/或ROM并由计算单元1301执行时,可以执行上文描述的方法1100的一个或多个步骤。备选地,在其他实施例中,计算单元1301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法1100。The computing unit 1301 may be various general-purpose and/or special-purpose processing components having processing and computing capabilities. Some examples of computing units 1301 include, but are not limited to, central processing units (CPUs), graphics processing units (GPUs), various dedicated artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, digital signal processing processor (DSP), and any suitable processor, controller, microcontroller, etc. The calculation unit 1301 executes various methods and processes described above, such as the method 1100 . For example, in some embodiments, method 1100 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as storage unit 1307 . In some embodiments, part or all of the computer program may be loaded and/or installed onto device 1300 via RAM and/or ROM and/or communication unit 1308 . When a computer program is loaded into RAM and/or ROM and executed by computing unit 1301, one or more steps of method 1100 described above may be performed. Alternatively, in other embodiments, the computing unit 1301 may be configured to execute the method 1100 in any other suitable manner (for example, by means of firmware).
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实 施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。Program codes for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special purpose computer, or other programmable data processing devices, so that the program codes, when executed by the processor or controller, make the functions/functions specified in the flow diagrams and/or block diagrams Action is implemented. The program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。In addition, while operations are depicted in a particular order, this should be understood to require that such operations be performed in the particular order shown, or in sequential order, or that all illustrated operations should be performed to achieve desirable results. Under certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while the above discussion contains several specific implementation details, these should not be construed as limitations on the scope of the disclosure. Certain features that are described in the context of separate embodiments can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination.
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are merely example forms of implementing the claims.

Claims (26)

  1. 一种用于设计异步电路的方法,包括:A method for designing an asynchronous circuit comprising:
    将所述异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号;determining the first pulse signal generated by the first asynchronous controller in the asynchronous circuit as the first clock signal;
    将所述异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号,所述第二异步控制器与所述第一异步控制器耦合,并且所述第二时钟信号相对于所述第一时钟信号偏移第一预定时间量;determining a second pulse signal generated by a second asynchronous controller in the asynchronous circuit as a second clock signal, the second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is relatively offsetting the first clock signal by a first predetermined amount of time;
    生成与所述第一时钟信号和所述第二时钟信号对应的第一时钟传播差值;generating a first clock propagation difference corresponding to the first clock signal and the second clock signal;
    确定第一时序逻辑器件和第二时序逻辑器件之间的第一数据传播时间段,所述第一时序逻辑器件耦合至所述第一异步控制器并且基于所述第一脉冲信号进行操作,所述第二时序逻辑器件耦合至所述第二异步控制器并且基于所述第二脉冲信号进行操作;以及determining a first data propagation time period between a first sequential logic device coupled to the first asynchronous controller and operating based on the first pulse signal, and a second sequential logic device, the the second sequential logic device is coupled to the second asynchronous controller and operates based on the second pulse signal; and
    生成与所述第一数据传播时间段和所述第一时钟传播差值相关的延迟报告。A delay report is generated relating to the first data propagation time period and the first clock propagation difference.
  2. 根据权利要求1所述的方法,其中生成与所述第一时钟信号和所述第二时钟信号对应的第一时钟传播差值包括:The method of claim 1, wherein generating a first clock propagation difference corresponding to the first clock signal and the second clock signal comprises:
    确定所述第一时钟信号的第一时钟传播时间段和所述第二时钟信号的第二时钟传播时间段,所述第一时钟传播时间段表示从所述第一异步控制器接收到第一输入请求到所述第一异步控制器生成所述第一脉冲信号的时间段,所述第二时钟传播时间段表示从所述第一异步控制器接收到第一输入请求到所述第二异步控制器生成所述第二脉冲信号的时间段;以及determining a first clock propagation time period of the first clock signal and a second clock propagation time period of the second clock signal, the first clock propagation time period representing a first clock propagation time period received from the first asynchronous controller The time period from the input request to the generation of the first pulse signal by the first asynchronous controller, the second clock propagation time period represents the time period from receiving the first input request to the second asynchronous controller from the first asynchronous controller a time period during which the controller generates the second pulse signal; and
    确定所述第一时钟传播时间段和所述第二时钟传播时间段之间的所述第一时钟传播差值。The first clock propagation difference between the first clock propagation time period and the second clock propagation time period is determined.
  3. 根据权利要求1或2所述的方法,其中生成与所述第一数据传播时间段和所述第一时钟传播差值相关的延迟报告包括:The method of claim 1 or 2, wherein generating a delay report related to the first data propagation time period and the first clock propagation difference comprises:
    生成表示所述第一数据传播时间段的第一数据传播时间值;generating a first data propagation time value representing the first data propagation time period;
    将所述第一数据传播时间值和所述第一时钟传播差值相减以确定第一延迟值;以及subtracting the first data propagation time value and the first clock propagation difference value to determine a first delay value; and
    生成包括所述第一延迟值的所述延迟报告。The delay report including the first delay value is generated.
  4. 根据权利要求1或2所述的方法,其中生成与所述第一数据传播时间段和所述第一时钟传播差值相关的延迟报告包括:The method of claim 1 or 2, wherein generating a delay report related to the first data propagation time period and the first clock propagation difference comprises:
    生成表示所述第一数据传播时间段的第一数据传播时间值;generating a first data propagation time value representing the first data propagation time period;
    将所述第一数据传播时间值和所述第一时钟传播差值进行比较以生成比较结果;以及comparing the first data propagation time value and the first clock propagation difference value to generate a comparison result; and
    生成包括所述比较结果的所述延迟报告。The latency report is generated including results of the comparison.
  5. 根据权利要求1-4中任一项所述的方法,还包括:The method according to any one of claims 1-4, further comprising:
    基于所述第一时钟传播差值和所述第一数据传播时间段,确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置。A delay setting between the first asynchronous controller and the second asynchronous controller is determined based on the first clock propagation difference and the first data propagation time period.
  6. 根据权利要求5所述的方法,其中基于所述第一时钟传播差值和所述第一数据传播时间段,确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置包括:The method of claim 5, wherein determining a delay between the first asynchronous controller and the second asynchronous controller is based on the first clock propagation difference and the first data propagation time period Settings include:
    响应于所述第一数据传播时间段大于所述第一时钟传播差值,在所述第一异步控制器和所述第二异步控制器之间设置延迟电路;或providing a delay circuit between the first asynchronous controller and the second asynchronous controller in response to the first data propagation time period being greater than the first clock propagation difference; or
    响应于所述第一数据传播时间段不大于所述第一时钟传播差值,在所述第一异步控制器和所述第二异步控制器之间不设置延迟电路。In response to the first data propagation time period being not greater than the first clock propagation difference, no delay circuit is provided between the first asynchronous controller and the second asynchronous controller.
  7. 根据权利要求6所述的方法,其中响应于所述第一数据传播时间段大于所述第一时钟 传播差值在所述第一异步控制器和所述第二异步控制器之间设置延迟电路包括:The method of claim 6, wherein a delay circuit is provided between the first asynchronous controller and the second asynchronous controller in response to the first data propagation time period being greater than the first clock propagation difference include:
    确定所述第一时钟传播差值和所述第一数据传播差值之间的第一路径差值;determining a first path difference between the first clock propagation difference and the first data propagation difference;
    确定延迟电路的单位延迟时间段;determining the unit delay period of the delay circuit;
    基于所述第一路径差值和所述单位延迟时间段,设置一个或多个串联的所述延迟电路,使得一个或多个串联的所述延迟电路的总延迟时间段不低于所述第一路径差值。Based on the first path difference and the unit delay period, setting one or more delay circuits in series so that the total delay period of the one or more delay circuits in series is not lower than the first A path difference.
  8. 根据权利要求1-7中任一项所述的方法,还包括:The method according to any one of claims 1-7, further comprising:
    将所述异步电路的第M异步控制器生成的第M脉冲信号确定为第M时钟信号,M表示大于0的整数;Determining the Mth pulse signal generated by the Mth asynchronous controller of the asynchronous circuit as the Mth clock signal, where M represents an integer greater than 0;
    将所述异步电路的第N异步控制器生成的第N脉冲信号确定为第N时钟信号,所述第一异步控制器至所述第N异步控制器逐级耦合,所述第一异步控制器至所述第N异步控制器中的任意两个相邻异步控制器彼此之间偏移所述第一预定时间量,所述第N异步控制器的输出耦合至所述第M异步控制器的输入,其中N表示大于M的整数;The Nth pulse signal generated by the Nth asynchronous controller of the asynchronous circuit is determined as the Nth clock signal, the first asynchronous controller is coupled to the Nth asynchronous controller step by step, and the first asynchronous controller to any two adjacent asynchronous controllers of the Nth asynchronous controller offset from each other by the first predetermined amount of time, the output of the Nth asynchronous controller being coupled to the Mth asynchronous controller's Input, where N represents an integer greater than M;
    确定时序周期P,其中P表示N与M之间的差值;以及determining a timing period P, where P represents the difference between N and M; and
    基于所述时序周期P,确定所述第N异步控制器和所述第M异步控制器之间的延迟设置。Based on the timing period P, a delay setting between the Nth asynchronous controller and the Mth asynchronous controller is determined.
  9. 根据权利要求8所述的方法,其中基于所述时序周期P,确定所述第N异步控制器和所述第M异步控制器之间的延迟设置包括:The method according to claim 8, wherein based on the timing period P, determining a delay setting between the Nth asynchronous controller and the Mth asynchronous controller comprises:
    确定第N时钟信号的第N时钟传播时间段,所述第N时钟传播时间段表示从所述第一异步控制器接收到第一输入请求到所述第N异步控制器生成所述第N脉冲信号的时间段;determining the Nth clock propagation time period of the Nth clock signal, the Nth clock propagation time period representing the first input request received from the first asynchronous controller to the generation of the Nth pulse by the Nth asynchronous controller the time period of the signal;
    确定所述第M异步控制器在生成所述第M时钟信号之后的第P个时序周期中的时钟传播时间段;determining a clock propagation period in a Pth timing cycle after the Mth asynchronous controller generates the Mth clock signal;
    确定所述第N时钟传播时间段和第P个时序周期中的时钟传播时间段之间的第N时钟传播差值;determining an Nth clock propagation difference between the Nth clock propagation time period and the clock propagation time period in the Pth timing cycle;
    确定第N时序逻辑器件和第M时序逻辑器件之间的第N数据传播时间段,所述第N时序逻辑器件耦合至所述第N异步控制器并且基于所述第N脉冲信号进行操作,所述第M时序逻辑器件耦合至所述第M异步控制器并且基于所述第M脉冲信号进行操作;以及determining an Nth data propagation time period between an Nth sequential logic device and an Mth sequential logic device, the Nth sequential logic device being coupled to the Nth asynchronous controller and operating based on the Nth pulse signal, the the Mth sequential logic device is coupled to the Mth asynchronous controller and operates based on the Mth pulse signal; and
    基于所述第N时钟传播时间段和所述第N数据传播时间段,确定在所述第N异步控制器和所述第M异步控制器之间的延迟设置。A delay setting between the Nth asynchronous controller and the Mth asynchronous controller is determined based on the Nth clock propagation time period and the Nth data propagation time period.
  10. 根据权利要求1-9中任一项所述的方法,还包括:The method according to any one of claims 1-9, further comprising:
    在所述异步电路的综合期间维持所述异步电路的结构。The structure of the asynchronous circuit is maintained during synthesis of the asynchronous circuit.
  11. 根据权利要求5-7中任一项所述的方法,其中基于所述第一时钟传播差值和所述第一数据传播时间段确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置包括:The method according to any one of claims 5-7, wherein the first asynchronous controller and the second asynchronous controller are determined based on the first clock propagation difference and the first data propagation time period. Delay settings between switches include:
    基于所述异步电路在不同工艺角下的所述第一时钟传播差值和所述第一数据传播时间段,确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置。determining a delay between the first asynchronous controller and the second asynchronous controller based on the first clock propagation difference and the first data propagation time period of the asynchronous circuit at different process angles set up.
  12. 根据权利要求1-11中任一项所述的方法,还包括:The method according to any one of claims 1-11, further comprising:
    确定所述第一脉冲信号的第一脉冲宽度和所述第二脉冲信号的第二脉冲宽度;以及determining a first pulse width of the first pulse signal and a second pulse width of the second pulse signal; and
    响应于所述第一脉冲宽度或第二脉冲宽度低于脉冲宽度阈值,在所述第一异步控制器或所述第二异步控制器中相应地设置脉冲展宽电路以增宽所述第一脉冲信号或所述第二脉冲信号的宽度。In response to the first pulse width or the second pulse width being lower than a pulse width threshold, a pulse stretching circuit is correspondingly set in the first asynchronous controller or the second asynchronous controller to widen the first pulse signal or the width of the second pulse signal.
  13. 根据权利要求1-12中任一项所述的方法,其中所述异步电路包括单轨异步电路;The method of any one of claims 1-12, wherein the asynchronous circuit comprises a single-rail asynchronous circuit;
    所述第一异步控制器为初始异步控制器;以及said first asynchronous controller is an initial asynchronous controller; and
    所述第一异步控制器和所述第二异步控制器均包括相位解耦控制器。Both the first asynchronous controller and the second asynchronous controller include phase decoupling controllers.
  14. 根据权利要求1-13中任一项所述的方法,其中所述第二异步控制器还耦合至所述异步电路中的第四异步控制器;该方法还包括:The method according to any one of claims 1-13, wherein the second asynchronous controller is further coupled to a fourth asynchronous controller in the asynchronous circuit; the method further comprising:
    将所述第四异步控制器生成的第四脉冲信号确定为第四时钟信号;determining a fourth pulse signal generated by the fourth asynchronous controller as a fourth clock signal;
    将所述第二异步控制器针对来自所述第四异步控制器的请求生成的第二脉冲信号确定为第五时钟信号,所述第五时钟信号相对于所述第四时钟信号偏移第二预定时间量;determining the second pulse signal generated by the second asynchronous controller in response to the request from the fourth asynchronous controller as a fifth clock signal, where the fifth clock signal is shifted by a second relative to the fourth clock signal a predetermined amount of time;
    将所述第二时钟信号指派至第一时钟分组并且将所述第五时钟信号指派至第二时钟分组,所述第二时钟分组不同于所述第一时钟分组;assigning the second clock signal to a first clock grouping and assigning the fifth clock signal to a second clock grouping, the second clock grouping being different from the first clock grouping;
    确定所述第四时钟信号的第五时钟传播时间段和所述第五时钟信号的第五时钟传播时间段,所述第五时钟传播时间段表示从所述第四异步控制器接收到第四输入请求到所述第四异步控制器生成所述第四脉冲信号的时间段,所述第五时钟传播时间段表示从所述第四异步控制器接收到第四输入请求到所述第二异步控制器生成所述第五脉冲信号的时间段;determining a fifth clock propagation time period of the fourth clock signal and a fifth clock propagation time period of the fifth clock signal, the fifth clock propagation time period indicating that a fourth The time period from the input request to the fourth asynchronous controller generating the fourth pulse signal, the fifth clock propagation time period represents the time period from receiving the fourth input request to the second asynchronous controller from the fourth asynchronous controller the time period during which the controller generates the fifth pulse signal;
    确定所述第四时钟传播时间段和所述第五时钟传播时间段之间的第四时钟传播差值;determining a fourth clock propagation difference between the fourth clock propagation period and the fifth clock propagation period;
    确定第四时序逻辑器件和第五时序逻辑器件之间的第四数据传播时间段,所述第四时序逻辑器件耦合至所述第四异步控制器并且基于所述第四脉冲信号进行操作,所述第五时序逻辑器件耦合至所述第二异步控制器并且基于所述第五脉冲信号进行操作;以及determining a fourth data propagation time period between a fourth sequential logic device coupled to the fourth asynchronous controller and operating based on the fourth pulse signal, and a fifth sequential logic device, the the fifth sequential logic device is coupled to the second asynchronous controller and operates based on the fifth pulse signal; and
    基于所述第四时钟传播差值和所述第四数据传播时间段,确定在所述第四异步控制器和所述第二异步控制器之间的延迟设置。A delay setting between the fourth asynchronous controller and the second asynchronous controller is determined based on the fourth clock propagation difference and the fourth data propagation time period.
  15. 一种计算机可读存储介质,存储多个程序,所述多个程序被配置为一个或多个处理器执行,所述多个程序包括用于执行权利要求1-14中任一项所述的方法的指令。A computer-readable storage medium storing a plurality of programs configured to be executed by one or more processors, the plurality of programs including a program for executing the method described in any one of claims 1-14 method directive.
  16. 一种计算机程序产品,所述计算机程序产品包括多个程序,所述多个程序被配置为一个或多个处理器执行,所述多个程序包括用于执行权利要求1-14中任一项所述的方法的指令。A computer program product, the computer program product comprising a plurality of programs, the plurality of programs configured to be executed by one or more processors, the plurality of programs comprising a method for performing any one of claims 1-14 Instructions for the method described.
  17. 一种电子设备,包括:An electronic device comprising:
    一个或多个处理器;以及one or more processors; and
    包括计算机指令的存储器,所述计算机指令在由所述电子设备的所述一个或多个处理器执行时使得所述电子设备执行权利要求1-14中任一项所述的方法。A memory comprising computer instructions which, when executed by the one or more processors of the electronic device, cause the electronic device to perform the method of any one of claims 1-14.
  18. 一种电子设备,包括:An electronic device comprising:
    时钟信号确定单元,用于A clock signal determination unit for
    将异步电路中的第一异步控制器生成的第一脉冲信号确定为第一时钟信号;以及determining a first pulse signal generated by a first asynchronous controller in the asynchronous circuit as a first clock signal; and
    将所述异步电路中的第二异步控制器生成的第二脉冲信号确定为第二时钟信号,所述第二异步控制器与所述第一异步控制器耦合,并且所述第二时钟信号相对于所述第一时钟信号偏移第一预定时间量;determining a second pulse signal generated by a second asynchronous controller in the asynchronous circuit as a second clock signal, the second asynchronous controller is coupled to the first asynchronous controller, and the second clock signal is relatively offsetting the first clock signal by a first predetermined amount of time;
    时钟传播差值生成单元,用于生成与所述第一时钟信号和所述第二时钟信号对应的第一时钟传播差值;a clock propagation difference generating unit, configured to generate a first clock propagation difference corresponding to the first clock signal and the second clock signal;
    数据传播时间段确定单元,用于确定第一时序逻辑器件和第二时序逻辑器件之间的第一数据传播时间段,所述第一时序逻辑器件耦合至所述第一异步控制器并且基于所述第一脉冲信号进行操作,所述第二时序逻辑器件耦合至所述第二异步控制器并且基于所述第二脉冲信号进行操作;以及a data propagation time period determining unit, configured to determine a first data propagation time period between the first sequential logic device and the second sequential logic device, the first sequential logic device is coupled to the first asynchronous controller and based on the operating on the first pulse signal, the second sequential logic device coupled to the second asynchronous controller and operating based on the second pulse signal; and
    延迟报告生成单元,用于生成与所述第一数据传播时间段和所述第一时钟传播差值相关 的延迟报告。A delay report generating unit, configured to generate a delay report related to the first data propagation time period and the first clock propagation difference.
  19. 根据权利要求18所述的电子设备,其中所述时钟传播差值生成单元包括:The electronic device according to claim 18, wherein the clock propagation difference generating unit comprises:
    时钟传播时间段确定单元,用于确定所述第一时钟信号的第一时钟传播时间段和所述第二时钟信号的第二时钟传播时间段,所述第一时钟传播时间段表示从所述第一异步控制器接收到第一输入请求到所述第一异步控制器生成所述第一脉冲信号的时间段,所述第二时钟传播时间段表示从所述第一异步控制器接收到第一输入请求到所述第二异步控制器生成所述第二脉冲信号的时间段;以及a clock propagation period determining unit, configured to determine a first clock propagation period of the first clock signal and a second clock propagation period of the second clock signal, the first clock propagation period representing The time period from when the first asynchronous controller receives the first input request to when the first asynchronous controller generates the first pulse signal, and the second clock propagation time period represents receiving the first asynchronous controller from the first asynchronous controller a time period from an input request to the second asynchronous controller generating the second pulse signal; and
    时钟传播差值确定单元,用于确定所述第一时钟传播时间段和所述第二时钟传播时间段之间的第一时钟传播差值。A clock propagation difference determining unit, configured to determine a first clock propagation difference between the first clock propagation time period and the second clock propagation time period.
  20. 根据权利要求18或19所述的电子设备,还包括:The electronic device according to claim 18 or 19, further comprising:
    延迟设置确定单元,用于基于所述第一时钟传播差值和所述第一数据传播时间段,确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置。A delay setting determining unit, configured to determine a delay setting between the first asynchronous controller and the second asynchronous controller based on the first clock propagation difference and the first data propagation time period.
  21. 根据权利要求20所述的电子设备,其中所述延迟设置确定单元进一步用于The electronic device according to claim 20, wherein the delay setting determining unit is further configured to
    响应于所述第一数据传播时间段大于所述第一时钟传播差值,在所述第一异步控制器和所述第二异步控制器之间设置延迟电路;或providing a delay circuit between the first asynchronous controller and the second asynchronous controller in response to the first data propagation time period being greater than the first clock propagation difference; or
    响应于所述第一数据传播时间段不大于所述第一时钟传播差值,在所述第一异步控制器和所述第二异步控制器之间不设置延迟电路。In response to the first data propagation time period being not greater than the first clock propagation difference, no delay circuit is provided between the first asynchronous controller and the second asynchronous controller.
  22. 根据权利要求20-21中任一项所述的电子设备,其中An electronic device according to any one of claims 20-21, wherein
    所述时钟信号确定单元进一步用于The clock signal determining unit is further used for
    将所述异步电路的第M异步控制器生成的第M脉冲信号确定为第M时钟信号,M表示大于0的整数;以及determining the Mth pulse signal generated by the Mth asynchronous controller of the asynchronous circuit as the Mth clock signal, where M represents an integer greater than 0; and
    将所述异步电路的第N异步控制器生成的第N脉冲信号确定为第N时钟信号,所述第一异步控制器至所述第N异步控制器逐级耦合,所述第一异步控制器至所述第N异步控制器中的任意两个相邻异步控制器彼此之间偏移所述第一预定时间量,所述第N异步控制器的输出耦合至所述第M异步控制器的输入,其中N表示大于M的整数;The Nth pulse signal generated by the Nth asynchronous controller of the asynchronous circuit is determined as the Nth clock signal, the first asynchronous controller is coupled to the Nth asynchronous controller step by step, and the first asynchronous controller to any two adjacent asynchronous controllers of the Nth asynchronous controller offset from each other by the first predetermined amount of time, the output of the Nth asynchronous controller being coupled to the Mth asynchronous controller's Input, where N represents an integer greater than M;
    所述电子设备还包括时序周期确定单元,用于确定时序周期P,其中P表示N与M之间的差值;以及The electronic device further includes a timing period determining unit, configured to determine a timing period P, where P represents a difference between N and M; and
    所述延迟设置确定单元进一步用于基于所述时序周期P,确定所述第N异步控制器和所述第M异步控制器之间的延迟设置。The delay setting determining unit is further configured to determine a delay setting between the Nth asynchronous controller and the Mth asynchronous controller based on the timing period P.
  23. 根据权利要求18-22中任一项所述的电子设备,还包括:The electronic device according to any one of claims 18-22, further comprising:
    维持单元,用于在所述异步电路的综合期间维持所述异步电路的结构。A maintaining unit for maintaining the structure of the asynchronous circuit during synthesis of the asynchronous circuit.
  24. 根据权利要求20-22中任一项所述的电子设备,其中所述延迟设置确定单元进一步用于基于所述异步电路在不同工艺角下的所述第一时钟传播差值和所述第一数据传播时间段,确定在所述第一异步控制器和所述第二异步控制器之间的延迟设置。The electronic device according to any one of claims 20-22, wherein the delay setting determination unit is further configured to be based on the first clock propagation difference of the asynchronous circuit at different process angles and the first A data propagation time period determines a delay setting between the first asynchronous controller and the second asynchronous controller.
  25. 根据权利要求18-24中任一项所述的电子设备,还包括:The electronic device according to any one of claims 18-24, further comprising:
    脉冲展宽单元,用于pulse stretching unit for
    确定所述第一脉冲信号的第一脉冲宽度和所述第二脉冲信号的第二脉冲宽度;以及determining a first pulse width of the first pulse signal and a second pulse width of the second pulse signal; and
    响应于所述第一脉冲宽度或第二脉冲宽度低于脉冲宽度阈值,在所述第一异步控制器或所述第二异步控制器中相应地设置脉冲展宽电路以增宽所述第一脉冲信号或所述第二脉冲信号的宽度。In response to the first pulse width or the second pulse width being lower than a pulse width threshold, a pulse stretching circuit is correspondingly set in the first asynchronous controller or the second asynchronous controller to widen the first pulse signal or the width of the second pulse signal.
  26. 根据权利要求18-25中任一项所述的电子设备,其中所述第二异步控制器还耦合至所述异步电路中的第四异步控制器;The electronic device according to any one of claims 18-25, wherein the second asynchronous controller is further coupled to a fourth asynchronous controller in the asynchronous circuit;
    所述时钟信号确定单元进一步用于The clock signal determining unit is further used for
    将所述第四异步控制器生成的第四脉冲信号确定为第四时钟信号;以及determining a fourth pulse signal generated by the fourth asynchronous controller as a fourth clock signal; and
    将所述第二异步控制器针对来自所述第四异步控制器的请求生成的第二脉冲信号确定为第五时钟信号,所述第五时钟信号相对于所述第四时钟信号偏移第二预定时间量;determining the second pulse signal generated by the second asynchronous controller in response to the request from the fourth asynchronous controller as a fifth clock signal, where the fifth clock signal is shifted by a second relative to the fourth clock signal a predetermined amount of time;
    所述电子设备还包括时钟指派单元,用于将所述第二时钟信号指派至第一时钟分组并且将所述第五时钟信号指派至第二时钟分组,所述第二时钟分组不同于所述第一时钟分组;The electronic device also includes a clock assigning unit for assigning the second clock signal to the first clock group and assigning the fifth clock signal to a second clock group, the second clock group being different from the first clock grouping;
    所述时钟传播差值确定单元进一步用于The clock propagation difference determining unit is further used for
    确定所述第四时钟信号的第五时钟传播时间段和所述第五时钟信号的第五时钟传播时间段,所述第五时钟传播时间段表示从所述第四异步控制器接收到第四输入请求到所述第四异步控制器生成所述第四脉冲信号的时间段,所述第五时钟传播时间段表示从所述第四异步控制器接收到第四输入请求到所述第二异步控制器生成所述第五脉冲信号的时间段;determining a fifth clock propagation time period of the fourth clock signal and a fifth clock propagation time period of the fifth clock signal, the fifth clock propagation time period indicating that a fourth The time period from the input request to the fourth asynchronous controller generating the fourth pulse signal, the fifth clock propagation time period represents the time period from receiving the fourth input request to the second asynchronous controller from the fourth asynchronous controller the time period during which the controller generates the fifth pulse signal;
    确定所述第四时钟传播时间段和所述第五时钟传播时间段之间的第四时钟传播差值;determining a fourth clock propagation difference between the fourth clock propagation period and the fifth clock propagation period;
    所述数据传播时间段确定单元进一步用于确定第四时序逻辑器件和第五时序逻辑器件之间的第四数据传播时间段,所述第四时序逻辑器件耦合至所述第四异步控制器并且基于所述第四脉冲信号进行操作,所述第五时序逻辑器件耦合至所述第二异步控制器并且基于所述第五脉冲信号进行操作;以及The data propagation time period determination unit is further configured to determine a fourth data propagation time period between the fourth sequential logic device and the fifth sequential logic device, the fourth sequential logic device is coupled to the fourth asynchronous controller and operating based on the fourth pulse signal, the fifth sequential logic device coupled to the second asynchronous controller and operating based on the fifth pulse signal; and
    所述延迟报告生成单元,进一步用于生成与所述第四数据传播时间段和所述第四时钟传播差值相关的延迟报告。The delay report generation unit is further configured to generate a delay report related to the fourth data propagation time period and the fourth clock propagation difference.
PCT/CN2021/105326 2021-07-08 2021-07-08 Method for designing asynchronous circuit, and electronic device WO2023279341A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180098077.5A CN117651933A (en) 2021-07-08 2021-07-08 Method for designing asynchronous circuit and electronic device
PCT/CN2021/105326 WO2023279341A1 (en) 2021-07-08 2021-07-08 Method for designing asynchronous circuit, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/105326 WO2023279341A1 (en) 2021-07-08 2021-07-08 Method for designing asynchronous circuit, and electronic device

Publications (1)

Publication Number Publication Date
WO2023279341A1 true WO2023279341A1 (en) 2023-01-12

Family

ID=84800173

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/105326 WO2023279341A1 (en) 2021-07-08 2021-07-08 Method for designing asynchronous circuit, and electronic device

Country Status (2)

Country Link
CN (1) CN117651933A (en)
WO (1) WO2023279341A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116886786A (en) * 2023-09-05 2023-10-13 深圳时识科技有限公司 Conversion device, chip and electronic equipment between two-phase binding and four-phase double-track protocol

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150026653A1 (en) * 2012-07-18 2015-01-22 Kenneth S. Stevens Relative timing characterization
CN104714842A (en) * 2013-12-17 2015-06-17 北京华大九天软件有限公司 Method for repairing time sequence violation through adjusting clock path delay
CN105046014A (en) * 2015-08-06 2015-11-11 电子科技大学 AMS based asynchronous sequential circuit design method
CN106096171A (en) * 2016-06-22 2016-11-09 深圳市紫光同创电子有限公司 Asynchronous circuit sequential inspection method based on static analysis
CN109871611A (en) * 2019-02-18 2019-06-11 清华大学 A kind of matched method of asynchronous circuit automatically delaying

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150026653A1 (en) * 2012-07-18 2015-01-22 Kenneth S. Stevens Relative timing characterization
CN104714842A (en) * 2013-12-17 2015-06-17 北京华大九天软件有限公司 Method for repairing time sequence violation through adjusting clock path delay
CN105046014A (en) * 2015-08-06 2015-11-11 电子科技大学 AMS based asynchronous sequential circuit design method
CN106096171A (en) * 2016-06-22 2016-11-09 深圳市紫光同创电子有限公司 Asynchronous circuit sequential inspection method based on static analysis
CN109871611A (en) * 2019-02-18 2019-06-11 清华大学 A kind of matched method of asynchronous circuit automatically delaying

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116886786A (en) * 2023-09-05 2023-10-13 深圳时识科技有限公司 Conversion device, chip and electronic equipment between two-phase binding and four-phase double-track protocol
CN116886786B (en) * 2023-09-05 2023-11-21 深圳时识科技有限公司 Conversion device, chip and electronic equipment between two-phase binding and four-phase double-track protocol

Also Published As

Publication number Publication date
CN117651933A (en) 2024-03-05

Similar Documents

Publication Publication Date Title
Nowick et al. High-performance asynchronous pipelines: An overview
Singh et al. MOUSETRAP: High-speed transition-signaling asynchronous pipelines
Yakovlev et al. Advances in asynchronous logic: From principles to GALS & NoC, recent industry applications, and commercial CAD tools
Mullins et al. Demystifying data-driven and pausible clocking schemes
Kasapaki et al. Argo: A time-elastic time-division-multiplexed noc using asynchronous routers
US10084434B2 (en) Relative timed clock gating cell
WO2023279341A1 (en) Method for designing asynchronous circuit, and electronic device
Sartori et al. Pulsar: Constraining QDI circuits cycle time using traditional EDA tools
Sartori et al. A frontend using traditional EDA tools for the pulsar QDI design flow
US7380153B2 (en) Micropipeline stage controller and control scheme
TWI806340B (en) Test circuit for pipeline stage including sequential device to be tested, test method and computing system including test circuit
Srivastava et al. Operation-dependent frequency scaling using desynchronization
Dasgupta et al. Comparative analysis of GALS clocking schemes
US7982502B2 (en) Asynchronous circuit representation of synchronous circuit with asynchronous inputs
Chelcea et al. Area optimizations for dual-rail circuits using relative-timing analysis
Bhandari et al. Fpga based high performance asynchronous alu based on modified 4 phase handshaking protocol with tapered buffers
Poornima et al. Functional verification of clock domain crossing in register transfer level
Daigneault et al. Fast description and synthesis of control-dominant circuits
Casu Improving synchronous elastic circuits: Token cages and half-buffer retiming
Rodolfo et al. Quasi Delay Insensitive FIFOs: Design Choices Exploration and Comparison
Kumar et al. Pulse based Acyclic Asynchronous Pipelines for Combinational Logic Circuits
Sretasereekul et al. A zero-time-overhead asynchronous four-phase controller
Van Toan et al. Energy-efficient and high performance 2-phase asynchronous micropipelines
US20230289065A1 (en) Data flow control device in streaming architecture chip
Taraate et al. System-on-chip (SOC) design

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21948837

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE