¿Se supone que debes hacer esto con un FPGA? Escriba un programa en algún lenguaje (C, C ++, Python, Perl ... no importa, siempre que esté familiarizado con él) que genere la siguiente salida.
Primero, el preámbulo:
module BinaryToBCD
(
input [6:0] setting,
output [3:0] tens,
output [3:0] ones
)
always @(setting)
begin
case(setting)
Luego, para cada número del 0 al 99, genere este grupo de líneas:
7'd__: begin
tens = 4'd_;
ones = 4'd_;
end
Rellene los valores apropiados donde está el _
. Un ejemplo de Python:
for k in range(100):
print " 7'd%d: begin" % k
print " tens = 4'd%d;" % (k // 10)
print " ones = 4'd%d;" % (k % 10)
print " end"
print
Finalmente, el postamble:
default: begin
tens = 4'hX;
ones = 4'hX;
end
endcase
end
endmodule
Ahora guarde esto como un archivo .v de Verilog, aliméntelo a su compilador FPGA y deje que haga el trabajo sucio.
Muchas, muchas cosas en los FPGA se reducen a "escribir el código de cualquier manera que resuelva el problema sin demasiados problemas y deje que el compilador haga el trabajo sucio". Los programas generadores de código son tus amigos.