La velocizzazione dei cicli di sviluppo

Ciclo di sviluppo

di John Isaac, Direttore Market Development, Div. Systems Design, Mentor Graphics Corp. [ Courtesy of Assipe ]
In un settore competitivo come quello dell’elettronica, arrivare sul mercato prima della concorrenza può rappresentare la differenza
La tempistica di progetto gioca un ruolo primario nella determinazione del programma di lancio di un prodotto e spesso avviene che alla porzione di questo processo che si occupa della stesura del circuito stampato (PCB) venga affidato l’onere di recuperare alcuni dei ritardi imprevisti generatisi nelle fasi iniziali della progettazione. In queste situazioni, un solo progettista ed un solo computer per volta possono costituire un vincolo pesante.

Soluzioni per la progettazione di PCB

Sono disponibili tecnologie in grado di modificare il modo in cui vengono progettati i circuiti stampati. Una soluzione consiste nel permettere a diversi progettisti, operanti su molteplici computer, di lavorare accedendo contemporaneamente ad un unico database di progetto condiviso. Questa tecnologia di progettazione parallela necessita di un gestore di progetto (server), nonché di molteplici client di progettazione, connessi al server in rete LAN o WAN (Figura 1). L’attività principale del server consiste nel ricevere richieste dai client, verificarle per assicurarsi che non vi siano violazioni delle regole di progetto e quindi procedere alla sincronizzazione del database centralizzato e dei diversi client con i risultati aggiornati. Ogni client possiede un proprio processore ed una propria memoria dedicati, e vede l’intero progetto. Ogni client può inoltre vedere le modifiche effettuate dagli altri, man mano che il server le elabora. Il database di progetto può essere memorizzato in un qualsiasi punto della rete.

Client-Server

 

L’architettura di questa soluzione per la progettazione parallela non comporta che i progettisti scompongano in alcun modo il progetto. Ciò la rende un vero ambiente collaborativo real-time, eliminando i problemi associati ai confini delle diverse porzioni e riducendo il tempo complessivo necessario per il completamento del progetto. Gli utenti sostengono che questo consente di ottenere riduzioni dei tempi del ciclo di sviluppo variabili tra il 40% ed il 70%, a seconda del numero dei progettisti e della natura del circuito. La localizzazione geografica dei progettisti ha poca importanza, poiché essi possono stare nello stesso ufficio, tanto quanto essere dispersi ovunque nel mondo.

La sessione di progettazione inizia con il caricamento sul server del database di circuito, da parte di un qualsiasi membro del team di sviluppo. Man mano, altri client si collegano alla sessione, fornendo un proprio nome mediante il quale farsi identificare dagli altri utenti. A questo punto, lo stato corrente del layout del progetto viene caricato automaticamente sul client, il desktop dell’utente. Lavorando sulla propria copia locale del progetto, i progettisti possono dunque sfruttare la potenza di elaborazione e la memoria della propria workstation, e tuttavia mantenere la visione in tempo reale dell’intero progetto, comprese le modifiche effettuate dagli altri utenti, aggiornate man mano che il server le elabora. I client possono anche abbandonare la sessione o ricollegarsi in qualsiasi momento.

Un videogame per progettisti
La tecnologia è paragonabile a quella utilizzata nei videogame in rete, in cui ogni partecipante può vedere in tempo reale anche le azioni di tutti gli altri. Quando un membro del team seleziona un oggetto, quell’evento viene catturato e inviato al server sotto forma di richiesta di aggiornamento. Ad esempio, lo spostamento di un componente dal punto A al punto B costituisce un evento che inizia con la selezione del pezzo e termina con un click del mouse che indica la nuova posizione. Questo evento viene inviato al server nella forma di una transazione che descrive cosa bisogna cancellare e cosa bisogna aggiungere. Il server esegue la verifica delle regole di progetto, o DRC (Design Rules Checking) rispetto a tale evento e in caso di esito positivo accetta l’evento, aggiorna il database centralizzato e comunica i cambiamenti a tutti gli altri client.
Tuttavia, quando più progettisti lavorano su uno stesso progetto, esiste la possibilità che si verifichino delle situazioni di potenziale conflitto. Ad esempio, due progettisti potrebbero modificare il routing nella stessa porzione del circuito, generando delle interferenze tra i diversi percorsi. Per risolvere queste situazioni di potenziale conflitto, vengono utilizzate delle tecniche che si basano su degli insiemi di regole, sulle assegnazioni di aree, e su criteri per stabilire delle priorità tra i diversi client. Tra i metodi utilizzati vi sono:

• Collisioni tra oggetti/azioni simultanee – Le modifiche concorrenti del progetto vengono automaticamente risolte mediante una priorità di selezione, basata su una logica di tipo FIFO (First-In-First-Out). Nel momento in cui un progettista seleziona un oggetto per modificarlo, questo viene bloccato e reso inaccessibile a tutti gli altri client.
• Aree protette – I progettisti possono definire una regione protetta, nella quale tutti gli altri non possono effettuare modifiche.
• Prevenzione dei conflitti – È possibile visualizzare dei campi di forza intorno al cursore di ogni client per indicarne l’attuale area di lavoro, impedendo che i progettisti lavorino troppo vicini tra loro. Il campo di forza si allarga man mano che il lavoro di un progettista insiste su una certa zona (Figura 2). Quando si sposta in una nuova posizione, il campo di forza si riduce.

Le tecnologie attuali sostengono di poter far lavorare contemporaneamente fino a 15 progettisti. Tuttavia, l’esperienza pratica suggerisce che la riduzione ottimale dei tempi dei cicli di sviluppo si ottiene con un numero di utenti variabile tra 2 e 5, a seconda della natura e della complessità del circuito.

Campi di forza

È inoltre possibile individuare altri possibili benefici, tra i quali:
• Gestione delle risorse – Il coordinatore del CAD può utilizzare in modo efficiente le risorse del team. Se un progettista ha del tempo disponibile, può collegarsi in modo immediato al progetto critico, effettuare operazioni di routing o di placement, ed abbandonare nuovamente quel progetto appena necessario.
• Specializzazione – Se un progetto comprende un insieme di tecnologie digitali, analogiche e RF, è possibile far lavorare contemporaneamente degli specialisti di ognuna di queste discipline, ognuno su una specifica porzione del circuito. L’utilizzo di una metodologia di progettazione parallela, al posto di un approccio di tipo seriale, può portare ad una ulteriore compressione dei cicli di sviluppo.

Routing automatico multi-processore >
La seconda applicazione della metodologia di progetto consiste nel routing automatico simultaneo multi-processore. In questo caso vengono utilizzate più macchine client (fino a 15) per eseguire in modo collettivo il calcolo del routing automatico, ad esempio di un circuito complesso ad alta densità. Ciò può tradursi in una riduzione da 5 a 10 volte dei tempi di calcolo, a seconda della natura del circuito e del numero dei processori. In pratica, in questo modo un calcolo di routing automatico che durerebbe normalmente diversi giorni può ridursi ad un lavoro di una notte (vedi tabella seguente).
La riduzione dei tempi di routing dipende dal numero dei client e dalla natura del circuito

Design type Cell Telcomm Telcomm Back-plane Multiproc Main-frame
Single
Processor Auto-Route
         
Routing
Time (CLK)
5:18:42 5:43:08 32:31:02 47:48:50 67:05:13 188:00:00

Number
of Client Processor

1 1 1 1 1 1
Xtreme
Multi-Client
         
Routing
Time (CLK)
1:07:48 2:20:22 14:03:23 18:34:57 34:02:14 18:00:00
Number
of Client Processor
5 5 4 5 5 15

L’applicazione di routing automatico funziona in modo simile all’applicazione di layout interattivo. Un utente in possesso del database di un progetto ancora privo di routing cerca sulla rete i computer disponibili per l’elaborazione, e li impegna. A questo punto il server esegue il lavoro di calcolo del routing utilizzando i processori dei client, coordinando le comunicazioni tra di loro e provvedendo all’aggiornamento del database centralizzato. Il server gestisce tutti i conflitti e la programmazione delle interconnessioni.
Una volta confermata la “cattura” delle macchine client ed iniziata l’elaborazione, il lavoro procede su più processori in modo assolutamente trasparente per l’utente. I vari passaggi necessari per il calcolo vengono impostati in modo identico a quanto avviene in modalità mono-processore. I risultati in corso di avanzamento vengono visualizzati sul server. Il lavoro può essere anche sospeso e riavviato, in modo del tutto simile a quanto avviene con un solo processore. In caso di caduta della rete WAN o LAN durante l’esecuzione, i risultati attuali vengono salvati ed il lavoro può essere successivamente ripreso. Il routing automatico gira molto più velocemente, e gli utenti devono aspettare meno tempo per avere i risultati. Esiste però un altro vantaggio, anche se meno evidente. I progettisti spesso producono diverse varianti di un progetto, con soluzioni alternative in termini di posizionamento dei componenti o di vincoli di prestazioni. Avendo a disposizione un calcolo automatico del routing molto più rapido, i progettisti possono permettersi di aumentare il numero delle alternative considerate per scegliere lo scenario migliore, prima di procedere con i passaggi definitivi di progettazione.

One Response

  1. NIck_BG 10 febbraio 2011

Leave a Reply

Vuoi leggere un articolo Premium GRATIS?

RFID: un acronimo mille possibilità