Gérard: The Hard Man behind the Soft Core Satnam Singh Microsoft Research, Cambridge UK The University of Birmingham ! multiple independent multi-ported memories fine-grain parallelism and pipelining hard and soft embedded processors ELF File 0101110001110001 1101001110011001 0011100011100101 0110001110001110 .bit File 0101110001110001 1101001110011001 0011100011100101 0110001110001110 BlockRam Memory Map (.bmm) DATA2BRAM .mem File 0101110001110001 1101001110011001 0011100011100101 0110001110001110 New .bit File 0101110001110001 1101001110011001 0011100011100101 0110001110001110 # CPU address space 0xFFFFE000 - 0xFFFFFFFF. ADDRESS_BLOCK dramctlr BUS_BLOCK [0xFFFFF000:0xFFFFFFFF] xrefdes/dramctlr/bram0 [7:0] LOC=RAMB16_X0Y0; xrefdes/dramctlr/bram1 [15:8] LOC=RAMB16_X1Y0; xrefdes/dramctlr/bram2 [23:16] LOC=RAMB16_X2Y0; . . . END_BUS_BLOCK; END_ADDRESS_BLOCK; ZBT SSRAM SDRAM DDR SDRAM ROM ZBT SSRAM Controller SDRAM Controller DDR SDRAM Controller External Bus Controller OPB OPB Bridge On-Chip Peripheral CoreConnect Processor Local Bus (PLB) Arbiter I-Cache PLB 405 PPC OPB Bridge D-Cache PLB High-Speed Peripheral CoreConnect OPB (On-Chip Peripheral Bus) On-Chip Peripheral locks monitors condition variables spin locks priority inversion PLDI 1998 PLDI 1999 1 2 3 4 5 PLDI 2000 80 70 60 50 Series1 40 Series2 30 20 10 0 1 2 3 4 5 6 POPL 1998 POPL 1999 POPL 2000 ray of light Signal Esterel Jazz Lustre SHIM PRET-C San Jose, 6 June 2003 Sylvan Dissoubray Gérard wearing Satnam’s ring Satnam wearing Gérard’s ring San Jose, 6 June 2003 Gérard Berry Nicolas Halbwachs Albert Benveniste Synchronous Programming Language Combat Team Zero delay example: Newtonian Mechanics Concurrency + Determinism Calculations are feasible Predictable delay examples: sound, light, waves • Wait long enough, same result as 0-delay ! • Zero delay and predictable delay are fully compatible • Constructive semantics is the unification • A theory of causality for reactive systems • Clocked digital circuits paradigm Safe State Machines Esterel code loop [ await A || await B ] ; emit O each R VHDL, Verilog -> hardware implementation Esterel design void uart_device_driver () { ..... uart.c } C -> software implementation Hardware UART Software UART Design Specification Capture Design Functional Spec Architecture Verification Requirements Editor Project Structure Architecture Diagram (2007) Project Management DUT Design Verifier Model Reporter Player Executable Specification Exporter IDE Sequential Equivalence Checker Formal Verification Code & Testbench Generators .sc Optimized for synthesis DFT-ready SystemC & RTL flow integration C / C++ / SystemC Design Verification Simulator IDE Automatic Documentation Debugging & Simulation Editor Sequential Equivalence check .vhd Verilog / VHDL G. Berry, Microsoft Research 18/01/2011 31 SCADE in the Airbus A380 Anti Ice Control Unit – – – – – – – – – Flight Control Primary & Secondary Commands Flight Warning System Flight Control system Flight Warning system Electrical Load Management system Anti Icing system Braking and Steering system Cockpit Display system Part of ATSU (Board / Ground comms) FADEC (Engine Control) EIS2 : Specification GUI Cockpit: – PFD : Primary Flight Display – ND : Navigation Display – EWD : Engine Warning Display – SD : System Display Braking & Steering Control Unit G. Berry, Microsoft Research 18/01/2011 32 French Synchronous Language Thread Level Remains High SEVERE: hysteresis HIGH: deadlock ELEVATED: priority inversion GUARDED: non-atomic action LOW: race condition begin … end static final void procedure if then else for while loop accept case present gift then await scream end present Thank you Stephen Edwards present gift then pause; every day do await thanks end every end present Thank you Stephen Edwards abort nothing when bored Thank you Stephen Edwards every day do nothing end every Thank you Stephen Edwards run slowly Thank you Stephen Edwards await falls ; every body do sustain disbelief end every Thank you Stephen Edwards present case legally do run away end present Thank you Stephen Edwards abort task when immediate objection Thank you Jens Brandt abort run slowly || run fastly when sleepy Thank you Mike Kishinevsky trap mouse in every loop do run cheese end every handle hair do run water end trap Thank you Mike Kishinevsky Engine control software programmed in Esterel by non-French speaker Kavi Arya, Mumbai, 10 January 2004 Esterel present A then emit A end QEsterel present A then emit A end Thank you Georges Gonthier Mike Kishinevsky Mike Kishinevsky