Download presentation
Presentation is loading. Please wait.
Published byMeadow Brazier Modified over 9 years ago
1
Clockless Logic System-Level Specification and Synthesis Ack: Tiberiu Chelcea
2
CMU #2 Communication protocol: 4-phase handshake O1 initiates communication O2 completes communication Communication channel: req: operation start ack: operation done Asynchronous Communication Protocols: Control O1O2 Areqack Active phase Return-to-zero (RTZ) phase passive port active port
3
CMU #3 Asynchronous Communication Protocols: Data Channel parameters: Data Encoding: bundled-data Data Encoding: bundled-data Communication channel: 2 control wires + bundle of data wires Data Flow Direction: Data Flow Direction: Push channel: data flows with the request Pull channel: data flows with the acknowledge Data Validity: broad, early, late Data Validity: broad, early, late Broad: data valid for the entire handshake Early: data valid during active phase of handshake Late: data valid during return-to-zero phase of handshake Data Item Type: byte, word, bool … Data Item Type: byte, word, bool … Data Width: # data wires to encode data item Data Width: # data wires to encode data item … The CH language needs to model all these parameters O1O2 A
4
CMU #4 Interleaving of Two Communication Protocols Interleaving = combining behaviors on 2+ channels Example #1: Example #1: handshake on B enclosed within handshake on A Example #2: Example #2: handshake on B sequenced after handshake on A Different interleavings: provide different tradeoffs Speed: latency/throughput Area Power … The CH language needs to model various interleavings O1Obj A B
5
CMU #5 Balsa Language: High-Level Modeling High-level asynchonous description language High-level asynchonous description language Based on CSP Based on CSP Block-structured, algorithmic Block-structured, algorithmic Each Balsa module communicates through handshaking with the environment Each Balsa module communicates through handshaking with the environment Simple Example: One place Buffer procedure Buf1 (input i: byte; output o: byte) is local variable x : byte begin loop begin i -> x; o <- x end
6
CMU #6 Handshake Circuits: Intermediate Representation Intermediate representation of Balsa/Tangram compilation Intermediate representation of Balsa/Tangram compilation Handshake circuit = netlist of handshake components, connected by channels, corresponding to a Balsa program Handshake circuit = netlist of handshake components, connected by channels, corresponding to a Balsa program Handshake component = primitive asynchronous component communicating only through handshaking Handshake component = primitive asynchronous component communicating only through handshaking X ; # Start I O procedure Buf1 ( input i: byte; output o: byte) is local variable x : byte begin loop begin i -> x; o <- x end Balsa HDLHandshake Circuit syntax-directed translation unoptimized
7
CMU #7 Handshake Circuits Intermediate representation of Balsa/Tangram compilation Intermediate representation of Balsa/Tangram compilation Handshake circuit = netlist of handshake components, connected by channels, corresponding to a Balsa program Handshake circuit = netlist of handshake components, connected by channels, corresponding to a Balsa program Handshake component = primitive asynchronous component communicating only through handshaking Handshake component = primitive asynchronous component communicating only through handshaking loop begin end i x o <- x ; X ; # Start I O ->
8
CMU #8 Handshake Circuits Intermediate representation of Balsa/Tangram compilation Intermediate representation of Balsa/Tangram compilation Handshake circuit = netlist of handshake components, connected by channels, corresponding to a Balsa program Handshake circuit = netlist of handshake components, connected by channels, corresponding to a Balsa program Handshake component = primitive asynchronous component communicating only through handshaking Handshake component = primitive asynchronous component communicating only through handshaking loop begin end i x o <- x ; X ; # Start I O -> X
9
CMU #9 Handshake Circuits Intermediate representation of Balsa/Tangram compilation Intermediate representation of Balsa/Tangram compilation Handshake circuit = netlist of handshake components, connected by channels, corresponding to a Balsa program Handshake circuit = netlist of handshake components, connected by channels, corresponding to a Balsa program Handshake component = primitive asynchronous component communicating only through handshaking Handshake component = primitive asynchronous component communicating only through handshaking loop begin end i x o <- x ; X ; # Start I O ->
10
CMU #10 Large-Scale Asynchronous Systems: Overview small microprocessor core
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.