=?ISO-8859-2?Q?Active-HDL_z_FSMem_kto=B6_mo=BFe_u=BFywa=3F?=
Masz problem? Zapytaj na forum elektroda.pl
From: Bartosz Kiziukiewicz <kiziuk_at_nospam_alpha.net.pl>
Subject: =?ISO-8859-2?Q?Active-HDL_z_FSMem_kto=B6_mo=BFe_u=BFywa=3F?=
Date: Thu, 17 Jan 2002 17:53:08 +0100
Mam taki mały problem, o który zacząłem się rozbijać. Dotyczy
budowania układów w edytorze FSM w Active-HDL'u i ewentualnie
implementacji w narzędziach Synopsysa (FPGA Express).
Może ktoś używa i byłby w stanie służyć radą?
Jeśli nikt się tym nie zajmuje, to nie chcę się niepotrzebnie
rozpisywać :-).
--
Pozdrawiam
Bartek
<kiziuk_at_nospam_alpha.net.pl>
<kiziuk_at_nospam_it.pw.edu.pl>
From: "Redakcja EP" <piotr.zbysinski_at_nospam_ep.com.pl>
Subject: Re: Active-HDL z FSMem ktoś może używa?
Date: Thu, 17 Jan 2002 20:52:25 +0100
Czekam :)
Pzb
Użytkownik "Bartosz Kiziukiewicz" <kiziuk_at_nospam_alpha.net.pl> napisał w wiadomości
news:u50e4u4ce11d5kot5sk69qu18trrr6hprq_at_nospam_4ax.com...
Mam taki mały problem, o który zacząłem się rozbijać. Dotyczy
budowania układów w edytorze FSM w Active-HDL'u i ewentualnie
implementacji w narzędziach Synopsysa (FPGA Express).
Może ktoś używa i byłby w stanie służyć radą?
Jeśli nikt się tym nie zajmuje, to nie chcę się niepotrzebnie
rozpisywać :-).
--
> Pozdrawiam
> Bartek
> <kiziuk_at_nospam_alpha.net.pl>
> <kiziuk_at_nospam_it.pw.edu.pl>
From: Bartosz Kiziukiewicz <kiziuk_at_nospam_alpha.net.pl>
Subject: =?ISO-8859-2?Q?Re:_Active-HDL_z_FSMem_kto=B6_mo=BFe_u=BFywa=3F?=
Date: Thu, 17 Jan 2002 23:06:35 +0100
On Thu, 17 Jan 2002 20:52:25 +0100, "Redakcja EP"
<piotr.zbysinski_at_nospam_ep.com.pl> wrote:
Czekam :)
-)))
Mam nagłówek takiego (działającego) kodu:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity kliki is
port (
AA: in INTEGER range 0 to 8;
CLK: in STD_LOGIC;
XX: out INTEGER range 0 to 8);
end;
architecture kliki of kliki is
-- SYMBOLIC ENCODED state machine: Sreg0
type Sreg0_type is (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12,
S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23);
signal Sreg0: Sreg0_type;
type Vect is array (1 to 9) of Integer;
type Ma is array (1 to 8) of Vect;
type Ca is array (1 to 8) of Vect;
begin
-- concurrent signals assignments
-- diagram ACTION
Sreg0_machine: process (CLK)
variable a,d,i,j,k,l,n,MWspolbX : Integer;
variable M : Ma; -- macierz danych wejsciowych
variable C : Ca; -- macierz wynikow
variable T,S,W,U,P,X,R : Vect; --wektory pomocnicze
variable jest,jest2,jest3,jest4 : Boolean;
begin
if CLK'event and CLK = '1' then
Powyższy kod staram się uzyskać spod FSMa. Jednak nie umiem
zadeklarować w FSMie typów:
type Vect is array (1 to 9) of Integer;
type Ma is array (1 to 8) of Vect;
type Ca is array (1 to 8) of Vect;
Z tego co wywnioskowałem, FSM pozwala na grafie na deklarację jedynie
zmiennych, nie pozwala zaś na deklarację typów.
Kod wygenerowany z FSMa wygląda mniej więcej tak:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity kl is
port (
AA: in INTEGER range 0 to 8;
clk: in BIT;
XX: out INTEGER range 0 to 8);
end;
architecture kl of kl is
-- SYMBOLIC ENCODED state machine: Sreg0
type Sreg0_type is (S1, S2, S3, S4, S5, S6, S21, S7, S8, S9, S10, S11,
S12, S13, S20, S14, S15, S18, S16, S17, S19, S22, S23);
signal Sreg0: Sreg0_type;
begin
-- concurrent signals assignments
-- diagram ACTION
Sreg0_machine: process (clk)
-- machine variables declarations
variable a: INTEGER;
variable C: array (1 to 8) of Vect;
variable d: INTEGER;
variable i: INTEGER;
variable j: INTEGER;
variable jest: BOOLEAN;
variable jest2: BOOLEAN;
variable jest3: BOOLEAN;
variable jest4: BOOLEAN;
variable k: INTEGER;
variable l: INTEGER;
variable M: array (1 to 8) of Vect;
variable MWspolbX: INTEGER;
variable n: INTEGER;
variable P: Vect;
variable R: Vect;
variable S: Vect;
variable T: Vect;
variable U: Vect;
variable Vect: array (1 to 9) of Integer;
variable W: Vect;
variable X: Vect;
begin
if clk'event and clk = '1' then
Jeśli nawet wstukam deklarację typu jako typ zmiennej, to kompilator
traktuje to jako błąd. Ten kod z FSMa może nie być do końca zgodny z
tym, co chciałem uzyskać, bo w międzyczasie troszkę w nim mieszałem
;-).
W każdym razie nie mogę poradzić sobie z takim skonstruowaniem grafu,
aby uzyskać efekt podobny, jak w pierwszym listingu.
Próbowałem zaingerować w wygenerowany już kod, ale FSM przy kompilacji
i tak generuje go bezpośrednio z grafu więc zmiany nie wpływają na
efekt końcowy.
Co do syntezy w FPGA Expresss to będzie chyba problem następny. Nie
mam w domu narzędzi syntezy i implementacji, więc nie jestem w stanie
dokładnie tego w tej chwili sprawdzić. W każdym razie twierdzi, że
oczekiwana jest wartość stała w pętli FOR podczas gdy faktycznie są
tam wartości zadeklarowane jako zmienne. Jednak to może następnym
razem.
--
Pozdrawiam
Bartek
<kiziuk_at_nospam_alpha.net.pl>
<kiziuk_at_nospam_it.pw.edu.pl>
From: "Redakcja EP" <piotr.zbysinski_at_nospam_ep.com.pl>
Subject: Re: Active-HDL z FSMem ktoś może używa?
Date: Fri, 18 Jan 2002 00:26:28 +0100
Mam nagłówek takiego (działającego) kodu:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity kliki is
port (
AA: in INTEGER range 0 to 8;
CLK: in STD_LOGIC;
XX: out INTEGER range 0 to 8);
end;
architecture kliki of kliki is
-- SYMBOLIC ENCODED state machine: Sreg0
type Sreg0_type is (S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12,
S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23);
signal Sreg0: Sreg0_type;
type Vect is array (1 to 9) of Integer;
type Ma is array (1 to 8) of Vect;
type Ca is array (1 to 8) of Vect;
begin
-- concurrent signals assignments
-- diagram ACTION
Sreg0_machine: process (CLK)
variable a,d,i,j,k,l,n,MWspolbX : Integer;
variable M : Ma; -- macierz danych wejsciowych
variable C : Ca; -- macierz wynikow
variable T,S,W,U,P,X,R : Vect; --wektory pomocnicze
variable jest,jest2,jest3,jest4 : Boolean;
begin
if CLK'event and CLK = '1' then
Powyższy kod staram się uzyskać spod FSMa. Jednak nie umiem
zadeklarować w FSMie typów:
type Vect is array (1 to 9) of Integer;
type Ma is array (1 to 8) of Vect;
type Ca is array (1 to 8) of Vect;
Nie zrobisz tego w zadnym ze znanych mi generatorow FSM (lacznie z FPGA
Advantage) -> generatory FSM sa przeznaczone do budowy automatow, ktore ze
swej natury operuja na zmiennych. Mozna to natomiast zrobic za pomoca
edytora przebiegow z Max+Plus II, co nie powinno (patrzac na ENTITY ;))
zajac zbyt wiele czasu.
Z tego co wywnioskowałem, FSM pozwala na grafie na deklarację jedynie
zmiennych, nie pozwala zaś na deklarację typów.
Kod wygenerowany z FSMa wygląda mniej więcej tak:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
entity kl is
port (
AA: in INTEGER range 0 to 8;
clk: in BIT;
XX: out INTEGER range 0 to 8);
end;
architecture kl of kl is
-- SYMBOLIC ENCODED state machine: Sreg0
type Sreg0_type is (S1, S2, S3, S4, S5, S6, S21, S7, S8, S9, S10, S11,
S12, S13, S20, S14, S15, S18, S16, S17, S19, S22, S23);
signal Sreg0: Sreg0_type;
begin
-- concurrent signals assignments
-- diagram ACTION
Sreg0_machine: process (clk)
-- machine variables declarations
variable a: INTEGER;
variable C: array (1 to 8) of Vect;
variable d: INTEGER;
variable i: INTEGER;
variable j: INTEGER;
variable jest: BOOLEAN;
variable jest2: BOOLEAN;
variable jest3: BOOLEAN;
variable jest4: BOOLEAN;
variable k: INTEGER;
variable l: INTEGER;
variable M: array (1 to 8) of Vect;
variable MWspolbX: INTEGER;
variable n: INTEGER;
variable P: Vect;
variable R: Vect;
variable S: Vect;
variable T: Vect;
variable U: Vect;
variable Vect: array (1 to 9) of Integer;
variable W: Vect;
variable X: Vect;
begin
if clk'event and clk = '1' then
Jeśli nawet wstukam deklarację typu jako typ zmiennej, to kompilator
traktuje to jako błąd. Ten kod z FSMa może nie być do końca zgodny z
tym, co chciałem uzyskać, bo w międzyczasie troszkę w nim mieszałem
;-).
W każdym razie nie mogę poradzić sobie z takim skonstruowaniem grafu,
aby uzyskać efekt podobny, jak w pierwszym listingu.
A musisz to opisac grafem w edytorze, czy wystarczy Ci graf, ktory zapiszesz
w VHDL?
Próbowałem zaingerować w wygenerowany już kod, ale FSM przy kompilacji
i tak generuje go bezpośrednio z grafu więc zmiany nie wpływają na
efekt końcowy.
Tak jest niestety we wszystkich znanych mi generatorach FSM. Moze sprobuj
potraktowac wygenerowany opis w VHDL jako plik nowy projektowy (po zmianie
nazwy *.vhd na inna niz FSM) i po zmodyfikowaniu zaimportowac do systemu
projektowego (czego uzywasz docelowo?).
Co do syntezy w FPGA Expresss to będzie chyba problem następny. Nie
mam w domu narzędzi syntezy i implementacji, więc nie jestem w stanie
dokładnie tego w tej chwili sprawdzić. W każdym razie twierdzi, że
oczekiwana jest wartość stała w pętli FOR podczas gdy faktycznie są
tam wartości zadeklarowane jako zmienne. Jednak to może następnym
razem.
Do poslug :)
Pzdr
PZb
--
> Pozdrawiam
> Bartek
> <kiziuk_at_nospam_alpha.net.pl>
> <kiziuk_at_nospam_it.pw.edu.pl>
From: Bartosz Kiziukiewicz <kiziuk_at_nospam_alpha.net.pl>
Subject: =?ISO-8859-2?Q?Re:_Active-HDL_z_FSMem_kto=B6_mo=BFe_u=BFywa=3F?=
Date: Fri, 18 Jan 2002 18:47:30 +0100
On Fri, 18 Jan 2002 00:26:28 +0100, "Redakcja EP"
<piotr.zbysinski_at_nospam_ep.com.pl> wrote:
type Vect is array (1 to 9) of Integer;
type Ma is array (1 to 8) of Vect;
type Ca is array (1 to 8) of Vect;
Nie zrobisz tego w zadnym ze znanych mi generatorow FSM (lacznie z FPGA
Advantage) -> generatory FSM sa przeznaczone do budowy automatow, ktore ze
swej natury operuja na zmiennych. Mozna to natomiast zrobic za pomoca
Ale ja buduję właśnie automat, który ma opierać się na zmiennych
-))))). A że są one zorganizowane w bardziej regularne struktury, to
chyba taki nieistotny szczególik :-)))))))))))))))))))).
A musisz to opisac grafem w edytorze, czy wystarczy Ci graf, ktory zapiszesz
w VHDL?
[ciach]
Próbowałem zaingerować w wygenerowany już kod, ale FSM przy kompilacji
i tak generuje go bezpośrednio z grafu więc zmiany nie wpływają na
efekt końcowy.
Tak jest niestety we wszystkich znanych mi generatorach FSM. Moze sprobuj
potraktowac wygenerowany opis w VHDL jako plik nowy projektowy (po zmianie
nazwy *.vhd na inna niz FSM) i po zmodyfikowaniu zaimportowac do systemu
projektowego (czego uzywasz docelowo?).
To jest projekt z VHDL'a więc nie ma przymusu, że ma być to koniecznie
w FSMie. Zresztą w tej chwili (właśnie ze względu na ograniczenie
modyfikacji kodu FSMa po jego wygenerowaniu oraz na te nieszczęsne
deklaracje typów zrobione mam tak, że podstawową strukturę programu
wygenerowałem sobie w FSMie, potem skopiowałem kod VHDL'a i wkleiłem
go do pustego projektu, a potem dokonałem w nim dość sporych zmian. W
efekcie otrzymałem tak jakby FSM (automat sekwencyjny) ale bez samego
grafu, który sobie ślicznie działa.
Problem jest nieco innej natury. Ze względu na realizowaną w tym
automacie funkcję (wyznaczanie klik grafu) planuję włączenie tego
projektu do mojej pracy dyplomowej. A ponieważ pracujący na FSMie
automat fajnie wygląda (skacze sobie aktywny wierzchołek po grafie)
więc mój wykładowca od techniki cyfrowej stwierdził, że możnaby
obrazowo pokazać komisji, jak taki automat sobie działa :-).
No ale jeśli się nie da, to nie mam się co martwić :-). Jak wyżej
napisałem, ten graf jest raczej sugestią mojego wykładowcy (która jest
dla mnie tym wiążąca, że u niego ten projekt muszę zaliczyć).
Po prostu będzie trzeba wydrukować graf (żeby zachować obrazowość) i
dołączyć go do pracy oraz dołączyć sam program (ten działający). U
mnie nikt nie zna się na automatach więc nie zwróci uwagi, że w FSMie
nie da się wygenerować deklaracji typów ;-). Zresztą robota jest
zrobiona więc można w pracy napisać, że po prostu program tego nie
umożliwia.
Co do syntezy w FPGA Expresss to będzie chyba problem następny. Nie
mam w domu narzędzi syntezy i implementacji, więc nie jestem w stanie
dokładnie tego w tej chwili sprawdzić. W każdym razie twierdzi, że
oczekiwana jest wartość stała w pętli FOR podczas gdy faktycznie są
tam wartości zadeklarowane jako zmienne. Jednak to może następnym
razem.
Do poslug :)
W tygodniu puszczę jeszcze raz syntezę i zobaczę o co dokładnie
krzyczy.
Pierwotnie używałem zamiast wektora-wektorów macierzy dwuwymiarowej do
składowania danych. Ale ponieważ krzyczał, że nie wspomaga macierzy,
więc zmuszony byłem to przerobić na wektory.
I znowu mój wykładowca twierdzi (tak trochę z humorem), że jeśli układ
działa w trybie funkcjonalnym, to robota jest zrobiona, a o syntezę i
implementację niech martwią się spece od sprzętu :-)))). Ale twierdzi
również, że jakieś parametry czasowe przydałoby się w dyplomie podać.
Jeśli to nie problem, to może przeniesiemy dyskusję na priva?
--
Pozdrawiam
Bartek
<kiziuk_at_nospam_alpha.net.pl>
<kiziuk_at_nospam_it.pw.edu.pl>
From: "Redakcja EP" <piotr.zbysinski_at_nospam_ep.com.pl>
Subject: Re: Active-HDL z FSMem ktoś może używa?
Date: Fri, 18 Jan 2002 20:17:17 +0100
type Vect is array (1 to 9) of Integer;
type Ma is array (1 to 8) of Vect;
type Ca is array (1 to 8) of Vect;
Nie zrobisz tego w zadnym ze znanych mi generatorow FSM (lacznie z FPGA
Advantage) -> generatory FSM sa przeznaczone do budowy automatow, ktore
ze
swej natury operuja na zmiennych. Mozna to natomiast zrobic za pomoca
Ale ja buduję właśnie automat, który ma opierać się na zmiennych
-))))). A że są one zorganizowane w bardziej regularne struktury, to
chyba taki nieistotny szczególik :-)))))))))))))))))))).
Wyrywasz z kontekstu -> deklaracja pol dla FSM nie dopuszcza (nawet nie ma
tego za bardzo jak zapisac) "regularnych" struktur. Dobry opis tego problemu
jest w dokumentacji FPGA Advantage (takze ewaluacyjnej) z MG.
A musisz to opisac grafem w edytorze, czy wystarczy Ci graf, ktory
zapiszesz
w VHDL?
[ciach]
Próbowałem zaingerować w wygenerowany już kod, ale FSM przy kompilacji
i tak generuje go bezpośrednio z grafu więc zmiany nie wpływają na
efekt końcowy.
Tak jest niestety we wszystkich znanych mi generatorach FSM. Moze
sprobuj
potraktowac wygenerowany opis w VHDL jako plik nowy projektowy (po
zmianie
nazwy *.vhd na inna niz FSM) i po zmodyfikowaniu zaimportowac do systemu
projektowego (czego uzywasz docelowo?).
To jest projekt z VHDL'a więc nie ma przymusu, że ma być to koniecznie
w FSMie. Zresztą w tej chwili (właśnie ze względu na ograniczenie
modyfikacji kodu FSMa po jego wygenerowaniu oraz na te nieszczęsne
deklaracje typów zrobione mam tak, że podstawową strukturę programu
wygenerowałem sobie w FSMie, potem skopiowałem kod VHDL'a i wkleiłem
go do pustego projektu, a potem dokonałem w nim dość sporych zmian. W
efekcie otrzymałem tak jakby FSM (automat sekwencyjny) ale bez samego
grafu, który sobie ślicznie działa.
Problem jest nieco innej natury. Ze względu na realizowaną w tym
automacie funkcję (wyznaczanie klik grafu) planuję włączenie tego
projektu do mojej pracy dyplomowej. A ponieważ pracujący na FSMie
automat fajnie wygląda (skacze sobie aktywny wierzchołek po grafie)
więc mój wykładowca od techniki cyfrowej stwierdził, że możnaby
obrazowo pokazać komisji, jak taki automat sobie działa :-).
Komisji to chyba nie wzruszy, moze lepiej zrobic jakies demo z wybuchami :))
No ale jeśli się nie da, to nie mam się co martwić :-). Jak wyżej
napisałem, ten graf jest raczej sugestią mojego wykładowcy (która jest
dla mnie tym wiążąca, że u niego ten projekt muszę zaliczyć).
Po prostu będzie trzeba wydrukować graf (żeby zachować obrazowość) i
dołączyć go do pracy oraz dołączyć sam program (ten działający). U
mnie nikt nie zna się na automatach więc nie zwróci uwagi, że w FSMie
nie da się wygenerować deklaracji typów ;-). Zresztą robota jest
zrobiona więc można w pracy napisać, że po prostu program tego nie
umożliwia.
Nikogo nie oklamiesz.
Co do syntezy w FPGA Expresss to będzie chyba problem następny. Nie
mam w domu narzędzi syntezy i implementacji, więc nie jestem w stanie
dokładnie tego w tej chwili sprawdzić. W każdym razie twierdzi, że
oczekiwana jest wartość stała w pętli FOR podczas gdy faktycznie są
tam wartości zadeklarowane jako zmienne. Jednak to może następnym
razem.
Do poslug :)
W tygodniu puszczę jeszcze raz syntezę i zobaczę o co dokładnie
krzyczy.
Pierwotnie używałem zamiast wektora-wektorów macierzy dwuwymiarowej do
składowania danych. Ale ponieważ krzyczał, że nie wspomaga macierzy,
więc zmuszony byłem to przerobić na wektory.
I znowu mój wykładowca twierdzi (tak trochę z humorem), że jeśli układ
działa w trybie funkcjonalnym, to robota jest zrobiona, a o syntezę i
implementację niech martwią się spece od sprzętu :-)))). Ale twierdzi
również, że jakieś parametry czasowe przydałoby się w dyplomie podać.
Jeśli to nie problem, to może przeniesiemy dyskusję na priva?
OK!
Pzdr
PZb
--
> Pozdrawiam
> Bartek
> <kiziuk_at_nospam_alpha.net.pl>
> <kiziuk_at_nospam_it.pw.edu.pl>
From: Bartosz Kiziukiewicz <kiziuk_at_nospam_alpha.net.pl>
Subject: =?ISO-8859-2?Q?Re:_Active-HDL_z_FSMem_kto=B6_mo=BFe_u=BFywa=3F?=
Date: Sat, 19 Jan 2002 10:24:43 +0100
On Fri, 18 Jan 2002 20:17:17 +0100, "Redakcja EP"
<piotr.zbysinski_at_nospam_ep.com.pl> wrote:
Komisji to chyba nie wzruszy, moze lepiej zrobic jakies demo z wybuchami :))
-))
Nikogo nie oklamiesz.
Nie miałem takiego zamiaru.
Jeśli to nie problem, to może przeniesiemy dyskusję na priva?
OK!
Dobra. W tygodniu podziałam z syntezą i się odezwę.
Dzięki.
--
Pozdrawiam
Bartek
<kiziuk_at_nospam_alpha.net.pl>
<kiziuk_at_nospam_it.pw.edu.pl>