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

:
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

.
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

.
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
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
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ł

( 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
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

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

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

.
Hmm... mozna, ale po co? Potem problem jest ze stworzeniem dla tego
procka kompilatora
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

"
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
coz, kwestia gustu widac:)
Goto page 1, 2, 3 Next