SlideShare a Scribd company logo
clockless design language
      First steps from language to silicon




Ilia Greenblat
greenblat@mac.com
+972-54-4927322
skype: igreenblat

                      M a a y2 2 ,
                       M y      ,
                                             1
                       2 2 0 12
                          0 12
So no clocks, now what?
    Let’s focus on just one operation (like multiply)

We specify and control the sequence
                                                 same in pseudo-Verilog
1. wait till inputs become available
2. execute the operation                        input passive channel [7:0] A,B;
3. latch result, release inputs                 latch [15:0] Creg;
4. send the result down the stream.             output active channel [15:0] C;
5. wait until accepted.
6. start over                                   always begin
                                                  fork
                                                    wait(A); wait(B);
                                                  join
                                                  Creg = B*A;
                                                  release A; release B;
                                                  C = Creg;
                                                end


                                                                          2
                                       May 2 ,
                                       2 0 12
loop example
                   Bunch of modules communicating
                   asynchronously using channels
                   and tokens.
                   Each module gets datum or token
                   to work on, arbitrates for shared
                   resources, processes data and
                   when ready, passes the result
                   down the stream.
                   Each building block implements
                   the protocol of request/ack.

                   Each module “knows” when the
                   inputs become valid, when it’s
                   own computation completed, and
                   when it’s outputs are used and
                   new cycle can begin.



                                           3
               May 2 ,
               2 0 12
Clockless is an old idea




                           4
           May 2 ,
           2 0 12
Why bother?

•   advanced nodes easier implementation.
•   low power, low leakage, high VT cells
•   clocking, power grid, ocv, sleep modes
•   aging, voltage swings
•   modularity & integration



                                             5
                       May 2 ,
                       2 0 12
Lot of activity
• LARD, Balsa, Tangram : CSP languages
• VerilogCSP - verilog + macros : modeling of ..
• Handshake, Philips : out of business.
• Tiempo - SystemVerilog + Library : full flow, IP
  provider
• + many point tools, not whole language+flow.




                                                     6
                           May 2 ,
                           2 0 12
So what the problem i am trying
           to solve

• Good, Solid, Comprehensive and Free
•  Entry level language
• Show tentative flow to silicon.




                                    7
                   May 2 ,
                   2 0 12
The proposal
use slightly extended Verilog as clockless design
entry language, because:
expresses parallelism well.
describes hardware well.
expresses design intent.
is timing aware.
has all the needed language structures.
hierarchical and “objective”.
few additions make the life easier


                                              8
                       May 2 ,
                       2 0 12
Procedural Verilog
  Verilog written like C describes the sequence of
  operations.each “always” is sequential
ays begin wait (dt); wait (!dt); counter = counter +1; if (counter==100) -> beep;endalwa
  process.many “always” blocks run
  concurrently.the basic storage element is latch.


   Extensions:

   latch, flipflop
   release, wait overload
   in/out channel
   passive/active channel
   active latch
   several $system functions



                                                                           9
                                          May 2 ,
                                          2 0 12
The compiler
latch [15:0]
mcounter,scounter;initial
begin
mcounter=0;endalways
begin wait (!cnt); wait
(cnt); scounter =
mcounter +1;
mcounter=scounter;end




                                     design turned into a graph
                                     of one-hot ring of state latches
                                     Each line becomes a state latch

                                                                 10
                                 May 2 ,
                                 2 0 12
Arbitration
Arbitration is needed where access to shared resource
(like ram memory) is needed and it comes from two not
directly related “always” blocks.
So for example:

The compiler inserts arbiters to separate reads from
writes, and writes from writes.
So read value will not get ruined by write.
Another example:

output passive channel [15:0] readval;
always begin
  wait readval; //passive channel waits for request.
  readval = mcounter; // wins arb, reads latch, drives data out
  release readval; // when request negated, we can de-assert the data
end

                                                                        11
                                        May 2 ,
                                        2 0 12
Usable Verilog Elements
                                        always begin     initial begin
for (i=0; i<100; i=i+1) begin           ...              ...             #(delay_time);
...                                     end              end
end

   fork              while (xx>10) begin           always @eventA begin
     -> eventA;       ...                          ...
     -> eventB       end                           end
     -> eventC;
   join                                             task do_something;
                                                    ...
                       wait(till_something);
                                                    endtask

                                                         release some;


    also: if, if-else, case, assign and more

                                                                             12
                                               May 2 ,
                                               2 0 12
Tentative flow



                 common testbench
                 for all views




                         13
      May 2 ,
      2 0 12
Side Stepping
Suppose we see code like this:

   always @(computeIt) begin
     data=0;
     for (i=0;i<100;i=i+1) begin
       adat = ram[i];
       #1;
                                      We can use the same extended
       bdat = ram[i+100];             verilog syntax to produce clocked
       #1;                            synthesizable RTL.
       ram[i]=adat-bdat;
      end                              Instead of Clock-Reset-Data basic
   end                                synthesizable rtl, We get to write the
                                      design in procedural fasion.



                                                                  14
                                   May 2 ,
                                   2 0 12
goes on..

netlist from regular adder synthesis is “dual-
railed” here.


packager creates best hierarchy and
inserts correct breakers


 flow assembles timing constraints.




                                          15
      May 2 ,
      2 0 12
side stepping (again)



 Fpga validation needs another tricks to fool
 the fpga software to create fastest circuit.




                                     16
   May 2 ,
   2 0 12
Cleaning up




              17
   May 2 ,
   2 0 12
Status
• First implementation of the compiler is working.
• Cadence toolchain is used to assemble the flow to gds.
• Several modules were designed and run through:
• Like: Uart, Pwm, Fir, picoblaze cpu.
• The only validation was with sdf verilog and fast spice in tester-
  like setup.
• The subset appears to be powerful enough to implement these
  modules. It is still evolving.
• Optimization at various stages is needed to reach the
  performance.


                                                            18
                                May 2 ,
                                2 0 12
What’s next?
• more code examples to verify the usefulness of the
  language
• identify kind of designs where this flow can have
  biggest advantage, biggest impact.
• select a comprehensive proving ground project.
• add optimizations to reach performance/area/power
  goals.
• cover missing validation steps in the flow


                                                 19
                           May 2 ,
                           2 0 12
‫תודה‬
Thank You

 谢谢

               20
     May 2 ,
     2 0 12

More Related Content

What's hot

Virtual Machines Lecture
Virtual Machines LectureVirtual Machines Lecture
Virtual Machines Lecture
lienhard
 
No Heap Remote Objects for Distributed real-time Java
No Heap Remote Objects for Distributed real-time JavaNo Heap Remote Objects for Distributed real-time Java
No Heap Remote Objects for Distributed real-time Java
Universidad Carlos III de Madrid
 
Non-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need itNon-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need it
Alexey Fyodorov
 
Other Approaches (Concurrency)
Other Approaches (Concurrency)Other Approaches (Concurrency)
Other Approaches (Concurrency)
Sri Prasanna
 
Qt everywhere a c++ abstraction platform
Qt everywhere   a c++ abstraction platformQt everywhere   a c++ abstraction platform
Qt everywhere a c++ abstraction platform
Develer S.r.l.
 
Java 5 6 Generics, Concurrency, Garbage Collection, Tuning
Java 5 6 Generics, Concurrency, Garbage Collection, TuningJava 5 6 Generics, Concurrency, Garbage Collection, Tuning
Java 5 6 Generics, Concurrency, Garbage Collection, Tuning
Carol McDonald
 
2011.jtr.pbasanta.
2011.jtr.pbasanta.2011.jtr.pbasanta.
Stoop 390-instruction stream
Stoop 390-instruction streamStoop 390-instruction stream
Stoop 390-instruction stream
The World of Smalltalk
 
Qt Quick in depth
Qt Quick in depthQt Quick in depth
Qt Quick in depth
Develer S.r.l.
 
Enhancing the region model of RTSJ
Enhancing the region model of RTSJEnhancing the region model of RTSJ
Enhancing the region model of RTSJ
Universidad Carlos III de Madrid
 
RBuilder and ByteSurgeon
RBuilder and ByteSurgeonRBuilder and ByteSurgeon
RBuilder and ByteSurgeon
Marcus Denker
 
Transactions
TransactionsTransactions
Transactions
kalyan_bu
 
Reactive Qt - Ivan Čukić (Qt World Summit 2015)
Reactive Qt - Ivan Čukić (Qt World Summit 2015)Reactive Qt - Ivan Čukić (Qt World Summit 2015)
Reactive Qt - Ivan Čukić (Qt World Summit 2015)
Ivan Čukić
 
Java Concurrency in Practice
Java Concurrency in PracticeJava Concurrency in Practice
Java Concurrency in Practice
Alina Dolgikh
 
FreeRTOS
FreeRTOSFreeRTOS
FreeRTOS
Ankita Tiwari
 
Basanta jtr2009
Basanta jtr2009Basanta jtr2009
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
Simon Ritter
 
S emb t13-freertos
S emb t13-freertosS emb t13-freertos
S emb t13-freertos
João Moreira
 
A synchronous scheduling service for distributed real-time Java
A synchronous scheduling service for distributed real-time JavaA synchronous scheduling service for distributed real-time Java
A synchronous scheduling service for distributed real-time Java
Universidad Carlos III de Madrid
 
Crossing the border with Qt: the i18n system
Crossing the border with Qt: the i18n systemCrossing the border with Qt: the i18n system
Crossing the border with Qt: the i18n system
Develer S.r.l.
 

What's hot (20)

Virtual Machines Lecture
Virtual Machines LectureVirtual Machines Lecture
Virtual Machines Lecture
 
No Heap Remote Objects for Distributed real-time Java
No Heap Remote Objects for Distributed real-time JavaNo Heap Remote Objects for Distributed real-time Java
No Heap Remote Objects for Distributed real-time Java
 
Non-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need itNon-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need it
 
Other Approaches (Concurrency)
Other Approaches (Concurrency)Other Approaches (Concurrency)
Other Approaches (Concurrency)
 
Qt everywhere a c++ abstraction platform
Qt everywhere   a c++ abstraction platformQt everywhere   a c++ abstraction platform
Qt everywhere a c++ abstraction platform
 
Java 5 6 Generics, Concurrency, Garbage Collection, Tuning
Java 5 6 Generics, Concurrency, Garbage Collection, TuningJava 5 6 Generics, Concurrency, Garbage Collection, Tuning
Java 5 6 Generics, Concurrency, Garbage Collection, Tuning
 
2011.jtr.pbasanta.
2011.jtr.pbasanta.2011.jtr.pbasanta.
2011.jtr.pbasanta.
 
Stoop 390-instruction stream
Stoop 390-instruction streamStoop 390-instruction stream
Stoop 390-instruction stream
 
Qt Quick in depth
Qt Quick in depthQt Quick in depth
Qt Quick in depth
 
Enhancing the region model of RTSJ
Enhancing the region model of RTSJEnhancing the region model of RTSJ
Enhancing the region model of RTSJ
 
RBuilder and ByteSurgeon
RBuilder and ByteSurgeonRBuilder and ByteSurgeon
RBuilder and ByteSurgeon
 
Transactions
TransactionsTransactions
Transactions
 
Reactive Qt - Ivan Čukić (Qt World Summit 2015)
Reactive Qt - Ivan Čukić (Qt World Summit 2015)Reactive Qt - Ivan Čukić (Qt World Summit 2015)
Reactive Qt - Ivan Čukić (Qt World Summit 2015)
 
Java Concurrency in Practice
Java Concurrency in PracticeJava Concurrency in Practice
Java Concurrency in Practice
 
FreeRTOS
FreeRTOSFreeRTOS
FreeRTOS
 
Basanta jtr2009
Basanta jtr2009Basanta jtr2009
Basanta jtr2009
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
 
S emb t13-freertos
S emb t13-freertosS emb t13-freertos
S emb t13-freertos
 
A synchronous scheduling service for distributed real-time Java
A synchronous scheduling service for distributed real-time JavaA synchronous scheduling service for distributed real-time Java
A synchronous scheduling service for distributed real-time Java
 
Crossing the border with Qt: the i18n system
Crossing the border with Qt: the i18n systemCrossing the border with Qt: the i18n system
Crossing the border with Qt: the i18n system
 

Viewers also liked

Asynchronous Processors - The Clock less Future
Asynchronous Processors - The Clock less FutureAsynchronous Processors - The Clock less Future
Asynchronous Processors - The Clock less Future
Akshit Arora
 
CLOCKLESS CHIP BY Saurabh singh PART 2
CLOCKLESS CHIP BY Saurabh singh PART 2CLOCKLESS CHIP BY Saurabh singh PART 2
CLOCKLESS CHIP BY Saurabh singh PART 2
Saurabh Singh
 
CLOCKLESS CHIP BY Saurabh singh
CLOCKLESS CHIP BY Saurabh singhCLOCKLESS CHIP BY Saurabh singh
CLOCKLESS CHIP BY Saurabh singh
Saurabh Singh
 
Clockless Chips
Clockless ChipsClockless Chips
Clockless Chips
Angel Dholakia
 
Supervised Project about organic vegetable snacks
Supervised Project about organic vegetable snacksSupervised Project about organic vegetable snacks
Supervised Project about organic vegetable snacks
Jacqueline Yumi Asano
 
Arrays
ArraysArrays
China Medical University Student ePaper2
China Medical University Student ePaper2China Medical University Student ePaper2
China Medical University Student ePaper2
Isabelle Chiu
 
Biochips
BiochipsBiochips
Nano-electronics
Nano-electronicsNano-electronics
Nano-electronics
Abhishek Syal
 
Nano Technology in Electronics
Nano Technology in ElectronicsNano Technology in Electronics
Nano Technology in Electronics
Abu Taj
 
SMART DUST
SMART DUSTSMART DUST
SMART DUST
Khyravdhy Tannaya
 
The bio chips
The bio chipsThe bio chips
The bio chips
PRADEEP Cheekatla
 
Smart dust
Smart dustSmart dust
Smart dust
Pallavi Srivastava
 
Smart dust
Smart dustSmart dust
Smart dust
PRADEEP Cheekatla
 
Smart dust
Smart dustSmart dust
Smart dust
Sucheta Mandal
 
Bio-chips(A technology for the future)
Bio-chips(A technology for the future)Bio-chips(A technology for the future)
Bio-chips(A technology for the future)
Kaustubh Gadre
 
Smart dust
Smart dustSmart dust
Smart dust
Karthik
 
smart dust
smart dustsmart dust
smart dust
KARTHIKLINGALA
 

Viewers also liked (18)

Asynchronous Processors - The Clock less Future
Asynchronous Processors - The Clock less FutureAsynchronous Processors - The Clock less Future
Asynchronous Processors - The Clock less Future
 
CLOCKLESS CHIP BY Saurabh singh PART 2
CLOCKLESS CHIP BY Saurabh singh PART 2CLOCKLESS CHIP BY Saurabh singh PART 2
CLOCKLESS CHIP BY Saurabh singh PART 2
 
CLOCKLESS CHIP BY Saurabh singh
CLOCKLESS CHIP BY Saurabh singhCLOCKLESS CHIP BY Saurabh singh
CLOCKLESS CHIP BY Saurabh singh
 
Clockless Chips
Clockless ChipsClockless Chips
Clockless Chips
 
Supervised Project about organic vegetable snacks
Supervised Project about organic vegetable snacksSupervised Project about organic vegetable snacks
Supervised Project about organic vegetable snacks
 
Arrays
ArraysArrays
Arrays
 
China Medical University Student ePaper2
China Medical University Student ePaper2China Medical University Student ePaper2
China Medical University Student ePaper2
 
Biochips
BiochipsBiochips
Biochips
 
Nano-electronics
Nano-electronicsNano-electronics
Nano-electronics
 
Nano Technology in Electronics
Nano Technology in ElectronicsNano Technology in Electronics
Nano Technology in Electronics
 
SMART DUST
SMART DUSTSMART DUST
SMART DUST
 
The bio chips
The bio chipsThe bio chips
The bio chips
 
Smart dust
Smart dustSmart dust
Smart dust
 
Smart dust
Smart dustSmart dust
Smart dust
 
Smart dust
Smart dustSmart dust
Smart dust
 
Bio-chips(A technology for the future)
Bio-chips(A technology for the future)Bio-chips(A technology for the future)
Bio-chips(A technology for the future)
 
Smart dust
Smart dustSmart dust
Smart dust
 
smart dust
smart dustsmart dust
smart dust
 

Similar to Clockless design language - ilia greenblat

verilog ppt .pdf
verilog ppt .pdfverilog ppt .pdf
verilog ppt .pdf
RavinaBishnoi8
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdf
sagar414433
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdf
sagar414433
 
Verilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdfVerilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdf
DrViswanathKalannaga1
 
dokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfdokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdf
Velmathi Saravanan
 
Ipc feb4
Ipc feb4Ipc feb4
Ipc feb4
Ruchi Sharma
 
Atmosphere Conference 2015: Need for Async: In pursuit of scalable internet-s...
Atmosphere Conference 2015: Need for Async: In pursuit of scalable internet-s...Atmosphere Conference 2015: Need for Async: In pursuit of scalable internet-s...
Atmosphere Conference 2015: Need for Async: In pursuit of scalable internet-s...
PROIDEA
 
Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011
David Troy
 
Os2
Os2Os2
Os2
issbp
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
guest91855c
 
Threaded Programming
Threaded ProgrammingThreaded Programming
Threaded Programming
Sri Prasanna
 
OS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and MonitorsOS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and Monitors
sgpraju
 
Os3
Os3Os3
The Need for Async @ ScalaWorld
The Need for Async @ ScalaWorldThe Need for Async @ ScalaWorld
The Need for Async @ ScalaWorld
Konrad Malawski
 
Blocks & GCD
Blocks & GCDBlocks & GCD
Blocks & GCD
rsebbe
 
Porting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustPorting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to Rust
Evan Chan
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
l xf
 
Qt Application Programming with C++ - Part 2
Qt Application Programming with C++ - Part 2Qt Application Programming with C++ - Part 2
Qt Application Programming with C++ - Part 2
Emertxe Information Technologies Pvt Ltd
 
Writing more complex models
Writing more complex modelsWriting more complex models
Writing more complex models
Mohamed Samy
 
cb streams - gavin pickin
cb streams - gavin pickincb streams - gavin pickin
cb streams - gavin pickin
Ortus Solutions, Corp
 

Similar to Clockless design language - ilia greenblat (20)

verilog ppt .pdf
verilog ppt .pdfverilog ppt .pdf
verilog ppt .pdf
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdf
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdf
 
Verilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdfVerilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdf
 
dokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfdokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdf
 
Ipc feb4
Ipc feb4Ipc feb4
Ipc feb4
 
Atmosphere Conference 2015: Need for Async: In pursuit of scalable internet-s...
Atmosphere Conference 2015: Need for Async: In pursuit of scalable internet-s...Atmosphere Conference 2015: Need for Async: In pursuit of scalable internet-s...
Atmosphere Conference 2015: Need for Async: In pursuit of scalable internet-s...
 
Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011Servers with Event Machine - David Troy - RailsConf 2011
Servers with Event Machine - David Troy - RailsConf 2011
 
Os2
Os2Os2
Os2
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
 
Threaded Programming
Threaded ProgrammingThreaded Programming
Threaded Programming
 
OS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and MonitorsOS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and Monitors
 
Os3
Os3Os3
Os3
 
The Need for Async @ ScalaWorld
The Need for Async @ ScalaWorldThe Need for Async @ ScalaWorld
The Need for Async @ ScalaWorld
 
Blocks & GCD
Blocks & GCDBlocks & GCD
Blocks & GCD
 
Porting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to RustPorting a Streaming Pipeline from Scala to Rust
Porting a Streaming Pipeline from Scala to Rust
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
 
Qt Application Programming with C++ - Part 2
Qt Application Programming with C++ - Part 2Qt Application Programming with C++ - Part 2
Qt Application Programming with C++ - Part 2
 
Writing more complex models
Writing more complex modelsWriting more complex models
Writing more complex models
 
cb streams - gavin pickin
cb streams - gavin pickincb streams - gavin pickin
cb streams - gavin pickin
 

More from chiportal

Prof. Zhihua Wang, Tsinghua University, Beijing, China
Prof. Zhihua Wang, Tsinghua University, Beijing, China Prof. Zhihua Wang, Tsinghua University, Beijing, China
Prof. Zhihua Wang, Tsinghua University, Beijing, China
chiportal
 
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
chiportal
 
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
chiportal
 
Prof. Uri Weiser,Technion
Prof. Uri Weiser,TechnionProf. Uri Weiser,Technion
Prof. Uri Weiser,Technion
chiportal
 
Ken Liao, Senior Associate VP, Faraday
Ken Liao, Senior Associate VP, FaradayKen Liao, Senior Associate VP, Faraday
Ken Liao, Senior Associate VP, Faraday
chiportal
 
Prof. Danny Raz, Director, Bell Labs Israel, Nokia
 Prof. Danny Raz, Director, Bell Labs Israel, Nokia  Prof. Danny Raz, Director, Bell Labs Israel, Nokia
Prof. Danny Raz, Director, Bell Labs Israel, Nokia
chiportal
 
Marco Casale-Rossi, Product Mktg. Manager, Synopsys
Marco Casale-Rossi, Product Mktg. Manager, SynopsysMarco Casale-Rossi, Product Mktg. Manager, Synopsys
Marco Casale-Rossi, Product Mktg. Manager, Synopsys
chiportal
 
Dr.Efraim Aharoni, ESD Leader, TowerJazz
Dr.Efraim Aharoni, ESD Leader, TowerJazzDr.Efraim Aharoni, ESD Leader, TowerJazz
Dr.Efraim Aharoni, ESD Leader, TowerJazz
chiportal
 
Eddy Kvetny, System Engineering Group Leader, Intel
Eddy Kvetny, System Engineering Group Leader, IntelEddy Kvetny, System Engineering Group Leader, Intel
Eddy Kvetny, System Engineering Group Leader, Intel
chiportal
 
Dr. John Bainbridge, Principal Application Architect, NetSpeed
 Dr. John Bainbridge, Principal Application Architect, NetSpeed  Dr. John Bainbridge, Principal Application Architect, NetSpeed
Dr. John Bainbridge, Principal Application Architect, NetSpeed
chiportal
 
Xavier van Ruymbeke, App. Engineer, Arteris
Xavier van Ruymbeke, App. Engineer, ArterisXavier van Ruymbeke, App. Engineer, Arteris
Xavier van Ruymbeke, App. Engineer, Arteris
chiportal
 
Asi Lifshitz, VP R&D, Vtool
Asi Lifshitz, VP R&D, VtoolAsi Lifshitz, VP R&D, Vtool
Asi Lifshitz, VP R&D, Vtool
chiportal
 
Zvika Rozenshein,General Manager, EngineeringIQ
Zvika Rozenshein,General Manager, EngineeringIQZvika Rozenshein,General Manager, EngineeringIQ
Zvika Rozenshein,General Manager, EngineeringIQ
chiportal
 
Lewis Chu,Marketing Director,GUC
Lewis Chu,Marketing Director,GUC Lewis Chu,Marketing Director,GUC
Lewis Chu,Marketing Director,GUC
chiportal
 
Kunal Varshney, VLSI Engineer, Open-Silicon
Kunal Varshney, VLSI Engineer, Open-SiliconKunal Varshney, VLSI Engineer, Open-Silicon
Kunal Varshney, VLSI Engineer, Open-Silicon
chiportal
 
Gert Goossens,Sen. Director, ASIP Tools, Synopsys
Gert Goossens,Sen. Director, ASIP Tools, SynopsysGert Goossens,Sen. Director, ASIP Tools, Synopsys
Gert Goossens,Sen. Director, ASIP Tools, Synopsys
chiportal
 
Tuvia Liran, Director of VLSI, Nano Retina
Tuvia Liran, Director of VLSI, Nano RetinaTuvia Liran, Director of VLSI, Nano Retina
Tuvia Liran, Director of VLSI, Nano Retina
chiportal
 
Sagar Kadam, Lead Software Engineer, Open-Silicon
Sagar Kadam, Lead Software Engineer, Open-SiliconSagar Kadam, Lead Software Engineer, Open-Silicon
Sagar Kadam, Lead Software Engineer, Open-Silicon
chiportal
 
Ronen Shtayer,Director of ASG Operations & PMO, NXP Semiconductor
Ronen Shtayer,Director of ASG Operations & PMO, NXP SemiconductorRonen Shtayer,Director of ASG Operations & PMO, NXP Semiconductor
Ronen Shtayer,Director of ASG Operations & PMO, NXP Semiconductor
chiportal
 
Prof. Emanuel Cohen, Technion
Prof. Emanuel Cohen, TechnionProf. Emanuel Cohen, Technion
Prof. Emanuel Cohen, Technion
chiportal
 

More from chiportal (20)

Prof. Zhihua Wang, Tsinghua University, Beijing, China
Prof. Zhihua Wang, Tsinghua University, Beijing, China Prof. Zhihua Wang, Tsinghua University, Beijing, China
Prof. Zhihua Wang, Tsinghua University, Beijing, China
 
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
 
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
Prof. Steve Furber, University of Manchester, Principal Designer of the BBC M...
 
Prof. Uri Weiser,Technion
Prof. Uri Weiser,TechnionProf. Uri Weiser,Technion
Prof. Uri Weiser,Technion
 
Ken Liao, Senior Associate VP, Faraday
Ken Liao, Senior Associate VP, FaradayKen Liao, Senior Associate VP, Faraday
Ken Liao, Senior Associate VP, Faraday
 
Prof. Danny Raz, Director, Bell Labs Israel, Nokia
 Prof. Danny Raz, Director, Bell Labs Israel, Nokia  Prof. Danny Raz, Director, Bell Labs Israel, Nokia
Prof. Danny Raz, Director, Bell Labs Israel, Nokia
 
Marco Casale-Rossi, Product Mktg. Manager, Synopsys
Marco Casale-Rossi, Product Mktg. Manager, SynopsysMarco Casale-Rossi, Product Mktg. Manager, Synopsys
Marco Casale-Rossi, Product Mktg. Manager, Synopsys
 
Dr.Efraim Aharoni, ESD Leader, TowerJazz
Dr.Efraim Aharoni, ESD Leader, TowerJazzDr.Efraim Aharoni, ESD Leader, TowerJazz
Dr.Efraim Aharoni, ESD Leader, TowerJazz
 
Eddy Kvetny, System Engineering Group Leader, Intel
Eddy Kvetny, System Engineering Group Leader, IntelEddy Kvetny, System Engineering Group Leader, Intel
Eddy Kvetny, System Engineering Group Leader, Intel
 
Dr. John Bainbridge, Principal Application Architect, NetSpeed
 Dr. John Bainbridge, Principal Application Architect, NetSpeed  Dr. John Bainbridge, Principal Application Architect, NetSpeed
Dr. John Bainbridge, Principal Application Architect, NetSpeed
 
Xavier van Ruymbeke, App. Engineer, Arteris
Xavier van Ruymbeke, App. Engineer, ArterisXavier van Ruymbeke, App. Engineer, Arteris
Xavier van Ruymbeke, App. Engineer, Arteris
 
Asi Lifshitz, VP R&D, Vtool
Asi Lifshitz, VP R&D, VtoolAsi Lifshitz, VP R&D, Vtool
Asi Lifshitz, VP R&D, Vtool
 
Zvika Rozenshein,General Manager, EngineeringIQ
Zvika Rozenshein,General Manager, EngineeringIQZvika Rozenshein,General Manager, EngineeringIQ
Zvika Rozenshein,General Manager, EngineeringIQ
 
Lewis Chu,Marketing Director,GUC
Lewis Chu,Marketing Director,GUC Lewis Chu,Marketing Director,GUC
Lewis Chu,Marketing Director,GUC
 
Kunal Varshney, VLSI Engineer, Open-Silicon
Kunal Varshney, VLSI Engineer, Open-SiliconKunal Varshney, VLSI Engineer, Open-Silicon
Kunal Varshney, VLSI Engineer, Open-Silicon
 
Gert Goossens,Sen. Director, ASIP Tools, Synopsys
Gert Goossens,Sen. Director, ASIP Tools, SynopsysGert Goossens,Sen. Director, ASIP Tools, Synopsys
Gert Goossens,Sen. Director, ASIP Tools, Synopsys
 
Tuvia Liran, Director of VLSI, Nano Retina
Tuvia Liran, Director of VLSI, Nano RetinaTuvia Liran, Director of VLSI, Nano Retina
Tuvia Liran, Director of VLSI, Nano Retina
 
Sagar Kadam, Lead Software Engineer, Open-Silicon
Sagar Kadam, Lead Software Engineer, Open-SiliconSagar Kadam, Lead Software Engineer, Open-Silicon
Sagar Kadam, Lead Software Engineer, Open-Silicon
 
Ronen Shtayer,Director of ASG Operations & PMO, NXP Semiconductor
Ronen Shtayer,Director of ASG Operations & PMO, NXP SemiconductorRonen Shtayer,Director of ASG Operations & PMO, NXP Semiconductor
Ronen Shtayer,Director of ASG Operations & PMO, NXP Semiconductor
 
Prof. Emanuel Cohen, Technion
Prof. Emanuel Cohen, TechnionProf. Emanuel Cohen, Technion
Prof. Emanuel Cohen, Technion
 

Recently uploaded

[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
Data Hops
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 

Recently uploaded (20)

[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 

Clockless design language - ilia greenblat

  • 1. clockless design language First steps from language to silicon Ilia Greenblat greenblat@mac.com +972-54-4927322 skype: igreenblat M a a y2 2 , M y , 1 2 2 0 12 0 12
  • 2. So no clocks, now what? Let’s focus on just one operation (like multiply) We specify and control the sequence same in pseudo-Verilog 1. wait till inputs become available 2. execute the operation input passive channel [7:0] A,B; 3. latch result, release inputs latch [15:0] Creg; 4. send the result down the stream. output active channel [15:0] C; 5. wait until accepted. 6. start over always begin fork wait(A); wait(B); join Creg = B*A; release A; release B; C = Creg; end 2 May 2 , 2 0 12
  • 3. loop example Bunch of modules communicating asynchronously using channels and tokens. Each module gets datum or token to work on, arbitrates for shared resources, processes data and when ready, passes the result down the stream. Each building block implements the protocol of request/ack. Each module “knows” when the inputs become valid, when it’s own computation completed, and when it’s outputs are used and new cycle can begin. 3 May 2 , 2 0 12
  • 4. Clockless is an old idea 4 May 2 , 2 0 12
  • 5. Why bother? • advanced nodes easier implementation. • low power, low leakage, high VT cells • clocking, power grid, ocv, sleep modes • aging, voltage swings • modularity & integration 5 May 2 , 2 0 12
  • 6. Lot of activity • LARD, Balsa, Tangram : CSP languages • VerilogCSP - verilog + macros : modeling of .. • Handshake, Philips : out of business. • Tiempo - SystemVerilog + Library : full flow, IP provider • + many point tools, not whole language+flow. 6 May 2 , 2 0 12
  • 7. So what the problem i am trying to solve • Good, Solid, Comprehensive and Free • Entry level language • Show tentative flow to silicon. 7 May 2 , 2 0 12
  • 8. The proposal use slightly extended Verilog as clockless design entry language, because: expresses parallelism well. describes hardware well. expresses design intent. is timing aware. has all the needed language structures. hierarchical and “objective”. few additions make the life easier 8 May 2 , 2 0 12
  • 9. Procedural Verilog Verilog written like C describes the sequence of operations.each “always” is sequential ays begin wait (dt); wait (!dt); counter = counter +1; if (counter==100) -> beep;endalwa process.many “always” blocks run concurrently.the basic storage element is latch. Extensions: latch, flipflop release, wait overload in/out channel passive/active channel active latch several $system functions 9 May 2 , 2 0 12
  • 10. The compiler latch [15:0] mcounter,scounter;initial begin mcounter=0;endalways begin wait (!cnt); wait (cnt); scounter = mcounter +1; mcounter=scounter;end design turned into a graph of one-hot ring of state latches Each line becomes a state latch 10 May 2 , 2 0 12
  • 11. Arbitration Arbitration is needed where access to shared resource (like ram memory) is needed and it comes from two not directly related “always” blocks. So for example: The compiler inserts arbiters to separate reads from writes, and writes from writes. So read value will not get ruined by write. Another example: output passive channel [15:0] readval; always begin wait readval; //passive channel waits for request. readval = mcounter; // wins arb, reads latch, drives data out release readval; // when request negated, we can de-assert the data end 11 May 2 , 2 0 12
  • 12. Usable Verilog Elements always begin initial begin for (i=0; i<100; i=i+1) begin ... ... #(delay_time); ... end end end fork while (xx>10) begin always @eventA begin -> eventA; ... ... -> eventB end end -> eventC; join task do_something; ... wait(till_something); endtask release some; also: if, if-else, case, assign and more 12 May 2 , 2 0 12
  • 13. Tentative flow common testbench for all views 13 May 2 , 2 0 12
  • 14. Side Stepping Suppose we see code like this: always @(computeIt) begin data=0; for (i=0;i<100;i=i+1) begin adat = ram[i]; #1; We can use the same extended bdat = ram[i+100]; verilog syntax to produce clocked #1; synthesizable RTL. ram[i]=adat-bdat; end Instead of Clock-Reset-Data basic end synthesizable rtl, We get to write the design in procedural fasion. 14 May 2 , 2 0 12
  • 15. goes on.. netlist from regular adder synthesis is “dual- railed” here. packager creates best hierarchy and inserts correct breakers flow assembles timing constraints. 15 May 2 , 2 0 12
  • 16. side stepping (again) Fpga validation needs another tricks to fool the fpga software to create fastest circuit. 16 May 2 , 2 0 12
  • 17. Cleaning up 17 May 2 , 2 0 12
  • 18. Status • First implementation of the compiler is working. • Cadence toolchain is used to assemble the flow to gds. • Several modules were designed and run through: • Like: Uart, Pwm, Fir, picoblaze cpu. • The only validation was with sdf verilog and fast spice in tester- like setup. • The subset appears to be powerful enough to implement these modules. It is still evolving. • Optimization at various stages is needed to reach the performance. 18 May 2 , 2 0 12
  • 19. What’s next? • more code examples to verify the usefulness of the language • identify kind of designs where this flow can have biggest advantage, biggest impact. • select a comprehensive proving ground project. • add optimizations to reach performance/area/power goals. • cover missing validation steps in the flow 19 May 2 , 2 0 12
  • 20. ‫תודה‬ Thank You 谢谢 20 May 2 , 2 0 12