levels for system on chip
play

levels for system-on-chip Giovanni Funchal STMicroelectronics - PowerPoint PPT Presentation

Components and abstraction levels for system-on-chip Giovanni Funchal STMicroelectronics Verimag Synchron2008 Introduction Simulation mechanics In practice Contributions Future work Imagine a system Display USB FM radio PAL/NTSC


  1. Components and abstraction levels for system-on-chip Giovanni Funchal STMicroelectronics Verimag Synchron’2008

  2. Introduction Simulation mechanics In practice Contributions Future work Imagine a system… Display USB FM radio PAL/NTSC TV-out Internet radio, podcasts 16Gb Flash Browser 256Mb RAM WLAN RF MPEG4 5Mp camera Bluetooth Internet 2Mp camera WCDMA, GSM MP3 E-mail MMS/SMS Java Operating Maps System GPS Microphone Keypad Battery Giovanni Funchal Components and abstraction levels for system-on-chip 2

  3. Introduction Simulation mechanics In practice Contributions Future work … -on-chip STMicroelectronics Nokia N96 Nomadik STn8815 Giovanni Funchal Components and abstraction levels for system-on-chip 3

  4. Introduction Simulation mechanics In practice Contributions Future work Design flow RTL model Giovanni Funchal Components and abstraction levels for system-on-chip 4

  5. Introduction Simulation mechanics In practice Contributions Future work Register transfer level Precise description of hardware Synchronous, deterministic Giovanni Funchal Components and abstraction levels for system-on-chip 5

  6. Introduction Simulation mechanics In practice Contributions Future work Design flow RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 6

  7. Introduction Simulation mechanics In practice Contributions Future work Design flow Software RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 7

  8. Introduction Simulation mechanics In practice Contributions Future work Design flow Too late! Software RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 8

  9. Introduction Simulation mechanics In practice Contributions Future work Design flow Software RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 9

  10. Introduction Simulation mechanics In practice Contributions Future work Design flow Software Simulator RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 10

  11. Introduction Simulation mechanics In practice Contributions Future work Design flow Too slow! Software Simulator RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 11

  12. Introduction Simulation mechanics In practice Contributions Future work Design flow Simpler, faster Software TLM model Simulator RTL model Fabrication Giovanni Funchal Components and abstraction levels for system-on-chip 12

  13. Introduction Simulation mechanics In practice Contributions Future work Abstraction levels TLM models • Early (sw dev) • Less precise • Fast RTL models • Late (hw fab) • Precise • Slow Giovanni Funchal Components and abstraction levels for system-on-chip 13

  14. Introduction Simulation mechanics In practice Contributions Future work Transaction level modeling Abstract transfers of data Asynchronous, non-deterministic Giovanni Funchal Components and abstraction levels for system-on-chip 14

  15. Components and abstraction levels for system-on-chip Giovanni Funchal STMicroelectronics Verimag Synchron’2008

  16. Introduction Simulation mechanics In practice Contributions Future work Components Component Target port Initiator port Data interface Interrupt interf. Giovanni Funchal Components and abstraction levels for system-on-chip 16

  17. Introduction Simulation mechanics In practice Contributions Future work Components What’s inside? Giovanni Funchal Components and abstraction levels for system-on-chip 17

  18. Introduction Simulation mechanics In practice Contributions Future work SystemC • Processes (C++ code) Ready Running Waiting Giovanni Funchal Components and abstraction levels for system-on-chip 18

  19. Introduction Simulation mechanics In practice Contributions Future work SystemC • Processes (C++ code) • Events Ready Running Waiting Giovanni Funchal Components and abstraction levels for system-on-chip 19

  20. Introduction Simulation mechanics In practice Contributions Future work SystemC • Processes (C++ code) • Events • Scheduler Ready Running Waiting Giovanni Funchal Components and abstraction levels for system-on-chip 20

  21. Introduction Simulation mechanics In practice Contributions Future work SystemC • Processes (C++ code) – wait() • Events • Scheduler Ready Running wait() Waiting Giovanni Funchal Components and abstraction levels for system-on-chip 21

  22. Introduction Simulation mechanics In practice Contributions Future work Transactions in SystemC void irq() { port. irq(); … } Giovanni Funchal Components and abstraction levels for system-on-chip 22

  23. Introduction Simulation mechanics In practice Contributions Future work Transactions in SystemC void irq() { port. irq(); … } Interface function calls Giovanni Funchal Components and abstraction levels for system-on-chip 23

  24. Introduction Simulation mechanics In practice Contributions Future work An example Video Display decoder controller Memory Giovanni Funchal Components and abstraction levels for system-on-chip 24

  25. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); x = read (flag); write (flag, true); } while(!x); wait(irq); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 25

  26. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); x = read (flag); write (flag, true); } while(!x); wait(irq); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 26

  27. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); x = read (flag); write (flag, true); } while(!x); wait(irq); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 27

  28. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); x = read (flag); write (flag, true); } while(!x); wait(irq); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 28

  29. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); x = read (flag); write (flag, true); } while(!x); wait(irq); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 29

  30. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); x = read (flag); write (flag, true); } while(!x); wait(irq); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 30

  31. Introduction Simulation mechanics In practice Contributions Future work yield() • Like “wait()” but without saying what it is waiting for • The scheduler may choose the same process again Giovanni Funchal Components and abstraction levels for system-on-chip 31

  32. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); yield(); write (flag, true); x = read (flag); wait(irq); yield(); } while(!x); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 32

  33. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); yield(); write (flag, true); x = read (flag); wait(irq); } while(!x); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 33

  34. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); yield(); write (flag, true); x = read (flag); wait(irq); } while(!x); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 34

  35. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); yield(); write (flag, true); x = read (flag); wait(irq); } while(!x); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 35

  36. Introduction Simulation mechanics In practice Contributions Future work Decoder: Display: decode(image); do { write (mem, image); yield(); write (flag, true); x = read (flag); wait(irq); } while(!x); img = read (mem); display(img); irq (); Giovanni Funchal Components and abstraction levels for system-on-chip 36

  37. Introduction Simulation mechanics In practice Contributions Future work Observations • “yield()” 1. Avoids livelocks by possibly giving other processes a chance to run 2. Finds bugs (next slides) Giovanni Funchal Components and abstraction levels for system-on-chip 37

Recommend


More recommend