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

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

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

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 ,

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

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

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

Symulacja systemu z procesorem MicroBlaze w środowisku ActiveHDL

Bezpieczeństwo informacji oparte o kryptografię kwantową

Projektowanie scalonych systemów wbudowanych VERILOG. VERLIOG - historia

Wygląd okna aplikacji Project Navigator.

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

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

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

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

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.

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

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

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

Systemy Czasu Rzeczywistego FPGA

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

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Projektowanie Scalonych Systemów Wbudowanych VERILOG

Laboratorium Podstaw Techniki Cyfrowej

Quartus. Rafał Walkowiak IIn PP Wer

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

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

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

Liczniki z zastosowaniem

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

Sposoby projektowania systemów w cyfrowych

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

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.

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

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

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

Ćwiczenie 1 VHDL - Licznik 4-bitowy.

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

Systemy Czasu Rzeczywistego FPGA

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

WebPack nadal bezpłatnie, ale z licencją

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

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

MentorGraphics ModelSim

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

LABORATORIUM TECHNIKA CYFROWA. Pamięci. Rev.1.35

Laboratorium przedmiotu Technika Cyfrowa

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

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

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

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

Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna

Układy FPGA Sumator 4-bitowy

Język opisu sprzętu VHDL

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

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

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

Projektowanie hierarchiczne Mariusz Rawski

Ukªady Kombinacyjne - cz ± I

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

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

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

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

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

Quartus. Rafał Walkowiak IIn PP Listopad 2017

Środowiska Xilinx ISE i ISim Instrukcja laboratoryjna

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

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

Opisy efektów kształcenia dla modułu

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

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

(przykład uogólniony)

NS-2. Krzysztof Rusek. 26 kwietnia 2010

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

Projekt prostego procesora

Modelowanie liczników w języku Verilog i ich implementacja w strukturze FPGA

Systemy Czasu Rzeczywistego FPGA

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

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

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

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

Systemy Czasu Rzeczywistego FPGA

Opisy efektów kształcenia dla modułu

Języki opisu sprzętu VHDL Mariusz Rawski

Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie. Technika Cyfrowa. Wprowadzenie do laboratorium komputerowego część II

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

Liczniki z zastosowaniem

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

Konwencje językowe Verilog-a APSC

All hands on deck!!!

Programowalne układy logiczne

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

dr inż. Jarosław Sugier

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

Środowisko Xilinx ISE i ModelSim XE Instrukcja laboratoryjna

Transkrypt:

Projektowanie Systemów Cyfrowych Prowadzący: dr inż. Andrzej Skoczeń, System ISE Xilinx: Dodatek 1 2014 Październik 2014 Symulacja na różnych poziomach Biblioteki komórek standardowych i modele symulacyjne http://fatcat.ftj.agh.edu.pl/ ftj agh 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 Post Synthesis (Pre NGDBuild) GL funkcjonalny Po Tłumaczeniu Po Mapowaniu Po Rutowaniu 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.

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. Łączyonnetlistyzsyntezy(NGC)iograniczenia projektowe (UCF User Constraints t 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 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 ti i 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 i projektu i modułu ł testowego t 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) wwersjizaawansowanej(advanced). AGH, WFiIS, IS, st.i, HDL 7

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 8

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 9

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. AGH, WFiIS, IS, st.i, HDL 10

Biblioteki Xilinx a Najprostszy przerzutnik instancja modelu funkcjonalnego i model czasowy 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! enable1!=0) 0), 0:0:0, 0:0:0, notifier,,,clk_dly,i_dly); 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 AGH, WFiIS, IS, st.i, HDL 11

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 ozł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 12