Ho il seguente codice per un package :
Codice: Seleziona tutto
package arrayout_type is
constant N : integer := 8; -- first member is N bit long
constant M : integer :=4; -- second member is M bit long
-- declaration of a TYPE of an array of M element, each element is a signal that is the output of the M shifters and the M-1 adders
type array_out is array (M-1 downto 0) of std_logic_vector(M+N-1 downto 0);
end package;
Poi in un alto package, che include il primo, scrivo questo:
Codice: Seleziona tutto
package adder_length is
variable dimension : integer;
-- function declaration
function calc_adder_length (N,M : integer) return integer;
end adder_length;
package body adder_length is
-- calcluate the number of internal signal for the adders. Function body.
function calc_adder_length (N,M : integer) return integer is
variable number : integer;
variable accumulator : integer;
begin
number := M;
accumulator :=M;
while(number > 1) loop
if(number mod 2 /= 0) then
number := number/2+1;
else
number := number/2;
end if;
accumulator := accumulator + number;
end loop;
accumulator := accumulator +1; -- finalization.
return accumulator;
end calc_adder_length;
end adder_length;Quello che vorrei fare è la seguente cosa:
Codice: Seleziona tutto
dimension := calc_adder_length(N;M);
type array_out is array (dimension-1 downto 0) of std_logic_vector(M+N-1 downto 0);
Ho provato a mettere quelle 2 righe in molti posti; nel body del secondo package, nella main architecture...ma tutte mi danno errori, come se io non potessi mettere quelle istruzioni li. Per esempio ho provato a mettere la sola prima istruzione nel secondo pacakge e poi la seconda istruzione nell'architecture (prima del begin) ma anche in quel modo non va.
Secondo voi si può fare?

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
