Realizacja sprzętowa systemów cyfrowych

Postęp technologiczny w dziedzinie układów reprogramowalnych FPGA (Field Programmable Gate Arrays) jaki nastąpił w ostatnim dziesięcioleciu otwiera nowe możliwości w dziedzinie implementacji algorytmów kryptograficznych. Struktury FPGA mogą być opisane jako macierz programowalnych komórek logicznych połączonych siecią programowalnych połączeń. Każda komórka logiczna umożliwia realizację prostej funkcji logicznej (ograniczonej liczby zmiennych) zdefiniowanej przez użytkownika za pomocą narzędzia komputerowego wspomagania projektowania CAD. Typowy układ programowalny składa się z dużej liczby (od 64 do ponad 1000000) takich komórek, które dzięki programowalnym połączeniom mogą zostać wykorzystane do budowy złożonych układów cyfrowych. Możliwość manipulowania logiką układu na poziomie komórek oznacza, że projektant może stworzyć specjalizowany procesor efektywnie realizujący zadany algorytm.

Czytaj dalej „Realizacja sprzętowa systemów cyfrowych”

Metody projektowania i algorytmy syntezy logicznej

Moje prace w tej dziedzinie obejmują opracowywanie algorytmów umożliwiających efektywne projektowanie systemów cyfrowych (i nie tylko). Zagadnienia, którymi się zajmuję to m.in.:

  • syntezy układów kombinacyjnych dla struktur programowalny FPGA
  • syntezy automatów FSM dla struktur programowalny FPGA,
  • syntezy filtrów FIR w strukturach FPGA,
  • realizacji układów rewersyjnych,
  • realizacji sieci neuronowych.

Czytaj dalej „Metody projektowania i algorytmy syntezy logicznej”

Tworzenie uniwersyteckich systemów do syntezy logicznej

W ramach pracy naukowej zajmuje się także tworzeniem programów do wspomagania projektowania systemów cyfrowych. Są to programy do:

  • syntezy logicznej (najnowsze rozwiązania i pomysły z dziedziny syntezy wielopoziomowej i optymalizacji),
  • translacji pomiędzy różnymi formatami danych,
  • wizualizacji wyników,
  • badania algorytmów dla celów porównania i pomocy przy realizacji sprzętowej

Wykorzystuję do tego celu bibliotekę klas stworzonych przeze mnie i oprogramowanych w język C++.