How to compute 2^N in VHDL?

Discussion in 'VHDL' started by Fabio G., May 30, 2004.

1. Fabio G.Guest

In my design I have a parametrizable counter.
Then I use a package to define the number of bits of the counter:

constant Nbit_cont : integer :=8;

I also need to define the value of the max countable value+1:

For example, if Nbit_cont is 8, then I define:

constant Count_max : integer :=256;

But I'd want to make this last assignment dependent from the constant
Nbit_cont, with an expression like this:

constant Count_max : integer :=2^Nbit_cont;

....but the " ^ " operator is not recognized by my VHDL compiler.
Is there a solution to this problem?

--
Per rispondermi via email sostituisci il risultato
dell'operazione (in lettere) dall'indirizzo
-*-
To reply via email write the correct sum (in letters)

Fabio G., May 30, 2004

2. Christoph M. WintersteigerGuest

In VHDL there is no ^ operator; It's **, so 2**Nbit_cont should do the
trick.

Greetings,
CM Wintersteiger

On Sun, 30 May 2004 20:39:46 GMT, (Fabio G.) wrote:

>In my design I have a parametrizable counter.
>Then I use a package to define the number of bits of the counter:
>
>constant Nbit_cont : integer :=8;
>
>I also need to define the value of the max countable value+1:
>
>For example, if Nbit_cont is 8, then I define:
>
>constant Count_max : integer :=256;
>
>But I'd want to make this last assignment dependent from the constant
>Nbit_cont, with an expression like this:
>
>constant Count_max : integer :=2^Nbit_cont;
>
>...but the " ^ " operator is not recognized by my VHDL compiler.
>Is there a solution to this problem?

Christoph M. Wintersteiger, May 30, 2004

3. Hernán SánchezGuest

Hi.

Left-Shift by N will do the trick.

Cheers,

Hernán Sánchez

"Fabio G." <> escribió en el mensaje
news:...
> In my design I have a parametrizable counter.
> Then I use a package to define the number of bits of the counter:
>
> constant Nbit_cont : integer :=8;
>
> I also need to define the value of the max countable value+1:
>
> For example, if Nbit_cont is 8, then I define:
>
> constant Count_max : integer :=256;
>
> But I'd want to make this last assignment dependent from the constant
> Nbit_cont, with an expression like this:
>
> constant Count_max : integer :=2^Nbit_cont;
>
> ...but the " ^ " operator is not recognized by my VHDL compiler.
> Is there a solution to this problem?
>
>
> --
> Per rispondermi via email sostituisci il risultato
> dell'operazione (in lettere) dall'indirizzo
> -*-
> To reply via email write the correct sum (in letters)

Hernán Sánchez, May 31, 2004
4. Fabio G.Guest

Christoph M. Wintersteiger <> ha scritto:

>In VHDL there is no ^ operator; It's **, so 2**Nbit_cont should do the
>trick.

Ok, it works!

--
Per rispondermi via email sostituisci il risultato
dell'operazione (in lettere) dall'indirizzo

Fabio G., May 31, 2004