Jan Genoe KHLim Versie: maandag 10 juli 2000 Pagina 1
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. Versie: maandag 10 juli 2000 Pagina 2
Co-design Co-design is een trade-off tussen kost ontwerptijd prestaties CPU Co-design Aangepaste hardware Pure software Algemene code: software Kritische code: hardware Pure hardware Versie: maandag 10 juli 2000 Pagina 3
Co-design CPU Co-design 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 Versie: maandag 10 juli 2000 Pagina 4
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 Versie: maandag 10 juli 2000 Pagina 5
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... Versie: maandag 10 juli 2000 Pagina 6
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 Versie: maandag 10 juli 2000 Pagina 7
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 Versie: maandag 10 juli 2000 Pagina 8
Aanpak van de tijdskritische delen SW SW + HW Samen Tijdskritisch deel Tijdskritisch deel c c VHDL Versie: maandag 10 juli 2000 Pagina 9
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 Versie: maandag 10 juli 2000 Pagina 10
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 Versie: maandag 10 juli 2000 Pagina 11
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. 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
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. Versie: maandag 10 juli 2000 Pagina 13