1 / 68

Advanced Digital Design

Asynchronous Design: FSL. Advanced Digital Design. by A. Steininger and M. Delvai Vienna University of Technology. Outline. Introduction Principles Basic gates Design flow and tools Circuit design with FSL Pipeline Data paths Current status Conclusion. Fundamental Design Problem.

elewa
Download Presentation

Advanced Digital Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Asynchronous Design: FSL Advanced Digital Design by A. Steininger and M. DelvaiVienna University of Technology

  2. Outline • Introduction • Principles • Basic gates • Design flow and tools • Circuit design with FSL • Pipeline • Data paths • Current status • Conclusion

  3. Fundamental Design Problem f(x) SRC SNK Issue Condition Capture Condition Ensure a lossles data flow new data can be issued, when the previous one was already consumed only valid and consistent data has to be consumed A

  4. Synchronous Approach TClk f(x) SRC SNK Global Time Reference => indirect conclusion A

  5. Asynchronous Circuits Request f(x) SRC SNK Acknowledge local handshake protocol

  6. Four State Logic => delay insensitive 1x „1“ | 2x „0“ 2x „1“ | 1x „0“ 3x „1“ | 2x „0“ f(x) SRC SNK ∆t => SNK must able to recognize when data is valid and consistent => additional information required

  7. FSL encoding Use 2 codes per logic value need two-rail coding: X.a X X.b (1,0) (0,0) ? (1,1) = L = l (0,1) = h = H (0,0) => (1,1) L => H

  8. Completion Detection H l L h H h L l consistent data SRC SNK

  9. FSL Gates • Combinational Gates • AND, OR, INV, …

  10. Phase Transition ? f(x) φ0 φ1 φ0 φ1 • We have to ensure, that: • unconsistent input vectors are not processed • f(x) is a monotonic function

  11. Combinational Functions • Consistency detector C D Processing of unconsistent inputs inevitable due to internal skew local intelligence => hardware overhead Variant 1: Variant 2: • each basic gate processes only const. inputs f(x) • Hazard free impl. • function of each basic gate is monotonic

  12. Combinational Gates And Or Inv (MUX) (XOR) … Truth Table FSL-AND E2 Consistent in φ1 E1 Y l h L H FSL AND Y * * l E2 * * h E1 * * L * * H Consistent in φ0 l l l h L L L H * keep old value

  13. Gate Template E1.a E1 fa(x) Mem Y.a E1.b Y Y.b E2.a E2 fb(x) Mem E2.b Challenge: preserve the delay insensitive for implementation

  14. 0 (a,b) 1 (a,b) LOW L (0,1) l (0,0) H (1,0) HIGH h (1,1) rail a rail b Inverter Is the inverter delay insensitive?

  15. FSL Gates • Combinational Gates • AND, OR, INV, … • Register

  16. Completion Detection H l L h H h L l consistent data SRC SNK

  17. Completion Detection H l L h H h L l consistent data SRC SNK Latch CMPD enable Register

  18. FSL Register Latch Latch  CMPD CMPD CMPD L A T C H L A T C H L A T C H L A T C H f(x) f(x) f(x) additional handshake signals are required

  19. FSL Register CTRL CMPD L A T C H L A T C H L A T C H L A T C H f(x) f(x) f(x) input data output data Latch CMPD Is the output data already consumed ?  handshake signal from the next register required

  20. FSL Register CMPD input data output data Latch CTRL CMPD When do we close the latch again ?  when the input data was taken over

  21. FSL Register Input data is ready to be consumed when all input signals carry the same phase Input data is consumed when input and output carry the same phase CMPD Output data was consumed when the output of the next register carry the same phase as the current output data input data output data Latch CTRL CMPD => phase detector => phase detector => phase detector Only phase detectors are required to generate all handshake signals

  22. φ–Detector XOR XOR ‘0‘ ‘1‘ 0 (a,b) 1 (a,b) LOW l (0,1) L (0,0) h (1,0) HIGH H (1,1)

  23. Latch Latch Latch Latch φ φ out in pass FSL Register • input data consistent and valid • output data already consumed data out data in • freeze the latches again • input data input data consumed Ctrl c-done

  24. FSL Gates • Combinational Gates • AND, OR, INV, … • Register • Latch • φ–Detector • Memory

  25. Memory Two options: • Store directly FSL signals • 4 bits per logical value • huge overhead but delay insensitive (in theory) • Store only logical information • 1 bits per logical value • low overhead but not delay insensitive

  26. Memory FSL_Logic STD_Logic FSL_Logic STD_Logic C O N V Standard RAM C O N V φ-det 

  27. φ–Converter Std → FSL FSL → Std Std rail a FSL rail a FSL Std X O R rail b rail b requested φ Std logic FSL logic 0 (a,b) 1 (a,b) Sig. LOW LOW 0 L (0,0) l (0,1) H (1,1) h (1,0) HIGH 1 HIGH

  28. FSL Gates • Combinational Gates • AND, OR, INV, … • Register • Latch • φ–Detector • Memory • φ–Converter (FSL→Std, Std→FSL) • φ–Inverter

  29. 0 (a,b) 1 (a,b) LOW L (0,1) l (0,0) H (1,0) HIGH h (1,1) rail a rail b φ–Inverter => simple inversion of rail b

  30. FSL Gates • Combinational Gates • AND, OR, INV, … • Register • Latch • φ–Detector • Memory • φ–Converter (FSL→Std, Std→FSL) • φ–Inverter

  31. Design Flow and tools Requirements: • Standard tools (Synopsys/Quartus) • Modelling on RTL level • Support for simulation and synthesis • Target platform FPGA

  32. Adaptation: VHDL • Definition of an FSL_logic type • Redefinintion of std_1164 package • Additional functions • φ_det, φ_inv, conversion functions • stable => Modelling FSL circuits on RTL level

  33. Example: Program Counter JmpExe JmpAddr f(x) AddrNxt AddrInc stable_signals <= AddrInc&JmpExe&JmpAddr; pc_next: process begin stable(stable_signals); if JmpExe = ‘H‘ or JmpExe = ‘l‘ then AddrNxt <= JmpAddr; else AddrNxt <= AddrInc; end if; end process pc_next;

  34. Adaptation: Synthesis (1) L L & H (0,0) (0,0) & (1,1) • FSL Target FSL Library • FSL AND, FSL OR , FSL INV, FSL Register, φ-Detector … • Synthesis with FSL Target Library • Netlist • Package FSL_Rail • Definition FSL_rail_logic :Record (a,b) • FSL AND, FSL OR , FSL INV, FSL Register, φ-Detector … • Netlist: Replace FSL with FSL_rail • Synthesis with FPGA Target Library

  35. Adapation: Synthesis (2) conventional design flow FSL design flow

  36. Adaptation: Simulation FSL Stimuli FSL Response Conversion Conversion FSL Logic FSL Rail Logic Testbench • Same testbench for FSL_logic and FSL_rail_logic ciruits => Verification of FSL circuits

  37. Outline • Introduction • Principles • Basic gates • Design flow and tools • Circuit design • Pipeline • Data Paths • Current status • Conclusion

  38. (Linear) Pipeline L A T C H L A T C H L A T C H L A T C H f(x) f(x) f(x) 0 0 0 1 0 0 1 0 0 0 K2 K3 K4 K1 Empty initialized Full initialized

  39. Bubble Concept (1) 0 1 0 1 0 K2 K3 K4 K1 bubble identical values 0 1 0 1 1 K2 K3 K4 K1 Progress is possible when a circuit contains at least one bubble

  40. Bubble Concept (2) 1 1 1 1 0 0 0 0 K2 K3 K4 K5 K6 K7 K1 • Initialization => ensure that the circuit contains at least one bubble • More than one bubble => higher processing speed

  41. Bubble Concept (3) SRC SNK • Bubbles can be consumed: • Slow SRC → empty pipeline • Slow SNK → full pipeline 0 1 1 1 1 0 K2 K3 K4 K5 K6 bubble

  42. Non-linear Pipeline feedback path K2 K3 K4 K5 K6 K1 forward path Definition: A non-linear pipeline is a pipeline which contains at least one feedback or forward path • Consequences: • Internal regulation  bubble cannot be consumed • Potential sources of deadlocks

  43. Non-linear Pipeline: Forward Path (1) φ-inv SNK SRC 0 1 0 1 0 1 0 K2 K3 K4 K1 1 request

  44. Non-linear Pipeline: Forward Path (2) 4 3 2 1 0 1 0 1 φ-inv 0 1 Operation 0 K2 K3 K4 K1 0 1 0 1 1 0

  45. Non-linear Pipeline: Forward Path (2) 5 0 φ-inv Operation 0 1 0 1 1 K2 K3 K4 K1 1 0

  46. Empty Non-linear Pipeline: Forward Path (1) 0 1 0 1 0 0 0 0 0 0 1 0 0 K2 K3 K4 K1 φ-inv 1 empty initialized => no phase inverter is required

  47. Empty Non-linear Pipeline: Forward Path (2) 4 3 2 1 φ1 1 φ1 1 Operation 0 K2 K3 K4 K1 0 0 0 0  φ1 0 => different phase inverter placement for full and empty initialized circuit

  48. Conclusion:Feedforward Paths switching sequence switching sequence K2 K3 K4 K2 K3 K4 K1 K1 0 1 0 1 0 0 0 0 0 0 φ-inv 0 1 0 Empty initialized Full initialized • Ensure consistent inputs • Phase inverter placement depends on initialisation

  49. Non-linear Pipeline: Feedback Path (1) φ-inv  0 1 Operation 0 K2 K3 K4 K1 0 1 0 1

  50. Non-linear Pipeline: Feedback Path (2) 3 2 1 1 0 1 φ-inv 0 1 Operation 0 K2 K3 K4 K1 0 1 0 1  0  1

More Related