=?utf-8?Q?Kr=C3=B3tszy_zapis_w_VHDL?=
Masz problem? Zapytaj na forum elektroda.pl
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: =?utf-8?Q?Kr=C3=B3tszy_zapis_w_VHDL?=
Date: Fri, 24 Jun 2005 14:42:46 +0200
Witam,
czy zakładając, że
variable x, y, r : std_logic_vector(7 downto 0);
można skrócić zapis takiego wyrażenia (chodzi mi o wektor tych iksów):
r := y and (x(0) & x(0) & x(0) & x(0) & x(0) & x(0) & x(0) & x(0));
Próbowałem
r := y and (others => x(0));
ale niestety Quartus nie chce tego skompilować.
Pozdrawiam
Piotr Wyderski
From: "RobertP." <r_p_u_d_l_i_k_at_nospam_poczta.onet.pl>
Subject: Re: =?UTF-8?B?S3LDs3RzenkgemFwaXMgdyBWSERM?=
Date: Fri, 24 Jun 2005 16:28:19 +0200
Piotr Wyderski wrote:
Witam,
czy zakładając, że
variable x, y, r : std_logic_vector(7 downto 0);
można skrócić zapis takiego wyrażenia (chodzi mi o wektor tych iksów):
r := y and (x(0) & x(0) & x(0) & x(0) & x(0) & x(0) & x(0) & x(0));
Próbowałem
r := y and (others => x(0));
ale niestety Quartus nie chce tego skompilować.
Chyba tak łatwo nie ma. Ja używam funcji którą wcześniej sobie
zdefiniowałem w swoim pakiecie, gdzie wykorzystuję pętlę indeksowaną w
zakresie długości wektora wejściowego robiąc to element po elemencie. W
samym module VHDL wywołanie funkcji wygląda elegancko i syntezuje się (w
XST Xilinxa).
--
Pozdrawiam
RobertP.
From: Andrzej Ekiert <dspicant_at_nospam_tlen.pl>
Subject: Re: =?UTF-8?B?S3LDs3RzenkgemFwaXMgdyBWSERM?=
Date: Fri, 24 Jun 2005 23:22:04 +0200
Piotr Wyderski napisał(a):
variable x, y, r : std_logic_vector(7 downto 0);
r := y and (others => x(0));
Spróbuj r := y and (y'range => x(0));
Pozdrowienia,
--
Andrzej Ekiert
Polskie Forum Microchipa
http://www.ekiert.com/microchip
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: =?utf-8?Q?Re:_Kr=C3=B3tszy_zapis_w_VHDL?=
Date: Fri, 24 Jun 2005 23:45:49 +0200
Andrzej Ekiert wrote:
Spróbuj r := y and (y'range => x(0));
O, zadziałało. Dziękuję. :-)
Pozdrawiam
Piotr Wyderski
From: J.F. <jfox_xnospamx_at_nospam_poczta.onet.pl>
Subject: Re: Krótszy zapis w VHDL
Date: Sat, 25 Jun 2005 00:07:25 +0200
On Fri, 24 Jun 2005 14:42:46 +0200, Piotr Wyderski wrote:
variable x, y, r : std_logic_vector(7 downto 0);
mo¿na skróciæ zapis takiego wyra¿enia (chodzi mi o wektor tych iksów):
r := y and (x(0) & x(0) & x(0) & x(0) & x(0) & x(0) & x(0) & x(0));
Czy ja dobrze rozumiem ze chodzi Ci o:
if (x(0)='1') then r := y else r := B"00000000"
A moze zadziala r=x(0)*y
J.
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Krótszy zapis w VHDL
Date: Sat, 25 Jun 2005 01:08:52 +0200
J.F. wrote:
Czy ja dobrze rozumiem ze chodzi Ci o:
Ty tak, kompilator nie za bardzo: ten kod to fragment d³u¿szej
sekwencji, a konkretnie uk³adu mno¿±cego dwa elementy cia³a
Galois GF(2^8) modulo pewien wielomian -- po wywaleniu z niej
ifów i zast±pieniu ich "obliczanymi" warunkami z³o¿ono¶æ spad³a
z 68 do 59 LE, a czas spad³ z 18,8ns do 15,4 ns. :-)
Przy czym uk³ad jest czysto kombinacyjny i do¶æ g³êboki, jeszcze
siê nie bra³em za pipelining, bo mi inny problem przeszkadza.
Pozdrawiam
Piotr Wyderski
From: nbs <nbs_r_at_nospam_gazeta.pl>
Subject: Re: =?UTF-8?B?S3LDs3RzenkgemFwaXMgdyBWSERM?=
Date: Mon, 27 Jun 2005 02:24:58 +0900
Piotr Wyderski wrote:
Witam,
czy zakładając, że
variable x, y, r : std_logic_vector(7 downto 0);
można skrócić zapis takiego wyrażenia (chodzi mi o wektor tych iksów):
r := y and (x(0) & x(0) & x(0) & x(0) & x(0) & x(0) & x(0) & x(0));
Nie skracaj. Ma byc dobrze a nie pieknie.
R.
From: "Dziadek" <a_at_nospam_b.c>
Subject: Re: Krótszy zapis w VHDL
Date: Mon, 27 Jun 2005 08:18:20 +0200
r := y and (x(0) & x(0) & x(0) & x(0) & x(0) & x(0) & x(0) & x(0));
Jezeli r to std_logic_vector(8 downto 0), to:
r <= (
9 => y,
others => x(0)
);
Dz.
From: "Piotr Wyderski" <wyderskiREMOVE_at_nospam_ii.uni.wroc.pl>
Subject: Re: Krótszy zapis w VHDL
Date: Mon, 27 Jun 2005 11:42:33 +0200
Dziadek wrote:
Jezeli r to std_logic_vector(8 downto 0), to:
r <= (
9 => y,
others => x(0)
);
Oj chyba nie... ;-)
Pozdrawiam
Piotr Wyderski
From: "Dziadek" <a_at_nospam_b.c>
Subject: Re: Krótszy zapis w VHDL
Date: Tue, 28 Jun 2005 08:01:37 +0200
r <= (
9 => y,
others => x(0)
);
Oj chyba nie... ;-)
Sorry, oczywiscie
... 8 => y, ...
Dz.