=?utf-8?Q?Kr=C3=B3tszy_zapis_w_VHDL?=



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Nastêpny
Wiadomo¶æ
Spis tre¶ci
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


Poprzedni Nastêpny
Wiadomo¶æ
Spis tre¶ci
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.

Poprzedni Nastêpny
Wiadomo¶æ
Spis tre¶ci
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

Poprzedni Nastêpny
Wiadomo¶æ
Spis tre¶ci
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



Poprzedni Nastêpny
Wiadomo¶æ
Spis tre¶ci
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.


Poprzedni Nastêpny
Wiadomo¶æ
Spis tre¶ci
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


Poprzedni Nastêpny
Wiadomo¶æ
Spis tre¶ci
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.

Poprzedni Nastêpny
Wiadomo¶æ
Spis tre¶ci
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.



Poprzedni Nastêpny
Wiadomo¶æ
Spis tre¶ci
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


Poprzedni Nastêpny
Wiadomo¶æ
Spis tre¶ci
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.