Jak określić rozmiar wektora wyjściowego w liczniku modulo n w VHDL?

[VHDL] Licznik modulo n





Poprzedni Następny
Wiadomość
Spis treści
From: "rwpg" <www_at_nospam_wp.pl>
Subject: [VHDL] Licznik modulo n
Date: Tue, 8 Jun 2004 19:50:24 +0200


Witajcie grupowicze!

Chcę stworzyć ogólny licznik modulo n, gdzie n było by parametrem modułu.
Interfejs Licznika wyglądałby mniej więcej tak:

entity modulo_counter is
generic (n: positive);
port (
clk, enable, reset: in std_ulogic;
q: out std_ulogic_vector (???? downto 0)
);
end entity modulo_counter;

Co powinienem wstawić zamiast "????" ?
Wiem, że powinna być (i tak chcę!) to wartość równa

sufit (log2 (n)) -1,

ale jak to mam wyrazić w języku VHDL?

-- rwpg


========
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mai

Poprzedni Następny
Wiadomość
Spis treści
From: "rwpg" <www_at_nospam_wp.pl>
Subject: Re: [VHDL] Licznik modulo n
Date: Tue, 8 Jun 2004 20:03:58 +0200


rwpg wrote:
Wiem, że powinna być (i tak chcę!) to wartość równa

sufit (log2 (n)) -1,

ale jak to mam wyrazić w języku VHDL?

Chyba trochę pospieszyłem się z pytaniem i nie poszukałem dobrze zanim je
ogłosiłem...

Znalazłem już, że nie ma w bibliotekach VHDL operatora log2, ale znalazłem
jak można taką funkcję utworzyć samemu:

function Log2(
input : integer ) -- input number
return integer is
variable temp, log : integer;
begin
assert input /= 0
report "Error : function missuse : log2(zero)"
severity failure;
temp := input;
log := 0;
while (temp /= 0) loop
temp := temp/2;
log := log+1;
end loop;
return log;
end log2;

Czy są jeszcze jakieś inne podejścia do problemu?

-- rwpg


========
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news-stoc.telia.net!217.209.241.210.MISMATCH!news-stod.telia.net!telia.net!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mai