Sto lavorando su un grande design FPGA e sono molto vicino ai limiti di risorse dell'FPGA che sto attualmente utilizzando, Xilinx LX16 nel pacchetto CSG225.
Anche il design è quasi completo, tuttavia al momento non si adatta più all'FPGA. Posso disattivare le parti per adattarle, tuttavia devo ridurre l'utilizzo delle risorse al fine di completare la progettazione e far sì che soddisfi i requisiti di tempistica e dimensioni.
Vorrei sapere se ci sono strumenti nei nostri rapporti che possono aiutarmi a identificare quali parti del mio progetto consumano più risorse. Il mio progetto non è partizionato ed è suddiviso in circa una dozzina o più moduli VHDL.
I rapporti sui tempi di Xilinx sono fantastici, ma ora devo sapere dove posso ottenere il miglior rapporto qualità-prezzo in termini di risparmio di spazio.
Ho anche difficoltà a dire da quale tipo di risorse sto esaurendo o quali effetti hanno tali risorse.
Un altro fastidio è che, man mano che il design si ingrandisce, i componenti utilizzati per rispettare i tempi iniziano a fallire perché il loro posizionamento non è più l'ideale.
Attualmente, utilizzo i rapporti di temporizzazione Post-Place e Route Static e utilizzo SmartXplorer. Sto usando strategie di progettazione per ottimizzare i tempi.
Dopo aver disattivato parte del mio design per adattarlo, ecco alcuni dei risultati:
utilizzo del registro slice: 42% utilizzo LUT slice: 96% numero di coppie LUT-FF completamente utilizzate: 38% Questo significa che sono leggero sui registri, ma pesante sull'uso del gate?
Esistono strumenti per aiutare gli sviluppatori a ottimizzare per area o almeno fornire loro maggiori informazioni sul loro codice?
Aggiornamento: Dopo aver esaminato l'utilizzo a livello di modulo, ho scoperto che avevo una piccola colla asincrona quindici in tutto il luogo che occupavano circa il 30% dei LUT totali. Li sto usando come colla per domini incrociati per bus ad alta velocità. Dovrei essere in grado di eliminarli, poiché gli orologi sono strettamente correlati. (Ingresso da 120 MHz, produce 100 MHz e 200 MHz tramite DCM)