SlideShare une entreprise Scribd logo
1  sur  20
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

Contenu connexe

Tendances

Virtual Machines Lecture
Virtual Machines LectureVirtual Machines Lecture
Virtual Machines Lecturelienhard
 
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 itAlexey 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 platformDeveler 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, TuningCarol McDonald
 
RBuilder and ByteSurgeon
RBuilder and ByteSurgeonRBuilder and ByteSurgeon
RBuilder and ByteSurgeonMarcus Denker
 
Transactions
TransactionsTransactions
Transactionskalyan_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 PracticeAlina Dolgikh
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java WorkshopSimon Ritter
 
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 JavaUniversidad 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 systemDeveler S.r.l.
 

Tendances (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
 

En vedette

En vedette (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
 

Similaire à Clockless design language - ilia greenblat

Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfsagar414433
 
Verilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfVerilog_Cheat_sheet_1672542963.pdf
Verilog_Cheat_sheet_1672542963.pdfsagar414433
 
dokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfdokumen.tips_verilog-basic-ppt.pdf
dokumen.tips_verilog-basic-ppt.pdfVelmathi Saravanan
 
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 2011David Troy
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eveguest91855c
 
Threaded Programming
Threaded ProgrammingThreaded Programming
Threaded ProgrammingSri Prasanna
 
OS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and MonitorsOS Process Synchronization, semaphore and Monitors
OS Process Synchronization, semaphore and Monitorssgpraju
 
The Need for Async @ ScalaWorld
The Need for Async @ ScalaWorldThe Need for Async @ ScalaWorld
The Need for Async @ ScalaWorldKonrad Malawski
 
Blocks & GCD
Blocks & GCDBlocks & GCD
Blocks & GCDrsebbe
 
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 RustEvan Chan
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Evel xf
 
Writing more complex models
Writing more complex modelsWriting more complex models
Writing more complex modelsMohamed Samy
 

Similaire à Clockless design language - ilia greenblat (20)

verilog ppt .pdf
verilog ppt .pdfverilog ppt .pdf
verilog ppt .pdf
 
Verilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).pdfVerilog Cheat sheet-2 (1).pdf
Verilog Cheat sheet-2 (1).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
 
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
 

Plus de 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,Technionchiportal
 
Ken Liao, Senior Associate VP, Faraday
Ken Liao, Senior Associate VP, FaradayKen Liao, Senior Associate VP, Faraday
Ken Liao, Senior Associate VP, Faradaychiportal
 
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, Synopsyschiportal
 
Dr.Efraim Aharoni, ESD Leader, TowerJazz
Dr.Efraim Aharoni, ESD Leader, TowerJazzDr.Efraim Aharoni, ESD Leader, TowerJazz
Dr.Efraim Aharoni, ESD Leader, TowerJazzchiportal
 
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, Intelchiportal
 
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, Arterischiportal
 
Asi Lifshitz, VP R&D, Vtool
Asi Lifshitz, VP R&D, VtoolAsi Lifshitz, VP R&D, Vtool
Asi Lifshitz, VP R&D, Vtoolchiportal
 
Zvika Rozenshein,General Manager, EngineeringIQ
Zvika Rozenshein,General Manager, EngineeringIQZvika Rozenshein,General Manager, EngineeringIQ
Zvika Rozenshein,General Manager, EngineeringIQchiportal
 
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-Siliconchiportal
 
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, Synopsyschiportal
 
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 Retinachiportal
 
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-Siliconchiportal
 
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 Semiconductorchiportal
 
Prof. Emanuel Cohen, Technion
Prof. Emanuel Cohen, TechnionProf. Emanuel Cohen, Technion
Prof. Emanuel Cohen, Technionchiportal
 

Plus de 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
 

Dernier

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

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