Hardware-Software Codesign
Jan Genoe
KHLim
Hardware-software Co-design
Jan Genoe KHLim
Versie: maandag 10 juli 2000
Pagina 1
Hardware-Software Codesign
Jan Genoe
KHLim
Wat is HW/SW Co-design
• Traditioneel design: – De verdeling tussen de HW en de SW gebeurt bij het begin en beiden worden onafhankelijk ontwikkeld
• Verweven co-design – flexibele ontwerpstrategie waarbij de SW/HW ontwikkeld wordt in parallel en waarbij er frequent interactie en feedback is tussen beiden. – De uiteindelijke SW/HW verdeling wordt gedaan na een evaluatie van de verschillende voor- en nadelen.
Hardware-software Co-design
Versie: maandag 10 juli 2000
Jan Genoe KHLim
Pagina 2
Hardware-Software Codesign
Jan Genoe
KHLim
Co-design • Co-design is een trade-off tussen – kost – ontwerptijd – prestaties
CPU
Pure software
Co-design
Algemene code: software Kritische code: hardware
Hardware-software Co-design
Versie: maandag 10 juli 2000
Aangepaste hardware
Pure hardware
Jan Genoe KHLim
Pagina 3
Hardware-Software Codesign
Jan Genoe
KHLim
Co-design
Co-design
CPU
Aangepaste hardware
Pure software
Algemene code: software Kritische code: hardware
Pure hardware
goedkoop snel ontworpen gewone prestaties
duurder redelijk vlug ontworpen betere prestaties
zeer duur zeer lange ontwerptijd excellente prestaties
Hardware-software Co-design
Versie: maandag 10 juli 2000
Jan Genoe KHLim
Pagina 4
Hardware-Software Codesign
Jan Genoe
KHLim
Real-time vereisten voor embedded systems
• Typische toepassingen voor Co-design zijn embedded systems: – consumer elektronica, consumer producten (wasmachines, …), automobiel-industrie (ABS, injectie controle, ... ), process controllers, communicatie producten, ...
• Deze real-time systemen kunnen we opdelen in: – Harde real-time systemen » gewenste timing moet exact kloppen anders loopt alles mis. – Zachte real-time systemen » ongenoegen van de gebruiker neemt toe naarmate de vertraging groter is
Hardware-software Co-design
Versie: maandag 10 juli 2000
Jan Genoe KHLim
Pagina 5
Hardware-Software Codesign
Jan Genoe
KHLim
Co-simulatie: wat en waarom?
• Als zowel hardware als software samen ontwikkeld worden, moeten deze ook samen gesimuleerd kunnen worden. – Software: C – Hardware: VHDL
• Tool: – CoWare – ...
Hardware-software Co-design
Versie: maandag 10 juli 2000
Jan Genoe KHLim
Pagina 6
Hardware-Software Codesign
Jan Genoe
KHLim
Voorbeeld 1: een firewall • Doel – voorkomen dat data ongewenst een bedrijf verlaat of binnenkomt
• Design opties – Volledig software: traag maar zeer flexibel » een PC met 2 netwerkkaarten » de programmatuur verifieert de binnenkomende data en stuurt ze dan door – Volledig hardware: snel maar niet meer te veranderen » wat als iemand deze firewall kraakt? » Wat als er een bug in zit? – Combinatie HW/SW
Hardware-software Co-design
Versie: maandag 10 juli 2000
Jan Genoe KHLim
Pagina 7
Hardware-Software Codesign
Jan Genoe
KHLim
Voorbeeld 2: hoge snelheid digitale modem • Vele complexe signaal processing algoritmes worden toegepast op de data – – – –
adaptieve equalizers Viterbi decoders FFT …
• Al deze algoritmes kunnen onmogelijk in SW uitgevoerd worden wensen we de maximale snelheid te bekomen • Alles in HW levert een veel te grote IC op. • … dus co-design
Hardware-software Co-design
Versie: maandag 10 juli 2000
Jan Genoe KHLim
Pagina 8
Hardware-Software Codesign
Jan Genoe
KHLim
Aanpak van de tijdskritische delen
SW
SW
+
HW
Samen
Tijdskritisch deel
Tijdskritisch deel
c Hardware-software Co-design
Versie: maandag 10 juli 2000
c
VHDL Jan Genoe KHLim
Pagina 9
Hardware-Software Codesign
Jan Genoe
KHLim
Aanpak van de tijdskritische delen
• Bestaande processor (of ontwerp) wordt gebruikt voor het basisalgoritme op uit te voeren • Nieuwe HW (met nieuwe instructies) wordt gebruikt voor de kritische taken • Interface tussen HW en SW moet voorzien worden
Hardware-software Co-design
Versie: maandag 10 juli 2000
Jan Genoe KHLim
Pagina 10
Hardware-Software Codesign
Jan Genoe
KHLim
Werkwijze
• Beschrijf eerst het gehele systeem in C++ • Herwerk de signalen zodat ze compatible zijn met VHDL • Selecteer de delen die in HW moeten gerealiseerd worden. • Synthetiseer • simulatie / emulatie • debug
Hardware-software Co-design
Versie: maandag 10 juli 2000
Jan Genoe KHLim
Pagina 11
Hardware-Software Codesign
Jan Genoe
KHLim
Goed co-design • Zorg dat hardware kan aangepast worden door de software – bypass van een bug – veranderen van de systeemspecificaties » nieuwe componenten die toegevoegd worden aan het systeem » componenten die vervangen worden door andere componenten
• Dit kan dan wel zorgen voor een verlaging van de maximale prestaties.
Hardware-software Co-design
Jan Genoe KHLim
Dit kan gebeuren door de extra hardware te implementeren als één (of een aantal) extra instructies. Wanneer dan de uitvoering toch anders moet gebeuren, worden die instructies niet meer opgeroepen.
Versie: maandag 10 juli 2000
Pagina 12
Hardware-Software Codesign
Jan Genoe
KHLim
emulatie • Vaak een attractief alternatief – Hardwaremodel wordt gedownload naar één (of vele) SRAM gebaseerde FPGA – Software wordt gedownload naar RAM geheugen
• Voordelen – 5 grootteordes sneller dan co-simulatie – laat toe van het systeem te booten en echte applicaties te laten lopen – voorziet reeds een systeem om SW te ontwikkelen voor de HW gebouwd wordt.
Hardware-software Co-design
Versie: maandag 10 juli 2000
Jan Genoe KHLim
Pagina 13