Lookup tables

M

Mike

Guest
Hi

I just wonder what is a proper way to implement lookup tables in VHDL?
I was thinking of using a Register. The thing is that I have 4 32 bit
input values. So each output bit is determined by the corresponding 4
single input bits which could be mapped than to 16 potentital values.
As I have 32 bit input values I would need a register that is 32*16
times big so that I could make the look up tables in parallel is that
right?

Cheers!
 
On Nov 29, 8:01 am, Mike <M...@yahoo.co.uk> wrote:
Hi

I just wonder what is a proper way to implement lookup tables in VHDL?
I was thinking of using a Register. The thing is that I have 4 32 bit
input values. So each output bit is determined by the corresponding 4
single input bits which could be mapped than to 16 potentital values.
As I have 32 bit input values I would need a register that is 32*16
times big so that I could make the look up tables in parallel is that
right?

Cheers!
So you would need 32 sixteen-entry constant arrays. Index each array
with the 4 input bits.

VHDL constants can be initialized discretely, or with a function call,
if that helps. Depending on surrounding registers, etc. they can be
implemented as distributed rams(roms), or combined as a block
ram(rom).

Andy

Andy
 
So you would need 32 sixteen-entry constant arrays. Index each array
with the 4 input bits.

VHDL constants can be initialized discretely, or with a function call,
if that helps. Depending on surrounding registers, etc. they can be
implemented as distributed rams(roms), or combined as a block
ram(rom).
Thanks for your comment. But all this lookup table have the same
content, so I could just use one lookup table and then multiplexors to
get the right values out of the array?
 
On Nov 29, 8:55 am, Mike <M...@yahoo.co.uk> wrote:
So you would need 32 sixteen-entry constant arrays. Index each array
with the 4 input bits.

VHDL constants can be initialized discretely, or with a function call,
if that helps. Depending on surrounding registers, etc. they can be
implemented as distributed rams(roms), or combined as a block
ram(rom).

Thanks for your comment. But all this lookup table have the same
content, so I could just use one lookup table and then multiplexors to
get the right values out of the array?
Depends on whether you need to use the table for more than one value
simultaneously. If not, then yes, a multiplexer would work. If it is
used simultaneously, the synthesis tool should figure it out and make
multiple copies.

Andy
 

Welcome to EDABoard.com

Sponsor

Back
Top