Dr. Baruch Zoltan Francisc
Profesor




NEDEVSCHI, S., BARUCH, Z. F., CREȚ, O.

PROIECTAREA SISTEMELOR NUMERICE
FOLOSIND TEHNOLOGIA FPGA


Editura Mediamira, Cluj-Napoca, 1999, ISBN 973-9358-26-8 (297 pagini)






CUPRINS


1 TIPURI DE CIRCUITE FPGA

1.1 INTRODUCERE
1.2 CIRCUITE FPGA XILINX

1.2.1 Xilinx XC2000
1.2.2 Xilinx XC3000
1.2.3 Xilinx XC4000
1.2.4 Instrumentele software Xilinx

1.3 CIRCUITELE FPGA ALTERA

1.3.1 Structura generală a circuitelor FPGA Altera
1.3.2 Circuitele FPGA Altera Flex 8000 și Flex 10K
1.3.3 Instrumentele software ALTERA

1.4 CIRCUITELE FPGA ACTEL

1.4.1 Structura generală a circuitelor FPGA Actel
1.4.2 Instrumentele software Actel

1.5 CIRCUITELE FPGA AT&T
1.6 CIRCUITELE FPGA QUICKLOGIC
1.7 CERCETĂRI ARHITECTURALE ÎN DOMENIUL CIRCUITELOR FPGA

2 CIRCUITELE FPGA XILINX

2.1 INTRODUCERE
2.2 FAMILIA XC4000

2.2.1 Descrierea structurii interne
2.2.2 Blocurile logice configurabile (CLB): Generatoarele de funcții; Bistabilele interne; Circuitele "latch" interne (numai la XC4000X); Intrarea de tact; Validarea tactului; Set/Reset; Intrări și ieșiri de date; Semnale de control; Utilizarea bistabilelor și "latch"-urilor; Utilizarea generatoarelor de funcții ca memorii RAM; Logica de propagare rapidă a transportului
2.2.3 Blocurile de intrare/ieșire: Semnalele de intrare din blocul IOB în circuitul FPGA; Intrări prin registru; Semnale de ieșire ale blocului IOB; Controlul vitezei de tranziție a semnalului (Slew Rate); Linia globală de comandă a ieșirilor cu 3 stări
2.2.4 Bufferele interne cu 3 stări: Modurile de utilizare a bufferelor cu 3 stări; Exemple de utilizare a bufferelor cu 3 stări
2.2.5 Decodificatoare interne de capacitate ridicată
2.2.6 Oscilatorul intern
2.2.7 Interconexiunile programabile: Conexiuni de rutare între blocurile CLB; Conexiuni de rutare a blocurilor IOB; Rețele globale și buffere
2.2.8 "Boundary Scan": Registrele de date; Setul de instrucțiuni; Secvența de biți; Includerea facilităților "boundary scan" în scheme
2.2.9 Configurarea circuitelor FPGA: Pinii dedicați pentru selectarea modului de configurare; Moduri de configurare; Formatul datelor de configurare; Secvența de configurare

2.3 FAMILIA XC5200

2.3.1 Descrierea structurii interne
2.3.2 Modulele VersaBlock: interconexiuni locale și logică versatilă
2.3.3 Blocurile logice configurabile CLB
2.3.4 Oscilatorul intern
2.3.5 Semnalul de reset global
2.3.6 Rutarea modulelor VersaBlock: Matricea de conexiuni locale; Conexiuni directe
2.3.7 Matricea de rutare generală: Linii de lungime simplă și dublă; Linii lungi; Linii globale; Interfața de intrare/ieșire VersaRing
2.3.8 Blocurile de intrare/ieșire
2.3.9 Configurarea circuitelor FPGA din seria XC5200

2.4 CIRCUITELE FPGA DIN GENERAȚIA A DOUA XC6200

2.4.1 Organizarea logică și fizică
2.4.2 Celule, blocuri și grupuri logice, unități logice
2.4.3 Resurse de interconectare: Conexiuni "magice"; Conexiuni globale
2.4.4 Celula logică
2.4.5 Blocurile de intrare/ieșire (IOB)
2.4.6 Programarea seriei XC6200

3 MEDIUL DE PROIECTARE XILINX FOUNDATION SERIES

3.1 COMPONENTELE MEDIULUI DE PROIECTARE XILINX FOUNDATION SERIES

3.1.1 Instrumente de introducere a proiectului
3.1.2 Instrumente de sinteză logică
3.1.3 Instrumente de verificare a proiectului
3.1.4 Instrumente de configurare a dispozitivului FPGA
3.1.5 Instrumente suport pentru integrarea în medii mai mari

3.2 EDITORUL SCHEMATIC

3.2.1 Simboluri și biblioteci
3.2.2 Verificarea circuitului
3.2.3 Interfețe
3.2.4 Operațiile editorului schematic ACTIVE-CAD

3.3 SIMULATORUL

3.3.1 Crearea modelului circuitului
3.3.2 Selectarea punctelor de test
3.3.3 Crearea și aplicarea stimulilor
3.3.4 Analiza rezultatelor simulării: Simularea funcțională; Modul de lucru Unit Delay Simulation; Modul de lucru Glitch Simulation; Simularea temporală

3.4 EDITORUL DE LIMBAJE DE DESCRIERE HARDWARE

3.4.1 Avantajele utilizării limbajelor de descriere hardware (HDL) la proiectarea cu dispozitive FPGA
3.4.2 Proiectarea utilizând limbaje de descriere hardware
3.4.3 Metodologii de proiectare

3.5 EDITORUL DE AUTOMATE FINITE
3.6 PROGRAMUL "EPIC DESIGN EDITOR"

3.6.1 Interfața EPIC: Fereastra principală EPIC; Fereastra dialog EPIC List; Fereastra dialog Layer Visibility; Fereastra dialog Command Line

3.7 PROGRAMUL FLOORPLANNER

3.7.1 Cerințe preliminarii
3.7.2 Caracteristicile programului Floorplanner
3.7.3 Tipuri de fișiere: Fișiere de intrare; Fișiere de ieșire
3.7.4 Metodologii de proiectare: Plasare și rutare înainte de planificare; Planificare înainte de plasare și rutare; Planificarea iterativă; Modificarea incrementală a proiectului

3.8 EDITORUL DE CONSTRÂNGERI

3.8.1Ferestrele editorului de constrângeri
3.8.2Specificarea constrângerilor: Constrângerile definite din fereastra secundară Global; Constrângerile definite din fereastra secundară Ports; Constrângerile definite din fereastra secundară Advanced
3.8.3 Fișiere de intrare și de ieșire

3.9 PROGRAMUL LOGIBLOX

3.9.1 Proiectarea cu module logice definite de utilizator
3.9.2 Avantajele proiectării cu LogiBLOX
3.9.3 Intrările și ieșirile programului LogiBLOX
3.9.4 Integrarea LogiBLOX în fluxul de proiectare cu editorul schematic
3.9.5 Integrarea LogiBLOX în fluxul de proiectare cu HDL

3.10 PROGRAMUL HARDWARE DEBUGGER

3.10.1 Caracteristicile programului Hardware Debugger
3.10.2 Legătura dintre proiect și partea arhitecturală
3.10.3 Introducerea proiectului și generarea fișierului de configurare: Modul de configurare; Alegerea plăcii de configurare; Configurarea unuia sau mai multor dispozitive; Conectarea cablurilor
3.10.4 Crearea unui proiect pentru utilizarea programului Hardware Debugger: Pregătirea unui proiect pentru încărcare; Pregătirea unui proiect pentru verificare și depanare
3.10.5 Cablul de programare
3.10.6 Depanarea

3.11 UTILITARUL TIMING ANALYSER

3.11.1 Intrări și ieșiri
3.11.2 Caracteristici: Caracteristici de interfață; Caracteristici legate de rapoarte; Comenzi de filtrare; Caracteristici legate de macrouri; Caracteristici legate de întreruperea analizei
3.11.3 Principiile analizei temporale: Principalele tipuri de căi
3.11.4 Probleme ale analizei temporale: Bucle de reacție; Constrângeri temporale; Dispersia tactului (clock skew); Întârzierea externă (off-chip)
3.11.5 Procedura de bază de efectuare a analizei temporale

3.12 UTILITARUL JTAG PROGRAMMER

3.12.1 Programarea și verificarea
3.12.2 Securitatea non-volatilă a dispozitivelor
3.12.3 Fișierele necesare: Fișierele JEDEC; Fișierele BSDL; Fișierele BIT
3.12.4 Crearea de noi descrieri seriale
3.12.5 Configurarea In-System a dispozitivelor CPLD: Modul concurent (Concurrent Mode); Modul HIGHZ în loc de BYPASS
3.12.6 Selectarea componentelor pentru programare (la FPGA)
3.12.7 Conectarea dispozitivelor în lanț boundary scan: Reguli de proiectare pentru sisteme boundary scan și ISP
3.12.8 Dispozitivele FPGA: Fișierele de configurare; Inițializarea dispozitivului; Verificarea configurației dispozitivului
3.12.9 Boundary scan: Controlerul TAP JTAG; Instrucțiuni JTAG suportate în componentele FastFLASH

3.13 PROGRAMUL PROM FILE FORMATTER

3.13.1 Fișierele PROM Xilinx
3.13.2 Zona de afișare a descrierii fișierelor PROM
3.13.3 Tipuri de fișiere utilizate: Fișiere de intrare; Fișiere de ieșire
3.13.4 Interschimbarea biților în fișierele PROM
3.13.5 Implementarea aplicațiilor
3.13.6 Pregătirea configurărilor multiple: Reconfigurarea unui lanț de la un PROM serial; Reconfigurarea unui dispozitiv sau a unui lanț dispozitive de la un PROM paralel; Configurarea mai multor lanțuri de la un PROM paralel

3.14 PROGRAMUL DESIGN MANAGER

3.14.1 Introducere
3.14.2 Fluxul de proiectare
3.14.3 Operații de bază în Design Manager
3.14.4 Procedura de bază de gestionare a proiectelor
3.14.5 Operații de bază în Flow Engine
3.14.6 Rularea de treceri multiple de plasare și rutare
3.14.7 Rularea rutării re-entrante
3.14.8 Specificarea opțiunilor de implementare, simulare și configurare
3.14.9 Ghidarea unui proiect

3.15 PROGRAMUL PROJECT MANAGER

3.15.1 Hierarchy Browser
3.15.2 Zona Project Flowchart
3.15.3 Zona de afișare a mesajelor

3.16 PROGRAMUL LIBRARY MANAGER

4 TEHNICI DE PROIECTARE CU CIRCUITE FPGA XILINX

4.1 STRATEGII DE PROIECTARE CU FPGA
4.2 INTRODUCEREA PROIECTULUI PRIN EDITOR SCHEMATIC
4.3 SPECIFICAREA PROIECTULUI PRIN LIMBAJ DE DESCRIERE HARDWARE
4.4 IMPLEMENTAREA EFICIENTĂ A NUMĂRĂTOARELOR CU REACȚIE LINIARĂ

4.4.1 Numărătoare LFSR

4.5. IMPLEMENTAREA EFICIENTĂ A REGISTRELOR DE DEPLASARE
4.6. IMPLEMENTAREA EFICIENTĂ A GENERATOARELOR DE SECVENȚĂ PSEUDOALEATOARE
4.7. IMPLEMENTAREA EFICIENTĂ A MEMORIILOR DE TIP COADĂ (FIFO)

4.7.1 Logica de control
4.7.2 Logica de determinare a stării
4.7.3 Matricea de memorie FIFO
4.7.4 Cronograma memoriei FIFO
4.7.5 Implementarea fizică
4.7.6 O alternativă nerecomandată
4.7.7 Soluția cu memorie RAM sincronă
4.7.8 Memorie FIFO simplificată cu memorie RAM sincronă
4.7.9 Memorie FIFO implementată cu memorie RAM sincronă cu port dual

4.8 IMPLEMENTAREA EFICIENTĂ A MAȘINILOR DE STARE

4.8.1 Numărătoare sincrone
4.8.2 Generator de forme de undă
4.8.3 Mașini de stare simple
4.8.4 Mașini de stare codificate 'One-Hot'
4.8.5 Mașini de stare complexe

4.9 CONFIGURAREA DISPOZITIVELOR FPGA PRIN CUPLAREA LA UN SISTEM MICROPROCESOR

4.9.1 Interfața cu microprocesorul
4.9.2 Schema de reconfigurare ultra-rapidă

5 DEZVOLTAREA ÎN TEHNOLOGIE FPGA A UNUI DISPOZITIV
   PENTRU REALIZAREA CONVOLUȚIEI GENERALIZATE

5.1 INTRODUCERE
5.2 ALEGEREA SOLUȚIEI

5.2.1 Implementarea aritmeticii serial distribuite
5.2.2 Implementarea lanțului de registre de deplasare

5.3 DISPOZITIV SINGLE-CHIP PENTRU EXECUȚIA CONVOLUȚIEI ÎN TIMP REAL
5.4 DISPOZITIV DE CONVOLUȚIE GENERALIZATĂ m x m
5.5 CONCLUZII ȘI DEZVOLTĂRI POSIBILE

ANEXĂ

CARACTERISTICI ALE FAMILIILOR DE CIRCUITE FPGA XILINX

BIBLIOGRAFIE