Języki Opisu Sprzętu Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D-10 222, tel. w. 28-72, e-mail: skoczen@fis.agh.edu.pl Komputer, CPU Sprzęt a program Wykład 1 2017 11 październik 2017 Opcje projektowe Architektury obliczeniowe Symulacja analogowa Poziomy abstrakcji Porównanie języków HDL http://www.fis.agh.edu.pl/~skoczen/hdl AGH WFiIS Informatyka Stosowana Języki AGH, Opisu WFiIS, Sprzętu HDL 1
Komputer Magistrala Danych CPU ROM RAM I/O µp lub µc Magistrala Adresowa Magistrala Sterująca AGH, WFiIS, HDL 2
Jednostka Centralna CPU Magistrala Danych AC R1 R... Rn ALU PC IR SP Flags Magistrala Adresowa Układ Sterowania (dekoder komend) Magistrala Sterujaca AGH, WFiIS, HDL 3
Schemat blokowy mikroprocesora Intel 8080 AGH, WFiIS, HDL 4
Lista rozkazów Podstawowe grupy rozkazów to: Arytmetyczne Logiczne Przesunięcia Przesłania wewnętrzne Przesłania do i z pamięci lub urządzeń wejścia-wyjścia Sterowanie programem Obsługa stosu Obsługa przerwań AGH, WFiIS, HDL 5
Współprojektowanie sprzętu i oprogramowania System Sprzęt Program Hardware/Software codesign Współprojektowanie oprogramowania i sprzętu to projektowanie współpracujących składników sprzętowych i programowych w jednym zadaniu projektowym. Sprzęt (hardware) Oprogramowanie (software) Sztywny (fixed) Elastyczny (flexible) Współprojektowanie oprogramowania i sprzętu to podział projektu aplikacji na część stałą i elastyczną. AGH, WFiIS, HDL
Opcje projektowe układu cyfrowego Układ cyfrowy może być zaprojektowany jako: ASP CSPP ASIC µp µc DSP Układ programowalny RCS Fullcustom Cellbased Gate Array GA PLD FPGA CPLD SCL Biblioteka komórek standardowych Makra skompilowane RAM/ROM/PLA Platformy IP ROM PLA PAL Czyste FPGA Słowniczek: SCL Standard Cell Library ASIC Application Specific Integrated Circuits µc microcontroller PLD Programmable Logic Device µp microprocessor CPLD Complex Programmable Logic Device DSP Digital Signal Processor IP Intellectual Property PLA Programmable Logic Array PAL Programmable Array Logic SoC System-on-Chip SoPC System-on-Programmable-Chip DSP FPGA Platformy FPGA dla SoPC AGH, WFiIS, HDL 7
Architektura obliczeniowa Architektura obliczeniowa A cs składa się z: Elementów (components) funkcjonalnych C i Połączeń (links) komunikacyjnych miedzy elementami L ij Procedur funkcjonalnych związanych z elementami i połączeniami P k A cs = {C i, L ij, P k } gdzie: i, j = 1, 2,, N k = 1, 2,, M N liczba elementów, M liczba procedur w systemie. AGH, WFiIS, HDL 8
CSPP Systemy obliczeniowe Nazwa Architektura Implementacja Computing Systems with Programmable Procedure A CSPP = {C i, L ij, P~} µp RCS Reconfigurable Computing Systems A RCS = {C~, L~, P~} FPGA ASP Application-Specific Processors A ASP = {C i, L ij, P ij } ASIC CSPP RCS ASP Elastyczność Średnia Najwyższa Ograniczona Szybkość działania Ograniczona Wysoka Najwyższa Wydajność mocy Niska Wysoka Najwyższa Koszt produkcji masowej Względnie niski Względnie wysoki Względnie niski Czas projektowania systemu Względnie krótki Średni Względnie długi Najkorzystniejszy obszar zastosowań Algorytmiczne Obliczeniowe Obliczeniowe AGH, WFiIS, HDL 9
Blok wejściowowyjściowy (I/O Block IOB) Pionowy kanał łączeniowy (Vertical Routing Channel) Konfigurowalny blok logiczny (Configurable Logic Block CLB) Element kluczujący (Switch Box - SB) Element łączący (Connection Box - CB) Poziomy kanał łączeniowy (Horizontal Routing Channel) Matryca (fabric) układu FPGA AGH, WFiIS, HDL 10
Ogólna architektura RCS Zasoby konfigurowalne Magistrala danych wejściowych Magistrala danych wyjściowych Pamięć konfiguracyjna Nośnik z plikiem konfiguracyjnym Sterownik konfiguracji zasobów AGH, WFiIS, HDL 11
Inverter CMOS Logic-1 V dd =1.2V V IHmin =0,625V V ILmax =0,465V Logic-0 V ss =0V AGH, WFiIS, HDL 12
Bramka logiczna CMOS V dd B Struktura górna (pull-up) Z A Struktura dolna (pull-down) V ss Uogólniona bramka logiczna CMOS Bramka logiczna realizująca funkcję nand AGH, WFiIS, HDL 13
Modelowanie analogowe SPICE - Simulation Program with Integrated Circuit Emphasis Ogólnego przeznaczenia, symulator analogowych układów elektronicznych Program stosowany w procesie projektowania układów scalonych i dyskretnych do sprawdzanie poprawności koncepcji i przewidywania zachowania się jeszcze nieistniejącego obwodu elektrycznego. SPICE był opracowany w Electronics Research Laboratory, University of California, Berkeley przez Laurence a Nagela. SPICE1 zostało po raz pierwszy zaprezentowany na konferencji w 1973.
in Modelowanie analogowe inh_vdd mp1 mn1 out Zawartośc pliku inv.sp :.subckt invr in out inh_gnd inh_vdd mn1 out in inh_gnd inh_gnd modn L=gt_pdl + W=gt_pdw AD='sx*gt_pdw' AS='sx*gt_pdw' + PD='2*sx+gt_pdw' PS='2*sx+gt_pdw' + NRD='lc/gt_pdw' NRS='lc/gt_pdw' M=1 mp1 out in inh_vdd inh_vdd modp L=gt_pul + W=gt_puw AD='sx*gt_puw' AS='sx*gt_puw' + PD='2*sx+gt_puw' PS='2*sx+gt_puw' + NRD='lc/gt_puw' NRS='lc/gt_puw' M=1.ends invr inh_gnd Zawartośc pliku modp.mod :.MODEL MODP PMOS LEVEL=49 K1=5.9959e-01 K2=-6.038e-02 K3=1.103e+01 + K3B=7.580e-01 NCH=9.240e+16 VTH0=-6.915e-01... AGH, WFiIS, HDL 15
Modelowanie analogowe vdd! v1 net3 v0 xi0 invr net2 r0 0 $ hspice invtb.sp > inv.lis AGH, WFiIS, HDL 16
Modelowanie analogowe Zawartośc pliku invtb.sp :.GLOBAL vdd!.tran 1e-12 22e-9 START=0.0.PRINT TRAN V(net3) V(net2) I(v1).OP.TEMP 25.0.OPTION ABSMOS=1e-9....include./inv.sp.include./modn.mod.include./modp.mod ** View name: schematic xi0 net3 net2 0 vdd! invr + gt_pdl=350e-9 gt_pdw=500e-9 + sx=1.1e-6 lc=600e-9 + gt_pul=350e-9 gt_puw=1e-6 v0 net3 0 PULSE 0 3.3 0 1e-9 1e-9 5e-9 10e-9 r0 net2 0 1e9 v1 vdd! 0 DC=3.3.END AGH, WFiIS, HDL 17
Modelowanie analogowe AGH, WFiIS, HDL 18
Modelowanie analogowe AGH, WFiIS, HDL 19
Modelowanie analogowe AGH, WFiIS, HDL 20
Modelowanie analogowe Własności symulatorów analogowych: Symulator rozwiązuje różniczkowo-całkowy układ równań Kirchhoffa metodą Monte Carlo, Wszystkie węzły i gałęzie układu są obliczane przez cały czas symulacji, Elementy układu są modelowane równaniami algebraicznymi, Parametryzacja technologii polega na doborze zestawu parametrów tych równań tak aby cały model możliwie najlepiej oddawał właściwości i charakterystyki elementów otrzymywanych na linii produkcyjnej, Projektant ma dostępne tylko parametry geometryczne.
Modelowanie analogowe HSPICE SABER Przemysłowy złoty standard" dokładności symulacji obwodów. Ponad 25 lat udanych projektów. Platforma modelowania i symulacji systemów fizycznych. Wirtualne prototypowanie pełnych systemów dla zastosowań w analogowej elektronice mocy, generacji/konwersji/dystrybucji mocy elektrycznej i w mechatronice. Spectre UltraSim APS Pspice Szybki i dokładny symulator typu SPICE (SPICE-level) do układów analogowych, radiowych (RF) i cyfrowo-analogowych (mixed-signal). Symulator pełnego układu scalonego (Full-Chip Simulator); wysoko wydajny symulator na poziomie pojedynczych tranzystorów typu szybki-spice (FastSPICE) przeznaczony do weryfikacji dużych specjalizowanych projektów analogowych, cyfrowo-analogowych, RF, pamięci i SoC. Accelerated Parallel Simulator do symulacji złożonych analogowych, radiowych i cyfrowoanalogowych bloków and podukładów zbudowanych z dziesiątków tysięcy elementów. Symulator przeznaczony do projektowania systemów. Symuluje złożone projekty o mieszanych sygnałach tzn. zawierające zarówno analogowe jak i cyfrowe elementy. Wspiera szeroki zakres modeli symulacyjnych jak IGBT, PWM, DAC, ADC. Jest częścią pakietu Allegro przeznaczonego do projektowania płyt drukowanych PCB.
Modelowanie analogowe Eldo golden SPICE dokładny symulator obwodów, zaprojektowany dla potrzeb projektowania złożonych układów analogowych i cyfrowo-analogowych. Open Source SPICE2 SPICE3 Ngspice XSPICE tclspice Symulator obwodów elektrycznych ogólnego przeznaczenia do analiz: nieliniowej DC, nieliniowej przejsciowej TRAN, liniowej AC. http://bwrcs.eecs.berkeley.edu/classes/icbook/spice/ Ngspice is a mixed-level/mixed-signal circuit simulator. Its code is based on three open source software packages: Spice3f5, Cider1b1 and Xspice. http://ngspice.sourceforge.net/ (ostatni release 27, September 17th, 2017) XSPICE jest poszerzona i wzbogaconą wersją popularnego SPICE-a z Berkeley. Umożliwia symulację projektów analogowych i cyfrowych a nawet nie-elektrycznych. Możliwe są symulacje zarówno poziomu systemowego (system level) jak i obwodowego (circuit level). TclSpice jest ulepszoną wersją SPICE-a z Berkeley zaprojektowaną do pracy z językiem skryptowym Tcl/Tk.
Modelowanie analogowe Rozwiązania firm pólprzewodnikowych LTspice wysoko wydajny symulator typu SPICE, zaopatrzany w narzędzie do rysowania schematów ideowych (schematic capture) i przeglądarkę przebiegów czasowych (waveform viewer). Szczególnie starannie opracowano modele ułatwiające symulację regulatorów napięcia (switching regulators) firmy Linear Technology. Zawiera bogatą bibliotekę makromodeli dla regulatorów firmy Linear Technology, ponad 200 wzmacniaczy operacyjnych oraz rezystorów, tranzystorów. Umożliwia także dołączanie innych modeli i tworzenie własnych bibliotek. http://www.linear.com/designtools/software/#ltspice (obecnie release XVII) AGH, WFiIS, HDL 24
Poziomy abstrakcji Jest w użyciu pięć poziomów abstrakcji gdy myślimy o zagadnieniu modelowania systemów cyfrowych: Czasu ciągłego Sterowania zdarzeniami (eventdriven), Cyklu zegara (cycle-based), Instrukcji Transakcji
Poziomy abstrakcji - 0 Model fizyki elementów elektronicznych i procesu technologicznego: Polega na rozwiązywaniu układu równań różniczkowych opisującego rozkład pól elektromagnetycznych i nośników ładunku w półprzewodniku (prawa Maxwella, równanie ciągłości). Podejście to nie ma zastosowania do modelowania obwodów elektrycznych analogowych a tym bardziej systemów cyfrowych. Jest konieczne do projektowania i analizy elementów elektronicznych i technologii elektronicznej. AGH, WFiIS, HDL 26
Poziomy abstrakcji - 1 Model czasu ciągłego: Continuous Time Najniższy poziom modelowania polegający na rozwiązywaniu układu równań różniczkowych opisującego prądy i napięcia w obwodzie elektrycznym. Elementy elektroniczne są modelowane analitycznie z wykorzystaniem ogólnie przyjętych modeli (BSIM, EKV). Podejście to jest stosowane do analizy efektów analogowych i zawiera mnóstwo informacji niepotrzebnych z punktu widzenia projektu urządzenia cyfrowego. SPICE - Simulation Program with Integrated Circuit Emphasis jest otwartym (open source )symulatorem analogowych obwodów elektronicznych ogólnego przeznczenia. W 1972 na Wydziale Inżynierii Elektrycznej i Nauk Komputerowych na Uniwersytecie Kalifornijskim w Berkeley opracowano pierwszą wersję programu SPICE1.
Model zdarzeniowy: Poziomy abstrakcji - 2 Discrete-event Register Transfer Level RTL (Verilog, VHDL) Na tym poziomie modelowania aktywność układu jest skoncentrowana w dyskretnych punktach czasu. Zachowanie się systemu można rozłożyć na zbiór odrębnych chwil czasowych, w których zachodzą zdarzenia. Te chwile nazywamy zdarzeniami (event), a to co się wydarza to zmiany stanu (state change). Jest to podejście analogiczne do procesu próbkowania sygnału ciągłego. Symulacja zdarzeniowa jest szeroko stosowana do modelowania sprzętu cyfrowego na niskim poziomie abstrakcji. Metoda ta nie wymaga rozwiązywania równań różniczkowych a mimo to zachowuje całą informację o aktywności pomiędzy zboczami zegara (fałszywe impulsy, opóźnienia i in.).
Poziomy abstrakcji - 3 Model na poziomie okresu zegara: Cycle-accurate Ten rodzaj modelu nie ujmuje żadnych wydarzeń zachodzących pomiędzy zboczami przebiegu zegarowego: opóźnienia, propagacje, fałszywe impulsy (glitch). Jest to nieistotne gdy układ jest w pełni synchroniczny czyli wszystko co ma znaczenie wydarza się w chwilach wyznaczonych zboczami sygnału zegarowego. W takim modelu układy kombinacyjne działają natychmiastowo, a układy sekwencyjne po całkowitej liczbie okresów zegara. Dla badania związków między sprzętem a oprogramowaniem jest to wystarczająca dokładność.
Poziomy abstrakcji - 4 Model na poziomie rozkazów: Instruction-accurate simulators Ten rodzaj modelu wyraża aktywność systemu w krokach odpowiadających jednemu rozkazowi mikroprocesora. Każdy rozkaz to kilka okresów zegara pracy procesora. Symulatory na poziomie rozkazów stosowane są do weryfikacji dużych systemów programowych jak systemy operacyjne. Symulatory takie mierzą czas w liczbie instrukcji a nie okresów zegara.
Poziomy abstrakcji - 5 Model transakcyjny: Transaction Level Modeling TLM (SystemC) W tym rodzaju modelu zachowanie układu jest wyrażone w terminach interakcji (zwanych transakcjami) pomiędzy składnikami systemu. Modelowanie aplikacji, w której wielokrotnie występują odwołania do pamięci można znacząco uprościć i skoncentrować się na aktywności występującej pomiędzy tymi odwołaniami. W tym celu należy wszystkie instrukcje wykonywane w konkretnym odwołaniu do pamięci zgrupować w jedno wywołanie funkcji tzn. transakcję. Model transakcyjny jest ważny na wstępnym etapie projektu kiedy projektant jest zainteresowany w określeniu ogólnej charakterystyki projektu bez wchodzenia w wysiłek budowy szczegółów modelu.
EDA Electronic Design Automation CAE Computer Aided Engineering Narzędzia programowe stosowane do początkowych etapów projektu: symulacja za pomocą HDL, synteza logiczna i analiza czasowa, weryfikacja. CAD Computer Aided Design Narzędzia programowe stosowane do końcowych etapów projektu: rozmieszczanie i wyznaczanie tras połączeń (P&R - Place and Route), generacja topografii układu scalonego (layout generation). AGH, WFiIS, HDL 32
System Verilog System C Obszary zastsowań Porównanie języków HDL Architektura Wspólna symulacja hardwaru i softwaru System Verilog MatLab SPV SystemStudio Behawioralna symulacja Verilog VHDL Weryfikacja funkcjonalna Testowanie OpenVera e Sugar ForSpec PSL RTL Verilog VHDL Poziom bramek System C Poziom tranzystorów AGH, WFiIS, HDL 33