Please enable JavaScript.
Coggle requires JavaScript to display documents.
Hardware/Software Codesign - Coggle Diagram
Hardware/Software Codesign
Modellazione Hardware
Si ragiona a livello RTL (Register Transfer Level), porte logiche, registri, multiplexer e come sono collegati
Ogni componente esiste fisicamente e lavora in parallelo nello spazio, ogni ciclo di clock tutti i blocchi attivi eseguono la loro funzione
Il comportamento a runtime può essere visto come l'evoluzione del circuito nel tempo ma la modella resta nello spazio.
Software Modeling
Si usano linguaggi come C per descrivere degli algoritmi, si ragiona in termini di tempo di esecuzione.
Si potrebbe usare assembly a livello più basso, più ottimizzazioni possibili, ma più complesso e meno leggibile.
Per questo si lavora normalmente ocn livelli di astrazione alti e usando quelli più bassi solo per sezioni critiche.
Il processore (o l'hardware) è fisso e le istruzioni si eseguono in sequenza.
Principali differenze
Paradigma
L'hardware lavora nello spazio mentre il software nel tempo
Ottimizzazione
L'hardware è limitato dall'area disponibile mentre nel software si valuta sul tempo di esecuzione
Flessibilità
Un ASIC è rigido mentre un FPGA è riconfigurabile con dell'effort, il software è flessibile per natura
Parallelismo
è implicito nell'hardware, esplicito e progettato in software (thread, processi)
Riuso
Il software è nato per essere riusabile, con l'hardware è possibile ma in scenari molto specifici
Tempi
Hardware più lenta le progettazione e implementazione, software time-to-market più veloce
Codesign
Approccio di progettazione in cui un sistema viene realizzato combinando componenti hardware e software
Hardware accelera le parti critiche, più veloce ed efficiente
Software più flessibile, facile da sviluppare e mantenere, adatto a gestire complessità elevate.
L'idea è di decidere per ogni funzione del sistema cosa conviene implementare in hardware e cosa in software bilanciando prestazioni, costi e tempi
Si parla di componenti fixed oppure flexible
Parametri di scelta
Performance
Hardware esegue più operazioni per ciclo
Efficienza energetica
Hardware dedicato consuma meno energia
Complessità del disegno
Hardware richiede più competenze e tempi rispetto al software
Costi
Hardware generalmente più costoso, ASIC costi alti iniziali (necessita produzione di massa), FPGA più flessibili e meno costosi ma sempre più del software
Time-To-Market
Hardware custom rischia di arrivare tardi sul mercato, software molto più veloce
Flessibiltà
Il software è per natura adattabile, l'hardware più rigido (a parte FPGA riconfigurabili)
Classificazione dei modelli
Control-Flow Dominant (State Oriented)
Set di stati e transizioni (FSM)
Data-Flow Dominant (Activity Oriented)
Data processing node and dependencias (DFG)
Structure Oriented
Descrizione dei moduli fisici (Block Diagram)
Data Oriented
Collezione di oggetti con attributi e relazioni (UML)
Time Oriented
Control Data Flow Diagram
Combinazione di Data Flow e Control Flow
Per ogni blocco basico viene creato un data flow
un blocco basico è una sequenza consecutiva di istruzioni dove entra il control flow