Projektowanie Systemów Cyfrowych. Październik 2017 Symulacja na różnych poziomach Biblioteki komórek standardowych i modele symulacyjne

Podobne dokumenty
Projektowanie Systemów Cyfrowych. Październik 2014 Symulacja na różnych poziomach Biblioteki komórek standardowych i modele symulacyjne

Układy reprogramowalne i SoC Implementacja w układach FPGA

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Synteza logiczna APSC

1. Synteza układów opisanych w języku VHDL Xilinx ISE Design Suite 10.1 VHDL 2. Obsługa przetwornika CA Project Add source...

Wykład 4. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Laboratorium Projektowania Systemów VLSI-ASIC Katedra Elektroniki Akademia Górniczo-Hutnicza

Projektowanie scalonych systemów wbudowanych VERILOG. VERLIOG - historia

Bezpieczeństwo informacji oparte o kryptografię kwantową

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Symulacja systemu z procesorem MicroBlaze w środowisku ActiveHDL

Wygląd okna aplikacji Project Navigator.

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Krótkie wprowadzenie do ModelSim i Quartus2

1 Wstęp. 2 Proste przykłady. 3 Podstawowe elementy leksykalne i typy danych. 6 Opis strukturalny. 7 Moduł testowy (testbench)

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Wykład 2. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Systemy Czasu Rzeczywistego FPGA

Bezpieczeństwo informacji oparte o kryptografię kwantową

mgr inż. Maciej Rudek opracował: dr inż. Daniel Kopiec

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie z użyciem bloków funkcjonalnych w układach programowalnych firmy Xilinx

Quartus. Rafał Walkowiak IIn PP Wer

Przykładowe pytania z części PSPICE. 1. Podaj zasady tworzenia pliku symulacyjnego. 2. Czy składnia PSPICE jest czuła na wielkość liter? 3.

Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI

Wykład 4. Języki Opisu Sprzętu

Sumatory H D L. dr inŝ. Paweł Tomaszewicz Instytut Telekomunikacji Politechnika Warszawska

Laboratorium Podstaw Techniki Cyfrowej

Wykład 10. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń. 20 grudzień 2017

WebPack nadal bezpłatnie, ale z licencją

Liczniki z zastosowaniem

Układy FPGA Sumator 4-bitowy

Realizacja własnych modułów IP Cores w srodowisku EDK

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

ALGORYTM URUCHOMIENIA I OBSŁUGI PROGRAMU ACTIVE-HDL (zajęcia wprowadzające) Uruchomienie programu i utworzenie nowego projektu

Sposoby projektowania systemów w cyfrowych

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2014 Katedra Elektroniki AGH 2

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: PROGRAMOWALNE STRUKTURY LOGICZNE

Układy FPGA. programowanie bramek w zestawie uruchomieniowym Basys3 firmy Digilent -środowisko Vivado (2016.4)- firmy Xilings, język Verilog

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Wykład 6. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Układy reprogramowalne i SoC Testbenches. Symulacja sterowana zdarzeniami.

Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

Systemy wbudowane. Poziomy abstrakcji projektowania systemów HW/SW. Wykład 9: SystemC modelowanie na różnych poziomach abstrakcji

Projektowanie hierarchiczne Mariusz Rawski

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Wykład 3. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń Współrzędne: D , tel. w ,

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Systemy Czasu Rzeczywistego FPGA

Laboratorium przedmiotu Technika Cyfrowa

Język opisu sprzętu VHDL

MentorGraphics ModelSim

Wykład 7. Języki Opisu Sprzętu. Prowadzący: dr inż. Andrzej Skoczeń. Obsługa plików. Składnia Veriloga: Komórki prymitywne użytkownika

Ukªady Kombinacyjne - cz ± I

Quartus. Rafał Walkowiak IIn PP Listopad 2017

Przykłady do wykładu Języki modelowania i symulacji

Altera Quartus II. Opis niektórych komponentów dostarczanych razem ze środowiskiem. Opracował: mgr inż. Leszek Ciopiński

Środowiska Xilinx ISE i ISim Instrukcja laboratoryjna

Akceleracja symulacji HES-AHDL. 1. Rozpoczęcie pracy aplikacja VNC viewer

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Technika cyfrowa. Laboratorium nr 7. Liczniki synchroniczne. Mirosław Łazoryszczak. Temat:

PROGRAMOWANIE STRUKTUR CYFROWYCH. Konwencje dla asemblera KCPSM3. Simple IO. PicoBlaze - projekty. c Dr inż. Ignacy Pardyka. Rok akad.

NS-2. Krzysztof Rusek. 26 kwietnia 2010

Układy cyfrowe w Verilog HDL. Elementy języka z przykładami. wersja: cz.3

Laboratorium Układów Programowalnych System projektowy WebPack ISE 8.2i

Projekt prostego procesora

Kierunek EiT Specjalność Sieci i usługi, V rok Programowalne Układy Cyfrowe. Zaawansowany VHDL. Rajda & Kasperek 2015 Katedra Elektroniki AGH 1

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

All hands on deck!!!

Język Verilog w projektowaniu układów FPGA

Rok akademicki: 2013/2014 Kod: JIS s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Organizacja laboratorium. Zadania do wykonania w czasie laboratorium z części PSPICE

Opisy efektów kształcenia dla modułu

Pojedyncze wartości zadeklarowanego typu Ustawiane przed rozpoczęciem symulacji bez moŝliwości

Dokowanie molekularne. Andrzej Bąk

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

dr inż. Jarosław Sugier

i pakietu programowego PALASM 4

Konwencje językowe Verilog-a APSC

Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna

Systemy wbudowane. Projektowanie systemów wbudowanych na bazie układów CPLD/FPGA Język opisu sprzętu Verilog cz.1

(przykład uogólniony)

Kodery, dekodery, transkodery Synteza sprzętu przy pomocy VHDL

Automatyzacja procesu implementacji układów cyfrowych w technologii prądowych układów FPGA

Język HDL - VERILOG. (Syntetyzowalna warstwa języka) Hardware Description Language Krzysztof Jasiński PRUS PRUS

Programowalne układy logiczne

Systemy Czasu Rzeczywistego FPGA

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

SYSTEMY DEDYKOWANE W UKŁADACH PROGRAMOWALNYCH

Technika Cyfrowa Wprowadzenie do laboratorium komputerowego

Układy reprogramowalne i SoC Specjalizowane moduły FPGA

PROGRAMOWALNE UKŁADY CYFROWE

Transkrypt:

Projektowanie Systemów Cyfrowych Prowadzący: dr inż. Andrzej Skoczeń, System ISE Xilinx: Dodatek 1 2017 Październik 2017 Symulacja na różnych poziomach Biblioteki komórek standardowych i modele symulacyjne http://www.fis.agh.edu.pl/~skoczen/hdl AGH WFiIS Informatyka Stosowana, I stopień Języki Opisu Sprzętu 1

Rodzaje symulacj w systemie ISE Xilinx Poziom Nazwa Opis UNISIM SIMPRIM SDF 0 Behawioralny RTL I II III IV Objaśnienia skrótów: Po-Syntezie Po-Tłumaczeniu Po-Mapowaniu Po-Rutowaniu Post-Synthesis (Pre-NGDBuild) GL-funkcjonalny Post-NGDBuild (Pre-Map) GL-czasowy Post-Map BD-anotowany Post-P&R B&ND-anotowany RTL Register Transfer Level Poziom przesłań rejestrowych GL Gate Level Poziom bramek (komórek standardowych) BD Block Delay SDF zawiera tylko opóźnienia komórek standardowych B&ND Block & Net Delay SDF zawiera także opóźnienia węzłów SDF Standard Delay Format Opóźnienia obliczone przez syntezator UNISIM SIMPRIM Fumkcjonalna biblioteka komórek standardowych Czasowa biblioteka komórek standardowych AGH, WFiIS, IS, st.i, HDL 2

Generacja modelu symulacyjnego po-syntezie Poziom I Nie dostępny w ISE Podkatalog: netgen/synthesis Wymaga użycia funkcjonalnej biblioteki UNISIM do poprawnej symulacji Started : "Generate Post-Synthesis Simulation Model". Running netgen... Command Line: Automatyczne dołączenie modułu globalnej inicjalizacji FPGA netgen -intstyle ise -insert_glbl true -w -dir netgen/synthesis -ofmt verilog -sim muxnto1.ngc muxnto1_synthesis.v INFO:NetListWriters:633 - The generated Verilog netlist contains Xilinx UNISIM simulation primitives and has to be used with UNISIM simulation library for correct compilation and simulation. Wynik z syntezatora XST (Xilinx Synthesis Technology) Process "Generate Post-Synthesis Simulation Model" completed successfully Program NetGen przekształca wynik z syntezy, który jest w formacie NGC do modelu symulacyjnego w Verilog-u lub VHDL-u z użyciem biblioteki komórek standardowych UNISIM. The simulation model can be used to verify that the functionality is correct after synthesis by running a post-synthesis simulation in your simulator.

Translacja Process "Synthesize - XST" completed successfully Started : "Translate". Running ngdbuild... Command Line: ngdbuild -intstyle ise -dd _ngo -nt timestamp -i -p xc5vlx50t-ff1136-2 uart.ngc uart.ngd... NGDBUILD Design Results Summary: Number of errors: 0 Number of warnings: 0 Writing NGD file "uart.ngd"... Total REAL time to NGDBUILD completion: 3 sec Total CPU time to NGDBUILD completion: 2 sec Writing NGDBUILD log file "uart.bld"... NGDBUILD done. Process "Translate" completed successfully Program NGDBuild wykonuje translację. Translacja jest pierwszym krokiem w procesie implementacji. Łączy on netlisty z syntezy (NGC) i ograniczenia projektowe (UCF - User Constraints File) i tworzy plik w formacie Xilinx Native Generic Database (NGD). AGH, WFiIS, IS, st.i, HDL 4

Generacja modelu symulacyjnego po-tłumaczeniu Poziom II Podkatalog: netgen/translate Symulacja używa czasowej biblioteki SIMPRIM Started : "Generate Post-Translate Simulation Model". Running netgen... Command Line: netgen -intstyle ise -insert_glbl true -w -dir netgen/translate -ofmt verilog -sim muxnto1.ngd muxnto1_translate.v INFO:NetListWriters:633 - The generated Verilog netlist contains Xilinx SIMPRIM simulation primitives and has to be used with SIMPRIM simulation library for correct compilation and simulation. Wynik z programu NGDBuild Process "Generate Post-Translate Simulation Model" completed successfully Program NGDBuild wykonuje translację. Translacja jest pierwszym krokiem w procesie implementacji. Łączy on netlisty z syntezy (NGC) i ograniczenia projektowe (UCF - User Constraints File) i tworzy plik w formaccie Xilinx Native Generic Database (NGD).

Generacja modelu symulacyjnego po-mapowaniu Poziom III Nie dostępny w ISE Podkatalog: netgen/map Symulacja używa czasowej biblioteki SIMPRIM wraz z plikiem przypisów czasowych SDF z przełącznikiem TYP Started : "Generate Post-Map Simulation Model". Running netgen... Command Line: netgen -intstyle ise -s 4 -pcf muxnto1.pcf -sdf_anno true -sdf_path "netgen/map" -insert_glbl true -w -dir netgen/map -ofmt verilog -sim muxnto1_map.ncd muxnto1_map.v INFO:NetListWriters:633 - The generated Verilog netlist contains Xilinx SIMPRIM simulation primitives and has to be used with SIMPRIM simulation library for correct compilation and simulation. INFO:NetListWriters - Xilinx recommends running separate simulations to check for setup by specifying the MAX field in the SDF file and for hold by specifying the MIN field in the SDF file. Please refer to Simulator documentation for more details on specifying MIN and MAX field in the SDF. INFO:NetListWriters:665 - For more information on how to pass the SDF switches to the simulator, see your Simulator tool documentation. Wynik z mapowania Process "Generate Post-Map Simulation Model" completed successfully

Generacja modelu symulacyjnego po-rutowaniu Poziom IV Podkatalog: netgen/par Symulacja używa czasowej biblioteki SIMPRIM wraz z plikiem przypisów czasowych SDF z przełącznikiem TYP Started : "Generate Post-Place & Route Simulation Model". Running netgen... Command Line: netgen -intstyle ise -s 4 -pcf muxnto1.pcf -sdf_anno true -sdf_path "netgen/par" -insert_glbl true -insert_pp_buffers true -w -dir netgen/par -ofmt verilog -sim muxnto1.ncd muxnto1_timesim.v INFO:NetListWriters:633 - The generated Verilog netlist contains Xilinx SIMPRIM simulation primitives and has to be used with SIMPRIM simulation library for correct compilation and simulation. INFO:NetListWriters - Xilinx recommends running separate simulations to check for setup by specifying the MAX field in the SDF file and for hold by specifying the MIN field in the SDF file. Please refer to Simulator documentation for more details on specifying MIN and MAX field in the SDF. INFO:NetListWriters:665 - For more information on how to pass the SDF switches to the simulator, see your Simulator tool documentation. Wynik z programu PAR Process "Generate Post-Place & Route Simulation Model" completed successfully

Wbudowana inicjalizacja FPGA Moduł sterujący inicjalizacją wysyła dwa globalne sygnały: Global Set/Reset (GSR) i Global Tristate (GTS). Są one zdefiniowane w module glbl znajdującym się w pliku $XILINX/verilog/src/glbl.v Konieczne jest aby ten plik kompilować razem z plikami projektu i modułu testowego do symulacji. Moduł glbl w zerowej chwili czasu symulacji wysyła impuls GSR o czasie trwania 100ns. Użycie opcji -insert_glbl true przy wywołaniu programu netgen zapewnia automatyczne wstawienie tego modułu do modelu symulacyjnego. Opcję tą można wyłączyć we własnościach procesu generacji netlisty (Generate Post-XXX Simulation Model) w wersji zaawansowanej (Advanced). AGH, WFiIS, IS, st.i, HDL 8

Globalny reset w testbenchu Przy domyślnych opcjach programu netgen sygnał GSR trzeba uwzględnić w testbenchu: module tb; reg clk, rst, set, d; wire q; assigntry uut (.clk(clk),.rst(rst),.set(set),.d(d),.q(q)); wire GSR = glbl.gsr; initial begin clk = 0; forever #40 clk = ~clk; end Koniec resetu globalnego GSR 100ns initial begin @(negedge GSR); rst = 1'b1; set = 1'b1; d = 1'b1; #100 rst = 1'b0; #120 rst = 1'b1; #110 set = 1'b0; #110 set = 1'b1; #150 set = 1'b0; #10 rst = 1'b0; #100 rst = 1'b1; #10 set = 1'b1; #100 d = 1'b0; end initial #1000 $finish; endmodule AGH, WFiIS, IS, st.i, HDL 9

Biblioteki Xilinx a Xilinx dostarcza następujące biblioteki symulacyjne dla symulacji komórek pierwotnych i rdzeni: UNISIM funkcjonalne symulacje komórek pierwotnych UniMacro - funkcjonalne symulacje makr XilinxCoreLib - funkcjonalne symulacje rdzeni Xilinx EDK behawioralne symulacje elementów IP Xilinx Embedded Development Kit EDK SIMPRIM czasowe symulacje komórek pierwotnych SmartModel/SecureIP funkcjonalne i czasaowe symulacje Xilinx Hard-IP, takich jak PPC, PCIe, GT, and TEMAC IP. Biblioteka Typ ścieżka UNISIM funkcjonalna $XILINX/verilog/src/unisims SIMPRIM czasowa $XILINX/verilog/src/simprims Opis komórek standardowych najważniejszych bibliotek (UNISM, SIMPRIM) dla rodziny Spartan-3A znajduje się w dokumencie UG613 Spartan-3A and Spartan-3A DSP Libraries Guide for HDL Designs AGH, WFiIS, IS, st.i, HDL 10

Najprostszy bufor Biblioteki Xilinx a Biblioteka czasowa SIMPRIM Biblioteka funkcjonalna UNISIM `timescale 1 ps / 1 ps module BUF (O, I); output O; input I; buf B1 (O, I); endmodule `timescale 1 ps/1 ps module X_BUF (O, I); parameter LOC = "UNPLACED"; output O; input I; buf (O, I); specify (I => O) = (0:0:0, 0:0:0); specparam PATHPULSE$ = 0; endspecify endmodule Wyjaśnimy o co tu chodzi jeśli będziemy mówić o timing checks AGH, WFiIS, IS, st.i, HDL 11

module X_FF (O, CE, CLK, I, RST, SET);... ffsrce (o_out, CLK_dly, I_dly, CE_dly, set_int, rst_int, notifier1); specify (CLK => O) = (100:100:100, 100:100:100); (SET => O) = (0:0:0, 0:0:0); (RST => O) = (0:0:0, 0:0:0); $setuphold (posedge CLK, posedge CE &&& (ce_clk_enable1!=0), 0:0:0, 0:0:0, notifier,,,clk_dly,ce_dly); $setuphold (posedge CLK, negedge CE &&& (ce_clk_enable1!=0), 0:0:0, 0:0:0, notifier,,,clk_dly,ce_dly); $setuphold (posedge CLK, posedge I &&& (in_clk_enable1!=0), 0:0:0, 0:0:0, notifier,,,clk_dly,i_dly); $setuphold (posedge CLK, negedge I &&& (in_clk_enable1!=0), 0:0:0, 0:0:0, notifier,,,clk_dly,i_dly); $recrem (negedge RST, posedge CLK &&& (rst_clk_enable1!=0), 0:0:0, 0:0:0, notifier,,,rst_dly, CLK_dly); $recrem (negedge SET, posedge CLK &&& (set_clk_enable1!=0), 0:0:0, 0:0:0, notifier,,,set_dly, CLK_dly); $period (posedge CLK &&& CE, 0:0:0, notifier); $width (posedge CLK &&& CE, 0:0:0, 0, notifier); $width (negedge CLK &&& CE, 0:0:0, 0, notifier); $width (posedge RST, 0:0:0, 0, notifier); $width (posedge SET, 0:0:0, 0, notifier); specparam PATHPULSE$ = 0; endspecify endmodule Biblioteki Xilinx a Najprostszy przerzutnik instancja modelu funkcjonalnego i model czasowy AGH, WFiIS, IS, st.i, HDL 12

table //clk d ce set rst notifier q q+;??? 1 0? :? : 1;???? 1? :? : 0; (01) 0 1 0 0? :? : 0; (01) 1 1 0 0? :? : 1; (01) x 1 0 0? :? : x; (01) 0 x 0 0? : 0 : 0; (01) 1 x 0 0? : 1 : 1; Biblioteki Xilinx a Model funkcjonalny z uwzględnieniem powiadomienia notifier o złamaniu reguł czasowych. primitive ffsrce (output reg q, input clk, d, ce, set, rst, notifier); (??)? 0??? :? : -; (1?)????? :? : -; (?0)????? :? : -; (01) 0 1 0 x? :? : 0; (01) 1 1 x 0? :? : 1;??? 0 (?x)? : 0 : 0;??? (?x) 0? : 1 : 1; (?1) 1?? 0? : 1 : 1; (?1) 0? 0?? : 0 : 0; (0?) 1?? 0? : 1 : 1; (0?) 0? 0?? : 0 : 0;? (??)???? :? : -;?? (??)??? :? : -;??? (?0)?? :? : -;??? x (?0)? :? : x;??? 0 (?0)? :? : -;????? * :? : x; endtable AGH, WFiIS, IS, st.i, HDL 13