HW/SW Co-Design
Bei der Konzeption von System On Chip Komponenten spielt die Definition der Hardware – Softwareschnittstelle eine große Rolle. Gerade bei größeren Teams die an komplexen SoCs arbeiten muss sichergestellt werden, dass Adressen nicht mehrfach vergeben werden und dass die Adressenbelegung in der Hardware mit der Implementation auf der Softwareseite übereinstimmt.
In der Regel bestehen FPGA oder ASIC basierte Systeme aus:
- Eigenem HDL Code
- IP-Blöcke der FPGA, ASIC Herstellers
- Zugekaufte IP-Blöcke
Dazu kommen verschiedene Softwarekomponenten wie:
- Low Level Device Treiber
- Evtl. ein Betriebssystem
- Evtl. ein High Level API (Application Programmable Interface)
- Die Anwendungssoftware
Sobald sich an den Registerspezifikationen oder Implementationen etwas ändert, hat dies einen Einfluss auf die verschiedensten Entwicklungsteams. Daher ist eine strukturiere und automatisierte Entwicklungsmethodik hinsichtlich der Beschreibung und Erzeugung der Registerspezifikation und Implementation von herausragender Bedeutung um im Laufe des Entwicklungsprozesses nicht mit zu spät entdeckten Fehlern zu kämpfen oder sogar Fehler im HW/SW Interface zu übersehen. Unser Partner Agnisys hat mit iDesignSpec eine innovative Lösung entwickelt, um sicherzustellen, dass die HW/SW Schnittstelle sauber implementiert und verifiziert wird. Von einer zentralen Stelle aus werden dann die Quellcodes für die verschiedenen Arbeitsschritte generiert (siehe Grafik).
HW-SW Co-Simulation
Soll das Zusammenspiel von Hardware und Software simuliert werden, stellt sich die Frage wie eine Simulationsumgebung aufgebaut werden kann. Speziell die Verifikation von Treibern stellt hier of eine Herausforderung dar. Mithilfe der Qemu bridge und des ALDEC AXI BFMs erlaubt Riviera-Pro die Cosimulation zwischen HDL Design und dem Open-Source Prozessor Emulator QEMU.