Hay dos formas diferentes en que el término "tabla de búsqueda" se usa en el diseño de FPGA que podría confundirlo.
Primero, el bloque de construcción principal de la lógica combinatoria en un FPGA se llama una tabla de búsqueda, pero generalmente se abrevia como LUT . Esto es solo un pequeño elemento de RAM que toma 4 o 5 o 6 entradas (dependiendo del tipo de FPGA que tenga) y lo utiliza para seleccionar un bit de la memoria para ser enviado.
En segundo lugar, más generalmente, una tabla de búsqueda es simplemente lógica que toma entradas y tiene una salida definida para cada combinación de esas entradas, como una tabla lógica que usarías para el diseño de lápiz y papel. Dado que una LUT de hardware en un FPGA no es lo suficientemente grande como para implementar un sumador de 4 bits, este es probablemente el tipo de tabla de búsqueda que se incluye en su problema.
En Verilog, una tabla de búsqueda generalmente se implementa con una declaración de caso. Por ejemplo, para implementar una puerta XOR de 2 entradas con una tabla de búsqueda que podría escribir,
reg out;
wire [1:0] in;
always @(in)
case(in)
2'b00 : out = 0;
2'b01 : out = 1;
2'b10 : out = 1;
2'b11 : out = 0;
endcase
Para su multiplicador de 4 entradas, es probable que desee utilizar la concatenación de bits para formar los bits de entrada:
wire [3:0] A;
wire [3:0] B;
...
case ({A, B})
...
endcase
Y la declaración de su caso tendrá 256 líneas.