Questo esempio di progettazione dimostra un'interfaccia slave AMBA* AXI*-3 su un semplice componente di memoria personalizzata Verilog per i sistemi Qsys. È possibile utilizzare questo esempio come base per le proprie interfacce slave AXI personalizzate. Il componente include anche un'interfaccia opzionale Avalon® Streaming (Avalon-ST) e un'interfaccia Avalon® Memory-Mapped (Avalon-MM), che dimostra come è possibile utilizzare più standard di interfaccia in un unico componente.
Il manuale Quartus® II utilizza questo esempio per illustrare il processo di imballaggio di un componente di proprietà intellettuale (IP) con l'editor di componenti e i comandi Tcl hardware personalizzati. È possibile utilizzare i file HDL in questo esempio per imparare a utilizzare l'editor di componenti per creare il proprio file Tcl (_hw.tcl) hardware semplice, come descritto nel capitolo Creazione di componenti Qsys (PDF). È inoltre possibile fare riferimento al file _hw.tcl incluso per visualizzare gli utilizzi avanzati dei comandi Tcl hardware, tra cui parametri derivati, un callback di convalida e un callback di elaborazione per personalizzare l'interfaccia utente di parametrizzazione in Qsys e presentare le interfacce come facoltative. Per informazioni dettagliate sui comandi Tcl hardware, fare riferimento al capitolo Component Interface Tcl Reference (PDF).
Per ulteriori informazioni sull'utilizzo di Qsys per creare un sistema che include componenti personalizzati, fare riferimento al capitolo Creazione di un sistema con Qsys (PDF) nel manuale Quartus II.
Utilizzo di questo esempio di progettazione
Scaricare il file demo_axi3_memory.zip ed estrarre il contenuto. Questo esempio di progettazione richiede Altera® Complete Design Suite (ACDS) v13.0 o versioni successive.
Il file ZIP include i seguenti file dei componenti IP nella sottodirectory /ip:
-
I file di progettazione demo_axi_memory.sv e single_clock_ram.sv
- Il file Tcl hardware personalizzato demo_axi_memory_hw.tcl per il package del componente per Qsys
- File di pacchetto SystemVerilog utilizzato per generare messaggi nell'output di simulazione,/verification_lib/verbosity_pkg.sv (che può essere trovato anche nella directory di installazione del software Quartus II come /ip/altera/sopc_builder_ip/verification/lib/verbosity_pkg.sv)
Per utilizzare questo componente nel proprio sistema Qsys, copiare la sottodirectory /ip dal file ZIP estratto nella directory del progetto Quartus II. Quando si crea o si apre un sistema Qsys nel progetto, Qsys rileva il componente IP nella sottodirectory /ip e aggiunge il componente all'elenco nella sezione Project della libreria, nella categoria Memorie e controller di memoria/on-chip.
Il file ZIP contiene anche i seguenti file per simulare il componente autonomo, nella sottodirectory /ip/simulation:
- Un file testbench tb_mem.sv
- Uno script run_sim.tcl per eseguire una simulazione nella grafica Mentor® ModelSim* con mem.do file per visualizzare le forme d'onda che mostrano il funzionamento del componente
Per eseguire una simulazione in ModelSim, impostare la directory di lavoro sulla sottodirectory /ip/simulation dal file ZIP estratto. Digitare origine run_sim.tcl.
Inoltre, il file ZIP contiene i seguenti file software Quartus II:
- Un semplice test Qsys system test.qsys per illustrare l'istanza del componente in un sistema Qsys
- Un file di progetto software Quartus II fittizio in modo da poter generare e compilare facoltativamente il sistema Qsys di test: test.qpf, test.qsf, test.sdc
Per visualizzare il componente istanziato come parte del sistema Qsys di test, aprire il file di progetto test.qpf nel software Quartus II e aprire il file test.qsys in Qsys. Fare doppio clic sul componente nella colonna Nome o Descrizione della scheda Contenuto del sistema (o fare clic con il pulsante destro sul componente e scegliere Modifica) per visualizzare l'editor dei parametri.
L'utilizzo di questo progetto è regolato e soggetto ai termini e condizioni del Contratto di licenza Intel® Design Example.
Dettagli di progettazione
Il componente Qsys di esempio include le seguenti interfacce:
Interfaccia slave AXI-3
L'interfaccia slave AXI è un'interfaccia mappata alla memoria di un blocco di memoria su chip. Questa interfaccia è destinata a essere controllata da un'interfaccia master AXI o Avalon-MM, che può scrivere e leggere dal blocco di memoria. I parametri specificano la larghezza del segnale AXI ID, la larghezza dell'indirizzo slave e la larghezza dei dati.
interfaccia Avalon-ST
Quando si crea un'istanza di questo componente in Qsys, è possibile scegliere di attivare o disattivare l'interfaccia di origine opzionale Avalon-ST. Questa interfaccia è stata ispirata dalle applicazioni di telefonia, in cui i toni (DTMF, occupato, dial tone, ringback, ecc.) sono tutti archiviati come flussi ripetuti di byte che possono essere cambiati in base alle esigenze di una porta specifica. La porta Avalon-ST fornisce uno di questi flussi, che è definito da un indirizzo iniziale, un indirizzo di arresto e i dati memorizzati nella RAM tra questi due indirizzi, in modo inclusivo. Le parole sono in ordine di uscita dall'indirizzo iniziale all'indirizzo di arresto; ogni parola emette prima MSB. Questa versione demo presuppone che l'indirizzo di arresto sia più grande dell'indirizzo iniziale.
Ad esempio, considerare i seguenti contenuti di memoria:
indirizzo iniziale: 0xbeef_0742
0xdace_32f7
indirizzo di arresto: 0xb0de_13ef
Il flusso di byte risultante sarebbe: be-ef-07-42-da-ce-32-f7-b0-de-13-ef-be-ef-07 ...
Interfaccia CSR Avalon-MM
L'interfaccia Avalon-MM è una semplice interfaccia di controllo e registro di stato (CSR), per controllare la porta di streaming descritta sopra. Questa interfaccia è richiesta solo quando l'interfaccia Avalon-ST è abilitata ed è disattivata quando l'interfaccia Avalon-ST è disattivata. I parametri specificano la larghezza dell'indirizzo slave Avalon® e la larghezza dei dati.
I registri di controllo si trovano in un intervallo di indirizzi separato dall'intervallo di indirizzi della memoria e il loro indirizzo di base può essere assegnato ovunque sia conveniente nella mappa della memoria di sistema. La tabella seguente elenca lo scopo di ciascun registro di controllo:
(Parola) Indirizzo |
Descrizione |
---|---|
Base_addr + 2 |
Esegui [0] |
Base_addr + 1 |
Indirizzo di arresto [AV_DATA_W-1:0] |
Base_addr + 0 |
Indirizzo start [AV_DATA_W-1:0] |
Editor di parametri Qsys
La seguente schermata mostra l'interfaccia utente dell'editor di parametri per il componente Demo AXI Memory in Qsys.