
Este proyecto implementa una ALU de 7 bits con entrada serial y salida paralela. La ALU recibe dos operandos de 7 bits de forma secuencial, realiza la operación seleccionada por las señales de operación y presenta el resultado en paralelo junto con una señal DONE que indica que el cálculo terminó.
El diseño fue desarrollado para Tiny Tapeout y está compuesto por los archivos:
tt_um_alu_7bits.valu_7bits.vcontrolpath.vdatapath.vsipo7.valu_core.vEl sistema trabaja de la siguiente manera:
Reinicio
/RST = 0, el circuito vuelve a su estado inicial.Carga serial de operandos
/RST = 1, el sistema puede comenzar a recibir información.BIT_IN.CLK.Selección de operación
La ALU calcula continuamente el resultado en función de BIT_IN y OP.
La señal OP define la operación:
| OP | Operación |
|---|---|
| 000 | Suma (A + B) |
| 001 | AND |
| 010 | OR |
| 011 | XOR |
| 100 | Resta (A - B) |
| 101 | Incremento (A + 1) |
| 110 | Decremento (A - 1) |
Salida del resultado
DATA_OUT.DONE se activa indicando que la operación ha finalizado.DONE permanece en alto hasta que se realice un nuevo reset.Para probar el circuito, siga este procedimiento:
/RST = 1 para habilitar la entrada de datos.BIT_IN[0]:
CLK) por cada bit ingresado.OP[3:1] con la operación deseada (puede fijarse antes o durante la carga de datos).DATA_OUT[6:0] con el resultado final.DONE[7] en alto cuando el cálculo haya finalizado.Si se desean sumar:
7'd257'd12000Entonces, al finalizar la carga, la salida debe mostrar:
DATA_OUT = 7'd37DONE = 1No se requiere hardware externo adicional para su funcionamiento básico.
En una prueba práctica pueden utilizarse:
/RSTBIT_IN y OPDATA_OUT y DONE| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | BIT_IN | DATA_OUT0 | |
| 1 | OP0 | DATA_OUT1 | |
| 2 | OP1 | DATA_OUT2 | |
| 3 | OP2 | DATA_OUT3 | |
| 4 | DATA_OUT4 | ||
| 5 | DATA_OUT5 | ||
| 6 | DATA_OUT6 | ||
| 7 | DONE |