
Getting started: Come scrivere un testbench con MyHDL?
Una volta realizzata la descrizione in Python del nostro Multiplexer , dobbiamo testare se funziona o meno. Infatti non è sufficiente descriverne il comportamento interno (architecture) e l'interfaccia esterna (design entity) perché il solo modo per verificare che funzioni è di simularlo. In questo articolo avevamo già visto come farlo con ISim ora però non ci resta che farlo in Python sempre con il modulo MyHDL e MyHDL Peek che ci permette la visualizzazione su un Notebook Jupyter dell'andamento dei segnali attraverso le forme d'onda ottenute dalla simulazione.
Tech Stack[1] Installazione del modulo open source MyHDL Installazione MyHDL PeekMyHDL Peek è un modulo Python sviluppato da Dave Vandenbout che ci permette di visualizzare il diagramma temporale dei segnali su un notebook Jupyter. Apportare modifiche alla nostra descrizione in Python con MyHDL e visualizzare immediatamente il risultato.
TestbenchLa simulazione è una procedura di testing utilizzata per garantire che il circuito da sintetizzare implementi il comportamento previsto. Infine osserviamo la risposta dell'UUT visualizzando la waveform dell'uscita utilizzando MyHDL Peek.
Inizializzazione della simulazioneDobbiamo assegnare ai segnali in input dei valori iniziali in base al loro tipo: - tre ingressi
Generazione degli stimoliQuando abbiamo testato il MUX con ISim abbiamo scritto all'interno del process body una serie di assegnamenti tra segnali e di istruzioni wait per fornire gli stimoli:
Allo stesso modo con MyHDL creeremo un generatore stimulus() per poi assegnare una serie di valori casuali ai nostri segnali in ingresso:
Per farlo utilizzeremo semplicemente il metodo randrange() che restituisce un elemento casuale da range(start,stop,step). Ricordandoci che il selettore è a 1 bit e che può quindi acquisire solo due valori randrange(2) Simulation
Output waveformPer un componente di bassa complessità come un Multiplexer per capire se si comporta in modo corretto possiamo analizzare la waveform prodotta dalla simulazione. Innanzitutto dobbiamo associare ad ogni segnale di I/O che dobbiamo monitorare un Peeker:
Dal nostro taccuino Jupyter MyHDL Peek ci permette di visualizzare i risultati della simulazione con una comoda tabella:
Notiamo subito che il selettore
Greads: bibliografia
SitografiaMyHDL:documentazione |