Simple Science

Scienza all'avanguardia spiegata semplicemente

# Ingegneria elettrica e scienze dei sistemi# Sistemi e controllo# Sistemi e controllo

Strategie efficaci per il posizionamento dei macro nel design dei chip

Un approccio dettagliato per organizzare i macro per migliorare le prestazioni del chip.

― 5 leggere min


Posizionamento dellePosizionamento dellemacro nel design dei chipdisposizione dei macronutrienti.Un nuovo metodo per un'efficiente
Indice

Nel mondo del design dei chip, organizzare varie parti chiamate Macro è super importante. Le macro sono grandi blocchi che svolgono funzioni specifiche su un chip. La giusta posizione di queste macro può influenzare molto il funzionamento del chip. Questo articolo discute diversi modi per disporre efficacemente queste macro per risultati di alta qualità.

Approcci Precedenti alla Posizione delle Macro

Storicamente, sono stati usati diversi metodi per posizionare le macro su un chip. Questi metodi possono essere raggruppati in tre categorie principali:

  1. Metodi Basati sul Packing: Questo approccio si concentra su come i vari moduli o blocchi si relazionano tra loro in termini di spazio. Usa tecniche che regolano ripetutamente la disposizione per ottenere il miglior layout. Questi metodi coinvolgono anche strategie come il Simulated Annealing o il Particle Swarm Optimization, che aiutano a trovare la migliore disposizione attraverso diverse iterazioni.

  2. Metodi Analitici: Questi metodi utilizzano equazioni matematiche per migliorare direttamente il layout. Tengono conto di vari fattori, come la lunghezza dei fili e il timing, che aiutano a creare una disposizione più efficiente.

  3. Metodi Basati sul Machine Learning: Recentemente, alcuni studi hanno iniziato a usare l'intelligenza artificiale per aiutare con il posizionamento delle macro. Questi metodi si concentrano sull'assicurare la giusta posizione senza prendersi cura di caratteristiche specifiche di design che gli esperti considerano spesso.

Anche se i ricercatori hanno fatto progressi nel posizionamento delle macro, molti metodi non considerano tutte le caratteristiche importanti necessarie per design di alta qualità.

Il Nostro Approccio

Proponiamo un approccio gerarchico al posizionamento delle macro, che include sistemazioni logiche e fisiche. Il raggruppamento logico si concentra su come i blocchi si relazionano tra loro logicamente, mentre il raggruppamento fisico determina come questi blocchi possono essere posizionati nello spazio reale.

Schema di Floorplan Gerarchico

Nel nostro metodo, gestiamo l'arrangiamento in livelli. Il primo livello si occupa della gerarchia logica, dove ogni piccolo modulo viene messo in Cluster in base alle loro dimensioni e relazioni. Blocchi più grandi possono contenere altri blocchi, portando a un sistema multilivello.

Il posizionamento di questi cluster avviene attraverso un processo strutturato chiamato ricerca in profondità. Questo ci permette di passare in modo efficiente attraverso ogni livello e decidere dove posizionare i blocchi.

Autoclustering Multilivello

Nella fase successiva, convertiamo il netlist del design, che mostra come le varie parti si connettono, in cluster. Il processo di clustering aiuta a semplificare il design. Mentre gli utenti possono raggruppare manualmente in base a caratteristiche logiche e relazioni, noi utilizziamo un motore di autoclustering per creare automaticamente i cluster. Questo è particolarmente utile per design che hanno strutture complesse e nomi auto-generati.

Il motore di autoclustering opera analizzando le Connessioni tra i blocchi e distribuendoli in una gerarchia fisica ben organizzata. Ogni modulo logico diventa il suo corrispondente fisico. I cluster vengono fusi o suddivisi in base a dimensioni e schemi di collegamento, il che aiuta a semplificare l'arrangiamento.

Creazione di Pin Inbundled

Per ridurre la complessità, introduciamo pin inbundled che aiutano a semplificare come vengono fatte le connessioni. Questi pin raccolgono punti di connessione attorno ai bordi dei blocchi, rendendo più facile capire le loro relazioni. Trattando questi pin inbundled come cluster, manteniamo intatte le connessioni e ci assicuriamo che il design sia efficiente.

Gestire i Cluster Macro

Separiamo i cluster macro dalle celle standard per rendere i calcoli più facili. Aggiungendo connessioni tra le macro e i loro corrispondenti cluster di celle standard, miglioriamo l'adattamento delle macro nel layout generale.

Raggruppiamo anche le macro in base alle loro forme. Fare questo minimizza lo spazio sprecato tra i blocchi e promuove un arrangiamento più regolare, che è visivamente e funzionalmente più efficace.

Aggiunta di Connessioni per il Timing

È cruciale considerare il timing quando si posizionano le macro. Creiamo connessioni tra i cluster per catturare l'importanza del timing. Aggiungendo queste connessioni, ci assicuriamo che i componenti che devono lavorare insieme siano posizionati più vicini tra loro.

Anche se calcolare distanze esatte può essere complesso durante il layout iniziale, troviamo modi per catturare connessioni essenziali senza dover eseguire calcoli estesi. Questo rende il processo più veloce ed efficiente.

Processo di Modellazione Grossolana

Dopo aver stabilito i cluster, passiamo a plasmarli correttamente. Questo implica seguire linee guida specifiche per determinare come apparirà ciascun cluster. Per i cluster di celle standard, impostiamo parametri per assicurarci che si adattino a un rapporto d'aspetto designato.

Per i cluster macro, utilizziamo tecniche per trovare i migliori arrangiamenti che utilizzano meno spazio mentre si adattano bene al design generale. Continuiamo ad aggiustare fino a ottenere una forma chiara per ogni cluster.

Finalizzazione del Posizionamento delle Macro

Una volta che conosciamo le forme e le dimensioni dei nostri cluster, iniziamo a posizionare specifiche macro all'interno di quei cluster una alla volta. Per ogni cluster macro, valutiamo quanto bene le macro si adattano insieme e le connessioni che hanno con altri cluster.

Per ottimizzare l'arrangiamento, seguiamo un insieme di mosse che ci permettono di scambiare le macro mantenendo l'efficienza generale. Questo passaggio è critico perché aiuta a ridurre l'area utilizzata e abbreviare la distanza tra i componenti connessi.

Validazione Sperimentale

Per dimostrare che il nostro metodo funziona in modo efficace, eseguiamo diversi test. Valutiamo il nostro posizionamento macro in vari scenari, confrontandolo con strumenti commerciali esistenti e metodi precedenti.

In questi test, il nostro approccio mostra miglioramenti significativi rispetto ai metodi tradizionali. Puntiamo a una qualità più alta nel posizionamento, assicurandoci che le macro siano disposte in un modo che ne migliora la funzionalità.

Conclusione

La disposizione corretta delle macro su un chip è cruciale per garantire le sue prestazioni. Utilizzando un approccio gerarchico che combina strutture logiche e fisiche, possiamo creare migliori disposizioni. Il nostro metodo sfrutta autoclustering, connessioni inbundled e considerazioni sul timing per produrre layout di alta qualità in modo efficiente. Attraverso test rigorosi, dimostriamo che il nostro approccio è superiore ai metodi passati, aprendo la strada a tecniche di posizionamento delle macro migliori.

Questa ricerca sottolinea l'importanza di incorporare più livelli di caratteristiche di design per migliorare il posizionamento delle macro nel design dei chip, portando infine a dispositivi elettronici più efficaci e affidabili.

Fonte originale

Titolo: Hier-RTLMP: A Hierarchical Automatic Macro Placer for Large-scale Complex IP Blocks

Estratto: In a typical RTL to GDSII flow, floorplanning or macro placement is a critical step in achieving decent quality of results (QoR). Moreover, in today's physical synthesis flows (e.g., Synopsys Fusion Compiler or Cadence Genus iSpatial), a floorplan .def with macro and IO pin placements is typically needed as an input to the front-end physical synthesis. Recently, with the increasing complexity of IP blocks, and in particular with auto-generated RTL for machine learning (ML) accelerators, the number of hard macros in a single RTL block can easily run into the several hundreds. This makes the task of generating an automatic floorplan (.def) with IO pin and macro placements for front-end physical synthesis even more critical and challenging. The so-called peripheral approach of forcing macros to the periphery of the layout is no longer viable when the ratio of the sum of the macro perimeters to the floorplan perimeter is large, since this increases the required stacking depth of macros. In this paper, we develop a novel multilevel physical planning approach that exploits the hierarchy and dataflow inherent in the design RTL, and describe its realization in a new hierarchical macro placer, Hier-RTLMP. Hier-RTLMP borrows from traditional approaches used in manual system-on-chip (SoC) floorplanning to create an automatic macro placement for use with large IP blocks containing very large numbers of hard macros. Empirical studies demonstrate substantial improvements over the previous RTL-MP macro placement approach, and promising post-route improvements relative to a leading commercial place-and-route tool.

Autori: Andrew B. Kahng, Ravi Varadarajan, Zhiang Wang

Ultimo aggiornamento: 2023-12-03 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2304.11761

Fonte PDF: https://arxiv.org/pdf/2304.11761

Licenza: https://creativecommons.org/licenses/by/4.0/

Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.

Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.

Altro dagli autori

Articoli simili