Obserwacja wewnętrznych sygnałów w symulacji VHDL w Xilinx ISE i ModelSim XE?
VHDL-XILINX symulacja ?
From: "Jarek" <lab_at_nospam_televox.pl>
Subject: VHDL-XILINX symulacja ?
Date: Tue, 23 Dec 2003 14:49:49 +0100
Witam
W jaki sposób można podczas symulacji układu (Xuilinx ISE WebPack-ModelSim
XE) obserwować sygnały wewnętrzne (nie wyprowadzone na port).
Poniżej przedstawiam projekt licznika z wyprowadzonym tylko najstarszym
bitem. W jaki sposób śledzić wszystkie bity licznika, czy konieczne jest
podłączenie ich do portu?
Jarek
-----test.vhd
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity Test is
Port ( clock: in std_logic; -- system clock (25 MHz)
resetn: in std_logic; -- active low reset
c_out: out std_logic);
end Test;
architecture Behavioral of Test is
signal counter: std_logic_vector(3 downto 0);
begin
COUNT: process (clock, resetn)
begin
if (resetn = '0') then
counter <= (others => '0');
elsif (clock'event and clock = '1') then
counter <= counter + 1;
end if;
end process;
c_out <= counter(3);
end Behavioral;
--------------Program do symulacji
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.numeric_std.ALL;
ENTITY testbench IS
constant Period : time := 40 ns; -- 25 MHz System Clock
END testbench;
ARCHITECTURE behavior OF testbench IS
COMPONENT test
PORT(
clock : IN std_logic;
resetn : IN std_logic;
c_out : OUT std_logic
);
END COMPONENT;
SIGNAL clock : std_logic := '0';
SIGNAL resetn : std_logic;
SIGNAL c_out : std_logic;
BEGIN
uut: test PORT MAP(
clock => clock,
resetn => resetn,
c_out => c_out
);
clock <= not clock after (Period / 2);
resetn <= '0', '1' after Period;
tb : PROCESS
BEGIN
wait; -- will wait forever
END PROCESS;
END;
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: jerry1111 <stop_this_spam_jerry1111_remove_at_nospam_remove.wp.pl>
Subject: Re: VHDL-XILINX symulacja ?
Date: Tue, 23 Dec 2003 15:41:06 +0100
W jaki sposób można podczas symulacji układu (Xuilinx ISE WebPack-ModelSim
XE) obserwować sygnały wewnętrzne (nie wyprowadzone na port).
Xilinxa nie znam. W Alterze jest 'virtual pin' - wtedy mozna
popatrzec, bo optymalizator zostawia ten sygnal.
--
Jerry
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsgate.onet.pl!newsgate.p
From: zielpro_at_nospam_poczta.onet.pl (ziel)
Subject: RE: VHDL-XILINX symulacja ?
Date: 23 Dec 2003 18:10:01 +0100
On Behalf Of jerry1111
Xilinxa nie znam. W Alterze jest 'virtual pin' - wtedy mozna
popatrzec, bo optymalizator zostawia ten sygnal.
Czy "virtual pin" to jest pin przed wprowadzeniem w strukturę?
Tzn. rysując_schemat/wprowadzając_algorytm, po wstępnej kompilacji
można obejrzeć wyniki dla "wirtualnego scalaka"?
pzdr
Artur
PS
Mój czas jeszcze nie nadszedł, ale co nieco czytam sobie do poduszki ;-)
--
Archiwum grupy: http://niusy.onet.pl/pl.misc.elektronika
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: jerry1111 <stop_this_spam_jerry1111_remove_at_nospam_remove.wp.pl>
Subject: Re: VHDL-XILINX symulacja ?
Date: Tue, 23 Dec 2003 22:42:01 +0100
Xilinxa nie znam. W Alterze jest 'virtual pin' - wtedy mozna
popatrzec, bo optymalizator zostawia ten sygnal.
Czy "virtual pin" to jest pin przed wprowadzeniem w strukturę?
Tzn. rysując_schemat/wprowadzając_algorytm, po wstępnej kompilacji
można obejrzeć wyniki dla "wirtualnego scalaka"?
Nie o to chodzi. Sprawa wyglada tak (zdrrrrowko :), ze robisz sobie
uklad - wszystko jedno czy w VHDL, czy schemat namalujesz. Masz
jakies sygnaly we/wy oraz jakies wewnetrzne.
Podczas kompilacji optymalizator moze co nieco wypieprzyc :-)
A jak mu dajesz atrybut 'virtual pin', to nie wypieprza tego sygnalu
(tak jakby go nie wypieprzyl gdyby ten sygnal byl naprawde do pina
podlaczony). I wtedy w symulatorze mozna ten pin obejrzec.
Mój czas jeszcze nie nadszedł, ale co nieco czytam sobie do poduszki ;-)
A czytaj, czytaj :-)
--
Jerry
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: Marcin E. Hamerla <Xmehamerla_at_nospam_Xpro.Xonet.Xpl.remove_X>
Subject: Re: VHDL-XILINX symulacja ?
Date: Sat, 27 Dec 2003 10:03:29 +0100
jerry1111 napisal(a):
W jaki sposób można podczas symulacji układu (Xuilinx ISE WebPack-ModelSim
XE) obserwować sygnały wewnętrzne (nie wyprowadzone na port).
Xilinxa nie znam. W Alterze jest 'virtual pin' - wtedy mozna
popatrzec, bo optymalizator zostawia ten sygnal.
Pod AHDLem sygnal, ktory ma nie zostac wyciety definiuje sie jako
LCELL, a nie NODE. Ale warto przy tym zwrocic uwage, ze wstawienie
czegos takiego do symulacji, a nastepnie wyciecie (do wersji docelowej
na przyklad) powoduje zmiane dzialania ukladu....
BTW sa czasem sytuacje, gdy projekt w malym PLD jest juz upchany, gdy
oplaca sie uzyc LCELL zamiast NODE, poniewaz wtedy w ogole mozna
'sfitować' projekt.
--
Pozdrowienia, Marcin E. Hamerla
"Every day I make the world a little bit worse."
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: jerry1111 <stop_this_spam_jerry1111_remove_at_nospam_remove.wp.pl>
Subject: Re: VHDL-XILINX symulacja ?
Date: Sat, 27 Dec 2003 12:58:14 +0100
Pod AHDLem sygnal, ktory ma nie zostac wyciety definiuje sie jako
LCELL, a nie NODE. Ale warto przy tym zwrocic uwage, ze wstawienie
czegos takiego do symulacji, a nastepnie wyciecie (do wersji docelowej
na przyklad) powoduje zmiane dzialania ukladu....
AHDLa nie uzywam, ale jak to powoduje zmiane dzialania... :-)
to krotko mowiac robi cos innego niz zapobieganie 'wycinaniu'
sygnalow.
BTW sa czasem sytuacje, gdy projekt w malym PLD jest juz upchany, gdy
oplaca sie uzyc LCELL zamiast NODE, poniewaz wtedy w ogole mozna
'sfitować' projekt.
-)
W 'duzych' masz w Quartusie parametr 'initial placement' - wstawiasz
rozne liczby i wychodzi szybszy/wolniejszy. Znaczy to nie mniej i nie
wiecej, tylko ze jest jakas pseudolosowosc w ukladaniu. Roznice bywaja
spore - nawet 20% f_max.
--
Jerry
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: Marcin E. Hamerla <Xmehamerla_at_nospam_Xpro.Xonet.Xpl.remove_X>
Subject: Re: VHDL-XILINX symulacja ?
Date: Sat, 27 Dec 2003 13:17:18 +0100
jerry1111 napisal(a):
Pod AHDLem sygnal, ktory ma nie zostac wyciety definiuje sie jako
LCELL, a nie NODE. Ale warto przy tym zwrocic uwage, ze wstawienie
czegos takiego do symulacji, a nastepnie wyciecie (do wersji docelowej
na przyklad) powoduje zmiane dzialania ukladu....
AHDLa nie uzywam, ale jak to powoduje zmiane dzialania... :-)
to krotko mowiac robi cos innego niz zapobieganie 'wycinaniu'
sygnalow.
? Zastanow sie. Jesli sygnal nie jest wyciety, to znaczy, ze uklad
musi inaczej dzialac. Jest inaczej zoptymalizowany. Przynajmniej ja to
tak rozumiem. Jest przepuszczony przez bufor czy inny whatever.
BTW sa czasem sytuacje, gdy projekt w malym PLD jest juz upchany, gdy
oplaca sie uzyc LCELL zamiast NODE, poniewaz wtedy w ogole mozna
'sfitować' projekt.
-)
W 'duzych' masz w Quartusie parametr 'initial placement' - wstawiasz
rozne liczby i wychodzi szybszy/wolniejszy.
Cos takiego jest czy raczej bylo takze w fitterze do kosci MPA z
Motoroli. Czasem projekt dalo sie sfitowac dopiero po ustawieniu
Poczatkowego Zapelnienia na wartosc zblizona do wartosci podawanej
przez program w LOGu. Bylo tak pomimo malego zapelnienia kosci. No ale
powyzej o cos inego mi chodzilo: Mamy mocno zapelniona kostke (np.
7128), a chcemy cos zrobic z duza iloscia sygnalow. Czasem to nie
wypali ze wzgledu na brak mozliwosci zrutowania. Wstawienie LCELL
spowoduje, ze zostanie wykonana funkcja w jakiejs tam makroceli, w
niej zostanie wygenerowany sygnal, z ktorym juz nie bedzie klopotu z
rutingiem. Ale oczywiscie kosztem dodatkowego opoznienia.
--
Pozdrowienia, Marcin E. Hamerla
"Every day I make the world a little bit worse."
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!mimuw.edu.pl!news.mimuw.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: jerry1111 <stop_this_spam_jerry1111_remove_at_nospam_remove.wp.pl>
Subject: Re: VHDL-XILINX symulacja ?
Date: Sat, 27 Dec 2003 14:47:02 +0100
AHDLa nie uzywam, ale jak to powoduje zmiane dzialania... :-)
to krotko mowiac robi cos innego niz zapobieganie 'wycinaniu'
sygnalow.
? Zastanow sie. Jesli sygnal nie jest wyciety, to znaczy, ze uklad
musi inaczej dzialac.
Wiesz - chodzi o funkcjonalne dzialanie. Jesli design jest
synchroniczny, to nie ma prawa byc zmiany dzialania. Co najwyzej
zmniejsza sie opoznienia... Poza tym jak optymalizator stwierdza, ze
lepiej wyciac sygnal (bo np: nie jest uzywany) to generalnie poprawi
to timingi a dzialania nie zmieni.
Asynchronicznych ukladow nie robie - co najwyzej na wiecej niz 1
domene clk, ale one dalej synchroniczne sa.
W 'duzych' masz w Quartusie parametr 'initial placement' - wstawiasz
rozne liczby i wychodzi szybszy/wolniejszy.
Cos takiego jest czy raczej bylo takze w fitterze do kosci MPA z
Motoroli. Czasem projekt dalo sie sfitowac dopiero po ustawieniu
Poczatkowego Zapelnienia na wartosc zblizona do wartosci podawanej
przez program w LOGu. Bylo tak pomimo malego zapelnienia kosci.
Znaczy interconnecty sie konczyly pewnie.
No ale
powyzej o cos inego mi chodzilo: Mamy mocno zapelniona kostke (np.
7128), a chcemy cos zrobic z duza iloscia sygnalow. Czasem to nie
wypali ze wzgledu na brak mozliwosci zrutowania. Wstawienie LCELL
spowoduje, ze zostanie wykonana funkcja w jakiejs tam makroceli, w
Zgadza sie - wtedy dobrze przejrzec uklad po P&R. Mozna zobaczyc gdzie
mamy 'gesto' z sygnalami.
--
Jerry
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Piotr Wyderski" <piotr.wyderskiREMOVE_at_nospam_wp.pl>
Subject: Re: VHDL-XILINX symulacja ?
Date: Sat, 27 Dec 2003 15:02:44 +0100
Marcin E. Hamerla wrote:
? Zastanow sie. Jesli sygnal nie jest wyciety, to znaczy, ze uklad
musi inaczej dzialac. Jest inaczej zoptymalizowany.
Ja sie przylaczam do pytania Jerrego, dozwolone wyciecie
sygnalu nie ma prawa wplynac na dzialanie ukladu. Od tego
wlasnie jest optymalizator, aby powycinal wszystko, co sie
da wyciac nie zmieniajac przy tym funkcji realizowanej przez
uklad. Jesli jest inaczej, to zachodzi co najmniej jedno
z ponizszych:
a) optymalizator jest blednie zaprogramowany,
b) uzyta funkcja robi co innego, niz sie uzytkownikowi wydaje.
Nie ma innej mozliwosci. :-)
Pozdrawiam
Piotr Wyderski
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news2.icm.edu.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: jerry1111 <stop_this_spam_jerry1111_remove_at_nospam_remove.wp.pl>
Subject: Re: VHDL-XILINX symulacja ?
Date: Sun, 28 Dec 2003 20:27:53 +0100
? Zastanow sie. Jesli sygnal nie jest wyciety, to znaczy, ze uklad
musi inaczej dzialac. Jest inaczej zoptymalizowany.
Ja sie przylaczam do pytania Jerrego, dozwolone wyciecie
sygnalu nie ma prawa wplynac na dzialanie ukladu.
Znaczy wiesz - tak naprawde to wplywa na dzialanie ukladu, bo cos tam
zmienia. Natomiast jesli odnotujemy funkcjonalne zmiany w dzialaniu
ukladu (znaczy po prostu zacznie nam zle dzialac), to czepiajmy sie
sami siebie za piekny i sensowny kod w VHDL i zostawmy optymalizator w
spokoju.
-)
--
Jerry
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Piotr Wyderski" <piotr.wyderskiREMOVE_at_nospam_wp.pl>
Subject: Re: VHDL-XILINX symulacja ?
Date: Wed, 31 Dec 2003 13:04:26 +0100
jerry1111 wrote:
Znaczy wiesz - tak naprawde to wplywa na dzialanie ukladu, bo cos tam
zmienia.
Zmienia, ale strukturalnie, a nie funkcjonalnie.
Natomiast jesli odnotujemy funkcjonalne zmiany w dzialaniu ukladu
(znaczy po prostu zacznie nam zle dzialac), to czepiajmy sie sami siebie
za piekny i sensowny kod w VHDL i zostawmy optymalizator w spokoju.
Zazwyczaj tak, ale bledy w kompilatorach juz widzialem, wiec dlaczego
optymalizator mialby ich rowniez nie zawierac? :-) Przeciez formalne
narzedzia do weryfikacji i walidacji takiego oprogramowania dopiero
raczkuja,
wiec jest bardzo prawdopodobne, ze jakies bugi to-to ma.
Pozdrawiam
Piotr Wyderski
========
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!newsfeed.silweb.pl!newsfeed.tpinternet.pl!szmaragd.futuro.pl!opal.futuro.pl!not-for-mai
From: "Bartosz Sarama" <quasimod_m_a_l_p_a__at_nospam_wp.pl>
Subject: Re: VHDL-XILINX symulacja ?
Date: Tue, 30 Dec 2003 22:40:03 +0100
Jarek wrote:
Witam
W jaki sposób można podczas symulacji układu (Xuilinx ISE
WebPack-ModelSim XE) obserwować sygnały wewnętrzne (nie wyprowadzone
na port).
Witam
Nie jest konieczne podłączanie do portu.
W WebPack'u:
- po utworzeniu pliku symulacji (test bencha) i kliknięciu na nim wybierasz
w kokienku poniżej opcję "Simulate Behavioral VHDL Model"
Otwiera się ModelSim z symulacją:
- w oknie "Structure" klikasz na tej części modelu, której sygnały chcesz
oglądać (tu będzie to pewnie drugi od góry na liście)
- przechodzisz do okna "Signals" i powinien być widoczny licznik (czyli Twój
counter), który przeciągasz sobie na okno Wave i zapuszczasz symulację
jeszcze raz (Reset All + Run All)
Pozdrawiam
Bartosz Sarama
========
Path: news-archive.icm.edu.pl!news.rmf.pl!poznan.rmf.pl!news.man.poznan.pl!news.nask.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: jerry1111 <stop_this_spam_jerry1111_remove_at_nospam_remove.wp.pl>
Subject: Re: VHDL-XILINX symulacja ?
Date: Tue, 30 Dec 2003 23:05:35 +0100
- po utworzeniu pliku symulacji (test bencha) i kliknięciu na nim wybierasz
w kokienku poniżej opcję "Simulate Behavioral VHDL Model"
Znaczy ja zrozumialem, ze chodzi o symulacje po P&R... ale calkiem
prawdopodobne, ze Ty masz racje :-)
--
Jerry
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!opal.futuro.pl!not-for-mai
From: "Bartosz Sarama" <quasimod_m_a_l_p_a__at_nospam_wp.pl>
Subject: Re: VHDL-XILINX symulacja ?
Date: Tue, 30 Dec 2003 23:47:14 +0100
jerry1111 wrote:
- po utworzeniu pliku symulacji (test bencha) i kliknięciu na nim
wybierasz w kokienku poniżej opcję "Simulate Behavioral VHDL Model"
Znaczy ja zrozumialem, ze chodzi o symulacje po P&R... ale calkiem
prawdopodobne, ze Ty masz racje :-)
Nie ma sensu robić symulacji P&R jeśli nie działa Behavioral
Post and Route w zasadzie ogranicza się najczęściej do ostatniego etapu
symulacji całego układu (o ile jest poprawnie i sensownie zbudowany - w
przeciwnym wypadky rzeczywiście trzeba robić zamiast Behaviorala :-)
Pozdrawiam
Bartosz Sarama
========
Path: news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!opal.futuro.pl!newsfeed.gazeta.pl!news.onet.pl!agh.edu.pl!news.agh.edu.pl!news.ceti.pl!not-for-mai