Synteza logiczna
Synteza logiczna polega na znalezieniu takiej konfiguracji zasobów sprzętowych (bramek logicznych), przerzutników, komórek czy też makrokomórek, która realizować będzie założony układ cyfrowy (opisany zazwyczaj za pomocą języka opisu sprzętu (HDL) lub sieci połączeń). Proces ten przebiega według pewnych wytycznych nakładanych przez projektanta. Może to być minimalizacja potrzebnych zasobów sprzętowych, minimalizacja maksymalnego czasu propagacji sygnału w układzie lub zmniejszenie mocy pobieranej przez układ.
Proces syntezy logicznej poprzedzają dwa etapy:
- modelowanie sprzętu – projektant zapisuje sposób działania układu przy pomocy języka opisu sprzętu lub w sposób graficzny – przy pomocy odpowiedniego środowiska projektanckiego;
- synteza architektury – (do uzupełnienia) kompilator działa na poziomie abstrakcji równym układom takim jak sumatory, rejestry itp.
Zoptymalizowany układ na poziomie architektury można teraz optymalizować na poziomie logicznym.
Ważnym pojęciem jest w pojęcie biblioteka. Jest to zbiór zasobów sprzętowych jakie ma do dyspozycji dana platforma sprzętowa. Dla przykładu: biblioteką układów PAL były bramka AND i bramka OR.
Tradycyjny przebieg syntezy logicznej wyglądał następująco:
W przypadku układów FPGA wygląda to nieco inaczej:
- redukcja argumentów i dekompozycja,
- minimalizacja,
- odwzorowanie technologiczne.
Syntezę logiczną przeprowadza się obecnie przy pomocy programu zwanego syntezerem logicznym, który jest najczęściej fragmentem pewnego środowiska projektanckiego.
Zobacz też
edytuj- Altera, AHDL, Abel (język programowania), algebra Boole’a, algorytm ekspansji, automat,
- FPGA, funkcja boolowska,
- implikant funkcji boolowskiej, implikant prosty, kostka boolowska,
- makrokomórka, metoda Espresso, metoda Hopcrofta, metoda Karnaugha, metoda Quine’a-McCluskeya, minimalizacja stanów automatu,
- PAL, PLA, PLD, pokrycie,
- twierdzenie Quine’a,
- układ asynchroniczny, układ kombinacyjny, układ sekwencyjny,
- Verilog, VHDL,
- Xilinx