RTV forum PL | NewsGroups PL

Jak zaimplementować licznik tyknięć zegara w VHDL dla EP1K30TI208-3?

VHDL ( zegar, powielanie )

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zaimplementować licznik tyknięć zegara w VHDL dla EP1K30TI208-3?

Goto page 1, 2, 3  Next

Grzegorz K.
Guest

Mon Oct 18, 2004 9:02 am   



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

Dziadek
Guest

Mon Oct 18, 2004 10:39 am   



Quote:
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.

Mister
Guest

Mon Oct 18, 2004 10:55 am   



Quote:
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

jerry1111
Guest

Mon Oct 18, 2004 10:57 am   



On Mon, 18 Oct 2004 12:02:30 +0200, "Grzegorz K."
<grzegorz.kepinski@post.cross.pl> wrote:

Quote:
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.


Quote:
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.

Quote:
Czyli: po dodatnim zboczu sygnału CLK chcę wygenerować np. 12 wewnetrznych
tyknięć zegerowych.

Szybszych nic CLK? Nie da sie.


--
Jerry

jerry1111
Guest

Mon Oct 18, 2004 11:00 am   



On Mon, 18 Oct 2004 13:55:06 +0200, "Mister"
<wojpie@wywal_to.poczta.onet.pl> wrote:

Quote:
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

Grzegorz K.
Guest

Mon Oct 18, 2004 11:17 am   



Dizęki za zainteresowanie, więc tak może zbiorczo Smile :

Po usunięciu "AFTER 1 NS" - nic - to znaczy żadnej różnicy.

Po przerobieniu tego poprzedniego problemu na :

Zeg: PROCESS ( CLK_uP )
BEGIN
IF rising_edge ( CLK_uP ) THEN -- linia 30
Licznik <= 3;
ELSE
Licznik <= 0;
END IF;
END PROCESS Zeg;

PROCESS ( Licznik )
BEGIN
IF Licznik > 0 THEN
Licznik <= Licznik - 1;
Tick <= NOT Tick;
ELSE
Tick <= '0';
END IF;
END PROCESS;
Q <= Tick;

,kompilator ( syntezator ) Quartus'a:
"Error: VHDL error at ZegarVHD.vhd(30): can't infer register for signal
Licznik[0] because signal does not hold its value outside clock edge"

Efekt który chcę usyskać jest na stronce:
http://www.cross.pl/grzesk/quartus.htm

Z tego co Panowie piszecie wychodzi na to, że nie da się obejść bez
dodatkowego generatora podstawy czasu dla potrzeb wewnętrznych operacji
FPGA.

PS. Tematem, który chciałem się zająć ( pogryźć toszkę ) jest zbudowani uP
na FPGA ( cóż początki są trudne zawsze Smile.


Dzieki, pozdrawiam,

Grzegorz Kepiński
CROSS Sp. z o.o.
gg: 1175899

Mister
Guest

Mon Oct 18, 2004 12:21 pm   



Quote:
PS. Tematem, który chciałem się zająć ( pogryźć toszkę ) jest zbudowani uP
na FPGA ( cóż początki są trudne zawsze Smile.

A po co budować procesory w fpga? strata czasu. Można coś gotowego ściągnąć
z open-source lub kupić z www.evatronix.pl :-)

A tak apropo, to ok dwa lata temu był tu na grupie gość, który się chwalił
że napisze procesor 32 bitowy w VHDL, że to kwestia kilku tygodni itp. ...
Po miesiącu zniknął, może teraz się odezwie, może się pochwali co z tego
wyszło...


Pozdrawiam
Mister

Mister
Guest

Mon Oct 18, 2004 12:24 pm   



Quote:
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 Smile

No własnie, to jak to ma prawo działać w EP1K30TI208-3 ??

Mister

Grzegorz K.
Guest

Mon Oct 18, 2004 12:35 pm   



Quote:
A po co budować procesory w fpga? strata czasu. Można coś gotowego
ściągnąć
z open-source lub kupić z www.evatronix.pl Smile

Taki pomysł powstał w głowie mojego promotora - jeszcze go nie odwodziłem
od tego, ale wolę sie przymierzyć do problemu :)

Quote:

A tak apropo, to ok dwa lata temu był tu na grupie gość, który się
chwalił
że napisze procesor 32 bitowy w VHDL, że to kwestia kilku tygodni itp.
....
Po miesiącu zniknął, może teraz się odezwie, może się pochwali co z tego
wyszło...

Dwa lata temu to nie wiedziałem że to się wogóle da :)

Dla mnie procesor to taki układzik cyfrowy z masą niepotrzebnych szlaczków
po których podążają wróweczki (sygnały) aby i Królowa Matka ( ALU ) miała
co robić a i spichlerz ( pamięć ) nie straszył pustkami. :0)

A na poważnie, uważam że 8 miesięcy na zrobienie czegoś takiego to nie
jest tak sporo.

Ale zobaczymy - może będę musiał Smile ( swoją drogą ciekawe zagadnienie )

Pozdrawiam,
Grzegorz K.

Grzegorz K.
Guest

Mon Oct 18, 2004 12:35 pm   



Użytkownik "Mister" <wojpie@wywal_to.poczta.onet.pl> napisał w wiadomości
news:cl0gd4$dkm$1@nemesis.news.tpi.pl...
Quote:
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 Smile

Krzysztof Gawryś
Guest

Mon Oct 18, 2004 12:38 pm   



Użytkownik "Mister" <wojpie@wywal_to.poczta.onet.pl> napisał w wiadomości
news:cl0g84$cso$1@nemesis.news.tpi.pl...
Quote:
PS. Tematem, który chciałem się zająć ( pogryźć toszkę ) jest zbudowani
uP
na FPGA ( cóż początki są trudne zawsze Smile.

A po co budować procesory w fpga? strata czasu. Można coś gotowego
ściągnąć
z open-source lub kupić z www.evatronix.pl :-)

A tak apropo, to ok dwa lata temu był tu na grupie gość, który się chwalił
że napisze procesor 32 bitowy w VHDL, że to kwestia kilku tygodni itp.
....
Po miesiącu zniknął, może teraz się odezwie, może się pochwali co z tego
wyszło...


Od tamtego czasu, koles nieodezwał sie na grupie ani razu.
Przynajmniej nie jako On.

K.

PS. Tak z nudy przejzalem archiwum Wink

Piotr Wyderski
Guest

Mon Oct 18, 2004 12:57 pm   



Mister wrote:

Quote:
A tak apropo, to ok dwa lata temu był tu na grupie gość, który się chwalił
że napisze procesor 32 bitowy w VHDL, że to kwestia kilku tygodni itp.
....
Po miesiącu zniknął, może teraz się odezwie, może się pochwali co z tego
wyszło...

Chyba nie umiem znalezc tego watku (google na "pl.misc.elektronika
vhdl 32-bitowy procesor" zwraca tylko jeden, niezbyt pasujacy), wiec
sie zapytam: w czym lezy zasadnicza trudnosc? W sporzadzeniu
specyfikacji tego CPU, zapisaniu jej w VHDL, czy (jak przypuszczam)
niskiej jakosci syntezy?

Pozdrawiam
Piotr Wyderski

jerry1111
Guest

Mon Oct 18, 2004 12:59 pm   



On Mon, 18 Oct 2004 14:17:47 +0200, "Grzegorz K."
<grzegorz.kepinski@post.cross.pl> wrote:

Quote:
Dizęki za zainteresowanie, więc tak może zbiorczo Smile :

Po usunięciu "AFTER 1 NS" - nic - to znaczy żadnej różnicy.

Zgadza sie - przy P&R jest to olewane, natomiast ma znaczenie tylko
przy symulacji kodu _zrodlowego_ i jest glownie uzywane do opisywania
wymuszen, czyli tego co na piny podajemy.

Quote:
Po przerobieniu tego poprzedniego problemu na :

Zeg: PROCESS ( CLK_uP )
BEGIN
IF rising_edge ( CLK_uP ) THEN -- linia 30
Licznik <= 3;
ELSE
Licznik <= 0;
END IF;
END PROCESS Zeg;

PROCESS ( Licznik )
BEGIN
IF Licznik > 0 THEN
Licznik <= Licznik - 1;
Tick <= NOT Tick;
ELSE
Tick <= '0';
END IF;
END PROCESS;
Q <= Tick;

,kompilator ( syntezator ) Quartus'a:
"Error: VHDL error at ZegarVHD.vhd(30): can't infer register for signal
Licznik[0] because signal does not hold its value outside clock edge"

Ma racje :-)

Zmieniasz jeden sygnal (Licznik) w dwoch procesach - i teraz ktore
zmiany uwzgledniac?
Zawszyj wszystko w jednym bloku if(rising_edge(clk)) then ... end if.


Quote:
Efekt który chcę usyskać jest na stronce:
http://www.cross.pl/grzesk/quartus.htm

Aha... no to potrzebujesz CLK o czestotliwosci takiej, jakie Ci
potrzebne impulsy Q. Potrzebujesz do generaowania sygnalu ENABLE
dla reszty logiki a NIE do generowania tej logice sygnalu zegara.
Zegar ma byc jeden!
Wtedy w odpowiednich momentach wlaczasz sobie enable.

Quote:
Z tego co Panowie piszecie wychodzi na to, że nie da się obejść bez
dodatkowego generatora podstawy czasu dla potrzeb wewnętrznych operacji
FPGA.

He??

Quote:
PS. Tematem, który chciałem się zająć ( pogryźć toszkę ) jest zbudowani uP
na FPGA ( cóż początki są trudne zawsze Smile.


Hmm... mozna, ale po co? Potem problem jest ze stworzeniem dla tego
procka kompilatora Smile
Natomiast jesli w celach edukacyjnych to proponowalbym cos prostszego.
Jako przyklad przychodzi mi napisanie UARTU (moze byc z predkoscia
transmisji ustalona na stale) takiego, ze czas bitu dzieli na 16,
probkuje 7,8,9 czesc (srodek) bitu transmisji i decyduje o wyniku.
W tym przykladzie bedziesz musial rozwiazac wlasnie takie problemy o
ktorych tutaj piszesz, a poza tym... jak zrobisz procka, to fajnie
miec do niego wlasny uart :-)



--
Jerry

Grzegorz K.
Guest

Mon Oct 18, 2004 2:09 pm   



Quote:
A tak apropo, to ok dwa lata temu był tu na grupie gość, który się
chwalił
że napisze procesor 32 bitowy w VHDL, że to kwestia kilku tygodni itp.
...
Po miesiącu zniknął, może teraz się odezwie, może się pochwali co z tego
wyszło...

Chyba nie umiem znalezc tego watku (google na "pl.misc.elektronika
vhdl 32-bitowy procesor" zwraca tylko jeden, niezbyt pasujacy), wiec
sie zapytam: w czym lezy zasadnicza trudnosc? W sporzadzeniu
specyfikacji tego CPU, zapisaniu jej w VHDL, czy (jak przypuszczam)
niskiej jakosci syntezy?

No coż, jedni wycofują się rakiem, a drudzy mówią: "poddałem się, może innym
razem jak będę mądrzejszy Smile"

pozdrawiam,
Grzegorz Kępiński

greg
Guest

Mon Oct 18, 2004 4:20 pm   



Quote:
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 Smile
coz, kwestia gustu widac:)

Goto page 1, 2, 3  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zaimplementować licznik tyknięć zegara w VHDL dla EP1K30TI208-3?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map