ITRM940407A1 - "procedimento ed apparecchio per la configurazione di circuiti di memoria". - Google Patents
"procedimento ed apparecchio per la configurazione di circuiti di memoria". Download PDFInfo
- Publication number
- ITRM940407A1 ITRM940407A1 IT000407A ITRM940407A ITRM940407A1 IT RM940407 A1 ITRM940407 A1 IT RM940407A1 IT 000407 A IT000407 A IT 000407A IT RM940407 A ITRM940407 A IT RM940407A IT RM940407 A1 ITRM940407 A1 IT RM940407A1
- Authority
- IT
- Italy
- Prior art keywords
- memory
- circuit
- definition
- memory circuit
- access
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/16—Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Static Random-Access Memory (AREA)
- Logic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
DESCRIZION
a corredo di una domanda di Brevetto d'invenzione, avente per titolo:
"Procedimento ed apparecchio per la configurazione di circuiti di memoria".
1. Campo dell'Invenzione
La presente invenzione si riferisce ai dispositivi di memorizzazione elettronici configurabili, particolarmente alle celle di memoria configurate per emulare circuiti comprendenti una memoria digita le.
2. Descrizione della Tecnica Precedente
Nel campo della automazione della progettazio ne elettronica (EDA), vari software ed associati hardware sono usati per definire e verificare le pro gettazioni dei circuiti. Particolarmente per realizzare una verifica più accurata delle progettazioni circuitali, utensili di EDA noti come "emulatori'' vengono impiegati per costruire le rappresentazioni funzionali delle definizioni dei prototipi dei circuiti. Poiché tali rappresentazioni emulate consentono al progettista del circuito di operare o di sviluppare in maniera flessibile un sistema desidera to unitamente alla rappresentazione emulata, anche prima che il circuito prototipo o l'hardware sia pra ticamente fabbricato, il tempo di progettazione ed il costo complessivo vengono significativamente ridotti.
Sebbene i convenzionali utensili di emulazione siano convenienti per la definizione e per la verifica dei circuiti logici, tali strumenti non sono usati facilmente per emulare circuiti di memoria, particolarmente i circuiti di memoria a porte multiple, configurati in varie configurazioni di memorizzazione. Pertanto, sarebbe desiderabile fornire circuiti di memoria che siano più facilmente configurabili in modo da emulare i prototipi delle progettazioni dei circuiti.
SOMMARIO DELL'INVENZIONE
L'invenzione consiste nella implementazione della definizione di un circuito di memoria in almeno uno di vari circuiti di memoria aventi una molteplicità di porte di accesso, in cui ciascuna porta di accesso di ciascun circuito di memoria, in cui viene implementata la definizione del circuito di me moria, è configurata per la lettura da ciascuno di tali circuiti di memoria oppure per la scrittura in esso.
Preferibilmente, ciascun circuito di memoria comprende celle di memoria statiche aventi tre porte di accesso bidirezionali e la definizione del circui to di memoria definisce il contenuto iniziale della memorizzazione, la profondità, la larghezza e la selezione di banco nei circuiti di memoria in conformi tà con valori di configurazione preventivamente def niti. Inoltre, la definizione del circuito di memoria può definire, per ciascuna porta di accesso dei circuiti di memoria aventi la definizione del circui to di memoria implementata, se tale porta di accesso sia configurata per la lettura o per la scrittura.
Facoltativamente, alle porte di accesso confi gurate si può avere accesso durante intervalli elementari o finestre di tempo (slot) preventivamente definiti per leggere dai circuiti di memoria oppure per scrivere in essi. Separate finestre di tempo pos sono essere preventivamente definite per leggere dai circuiti di memoria oppure per scrivere in essi, con trariamente ai circuiti logici che non sono di memoria. Le finestre di tempo possono essere preliminarmente definite come una funzione dei segnali esterni di clock o di cadenzamento e dei tempi di accesso ai circuiti di memoria.
Facoltativamente, una definizione di circuito di prototipo può essere suddivisa in una definizione di circuito logico per la implementazione in un modii 10 logico riconfigurabile e nella definizione di cir cuito di memoria per la implementazione in almeno uno dei circuiti di memoria. Il modulo logico riconfi gurabile pud essere intercollegato direttamente ai circuiti di memoria oppure attraverso un modulo di intercollegamento programmabile.
Per emulare la definizione del circuito di prototipo suddivisa, il modulo logico riconfigurabile ed i circuiti di memoria sono intercollegati e collegati ad un sistema desiderato o di bersaglio, il quale viene fatto funzionare dopo essere stato co si collegato. Durante la emulazione, il sistema di bersaglio pud accedere alle porte di accesso in modo da leggere dai circuiti di memoria oppure scrivere in essi. Il sistema bersaglio pud anche provocare la implementazione nei circuiti di memoria di una diver sa definizione del circuito di memoria, dopo di che le porte di accesso verrebbero riconfigurate conformemente.
BREVE DESCRIZIONE DEI DISEGNI
La Figura 1 rappresenta uno schema a blocchi di un sistema per automazione di progettazione elettronica (EDA) che mostra la stazione di utente 10, l'unità di spulciatura o di debug 12 ed i moduli logici 14 collègati ai moduli di interconnessione e di memoria 20, 100 ed al sistema di bersaglio 18 attraverso ì nodi di interfacciamento 16,
la Figura 2 rappresenta uno schema a blocchi del modulo di memoria 100 che mostra il gruppo ordinato o mosaico di memoria 200 e la circuiteria relativa,
la Figura 3 rappresenta uno schema a blocchi del mosaico di memoria 200 che mostra il circuito di memoria 208 che include le celle 204 ed i circuiti o moduli di latch 202,
la Figura 4 rappresenta un diagramma di flusso che mostra in generale un procedimento che incorpora la presente invenzione.
DESCRIZIONE DELLE PREFERITE FORME DI REALIZZAZIONE
La Figura 1 rappresenta uno schema a blocchi di un sistema per automazione di progettazione elettronica (EDA) che mostra la stazione di utente o workstation 10 di ingegneria collegata all'unità di spulciatura o debugger 12, i moduli dei blocchi logi ci (LBM) 14, il modulo di interconnessione programma bile (PIM) 20, il modulo di memoria configurabile 100, i nodi di interfacciamento 16 ed il sistema bersaglio 18. Il sistema EOA, il quale è configurato per una emulazione slmilmente ai sistemi di emulazio ne logici "MARS" progettati dalla PiE Design Systems, Ine. (Sunnyvale, CA), viene usato da un progettista di circuiti o di sistemi per definire e verificare la funzionalità del circuito o del sistema utilizzan do le tecniche della pannellatura o della emulazione. Ulteriori moduli LBM 14 (N) vengono usati per emulare circuiti o sistemi più complessi.
La stazione di utente 10 comprende un convenzionale elaboratore o processore che può essere collegato ad una rete di analoghi elaboratori per la co municazìone o la elaborazione distribuita. La stazio ne di utente 10 contiene utensili o strumenti di EDA in software per ingegneria e progettazione agevolate dal calcolatore (CAE/CAD) per definire e verificare i prototipi delle progettazioni ei circuiti. Per esempio, il progettista di un circuito può utilizzare tali strumenti per inserire gli schemi circuitali o per sintetizzare le porte logiche in modo da definire o progettare la funzionalità o la rappresentazione dei circuito o del sistema e quindi utilizzare ta li strumenti per simulare o verificare la funzionali tà definita.
Il progettista del circuito può svolgere una ulteriore verifica mediante la emulazione della funzionalità definita. La emulazione permette al proget tista del circuito in pratica di operare una rappresentazione emulata del circuito prototipo nel sistema bersaglio 18, in cui il circuito prototipo è destinato a funzionare.
Inizialmente, prima che un prototipo di circuito possa essere emulato, il progettista del circuito provoca il fatto che gli strumenti di EDA defi niscano e preferibilmente verifichino una particolare progettazione del circuito. Una volta che la progettazione del circuito sia stata definita o verificata, il progettista del circuito provoca il fatto che gli strumenti di EDA generino un convenzionale archivio del cirucito o lista complessiva, che forni sce una elencazione testuale (per esempio in un formato "ASCII") dei componenti e degli intercollegamen ti nella progettazione del circuito. In conformità con la presente invenzione, il' disegno di ciascun circuito è definito in modo da includere almeno un componente di memoria, come anche del componenti logici.
L'unità dsi spulciatura 12, che è collegata alla stazione di utente 10, consente al progettista del circuito di trasferire o scaricare la lista complessiva generata dalla stazione di utente 10 ai mo duli logici 14, al modulo di intercollegamento 20 ed al modulo di memoria 100. L'unità di spulciatura 12 serve anche come un dispositivo di verifica funzionale ed un analizzatore logico per verificare il funzionamento della rappresentazione emulata del disegno del prototipo di circuito. L'unità di spulciatura 12 può operare in un modo di verifica funzionale (spulciatura o debug) oppure in un modo di emulazione (esecuzione o funzionamento).
Dopo che è stata generata una particolare lista complessiva, il progettista del circuito può fare in modo che gli strumenti di EDA ricevano la lista complessiva per provocare il fattoc he la defini zione o il disegno del circuito in essa contenuto sia implementato fisicamente o "scaricato" nei vari circuiti logici riconfigurabili o nei gruppi ordinati o mosaici di circuiti porta programmabili sul cam po (FPGA) inclusi nel moduli logici 14, nel caso di componenti logici, e nelle celle di memoria o nella memoria statica ad accesso casuale (SRAM) incluse nel modulo di memoria 100, nel caso dei componenti di memoria.
La emulazione viene realizzata mediante la configurazione programmabile, in conformità con la lista complessiva, dell'intercollegamento effettivo e della implementazione funzionale dei circuiti logi ci riconfigurabili inclusi nei moduli logici 14 e, secondo la necessità, l'intercollegamento effettivo dei percorsi elettrici riconfigurabili nel modulo di intercollegamento e la configurazione della memoria effettiva ed il contenuto nel modulo di memoria 100.
Il progettista del circuito utilizza un cornali do di progettazione-importazione per fare in modo che gli strumenti di EDA verifichino, fra le altre cose, se tutti i componenti logici e di memoria inclusi nella lista complessiva.siano disponibili o me morizzati in una libreria ovvero in una base di dati preventivamente definita delle rappresentazioni logi che e di memoria, come fornite rispettivamente nel modulo logico 14 e nel modulo di memoria 100. Preferibilmente, se un particolare componente logico o di memoria non è disponibile nella libreria o biblioteca, allora lo strumento di EDA può generare una particolare configurazione di una corrispondente logica generica o di un componente di memoria. In questa maniera, utilizzando lo strumento di EDA per generare o costruire una particolare configurazione del componente, il progettista del circuito può adat tare alle esigenze del cliente o specificare in maniera più completa certi parametri di funzionalità o di funzionamento di tale particolare configurazione. Dopo la importazione della lista complessiva, il progettista del circuito può implicare un program ma di suddivisione incluso negli strumenti di EDA per determinare quali componenti inclusi nella lista complessiva siano componenti logici e di memoria. Preferibilmente, i componenti che includono informazioni binarie o digitali configurate o disposte per la memorizzazione temporanea o permanente in convenzionali o vari dispositivi combinatoriali, sequenza li o di stato, sono determinati come circuiti di memoria o componenti. Esempi di componenti di memoria comprendono i mosaici o matrici di memoria a nuclei aventi una singola oppure una molteplicità di porte, i mosaici di memoria cache o di servizio (comprenden ti i mosaici di memorizzazione, marcatura e di stato), gli archivi realizzati come registri a porte multiple, le memorie di sola lettura (ROM) per micro codici, la memoria ad accesso casuale (RAM) alloggia ta sul chip, le memorie primo-in-ingresso/primo-inuscita (FIFO) e la memoria del processore (che inclu de le memorie di servizio per le istruzioni ed i dati, i registri per scopi generali e la memoria RAM locale e di memorizzazione principale).
Altri componenti inclusi nella lista complessiva, tipicamente comprendenti i convenzionali circuiti combinatoriali, sequenziali o di stato, configurati o progettati per applicazioni diverse dalla memorizzazione, sono determinati come circuiti logici o componenti. E' possibile, secondo la designazione fornita dall'ingegnere progettista, impiega re convenzionali circuiti logici per applicazioni di progettazione del tipo memoria di immagazzinamento.
Dopo aver determinato quali componenti della lista complessiva siano componenti logici e quali siano componenti di memoria, il programma di suddivi sione suddivide la lista complessiva per lo scaricamento o la effettiva implementazione funzionale dei componenti e degli intercollegamenti con i moduli lo gicl 14, i moduli di intercollegamento 20 o i moduli di memoria 100.
I componenti logici vengono scaricati nei moduli logici 14 per configurare le porzioni circuitali logiche e gli associati intercollegamenti, utiliz zando preferibilmente tecniche convenzionali per prò grammare o configurare le unita FPGA oppure i blocchi logici configurabili (CLB) in essi contenuti, in conformità con la lista complessiva suddivisa. I com ponenti di memoria vengono scaricati nel modulo di memoria 100, come verrà ulteriormente descritto nella presente. Facoltativamente, i componenti di memoria possono essere scaricati nei moduli logici 14 per una equivalente implementazione funzionale in e£ si.
Gli intercollegamenti nella lista complessiva possono essere scaricati nel modulo logico 14, utilizzando l'intercollegamento configurabile disponibi le su ciascun modulo logico 14 oppure i moduli FPGA in esso contenuti, oppure al modulo di intercollegamento 20, utilizzando i percorsi di intercollegamento programmataili oppure gli interruttori cross-bar configurabili in essi disponibili.
La intera definizione o progettazione del prò totipo di circuito viene implementata funzionalmente e fisicamente per la emulazione quando tutte oppure le porzioni desiderate o le liste complessive secondarie dei componenti logici e di memoria e gli inter collegamenti nella lista complessiva vengono scarica ti nei moduli logici 14, nel modulo di memoria 100 e facoltativamente nel modulo di intercollegaùento 20. Dopo tale configurazione, la progettazione del circuito di prototipo implementata nei moduli logici 14, nel modulo di intercollegamento 20 e nel modulo di memoria 100 può essere collegata attraverso vari nodi di interfacciamento o collegamenti di segnali 16 ad una porta convenzionale oppure ad una presa di segnali nel sistema bersaglio 18, per un effettivo funzionamento operativo o per la emulazione in es so.
Durante la emulazione, il sistema bersaglio 18 opera sotto temporizzazioni o condizioni normali o prossime alle normali, mediante applicazione ad es so di appropriati dati, segnali di controllo, segnali di verifica, di potenza, di massa ed altri appropriati segnali, vettori o stimoli. In questa maniera, il progettista del circuito può spulciare o verifica re la funzionalità del sistema bersaglio 18 o della progettazione di prototipo temporaneamente configura ta per la emulazione nei moduli logici 14, nel modulo di intercollegamento 20 e nel modulo di memoria 100.
In aggiunta, il progettista del circuito può determinare che varie variazioni di riconfigurazione o funzionali negli intercollegamenti o nei componenti inclusi nella lista complessiva sono necessarie per modificare o variare la progettazione del circui tt di prototipo. Tale modificazione viene realizzata dal progettista del circuito facendo in modo che gli strumenti di EDA ridefiniscano e, se necessario, riverifichino la progettazione del prototipo di circui to. Un numero ed una misura virtualmente illimitati di diverse o simili modificazioni sono possibili poi chè la implementazione funzionale dei circuiti logici e gii intercollegamenti nei moduli logici 14, nei circuiti di memoria in detto modulo di memoria 100 e negli intercollegamenti nel modulo di memoria 100 sono riconfigurabili o riprogrammabili utilizzando gli strumenti di EDA.
La Figura 2 rappresenta uno schema a blocchi di un modulo di memoria 100 che comprende un gruppo ordinato o mosaico (matrice) di memoria 200 e relati va circuiteria, con inclusione di un modulo 102 di controllo o di elaborazione "JTAG", del generatore 14 dei segnali o delle finestre di tempo elementari, del decodificatore 108 di configurazione della memoria, dell'oscillatore o clock esterno 106, del multi platore o multiplexer (MUX) 110, del gruppo ordinato logico o "beta-alfa" riconfigurabile e dèi circuiti latch o interruttori bidirezionali 112, 114 e 116.
Nella Figura 3, la matrice di memoria 200 è rappresentata come vari circuiti di memoria intercol legati 208 comprendenti le celle o circuiti di memorizzazione digitali 204, gli interruttori o latch di dati 202 e le porte di lettura/scrittura configurabili bidirezionali 206. Preferibilmente, la cella 204 comprende otto celle di memoria ad accesso casuale statica (RAM) a 3 porte, in cui ciascuna cel la 204 è costituita da una cella di memoria SRAM da 32K X 32 avente un tempo di accesso di 25 ns. La direzione dell'accesso per ciascuna porta 206 è configurata o programmata come un modo di lettura oppure un modo di scrittura per un appropriato accesso alla corrispondente cella 204, preferibilmente mediante configurazione o programmazione della direzione di commutazione dei segnali dell'interruttore 112, del latch 114 o del latch 116 collegato ad esso.
Il dispositivo di controllo 102 riceve l'informazione costituita dalla lista complessiva suddivisa comprendente i componenti logici e di memoria, l'informazione di configurazione e di inizializzazio ne di stato e l'intercollegamento,. in rappresentazio ne delle progettazioni dei prototipi di circuito, che vengono scaricate dagli strumenti di EDA dalla stazione di utente 10 o dall'unita di spulciatura 12. Il componente logico o l'associata configurazione di intercollegamrnto o l'informazione di iniziaiizzazio ne vengono scaricati nei dispositivi logici riconfigurabili o FPGA per la loro programmazione o configu razione, inclusi nella matrice logica 118.
La configurazione del componente di memoria o dell'intercollegamento associato oppure l'informazi£ ne di iniziaiizzazione vengono scaricate in modo da programmare o configurare i dispositivi logici ricon figurabili o FPGA inclusi nel mosaico logico 118, nelle celle di memoria riconfigurabili 204, nelle porte di ingresso/uscita (I/O) di lettura/scrittura riconfigurabili 206 o nei circuiti di latch bidirezionali riconfigurabili 202 nel mosaico di memoria 200 o negli interruttori o latch bidirezionali ricon figurabili 112, 114, 116 nel modulo di memoria 100.
Il dispositivo di controllo 102 riceve anche, memorizza ed applica configurazioni o vettori di verifica o di esplorazione dei confini per verificare la funzionalità del circuito attraverso tutto il modulo di memoria 100, preferibilmente in conformità con la norma JTAG, come definita in IEEE Std. 1149.1: "Standard Test Access Port and Soundary Scan Architecture". Il dispositivo di controllo 102' è costitui to da un convenzionale microprocessore collegato al generatore 104 della finestra di tempo elementare, al multiplatore MUX 110 ed al decodificatore 108 e riceve le istruzioni da un elaboratore ospite che può essere la stazione di utente 10 o l'unità di spulciatura 12.
Il dispositivo di controllo 102 utilizza una serie di istruzioni preventivariente specificate fornite in un disco locale oppure in un dispositivo di memorizzazione per elaborare lo scaricamento della informazione della lista complessiva suddivisa nei circuiti di memoria configurabili nel mosaico di memoria 200, preferibilmente in conformità con gli strumenti di EDA previsti.
Ulteriori istruzioni vengono specificate per configurare i circuiti di memoria nella matrice o mo saico di memoria 200 in conformità con i componenti di memoria forniti nella lista complessiva, in parti colare in conformità con valori delle configurazioni di preventiva definizione, per esempio la direzione di accesso alla porta 206, il contenuto di memorizza zione di cifra, la grandezza della profondità di memorizzazione, la grandezza della larghezza di memorizzazione e le selezioni di banco di memorizzazione.
Il decodificatore 108 è un circuito decodificatore delle configurazioni della memoria, incorpora to preferibilmente come un gruppo ordinato o mosaico logico programmabile (PLA) comprendente 93 ingressi, in cui 8 piedini di ingresso sono usati per il codice di configurazione, 12 piedini di ingresso sono usati per la selezione di banco e di sottobanco, 24 piedini di ingresso sono usati per la selezione della porta di lettura/scrittura, 16 piedini di ingresso vengono usati per l'aggruppamento delle celle di memoria, 8 piedini di ingresso sono usati per l'abilitazione delle celle di memoria, 24 piedini sono usati per il cadenzamento delle finestre di tempo del le porte ed un singolo piedino di ingresso viene usa to per il cadenzamento del sistema; ed anche 136 uscite, in cui 32 piedini di uscita sono usati per abilitare la scrittura, 8 piedini di uscita sono usati per l'abilitazione di bus globale e 96 piedini di uscita sono usati per il controllo dei latch.
Il generatore 104 delle finestre di tempo genera preferibilmente fino a 24 finestre di tempo o impulsi di segnali temporizzati per 24 porte. Ciascuna finestra di tempo presenta una durata di 40 ns, in cui 10 ns sono assegnati per il tempo di indirizzamento e 25 ns sono assegnati per il tempo di accesso. Una linea di ritardo programmabile può essere applicata prima di ciascuna finestra di tempo ed il tempo di ritardo effettivo dipende dal ritardo di cadenzamento dell'indirizzo al sistema.
Il generatore 104 delle finestre di tempo ope ra preferibilmente sotto il controllo del dispositivo di controllo 102 per fornire segnali di uscita per abilitare la selezione di lettura/scrittura delle porte e la selezione di banco/sottobanco per gene rare un appropriato segnale di scrittura ed un appro priato controllo di latch dei dati delle porte. Inol tre, il generatore 104 delle finestre di tempo aggiunge un tempo di ritardo dei dati di lettura al tempo di ciclo del sistema, ogni volta che l'ultima o la più recentemente letta delle porte è seguita da più di 4 porte. Preferibilmente, in questa maniera viene aggiunto un tempo di ritardo di 150 ns.
Il mosaico logico 118, che può essere collega to ai moduli logici 14, comprende i circuiti logici riconfigurabili o circuiti FPGA collegati al multiplatore MUX 110 ed all'interruttore o latch 12, 116, 114. L'interruttore 112, il latch 114 ed il latch 116 sono latch o interruttori digitali bidirezionali riprogrammabili, per esempio 74F543, che sono collegati ciascuno alle porte di accesso 206 per accedere all'informazione digitale per leggere o scrivere nel le celle 204.
Come rappresentato nella Figura 3, il multiplatore mUX 110 viene collegato al modulo di control lo 102, al decodificatore 108, al mosaico di memoria 200 ed al mosaico logico 118, mentre il dispositivo di cadenzamento o clock 106 viene collegato al generatore 104 delle finestre di tempo ed al decodificatore 108.
Preferibilmente, il modulo di memoria 100 è configurato con parametri preventivamente definiti. La profondità della memoria è configurata da 1 a 32.767. La larghezza del banco è limitata a 32, 64, 128 o 256 bit. Perciò, se la progettazione di una me moria utilizza 95 bit in larghezza, allora vengono specificati 128 bit. La configurazione di selezione di banco dipende dalla larghezza del banco. Per esem pio, un banco di 128 bit non consente più di due ban chi, poiché il modulo di memoria 100 presenta una larghezza massima di 256 bit.
La configurazione di selezione dei sottobanchi viene usata per una operazione di scrittura parziale. Per esempio, la configurazione di 4 byte viene configurata per larghezze di 32 bit, la selezione di 8 byte è configurata per larghezze di 64 bit, la selezione di 8 doppi-byte è configurata per larghezze di 128 bit e la selezione di 8 quad-byte è configurata per una larghezza di 256 bit. La selezio ne di sottobanco può essere disabilitata se non si richiede una capacità di scrittura parziale. Inoltre, le porte di lettura da uno a 24 e le porte di scrittura da uno a 16 sono preferibiImente configurate. Il numero totale delle porte di lettura e di scrittu ra configurate è 24.
Pertanto, in conformità con la presente invenzione, una definizione di circuito di memoria viene implementata in almeno uno dei vari circuiti di memoria 200, 208 aventi una molteplicità di porte di accesso 206, in cui ciascuna porta di accesso 206 di ciascun circuito di memoria 200, 208, nel quale viene implementata la definizione del circuito di me moria, è configurata per la lettura da ciascuno di tali circuiti di memoria 200, 208 oppure per la scrittura in esso.
Preferibilmente, ciascun circuito di memoria 200, 208 comprende celle di memoria statica 204 aven ti tre porte di accesso bidirezionali 206 e la definizione del circuito di memoria definisce i contenuti iniziali di memorizzazione, la profondità, la lar ghezza e la selezione di banco nei circuiti di memoria 200, 208 in conformità con valori di configurazioni preventivamente definiti. Valori di configurazione rappresentativi sono forniti nella allegata Tabella I. Inoltre, la definizione del circuito di memoria può definire, per ciascuna porta di accesso 206 dei circuiti di memoria 200, 208 aventi la definizione del circuito di memoria implementata, se tale porta di accesso 206 sia configurata per il modo di lettura o per il modo di scrittura.
La definizione di una tale configurazione per l'accesso alla memoria può essere realizzata pre feribilmente mediante programmazione o configurazione di ciascun interruttore bidirezionale 112, latch 114 o latch 116, che è collegato a ciascuna delle tre porte di accesso 206. In questa maniera, ciascuna porta 206 viene implementata per l'accesso soltaii to in scrittura (vale a dire una direzione dei segna li dall'esterno verso l'interno o direzione centripe ta) oppure per l'accesso in sola lettura (vale a dire una direzione dei segnali dal centro verso lo esterno o direzione centrifuga). Ciascuna porta di accesso 206 può anche essere configurata bidirezionalmente, per l'accesso in lettura ed in scrittura.
Facoltativamente, la stessa definizione del circuito di memoria può essere implementata in ciascuno dei circuiti di memoria 200, 208 in modo tà le che, per esempio, tutte le porte di accesso 206 per ciascun circuito di memoria 200, 208 siano confi gurate in maniera identica.
Facoltativamente, alle porte di accesso confi gurate 206 si può accedere durante finestre di tempo o intervalli elementari preliminarmente definite for nite dal generatore 104 delle finestre di tempo per leggere dai circuiti dì memoria 200, 208 oppure scrivere in essi. Separate finestre di tempo possono essere preventivamente definite (per esempio prima oppure durante la emulazione) per leggere dai circuiti dì memoria 200, 208 oppure per scrivere in essi, in contrasto con i circuiti logici che non sono di memoria.
Le finestre di tempo possono essere preventivamente definite come una funzione dei segnali ester ni di ciocie o di cadenzamento e dei tempi di accesso ai circuiti di memoria e possono essere specificate conformemente dal progettista del circuito, per esem pio durante la definizione del circuito di prototipo (impostazione della lista complessiva) o la verifica (emulazione). Durante una finestra di tempo comune o multiplata, si può accedere ad una serie di porte di accesso configurate 206 in parallelo; oppure, alternativamente, sì può accedere ad un singolo circuito di memoria 200, 208 in serie durante ciascuna finestra di tempo (vale a dire uno alla volta). In aggiunta, un tale accesso può essere iniziato da un evento di scatto di lettura o di rilettura asincrono.
Preferibilmente, l'informazione digitale memo rizzata viene estratta dal gruppo ordinato di memoria 200 in parole di grandezza uguale oppure inferio re ad una grandezza preventivamente definita. Perciò, quando le parole a cui si accede sono più grandi della dimensione preliminarmente definita, il dispositivo di controllo 102 suddivide o distribuisce tali parole più grandi in porzioni di parole che sono ciascuna più piccola oppure uguale ad una dimen sione preventivamente definita. Inoltre, ciascuna porzione di parola viene estratta preferibilmente du rante diverse o successive finestre di tempo.
Facoltativamente, una definizione di circuito di prototipo può essere suddivisa in una definizione di circuito logico per la implementazione in un modu lo logico riconfigurabile 14 e nella definizione del circuito di memoria per la implementazione in almeno uno dei circuiti di memoria 200, 208. Il modulo logico riconfigurabile 14 può essere intercol legato con i circuiti di memoria 200, 208 direttamen te oppure attraverso un modulo di intercòllegamento programmabile 20.
Per emulare la definizione suddivisa del circuito di prototipo, il modulo logico riconfigurabile 14 ed i circuiti di memoria 200, 208 sono intercolle gati ed accoppiati al sistema bersaglio 18, il quale viene quindi fatto funzionare dopo essere stato così collegato. Durante la emulazione, il sistema bersaglio 18 può accedere alle porte di accesso 206 per leggere dai circuiti di memoria 200, 208 oppure per scrivere in essi. In una configurazione ridefinita, il sistema di bersaglio 18 può anche provocare il fatto che una diversa definizione del circuito di me moria venga implementata nei circuiti di memoria 200, 208 e successivamente le porte di accesso 206 verrebbero conformemente riconfigurate.
Nella Figura 4, un diagramma di flusso illustra in generale un procedimento rappresentativo del la presente invenzione. Inizialmente, nel blocco 210 è fornito almeno un circuito di memoria 100, 200, 208 in cui ciascun circuito di memoria comprende almeno una cella di memoria statica avente preferibilmente tre porte di accesso, in cui ciascuna porta comprende un interruttore bidirezionale. Quindi, una definizione di circuito di prototipo, preferibilmente nella forma di una lista complessiva o netlist, viene suddivisa, nel blocco 220, in porzioni logiche e di memoria.
In conformità con la presente invenzione, la porzione o definizione di memoria viene implementata nel blocco 230 in almeno uno dei circuiti di memoria previsti, in cui tale definizione di memoria preferì bilmente definisce i valori di configurazione inizia li. In aggiunta, ciascuna porta di accesso 206 dei circuiti di memoria avente la definizione di memoria implementata può essere configurata nel blocco 240 per la lettura o per la scrittura. Preferibilmente, durante una finestra di tempo predeterminata, almeno ad una delle porte di accesso configurate si accede nel blocco 250 per effettuare la lettura da tali cir culti di memoria o la scrittura in essi.
Nella precedente disposizione, la emulazione del circuito di prototipo nel blocco 260 viene cosi abilitata e, come determinato conformemente dal progettista del circuito, la definizione del circuito di prototipo nel blocco 220 e le operazioni successi ve 230-260 possono essere ripetute, come indicato in 270.
TABELLA I
Configurazioni per parole di dati di 32 bit con selezione di scrittura da 8 bit:
CELLA PORTA BANCO SOTTOBANCO LARGHEZZA DI LARGHEZZA DI SCRITTURA LETTURA
8 16W 8R 8 4*8 32 32
16W 4R 8 4 32 64 16W 2R 8 4 32 128 16W 1R 8 4 32 256 8W 16R 8 4 32 32 8W 4R 8 4 32 128 8W 2R 8 4 32 256 8W 1R 8 4 32 256 4 8W 4R 4 4 32 32
8W 2R 4 4 32 64 8W 1R 4 4 32 128 4W 8R 4 4 32 32 4W 4R 4 4 32 64 4W 2R 4 4 32 128 4W IR 4 4 32 128 2 4W 2R 2 4 32 32
4W 1R 2 4 32 64 2W 4R 2 4 32 32 2W 2R 2 4 32 64 2W 1R 2 4 32 64 1 2W 1R 1 4 32. 32.
1W 2R 1 4 32 32 1W IR 1 4 32 32 Configurazioni per parole di dati di 64 bit con selezione di scrittura di 8 bit:
CELLA PORTA BANCO SOTTOBANCO LARGHEZZA DI LARGHEZZA DI SCRITTURA LETTURA
8 8W 4R 4 8*8 64 64
8W 2R 4 8 64 128 8W 1R 4 8 64 256 4W 4W 4 8 64 128 4W 2R 4 8 64 256 4W 1R 4 8 64 256 2W 8R 4 8 64 64 2W 4R 4 8 64 128 2W 2R 4 8 64 256 2W 1R 4 8 64 256 4 4W 2R 2 8 64 64
4W 1R 2 8 64 64 2W 4R 2 8 64 64 2W 2R 2 8 64 128 2W 1R 2 8 64 128 2 2W 1R 1 8 64 64
1W 2R 1 8 64 64 1W IR 1 8 64 64 Configurazioni per parole di dati di 128 bit con selezione di scrittura da 16 bit:
CELLA PORTA BANCO SOTTOBANCO LARGHEZZA DI LARGHEZZA DI SCRITTURA LETTURA
8 4W 2R 2 8*16 128 128
4W IR 2 8 128 128 2W 4R 2 8 128 128 2W 2R 2 8 128 256 2W 1R 2 8 128 256 2W 1R 128 128 1W 2R 128 128 1W 1R 1 8 128 128 Configurazioni per parole di dati di 256 bit con selezione di scrittura da 32 bit:
CELLA PORTA BANCO SOTTOBANCO LARGHEZZA DI LUNGHEZZA DI SCRITTURA LETTURA
8 2W 1R 1 8*32 256 256
1W 2R 256 256 1W 1R 256 256
Claims (29)
- RIVENDICAZIONI 1. Procedimento per configurare una pluralità di circuiti di memoria, il procedimento comprendendo le seguenti operazioni: fornire una pluralità di circuiti di memoria, ciascun circuito di memoria avendo una pluralità di porte di accesso; implementare una definizione di circuito di memoria in almeno uno dei circuiti di memoria forniti; e configurare ciascuna delle porte di accesso di ciascun circuito di memoria fornito avente la definizione del circuito di memoria implementata per la lettura da ciascuno di tali circuiti di memoria forniti o per la scrittura in essi.
- 2. Procedimento secondo la rivendicazione 1, in cui ciascun circuito di memoria comprende almeno una cella di memoria statica.
- 3. Procedimento secondo la rivendicazione 1, in cui ciascuna porta di accesso comprende un interruttore bidirezionale configurato in conformità con la definizione del circuito di memoria.
- 4. Procedimento secondo la rivendicazione 1, in cui soltanto tre porte di accesso sono fornite per ciascun circuito di memoria.
- 5. Procedimento secondo la rivendicazione 1, in cui la definizione del circuito di memoria defini sce i contenuti di memorizzazione iniziali in almeno uno dei circuiti di memoria forniti.
- 6. Procedimento secondo la rivendicazione 1, in cui la definizione del circuito di memoria defini sce la profondità e la larghezza di memorizzazione in almeno uno dei circuiti di memoria forniti.
- 7. Procedimento secondo la rivendicazione 1, in cui la definizione del circuito di memoria definì sce le selezioni dei banchi di memorizzazione in almeno uno dei circuiti di memoria forniti.
- 8. Procedimento secondo la rivendicazione 1, in cui la definizione del circuito di memoria defini sce la configurazione di memorizzazione in almeno uno dei circuiti di memoria forniti, in conformità con uno di una pluralità di valori di configurazione preventivamente definiti.
- 9. Procedimento secondo la rivendicazione 1, in cui la definizione del circuito di memoria defini sce, per ciascuna delle porte di accesso di ciascun circuito di memoria fornito avente la definizione dei circuito di memoria implementata, in cui ciascuna di tali porte di accesso è configurata per la let tura da ciascuno di tali circuiti di memoria forniti oppure per la scrittura in essi-
- 10. Procedimento secondo la rivendicazione 1, in cui la stessa definizione del circuito di memoria viene implementata in ciascuno dei circuiti di memoria forniti.
- 11. Procedimento secondo la rivendicazione 1, ulteriormente comprendente l'operazione di accedere, durante un intervallo di tempo elementare o finestra di tempo (slot) preliminarmente definita ad almeno na delle porte di accesso configurate in modo da effettuare la lettura da almeno uno dei circuiti di me moria forniti oppure la scrittura in essi.
- 12. Procedimento secondo la rivendicazione 11, in cui una separata finestra di tempo viene preliminarmente definita per la lettura dai circuiti di memoria forniti e per la scrittura in essi.
- 13. Procedimento secondo la rivendicazione 11, in cui la finestra di tempo viene preliminarmente de finita come una funzione di un segnale di clock o di cadenzamento esterno.
- 14. Procedimento secondo la rivendicazione 11, in cui la finestra di tempo viene preliminarmente de finita come una funzione di un tempo di accesso dei circuiti di memoria forniti.
- 15. Procedimento secondo la rivendicazione 11, in cui ad una pluralità delle porte di accesso confi gurate associate ad una pluralità di circuiti di memoria forniti si accede in parallelo durante una comune finestra di tempo.
- 16. Procedimento secondo la rivendicazione 11, in cui ad un singolo circuito di memoria fornito si accede durante ciascuna finestra di tempo prelimìnar mente definita.
- 17. Procedimento secondo la rivendicazione 11, in cui l'accesso viene iniziato da un evento di lettura asincrono.
- 18. Procedimento secondo la rivendicazione 11, in cui alle parole aventi una dimensione preliminarmente definita si accede da ciascuna porta di accesso configurata.
- 19. Procedimento secondo la rivendicazione 18, in cui ciascuna parola a cui si accede e che è più grande della dimensione preliminarmente definita viene suddivisa in una pluralità di porzioni di paro la le quali sono ciascuna non più grande della dimen sione preliminarmente definita e ciascuna porzione di parola viene estratta durante diverse finestre di tempo.
- 20. Procedimento secondo la rivendicazione 1, ulteriormente comprendente l'operazione di suddivide re la definizione di un circuito di prototipo in una definizione di circuito logico per la implementazione in un circuito logico e nella definizione di un circuito di memoria per la implementazione in almeno uno dei circuiti di memoria forniti.
- 21. Procedimento secondo la rivendicazione 20, in cui il circuito logico comprende un modulo logico riconfigurabile che può essere intercollegato con al meno uno dei circuiti di memoria forniti.
- 22. Procedimento secondo la rivendicazione 21, in cui il modulo logico riconfigurabile viene intercollegato con almeno uno dei circuiti di memoria for niti attraverso un modulo di intercollegamento programmabile. 23. Procedimento secondo la rivendicazione 20, ulteriormente comprendente l'operazione di emulare la definizione del circuito di prototipo suddivisa mediante il collegamento del circuito logico e di al meno uno dei circuiti di memoria forniti con un sistema di bersaglio e mediante il funzionamento del sistema di bersaglio collegato.
- 23. Procedimento secondo la rivendicazione 22, in cui il sistema di bersaglio collegato accede ad almeno una delle porte di accesso configurate in modo da effettuare la lettura da almeno uno dei circuì ti di memoria forniti oppure la scrittura in essi.
- 24. Procedimento secondo la rivendicazione 23, in cui il sistema di bersaglio collegato provoca il fatto che una diversa definizione del circuito di me moria venga implementata in almeno uno dei circuiti di memoria forniti e provoca anche il fatto che ciascuna delle porte di accesso di ciascun circuito di memoria fornito avente la diversa definizione di circuito di memoria implementata venga riconfigurata.
- 25. Procedimento secondo la rivendicazione 1, ulteriormente comprendente le seguenti operazioni: implementare una diversa definizione del circuito di memoria in almeno uno dei circuiti di memoria forniti: e riconfigurare ciascuna delle porte di accesso di ciascun circuito di memoria fornito avente la diversa definizione del circuito di memoria implementa ta per effettuare la lettura da ciascuno di tali cir cuiti di memoria forniti oppure la scrittura in essi.
- 26. Procedimento per configurare una pluralità di circuiti di memoria, il procedimento comprendendo le seguenti operazioni: fornire una pluralità di circuiti di memoria, ciascun circuito di memoria comprendendo almeno una cella di memoria statica ed avendo tre porte di accesso, ciascuna porta di accesso comprendendo un interruttore bidirezionale; implementare una definizione di circuito di memoria in almeno uno dei circuiti di memoria forniti, la definizione del circuito di memoria definendo i contenuti di memorizzazione iniziali, la profondità, la larghezza e le selezioni di banco in almeno uno dei circuiti di memoria forniti, in conformità con uno di una pluralità di valori di configurazione preventivamente definiti; configurare ciascuna delle porte di accesso di ciascun circuito di memoria fornito avente la definizione di circuito di memoria implementata per ef fettuare la lettura da ciascuno di tali circuiti di memoria forniti oppure la scrittura in essi; e accedere, durante una finestra di tempo preventivamente definita, ad almeno una delle porte di accesso configurate in modo da effettuare la lettura da almeno uno dei circuiti di memoria forniti oppure la scrittura in essi, in cui una separata finestra di tempo viene preventivamente definita per la lettura dai circuiti di memoria forniti e per la scrittura in essi, la finestra di tempo essendo preventivamente definita come una funzione di un segnale di clock o di cadenzamento esterno e di un tempo di accesso dei circuiti di memoria forniti.
- 27. Procedimento per configurare una pluralità di circuiti di memoria, il procedimento comprendendo le seguenti operazioni: fornire una pluralità di circuiti di memoria, ciascun circuito di memoria avendo una pluralità di porte di accesso; suddividere una definizione di circuito di prototipo in una definizione di circuito logico, per la implementazione in un circuito logico, ed in una definizione di circuito di memoria; implementare la definizione del circuito di memoria in almeno uno dei circuiti di memoria forniti; configurare ciascuna delle porte di accesso di ciascun circuito di memoria fornito avente la definizione di circuito di memoria implementata per ef fettuare la lettura da ciascuno di tali circuiti di memoria forniti oppure la scrittura in essi; accedere, durante una finestra di tempo preventivamente definita, ad almeno una delle porte di accesso configurate in modo da effettuare la lettura da almeno uno dei circuiti di memoria forniti oppure la scrittura in essi; e emulare la definizione del circuito di prototipo suddivisa mediante il collegamento del circuito logico e di almeno uno dei circuiti di memoria forni ti ad un sistemila di bersaglio e mediante il funzionamento del sistema di bersaglio collegato.
- 28. Apparecchio per configurare una pluralità di circuiti di memoria, l'apparecchio comprendendo: una pluralità di circuiti di memoria, ciascun circuito di memoria avendo una pluralità di porte di accesso; e una definizione di circuito di prototipo suddividibile in una definizione di circuito logico per la implementazione in un circuito logico ed in una definizione di circuito di memoria; in cui la definizione del circuito di memoria è implementabile in almeno uno dei circuiti di memoria, ciascuna porta di accesso di ciascun circuito di memoria avendo una definizione di circuito di memoria implementata la quale è configurabile per effettuare la lettura da ciascuno di tali circuiti di memoria oppure la scrittura in essi, ed una porta di accesso configurata per effettuare la lettura da almeno uno dei circuiti di memoria oppure la scrittura in essi, durante una finestra di tempo preventivameli te definita.
- 29. Apparecchio per configurare una pluralità di circuiti di memoria, l'apparecchio comprendendo: una pluralità di circuiti di memoria, ciascun circuito di memoria avendo una pluralità di porte di accesso: e una definizione di circuito di memoria implementata in almeno uno dei circuiti di memoria, in cui ciascuna porta di accesso di ciascun circuito di memoria, nel quale la definizione di circuito di memoria viene implementata, è configurata per effettua re operazioni di lettura da ciascuno di tali circuiti di memoria oppure di scrittura in essi.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US8205193A | 1993-06-24 | 1993-06-24 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| ITRM940407A0 ITRM940407A0 (it) | 1994-06-22 |
| ITRM940407A1 true ITRM940407A1 (it) | 1995-12-22 |
| IT1273001B IT1273001B (it) | 1997-07-01 |
Family
ID=22168735
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ITRM940407A IT1273001B (it) | 1993-06-24 | 1994-06-22 | "procedimento ed apparecchio per la configurazione di circuiti di memoria". |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US5940603A (it) |
| JP (1) | JPH0773066A (it) |
| CA (1) | CA2126621A1 (it) |
| DE (1) | DE4420610A1 (it) |
| FR (1) | FR2709006A1 (it) |
| GB (1) | GB2280524A (it) |
| IL (1) | IL109921A (it) |
| IT (1) | IT1273001B (it) |
| SE (1) | SE9402213A0 (it) |
Families Citing this family (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR980004043A (ko) * | 1997-10-01 | 1998-03-30 | 양세양 | 프로토타이핑 시스템 및 그 제어방법 |
| DE19807872A1 (de) * | 1998-02-25 | 1999-08-26 | Pact Inf Tech Gmbh | Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl. |
| US6430719B1 (en) * | 1998-06-12 | 2002-08-06 | Stmicroelectronics, Inc. | General port capable of implementing the JTAG protocol |
| US6381565B1 (en) * | 1998-08-21 | 2002-04-30 | Nec Corporation | Functional logic circuit verification device |
| JP2002526848A (ja) * | 1998-09-25 | 2002-08-20 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | マルチポートメモリを含む装置 |
| TW476069B (en) * | 1998-11-20 | 2002-02-11 | Via Tech Inc | Placement and routing for array device |
| US20020112084A1 (en) * | 2000-12-29 | 2002-08-15 | Deen Gary D. | Methods, systems, and computer program products for controlling devices through a network via a network translation device |
| US7035787B2 (en) * | 2001-10-30 | 2006-04-25 | Mentor Graphics Corporation | Emulation components and system including distributed routing and configuration of emulation resources |
| US7130788B2 (en) * | 2001-10-30 | 2006-10-31 | Mentor Graphics Corporation | Emulation components and system including distributed event monitoring, and testing of an IC design under emulation |
| US7062427B2 (en) * | 2001-12-27 | 2006-06-13 | John Stephen Walther | Batch editor for netlists described in a hardware description language |
| US6754130B1 (en) | 2002-12-23 | 2004-06-22 | Hewlett-Packard Development Company, Lp. | Memory having multiple write ports and write insert unit, and method of operation |
| US6654308B1 (en) | 2002-12-23 | 2003-11-25 | Hewlett-Packard Development Company, Lp. | Memory having multiple write ports and multiple control memory units, and method of operation |
| US6813215B2 (en) * | 2002-12-23 | 2004-11-02 | Hewlett-Packard Development Company, L.P. | Memory having multiple write ports and method of operation |
| JP4238124B2 (ja) | 2003-01-07 | 2009-03-11 | 積水化学工業株式会社 | 硬化性樹脂組成物、接着性エポキシ樹脂ペースト、接着性エポキシ樹脂シート、導電接続ペースト、導電接続シート及び電子部品接合体 |
| US7440884B2 (en) * | 2003-01-23 | 2008-10-21 | Quickturn Design Systems, Inc. | Memory rewind and reconstruction for hardware emulator |
| GB2403574B (en) * | 2003-07-03 | 2005-05-11 | Micron Technology Inc | Compact decode and multiplexing circuitry for a multi-port memory having a common memory interface |
| US7425841B2 (en) | 2004-02-14 | 2008-09-16 | Tabula Inc. | Configurable circuits, IC's, and systems |
| US7167025B1 (en) | 2004-02-14 | 2007-01-23 | Herman Schmit | Non-sequentially configurable IC |
| US7640155B2 (en) * | 2004-06-01 | 2009-12-29 | Quickturn Design Systems, Inc. | Extensible memory architecture and communication protocol for supporting multiple devices in low-bandwidth, asynchronous applications |
| US7721036B2 (en) * | 2004-06-01 | 2010-05-18 | Quickturn Design Systems Inc. | System and method for providing flexible signal routing and timing |
| US7282950B1 (en) * | 2004-11-08 | 2007-10-16 | Tabula, Inc. | Configurable IC's with logic resources with offset connections |
| US7743085B2 (en) | 2004-11-08 | 2010-06-22 | Tabula, Inc. | Configurable IC with large carry chains |
| US7330050B2 (en) | 2004-11-08 | 2008-02-12 | Tabula, Inc. | Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements |
| US7317331B2 (en) | 2004-11-08 | 2008-01-08 | Tabula, Inc. | Reconfigurable IC that has sections running at different reconfiguration rates |
| US7315993B2 (en) * | 2004-11-30 | 2008-01-01 | Lsi Logic Corporation | Verification of RRAM tiling netlist |
| US7530033B2 (en) | 2005-03-15 | 2009-05-05 | Tabula, Inc. | Method and apparatus for decomposing functions in a configurable IC |
| US7298169B2 (en) * | 2005-03-15 | 2007-11-20 | Tabula, Inc | Hybrid logic/interconnect circuit in a configurable IC |
| US7825684B2 (en) | 2005-03-15 | 2010-11-02 | Tabula, Inc. | Variable width management for a memory of a configurable IC |
| US7230869B1 (en) | 2005-03-15 | 2007-06-12 | Jason Redgrave | Method and apparatus for accessing contents of memory cells |
| US7243314B2 (en) * | 2005-04-14 | 2007-07-10 | Inventec Corporation | Window operation interface for graphically revising electrical constraint set and method of using the same |
| US7599242B2 (en) | 2005-09-28 | 2009-10-06 | Hynix Semiconductor Inc. | Test circuit for multi-port memory device |
| US7679401B1 (en) | 2005-12-01 | 2010-03-16 | Tabula, Inc. | User registers implemented with routing circuits in a configurable IC |
| US8090568B2 (en) * | 2006-02-21 | 2012-01-03 | Cadence Design Systems, Inc. | Hardware emulator having a variable input primitive |
| US7797497B1 (en) | 2006-03-08 | 2010-09-14 | Tabula, Inc. | System and method for providing more logical memory ports than physical memory ports |
| US7694083B1 (en) * | 2006-03-08 | 2010-04-06 | Tabula, Inc. | System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture |
| US7587697B1 (en) * | 2006-12-12 | 2009-09-08 | Tabula, Inc. | System and method of mapping memory blocks in a configurable integrated circuit |
| US7930666B1 (en) | 2006-12-12 | 2011-04-19 | Tabula, Inc. | System and method of providing a memory hierarchy |
| US7525344B2 (en) | 2007-03-20 | 2009-04-28 | Tabula, Inc. | Configurable IC having a routing fabric with storage elements |
| US7535252B1 (en) | 2007-03-22 | 2009-05-19 | Tabula, Inc. | Configurable ICs that conditionally transition through configuration data sets |
| EP2201569A4 (en) * | 2007-09-06 | 2011-07-13 | Tabula Inc | CONFIGURATION CONTEXT CHANGER |
| WO2010033263A1 (en) | 2008-09-17 | 2010-03-25 | Tabula, Inc. | Controllable storage elements for an ic |
| US8443335B2 (en) * | 2009-12-09 | 2013-05-14 | Agnisys, Inc. | Apparatus and method for circuit design |
| US8941409B2 (en) | 2011-07-01 | 2015-01-27 | Tabula, Inc. | Configurable storage elements |
| US9148151B2 (en) | 2011-07-13 | 2015-09-29 | Altera Corporation | Configurable storage elements |
| WO2013071183A1 (en) | 2011-11-11 | 2013-05-16 | Tabula, Inc. | Content addressable memory in integrated circuit |
Family Cites Families (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4306286A (en) * | 1979-06-29 | 1981-12-15 | International Business Machines Corporation | Logic simulation machine |
| US4583169A (en) * | 1983-04-29 | 1986-04-15 | The Boeing Company | Method for emulating a Boolean network system |
| US4747070A (en) * | 1984-01-09 | 1988-05-24 | Wang Laboratories, Inc. | Reconfigurable memory system |
| JPS60150957A (ja) * | 1984-01-14 | 1985-08-08 | Koken:Kk | レンズ加工機 |
| US4870302A (en) * | 1984-03-12 | 1989-09-26 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
| US4706216A (en) * | 1985-02-27 | 1987-11-10 | Xilinx, Inc. | Configurable logic element |
| US4697241A (en) * | 1985-03-01 | 1987-09-29 | Simulog, Inc. | Hardware logic simulator |
| US4937827A (en) * | 1985-03-01 | 1990-06-26 | Mentor Graphics Corporation | Circuit verification accessory |
| US4761768A (en) * | 1985-03-04 | 1988-08-02 | Lattice Semiconductor Corporation | Programmable logic device |
| DE3630835C2 (de) * | 1985-09-11 | 1995-03-16 | Pilkington Micro Electronics | Integrierte Halbleiterkreisanordnungen und Systeme |
| US5140687A (en) * | 1985-10-22 | 1992-08-18 | Texas Instruments Incorporated | Data processing apparatus with self-emulation capability |
| US4937770A (en) * | 1986-02-07 | 1990-06-26 | Teradyne, Inc. | Simulation system |
| US4744084A (en) * | 1986-02-27 | 1988-05-10 | Mentor Graphics Corporation | Hardware modeling system and method for simulating portions of electrical circuits |
| US4862347A (en) * | 1986-04-22 | 1989-08-29 | International Business Machine Corporation | System for simulating memory arrays in a logic simulation machine |
| US4758745B1 (en) * | 1986-09-19 | 1994-11-15 | Actel Corp | User programmable integrated circuit interconnect architecture and test method |
| US4849928A (en) * | 1987-01-28 | 1989-07-18 | Hauck Lane T | Logic array programmer |
| JP2699377B2 (ja) * | 1987-02-25 | 1998-01-19 | 日本電気株式会社 | ハードウエア論理シミユレータ |
| US4914612A (en) * | 1988-03-31 | 1990-04-03 | International Business Machines Corporation | Massively distributed simulation engine |
| US4901259A (en) * | 1988-08-15 | 1990-02-13 | Lsi Logic Corporation | Asic emulator |
| EP0651343B1 (en) * | 1988-10-05 | 2004-04-28 | Quickturn Design Systems, Inc. | Method of using electronically reconfigurable gate array logic and apparatus formed thereby |
| US5452231A (en) * | 1988-10-05 | 1995-09-19 | Quickturn Design Systems, Inc. | Hierarchically connected reconfigurable logic assembly |
| US5109353A (en) * | 1988-12-02 | 1992-04-28 | Quickturn Systems, Incorporated | Apparatus for emulation of electronic hardware system |
| US5129069A (en) * | 1989-01-24 | 1992-07-07 | Zenith Data Systems Corporation | Method and apparatus for automatic memory configuration by a computer |
| GB8902982D0 (en) * | 1989-02-10 | 1989-03-30 | Plessey Co Plc | Machine for circuit design |
| US5210701A (en) * | 1989-05-15 | 1993-05-11 | Cascade Design Automation Corporation | Apparatus and method for designing integrated circuit modules |
| US5598344A (en) * | 1990-04-06 | 1997-01-28 | Lsi Logic Corporation | Method and system for creating, validating, and scaling structural description of electronic device |
| US5255363A (en) * | 1990-06-19 | 1993-10-19 | Mentor Graphics Corporation | Graph-based programming system and associated method |
| US5475830A (en) * | 1992-01-31 | 1995-12-12 | Quickturn Design Systems, Inc. | Structure and method for providing a reconfigurable emulation circuit without hold time violations |
| US5425036A (en) * | 1992-09-18 | 1995-06-13 | Quickturn Design Systems, Inc. | Method and apparatus for debugging reconfigurable emulation systems |
| US5603043A (en) * | 1992-11-05 | 1997-02-11 | Giga Operations Corporation | System for compiling algorithmic language source code for implementation in programmable hardware |
| US5452239A (en) * | 1993-01-29 | 1995-09-19 | Quickturn Design Systems, Inc. | Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system |
| US5487018A (en) * | 1993-08-13 | 1996-01-23 | Vlsi Technology, Inc. | Electronic design automation apparatus and method utilizing a physical information database |
| US5448522A (en) * | 1994-03-24 | 1995-09-05 | Quickturn Design Systems, Inc. | Multi-port memory emulation using tag registers |
-
1994
- 1994-06-07 IL IL109921A patent/IL109921A/xx not_active IP Right Cessation
- 1994-06-13 DE DE4420610A patent/DE4420610A1/de not_active Withdrawn
- 1994-06-14 GB GB9411924A patent/GB2280524A/en not_active Withdrawn
- 1994-06-22 IT ITRM940407A patent/IT1273001B/it active IP Right Grant
- 1994-06-22 SE SE9402213A patent/SE9402213A0/sv not_active Application Discontinuation
- 1994-06-23 CA CA002126621A patent/CA2126621A1/en not_active Abandoned
- 1994-06-23 FR FR9407721A patent/FR2709006A1/fr active Pending
- 1994-06-24 JP JP6142973A patent/JPH0773066A/ja active Pending
-
1997
- 1997-10-17 US US08/953,315 patent/US5940603A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| SE9402213D0 (sv) | 1994-06-22 |
| ITRM940407A0 (it) | 1994-06-22 |
| IL109921A (en) | 1997-09-30 |
| IL109921A0 (en) | 1994-10-07 |
| IT1273001B (it) | 1997-07-01 |
| FR2709006A1 (fr) | 1995-02-17 |
| US5940603A (en) | 1999-08-17 |
| GB9411924D0 (en) | 1994-08-03 |
| SE9402213A0 (en) | 1995-02-24 |
| GB2280524A (en) | 1995-02-01 |
| CA2126621A1 (en) | 1994-12-25 |
| JPH0773066A (ja) | 1995-03-17 |
| DE4420610A1 (de) | 1995-01-26 |
| SE9402213L (it) |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5940603A (en) | Method and apparatus for emulating multi-ported memory circuits | |
| US5263149A (en) | Integrated circuit logic functions simulator for selectively connected series of preprogrammed PLA devices using generated sequence of address signals being provided between simulated clock cycles | |
| US7769577B2 (en) | Hardware accelerator with a single partition for latches and combinational logic | |
| US6701491B1 (en) | Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it | |
| US4527249A (en) | Simulator system for logic design validation | |
| US8868974B2 (en) | Memory-based trigger generation scheme in an emulation environment | |
| US5327361A (en) | Events trace gatherer for a logic simulation machine | |
| JPH06208602A (ja) | 可検査性設計規則の検証方法 | |
| HK1052386A1 (zh) | 仿真系統中使用的具有集成調試功能的可重構集成電路 | |
| JP3896177B2 (ja) | エミュレーションシステム | |
| Palma et al. | Core communication interface for FPGAs | |
| US5798645A (en) | Hardware emulations system with delay units | |
| US5737578A (en) | Apparatus and method for partitioning multiport rams | |
| US6059836A (en) | Logic circuit emulator | |
| US7640155B2 (en) | Extensible memory architecture and communication protocol for supporting multiple devices in low-bandwidth, asynchronous applications | |
| JP3212709B2 (ja) | ロジックシミュレーション装置 | |
| WO2007095996A1 (en) | Cross-bar switching in an emulation environment | |
| JP3999290B2 (ja) | 半導体試験装置 | |
| EP1236222B1 (en) | Universal hardware device and method and tools for use therewith | |
| US7043417B1 (en) | High speed software driven emulator comprised of a plurality of emulation processors with improved multiplexed data memory | |
| Kwiat et al. | Modeling a versatile FPGA for prototyping adaptive systems | |
| JP2004199425A (ja) | エミュレーション方法及び装置 | |
| Harris | Built-In Self-Test Configurations for Field Programmable Gate Array Cores in Systems on Chip | |
| Nixon | Programmable Logic Implementation | |
| EP0483965A2 (en) | Logic simulation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 0001 | Granted |