ModelSim Tutorial

Transkrypt

ModelSim Tutorial
Krótkie wprowadzenie
do ModelSim i Quartus2
wersja 04.2011
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
1
Plan

Oprogramowanie

Pliki źródłowe

Scenariusze użycia
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
2
Programy

Programy w wersji darmowej do pobrania
ze strony www.altera.com
ModelSim-Altera Starter Edition (tutaj wersja 6.6c)
Quartus2 Web Edition (tutaj wersja 10.1)
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
3
System ModelSim

ModelSim jest zintegrowanym, graficznym
środowiskiem do modelowania i symulacji
modeli w językach VHDL i Verilog
Kompilacja – sprawdzanie semantycznej
poprawności plików, sprawdzanie hierarchii i
związków pomiędzy portami i parametrami,
poprawność odwołań do jednostek projektowych,
funkcji i zadań
Symulacja – z linii komend lub za pomocą
interfejsu graficznego
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
4
Weryfikacja





Weryfikacja projektu zajmuje do 70% czasu tworzenia
całego systemu cyfrowego
Zazwyczaj projekt weryfikacji powstaje w innym
zespole
Problem: w systemie projektowania fpga po syntezie
logicznej nie ma wszystkich węzłów logicznych
Rozwiązanie: system do modelowania języka HDL np.
ModelSim
Wada: wolne dla dużych systemów cyfrowych
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
5
Plik: bramka.vhd
-- Model bramki i rejestru
library ieee;
use ieee.std_logic_1164.all;
entity bramka is
port
(
a : in std_logic;
b : in std_logic;
clk : in std_logic;
reset : in std_logic;
y : out std_logic;
);
end entity;
architecture arch_bramka of bramka is
signal rejestr : std_logic;
signal bramka : std_logic;
Begin
b0: process (clk,reset)
begin
if(reset = '1') then
rejestr <= '0';
elsif (rising_edge(clk)) then
rejestr <= bramka;
end if;
end process;
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
bramka <= a xor b;
y <= rejestr;
end arch_bramka;
6
Plik: bramka_tb.vhd
library ieee;
use ieee.std_logic_1164.all;
entity bramka_tb is
end entity;
architecture arch_bramka_tb of bramka_tb is
signal T_clock : std_logic ;
signal T_reset : std_logic ;
signal T_a : std_logic ;
signal T_b : std_logic ;
signal T_y : std_logic ;
component bramka
port (
y : out std_logic ;
a : in std_logic ;
clk : in std_logic ;
b : in std_logic ;
reset : in std_logic );
end component;
H
D
L
begin
process -- okres zegara 10ns
begin
T_clock <= '0';
wait for 5 ns;
T_clock <= '1';
wait for 5 ns;
end process;
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
process -- sygnal reset
begin
wait for 10 ns;
T_reset <= '1';
wait for 5 ns;
T_reset <= '0';
wait;
end process;
process -- sygnaly testowe
begin
T_a <= '0'; T_b <= '0';
wait for 30 ns;
T_a <= '0'; T_b <= '1';
wait for 20 ns;
T_a <= '1'; T_b <= '0';
wait for 20 ns;
T_a <= '1'; T_b <= '1';
wait;
end process;
DUT : bramka -- testowany blok
port map (
y => T_y,
a => T_a,
clk => T_clock,
b => T_b,
reset => T_reset ) ;
end arch_bramka_tb;
7
Scenariusze użycia





Projekt w ModelSim - symulacja z linii komend i za
pomocą edytora graficznego
Projekt w ModelSim – symulacja programu testującego
TestBench
Projekt w Quartus + symulacja funkcjonalna w
ModelSim
Projekt w Quartus + symulacja funkcjonalna
programu testującego w ModelSim
Projekt w Quartus + symulacja czasowa programu
testującego w ModelSim
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
8
Scenariusze użycia





Projekt w ModelSim - symulacja z linii komend i za
pomocą edytora graficznego
Projekt w ModelSim – symulacja programu testującego
TestBench
Projekt w Quartus + symulacja funkcjonalna w
ModelSim
Projekt w Quartus + symulacja funkcjonalna
programu testującego w ModelSim
Projekt w Quartus + symulacja czasowa programu
testującego w ModelSim
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
9
Tworzenie projektu ModelSim
Ustawiamy nazwę
projektu
Ustawiamy
ścieżkę projektu
Dodajemy pliki do
projektu
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
10
Kompilacja projektu
Kompilacja
Status pliku:
? nieskompilowany
V skompilowany
X błędy kompilacji
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
11
Kompilacja projektu i korekta kodu
Poprawiamy błąd:
usunąć na końcu
linii 12 znak ;
Klik
Klik
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
12
Kompilacja projektu i korekta kodu
Kompilacja
wskazanego pliku
Informacje w oknie konsoli
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
13
Kompilacja projektu
Skompilowany plik
w bibliotece work
Zmieniamy zakładkę
Library
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
14
Symulacja projektu
Wybieramy Start…
Wybieramy bramka
Alternatywa: klikamy
na bramka
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
Lub: w oknie konsoli wpisujemy
vsim work.bramka
15
Symulacja projektu
Dodajemy wszystkie
sygnały do okna
graficznego wave
Zaznaczamy
bramka
Dodane sygnały
Lub w linii komend:
VSIM> add wave *
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
16
Symulacja – wymuszenie wartości
sygnałów

Graficznie – sygnał zegarowy clk o okresie 10 ns
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
17
Symulacja – wymuszenie wartości
sygnałów

Graficznie – sygnały wejściowe a i b ustalamy na 0
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
18
Symulacja – wymuszenie wartości
sygnałów

Graficznie – ustalamy krok symulacji na 10 ns
Ustalamy krok
Uruchamiamy symulację
o zadany krok
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
19
Symulacja – wymuszenie wartości
sygnałów





Ustalamy krok symulacji na 5 ns
Ustalamy wartość 1 dla sygnału reset
Wykonujemy krok symulacji (5 ns)
Ustalamy wartość 0 dla sygnału reset …
…
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
20
Symulacja – wymuszenie wartości
sygnałów z linii komend

Z linii komend (1):
Komendy można
zapisać do pliku skryptu:
test.do

Z linii komend (2):
VSIM>do test.do
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
# Wyczyszczenie wartosci i okna wave
restart -force –nowave
# Wymuszenie wartosci i symulacja
add wave -r *
force -freeze clk 0 0, 1 {5 ns} -r {10 ns}
force -freeze a 0 0
force -freeze b 0 0
run 10 ns
force -freeze reset 1 0
run 5 ns
force -freeze reset 0 0
run 15 ns
force -freeze b 1 0
run 20 ns
force -freeze a 1 0
force -freeze b 0 0
run 20 ns
force -freeze b 1 0
run 30 ns
21
Scenariusze użycia





Projekt w ModelSim - symulacja z linii komend i za
pomocą edytora graficznego
Projekt w ModelSim – symulacja programu testującego
TestBench
Projekt w Quartus + symulacja funkcjonalna w
ModelSim
Projekt w Quartus + symulacja funkcjonalna
programu testującego w ModelSim
Projekt w Quartus + symulacja czasowa programu
testującego w ModelSim
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
22
Symulacja – program testujący

Po kompilacji, uruchamiamy symulator dla
bramka_tb
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
23
Symulacja – dodanie sygnałów

Do okna graficznego wave dodajemy
sygnały:
Wszystkie z jednostki projektowej:
add wave sim:/bramka_tb/*
Wszystkie z jednostki projektowej i zależnych:
add wave -r sim:/bramka_tb/*
Wszystkie z projektu:
add wave -r /*
Sygnały z jednostki
bramka i bramka_tb
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
24
Symulacja bramka_tb
VSIM>run 100 ns
Moment charakterystyczny
sygnału zegarowego
Wyjście z bramki
kombinacyjne
Wyjście z bramki
sekwencyjne
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
25
Scenariusze użycia





Projekt w ModelSim - symulacja z linii komend i za
pomocą edytora graficznego
Projekt w ModelSim – symulacja programu testującego
TestBench
Projekt w Quartus + symulacja funkcjonalna w
ModelSim
Projekt w Quartus + symulacja funkcjonalna
programu testującego w ModelSim
Projekt w Quartus + symulacja czasowa programu
testującego w ModelSim
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
26
Projekt w Quartus2
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
27
Projekt w Quartus2 – nazwa projektu
Ustawiamy
ścieżkę projektu
Ustawiamy nazwę
projektu
Domyślnie (ale
nie musi) nazwa
głównej jednostki
projektowej jak
nazwa projektu
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
28
Projekt w Quartus2 – dodanie pliku
bramka.vhd
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
29
Projekt w Quartus2 – wybór układu
fpga
Wybieramy fpga:
1. z rodziny Cyclone2
2. układ EP2C35F672C6
(układ na płycie DE2)
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
30
Projekt w Quartus2 – ustawienia
symulatora dla ModelSim
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
31
Projekt w Quartus2 – ustawienia
symulatora dla ModelSim
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
32
Projekt w Quartus2 – ustawienia
ścieżki do ModelSim

Opcjonalnie, przy pierwszym uruchomieniu:
sprawdzić czy poprawna ścieżka do aktualnej
instalacji ModelSim-Altera Tools>Options:
<install_path>/modelsim_ase/win32aloem
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
33
Projekt w Quartus2 – kompilacja

Kompilacja projektu
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
34
Projekt w Quartus2 – kompilacja
Postęp wykonania
kolejnych etapów
kompilacji
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
35
Projekt w Quartus2 – symulacja
funkcjonalna
Wywołanie
symulatora
Uruchomienie symulacji
z biblioteki rtl_work
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
36
Scenariusze użycia





Projekt w ModelSim - symulacja z linii komend i za
pomocą edytora graficznego
Projekt w ModelSim – symulacja programu testującego
TestBench
Projekt w Quartus + symulacja funkcjonalna w
ModelSim
Projekt w Quartus + symulacja funkcjonalna
programu testującego w ModelSim
Projekt w Quartus + symulacja czasowa programu
testującego w ModelSim
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
37
Projekt w Quartus2 – ustawienie testu

Po kompilacji, konfigurujemy test
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
38
Projekt w Quartus2 – ustawienie testu
Wybór symulatora:
ModelSim-Altera
Wybór języka: VHDL
Ustawienia
symulatora
Ustawienia
dla testu
H
D
L
Wybór dla
programu
testowego
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
39
Projekt w Quartus2 – utworzenie testu
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
40
Projekt w Quartus2 – utworzenie testu
Nazwa testu
Nazwa głównej jednostki
projektowej z bramka_tb
Ustalenie czasu
trwania testu
Dodanie programu
testującego z pliku
bramka_tb.vhd
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
41
Projekt w Quartus2 – symulacja
funkcjonalna
Wywołanie
symulatora
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
42
Projekt w Quartus2 – symulacja
funkcjonalna
W ModelSim-Altera
automatycznie wykona
się skrypt
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
43
Projekt w Quartus2 – symulacja
funkcjonalna
Automatycznie dodany
widok graficzny z
dodanymi sygnałami z
jednostki projektowej
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
44
Scenariusze użycia





Projekt w ModelSim - symulacja z linii komend i za
pomocą edytora graficznego
Projekt w ModelSim – symulacja programu testującego
TestBench
Projekt w Quartus + symulacja funkcjonalna w
ModelSim
Projekt w Quartus + symulacja funkcjonalna
programu testującego w ModelSim
Projekt w Quartus + symulacja czasowa programu
testującego w ModelSim
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
45
Projekt w Quartus2 – ustawienie testu

Po kompilacji, konfigurujemy test
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
46
Projekt w Quartus2 – ustawienie testu
Wybór symulatora:
ModelSim-Altera
Wybór języka: VHDL
Ustawienia
symulatora
Ustawienia
dla testu
H
D
L
Wybór dla
programu
testowego
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
47
Projekt w Quartus2 – utworzenie testu
Nazwa testu
Nazwa głównej jednostki
projektowej z bramka_tb
Nazwa instancji testowanej
DUT w bramka_tb
Zaznaczamy
opcję dla
symulacji
czasowej
Ustalenie czasu
trwania testu
Dodanie programu
testującego z pliku
bramka_tb.vhd
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
48
Projekt w Quartus2 – symulacja
czasowa
Wywołanie
symulatora
Wybór modelu
symulacji Slow lub
Fast
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
49
Projekt w Quartus2 – symulacja
czasowa
Na symulacji czasowej widoczne
opóźnienie między zmianą sygnału
t_clock a wyjściem synchronicznym
t_y wynosi ok. 5 ns
H
D
L
dr inż. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
50

Podobne dokumenty