Universitatea Tehnică din Cluj-Napoca
Catedra de Calculatoare
BARUCH ZOLTAN FRANCISC
CONTRIBUȚII LA PROIECTAREA ASISTATĂ
DE CALCULATOR A SISTEMELOR NUMERICE
Teză de doctorat
Conducător științific: Prof. dr. ing. Pusztai Kalman
Cluj-Napoca, 1999
CUPRINS
1.1. PROIECTAREA SISTEMELOR NUMERICE
1.2. CIRCUITE FPGA
1.3. ETAPELE DE PROIECTARE CU CIRCUITE FPGA
1.4. MOTIVAȚIA TEZEI
1.5. ORGANIZAREA TEZEI
2.1. INTRODUCERE
2.2. PROCESUL DE PROIECTARE AL CIRCUITELOR VLSI
2.2.1. Proiectarea arhitecturală
2.2.2. Proiectarea logică
2.2.3. Proiectarea fizică
2.3. TIPURI DE CIRCUITE VLSI
2.3.1. Rețele de porți
2.3.2. Celule standard
2.3.3. Macro-celule
2.3.4. Circuite FPGA
2.4. TIPURI DE CIRCUITE FPGA
2.4.1. Circuitele FPGA Xilinx
2.4.2. Circuitele FPGA Altera
2.4.3. Circuitele FPGA Actel
2.4.4. Circuitele FPGA Quicklogic
2.5. DIFICULTĂȚILE PROIECTĂRII FIZICE
2.6. CONCLUZII
3.1. INTRODUCERE
3.2. DEFINIREA PROBLEMEI DE PARTIȚIONARE
3.3. RESTRICȚII
3.4. PREZENTAREA SINTETICĂ A METODELOR DE PARTIȚIONARE
3.4.1. Algoritmul Kernighan-Lin
3.4.2. Variante ale algoritmului Kernighan-Lin
3.4.3. Euristica Fiduccia-Mattheyses
3.4.4. Partiționarea prin metoda călirii simulate
3.4.5. Partiționarea prin tăietura proporțională
3.4.6. Partiționarea cu performanțe stabile
3.4.7. Partiționarea prin metode spectrale
3.4.8. Partiționarea pe baza rețelelor de flux
3.4.9. Multipartiționarea
3.4.10. Partiționarea prin metode probabilistice
3.5. PARTIȚIONAREA PENTRU CIRCUITELE FPGA
3.5.1. Partiționarea ierarhică pentru circuite FPGA multiple
3.5.2. Partiționarea pentru circuite FPGA cu structuri de tip PLA
3.6. METODE NECONVENȚIONALE DE PARTIȚIONARE
3.6.1. Partiționarea prin evoluție stohastică
3.6.1.1. Bipartiționarea prin evoluție stohastică
3.6.1.2. Multipartiționarea prin evoluție stohastică3.6.2. Partiționarea prin automate de învățare
3.6.2.1. Automate de învățare și partiționarea obiectelor
3.6.2.2. Automat de învățare pentru partiționarea grafurilor
3.7. ALGORITMI DE PARTIȚIONARE PROPUȘI PENTRU CIRCUITE FPGA
CU RESURSE LIMITATE DE RUTARE
3.7.1. Algoritm de partiționare cu echilibrarea numărului de conexiuni
3.7.2. Algoritm genetic pentru partiționare cu echilibrarea numărului de conexiuni3.7.2.1. Terminologia algoritmilor genetici
3.7.2.2. Principiul algoritmilor genetici
3.7.2.3. Algoritm genetic de partiționare cu echilibrarea numărului de conexiuni3.7.3. Rezultate experimentale
3.8. CONCLUZII
4.1. INTRODUCERE
4.2. DEFINIREA PROBLEMEI DE PLASARE
4.3. FUNCȚII DE COST ȘI RESTRICȚII
4.3.1. Estimarea lungimii conexiunilor
4.3.2. Minimizarea lungimii totale a conexiunilor
4.3.3. Minimizarea tăieturii maxime
4.3.4. Minimizarea densității maxime
4.3.5. Maximizarea performanțelor
4.4. SINTEZA METODELOR DE PLASARE
4.4.1. Plasarea constructivă inițială
4.4.2. Plasarea pe baza tăieturii minime
4.4.3. Plasarea prin metoda călirii simulate4.4.3.1. Aplicarea algoritmului de călire simulată pentru plasare
4.4.3.2. Algoritmul TimberWolf4.4.4. Plasarea prin partiționare ierarhică
4.4.5. Plasarea prin metode numerice
4.4.6. Plasarea liniară prin metode spectrale
4.4.7. Alte metode iterative4.4.7.1. Plasarea prin asignare cuadratică
4.4.7.2. Plasarea pe baza optimizării rețelelor rezistive
4.4.7.3. Plasarea prin algoritmul Steinberg
4.4.7.4. Plasarea prin metoda spațiului grafurilor
4.4.7.5. Plasarea bazată pe operații cu linii și coloane
4.5. METODE NECONVENȚIONALE DE PLASARE
4.5.1. Plasarea prin algoritmi paraleli
4.5.2. Plasarea prin rețele neuronale artificiale4.5.2.1. Concepte de bază ale rețelelor neuronale artificiale
4.5.2.2. Rețele neuronale Hopfield
4.5.2.3. Utilizarea rețelelor neuronale pentru plasare
4.6. ALGORITMI DE PLASARE PROPUȘI PENTRU CIRCUITELE FPGA
CU RESURSE LIMITATE DE RUTARE
4.6.1. Algoritm de plasare pe baza tăieturii minime
4.6.1.1. Descrierea algoritmului de plasare
4.6.1.2. Secvența de aplicare a liniilor de tăietură4.6.2. Algoritm genetic pentru plasarea circuitelor FPGA
4.6.2.1. Utilizarea algoritmilor genetici pentru plasare
4.6.2.2. Reprezentarea soluției
4.6.2.3. Operatori genetici
4.6.2.4. Selecția populației pentru generația următoare
4.6.2.5. Aspecte specifice pentru circuitele FPGA cu resurse limitate de rutare4.6.3. Rezultate experimentale
4.7. CONCLUZII
5.1. INTRODUCERE
5.2. DEFINIREA PROBLEMEI DE RUTARE
5.3. FUNCȚII DE COST ȘI RESTRICȚII
5.3.1. Funcții de cost și restricții pentru rutarea globală
5.3.2. Funcții de cost și restricții pentru rutarea detaliată
5.4. SINTEZA METODELOR DE RUTARE
5.4.1. Prezentarea sintetică a metodelor de rutare globală
5.4.2. Prezentarea sintetică a metodelor de rutare detaliată
5.5. RUTAREA GLOBALĂ
5.5.1. Regiuni de rutare
5.5.1.1. Conversia joncțiunilor canalelor
5.5.1.2. Ordonarea canalelor
5.5.1.3. Reprezentarea regiunilor de rutare5.5.2. Rutarea globală secvențială
5.5.2.1. Problema arborelui Steiner
5.5.2.2. Rutarea globală prin metoda parcurgerii labirintului
5.5.2.3. Rutarea globală utilizând arbori Steiner ponderați
5.5.2.4. Rutarea globală orientată pe performanțe5.5.3. Rutarea globală prin metoda călirii simulate
5.5.4. Rutarea globală prin metoda programării întregi
5.6. RUTAREA DETALIATĂ
5.6.1. Rutarea detaliată generală
5.6.1.1. Rutarea labirint
5.6.1.2. Rutarea prin metoda căutării liniilor5.6.2. Rutarea prin canale
5.6.2.1. Definirea problemei de rutare prin canale
5.6.2.2. Grafuri de constrângeri
5.6.2.3. Algoritmul marginii din stânga
5.6.2.4. Algoritmii Yoshimura și Kuh
5.6.2.5. Alte metode de rutare prin canale
5.7. RUTAREA CIRCUITELOR FPGA
5.7.1. Problema de rutare a circuitelor FPGA
5.7.2. Rutarea prin expandarea grafului
5.7.3. Rutarea pe baza grafurilor cu ponderi multiple5.7.3.1. Metoda 1-Steiner iterată
5.7.3.2. Metoda Kou, Markowsky și Berman
5.7.3.3. Algoritm de rutare hibrid
5.7.3.4. Optimizarea simultană a obiectivelor multiple
5.8. ALGORITM PROPUS PENTRU RUTAREA CIRCUITELOR FPGA ATMEL 6000
5.8.1. Arhitectura de rutare a circuitelor FPGA Atmel 6000
5.8.2. Modelarea circuitului printr-un graf
5.8.3. Descrierea algoritmului de rutare
5.9. CONCLUZII
6.1. STRUCTURA GENERALĂ A SISTEMULUI CAD
6.2. DESCRIEREA PROIECTULUI
6.3. COMPILAREA ȘI OPTIMIZAREA DESCRIERILOR
6.4. GENERAREA REPREZENTĂRII INTERNE
6.5. MAPAREA TEHNOLOGICĂ
6.6. PLASAREA CELULELOR
6.7. RUTAREA CIRCUITULUI
6.8. CONCLUZII
7.1. SUMARUL TEZEI
7.2. CONTRIBUȚIILE TEZEI
7.3. DEZVOLTĂRI POSIBILE