VHDL ( zegar, powielanie )
Masz problem? Zapytaj na forum elektroda.pl
From: "Grzegorz K." <grzegorz.kepinski_at_nospam_post.cross.pl>
Subject: VHDL ( zegar, powielanie )
Date: Mon, 18 Oct 2004 12:02:30 +0200
Witmam,
Mam coś takiego:
ENTITY ZegarVHD IS
PORT ( CLOCK : IN STD_LOGIC; Q : OUT STD_LOGIC );
END ZegarVHD;
ARCHITECTURE ZegarVHD_architecture OF ZegarVHD IS
SIGNAL Tick: STD_LOGIC;
BEGIN
Zeg: PROCESS ( Clock )
BEGIN
IF Clock = '1' THEN
Tick <= NOT Tick;
ELSE
Tick <= '0';
END IF;
Q <= Tick AFTER 1 NS;
END PROCESS Zeg;
END ZegarVHD_architecture;
Używam układu EP1K30TI208-3 Altery.
Jeżeli stan sygnału zegarowego jest wysoki to następuję "autogeneracja"
przebiegu na wyjściu Q układu.
Wszystko jest OK dopuki nie chcę wstawić zliczania sygnału "Tick" i np. po
12 tyknięciach ustawić Q w stan niski.
Czyli: po dodatnim zboczu sygnału CLK chcę wygenerować np. 12 wewnetrznych
tyknięć zegerowych.
Czy w ten sposób to jest możliwe ?
--
Grzegorz Kepiński
CROSS Sp. z o.o.
gg: 1175899
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.atman.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Dziadek" <dziadek.l_at_nospam_wp.pl>
Subject: Re: VHDL ( zegar, powielanie )
Date: Mon, 18 Oct 2004 13:39:51 +0200
Używam układu EP1K30TI208-3 Altery.
Jeżeli stan sygnału zegarowego jest wysoki to następuję "autogeneracja"
przebiegu na wyjściu Q układu.
Wszystko jest OK dopuki nie chcę wstawić zliczania sygnału "Tick" i np. po
12 tyknięciach ustawić Q w stan niski.
Czyli: po dodatnim zboczu sygnału CLK chcę wygenerować np. 12 wewnetrznych
tyknięć zegerowych.
Czy w ten sposób to jest możliwe ?
Odpowiem Ci, jak powiedziała złota rybka pewnemu gościowi:
"Nie, nie i jeszcze raz nie"
Dz.
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.atman.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Mister" <wojpie_at_nospam_wywal_to.poczta.onet.pl>
Subject: Re: VHDL ( zegar, powielanie )
Date: Mon, 18 Oct 2004 13:55:06 +0200
Używam układu EP1K30TI208-3 Altery.
Jeżeli stan sygnału zegarowego jest wysoki to następuję "autogeneracja"
przebiegu na wyjściu Q układu.
Wszystko jest OK dopuki nie chcę wstawić zliczania sygnału "Tick" i np. po
12 tyknięciach ustawić Q w stan niski.
Czyli: po dodatnim zboczu sygnału CLK chcę wygenerować np. 12 wewnetrznych
tyknięć zegerowych.
Czy w ten sposób to jest możliwe ?
Czy powyższy przykład jest w ogóle syntezowalny?? Wydaje się, że nie.
Mister
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.atman.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 ( zegar, powielanie )
Date: Mon, 18 Oct 2004 14:00:38 +0200
On Mon, 18 Oct 2004 13:55:06 +0200, "Mister"
<wojpie_at_nospam_wywal_to.poczta.onet.pl> wrote:
Czyli: po dodatnim zboczu sygnału CLK chcę wygenerować np. 12 wewnetrznych
tyknięć zegerowych.
Czy w ten sposób to jest możliwe ?
Czy powyższy przykład jest w ogóle syntezowalny?? Wydaje się, że nie.
Jakby wywalic after 1ns to cos by wyszlo. Pytanie do autora - niech
przeanalizuje co :-)
--
Jerry
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai
From: "Mister" <wojpie_at_nospam_wywal_to.poczta.onet.pl>
Subject: Re: VHDL ( zegar, powielanie )
Date: Mon, 18 Oct 2004 15:24:31 +0200
Czy powyższy przykład jest w ogóle syntezowalny?? Wydaje się, że nie.
Jakby wywalic after 1ns to cos by wyszlo. Pytanie do autora - niech
przeanalizuje co :-)
No własnie, to jak to ma prawo działać w EP1K30TI208-3 ??
Mister
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mai
From: "Grzegorz K." <grzegorz.kepinski_at_nospam_post.cross.pl>
Subject: Re: VHDL ( zegar, powielanie )
Date: Mon, 18 Oct 2004 15:35:50 +0200
Użytkownik "Mister" <wojpie_at_nospam_wywal_to.poczta.onet.pl> napisał w wiadomości
news:cl0gd4$dkm$1_at_nospam_nemesis.news.tpi.pl...
Czy powyższy przykład jest w ogóle syntezowalny?? Wydaje się, że nie.
Jakby wywalic after 1ns to cos by wyszlo. Pytanie do autora - niech
przeanalizuje co :-)
No własnie, to jak to ma prawo działać w EP1K30TI208-3 ??
Mister
już właśnie zauważyłem że na ACEXsie 1K to nie działa :)
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.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 ( zegar, powielanie )
Date: Mon, 18 Oct 2004 13:57:49 +0200
On Mon, 18 Oct 2004 12:02:30 +0200, "Grzegorz K."
<grzegorz.kepinski_at_nospam_post.cross.pl> wrote:
Witmam,
Mam coś takiego:
ENTITY ZegarVHD IS
PORT ( CLOCK : IN STD_LOGIC; Q : OUT STD_LOGIC );
END ZegarVHD;
ARCHITECTURE ZegarVHD_architecture OF ZegarVHD IS
SIGNAL Tick: STD_LOGIC;
BEGIN
Zeg: PROCESS ( Clock )
BEGIN
IF Clock = '1' THEN
Tick <= NOT Tick;
ELSE
Tick <= '0';
END IF;
Q <= Tick AFTER 1 NS;
^^^^^^^^^^^
Wiesz o tym ze to bedzie dzialac tylko_i_wylacznie w ModelSimie?
Takie cos jest nierealizowalne w strukturze FPGA.
END PROCESS Zeg;
END ZegarVHD_architecture;
Używam układu EP1K30TI208-3 Altery.
Jeżeli stan sygnału zegarowego jest wysoki to następuję "autogeneracja"
przebiegu na wyjściu Q układu.
Wszystko jest OK dopuki nie chcę wstawić zliczania sygnału "Tick" i np. po
12 tyknięciach ustawić Q w stan niski.
Za bardzo nie rozumiem.
Czyli: po dodatnim zboczu sygnału CLK chcę wygenerować np. 12 wewnetrznych
tyknięć zegerowych.
Szybszych nic CLK? Nie da sie.
--
Jerry
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mai
From: "greg" <xgrzes_at_nospam_poczta.onet.pl>
Subject: Re: VHDL ( zegar, powielanie )
Date: Mon, 18 Oct 2004 19:20:32 +0200
Q <= Tick AFTER 1 NS;
^^^^^^^^^^^
Wiesz o tym ze to bedzie dzialac tylko_i_wylacznie w ModelSimie?
Takie cos jest nierealizowalne w strukturze FPGA.
kiedys stoczylem dlugie boje probujac przekonac pewnego programiste (z
Chorwacji), ktory pisal w vhdl i twierdzil ze ich syntezer syntezuje petle
for i while oraz te neiszczesne after...i ze dla neigo nei ma roznicy miedzy
vhdl a c++, i ze vhdl to jest tak banalny ze nei ma co o nim
gadac...zagialem go na przeniesieniach w sumatorze :)
coz, kwestia gustu widac:)
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.atman.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 ( zegar, powielanie )
Date: Mon, 18 Oct 2004 22:15:37 +0200
On Mon, 18 Oct 2004 19:20:32 +0200, "greg" <xgrzes_at_nospam_poczta.onet.pl>
wrote:
Q <= Tick AFTER 1 NS;
^^^^^^^^^^^
Wiesz o tym ze to bedzie dzialac tylko_i_wylacznie w ModelSimie?
Takie cos jest nierealizowalne w strukturze FPGA.
kiedys stoczylem dlugie boje probujac przekonac pewnego programiste (z
Chorwacji), ktory pisal w vhdl i twierdzil ze ich syntezer syntezuje petle
for i while oraz te neiszczesne after...i ze dla neigo nei ma roznicy miedzy
vhdl a c++, i ze vhdl to jest tak banalny ze nei ma co o nim
gadac...zagialem go na przeniesieniach w sumatorze :)
coz, kwestia gustu widac:)
Bo programisci mysla, ze jak mozna napisac tekstowo, to juz jest
rownoznaczne z programem. I tlumacz potem dla matola podstawy...
A jeszcze sie obraza - bo on przeciez "Pan" programista :-)))
--
Jerry
========
Path: news-archive.icm.edu.pl!news2.icm.edu.pl!newsfeed.atman.pl!newsfeed.tpinternet.pl!news.dialog.net.pl!not-for-mai
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: VHDL ( zegar, powielanie )
Date: Sun, 24 Oct 2004 13:28:56 +0200
jerry1111 wrote:
Bo programisci mysla, ze jak mozna napisac tekstowo, to juz jest
rownoznaczne z programem. I tlumacz potem dla matola podstawy...
A jeszcze sie obraza - bo on przeciez "Pan" programista :-)))
Z tym sie calkowicie zgadzam, malo ktory programista jest uczony
prawdziwego, drobnoziarnistego programowania wspolbieznego,
a to jest podstawowa filozofia w HDL-ach. Z drugiej strony znane
mi jezyki do pisania specyfikacji sprzetu sa zbyt niskopoziomowe
-- mozna w nich latwo zapisac jakies liczniki, jednostki arytmetyczno
-logiczne itd, ale gdy przychodzi opisac uklad o skomplikowanym
sterowaniu, to zaczyna byc "wesolo". Na przyklad: jak w czytelny
sposob opisac potok procesora superskalarnego, ktory dopuszcza
"lokalne" wstrzymania (tj. brak jakichs danych nie wstrzymuje calego
potoku, lecz tylko stopnie tych danych wymagajace?). A pytam
powaznie, by miec porownanie, bo Wiesz Co tez ma umozliwiac
napisanie takich specyfikacji. :-)
Druga sprawa to ubogie wsparcie nowoczesnych paradygmatow
programowania. Szczegolnie brakuje mi rozbudowanych deklaracji
generycznych (czego jak czego, ale zeby VHDL nie mial szablonow?!),
pseudoobiektowosci (dziedziczenie jednobazowe, ukrywanie danych,
"code", czy wlasciwie "specification reuse", za to bez deklaracji
wirtualnych i byc moze koercji, bo z tym moga byc problemy podczas
syntezy). Brak tez akcesorow, przez co przy co dziwniejszych
interpretacjach wektorow bitowych (kodowaniach) trzeba wszystko
robic recznie, zamiast zostawic to automatowi, wskazujac tylko
jak kodowac dany typ, np. deklaracja generyczna dla kodu BCD:
// Liczby naturalne
type UnsignedInt is {k : int | k >= 0}
type Positive is {k : int | k > 0}
// Dlugosci wektorow liczb BCD musza byc podzielne przez 4
type BCD_size is {k : Positive | k % 4 = 0}
generic type BCD_vector{N} is group of N bits encoded as
BCD_encoding where {const N in {BCD_size}} with
public method add_to(in n : BCD{N}) is
self <= self + n; // Kodowanie w obie strony zalatwia
// automat na podstawie definicji
// BCD_encoding
end
end
generic encoding BCD_encoding{N} for group of N bits
where {const N in {BCD_size}} is
pure accessor in() : UnsignedInt is
... // BCD -> uint
end
accessor out(i : UnsignedInt) is
...// uint -> BCD
end
end
Zamiast tworzenia gigantycznych switchow przydaloby sie tez
miec "value dispatch":
method M(i : {n : int | n % 4 = 1}) is
... // Robimy cos dla dajacych reszte 1
end
method M(i : {n : int | n % 4 = 2}) is
... // Robimy cos dla dajacych reszte 2
end
method M(i : int) is
... // Robimy cos dla pozostalych
end
M(5*7+2); // Wywola pierwsza z metod
Pozdrawiam
Piotr Wyderski
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.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 ( zegar, powielanie )
Date: Sun, 24 Oct 2004 20:39:08 +0200
On Sun, 24 Oct 2004 13:28:56 +0200, "Piotr Wyderski"
<wyderskiREMOVE_at_nospam_ii.uni.wroc.pl> wrote:
sterowaniu, to zaczyna byc "wesolo". Na przyklad: jak w czytelny
sposob opisac potok procesora superskalarnego, ktory dopuszcza
"lokalne" wstrzymania (tj. brak jakichs danych nie wstrzymuje calego
potoku, lecz tylko stopnie tych danych wymagajace?). A pytam
W czytelny sposob to sie da zrobic niewiele wiecej niz licznik
i automat stanow :-(
powaznie, by miec porownanie, bo Wiesz Co tez ma umozliwiac
napisanie takich specyfikacji. :-)
O cholera :-)
Druga sprawa to ubogie wsparcie nowoczesnych paradygmatow
programowania. Szczegolnie brakuje mi rozbudowanych deklaracji
generycznych (czego jak czego, ale zeby VHDL nie mial szablonow?!),
Wiesz - z drugiej strony to podczas pisania w VHDLu trzeba sobie
wyobrazac jaki uklad wyjdzie po P&R zeby bylo to wszystko sensownie
male i sensownie szybkie. Przy wyzszych poziomach abstrakcji czasami
rozne dziwne rzeczy moga byc nie do zauwazenia/nie do wyobrazenia.
Z drugiej strony jest System-C i Handel-C... ale jakos cisza o tym,
wiec albo jest na tyle dobre ze amerykancy wzieli to dla wojskowosci,
albo jest po prostu do dupy :-)
--
Jerry
========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!newspeer2.se.telia.net!se.telia.net!fr.ip.ndsoftware.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed01.chello.at!newsfeed02.chello.at!news.chello.at.POSTED!53ab27