Archivos diarios: 11/08/2019

2 entradas

VHDL el tic tac del reloj

VHDL: el tic tac de un reloj a 100 MHzs

Sigo diseñando sencillos circuitos digitales en VHDL. Así que aquí estoy de nuevo con otro code-kata, ahora simulando en el banco de pruebas, el tic tac de un reloj interno que muchos circuitos electrónicos tienen dentro. Es decir, muchas veces tendremos que desencadenar acciones en circuitos al son del tic tac de un reloj o varios. Para simular este tic tac que tendremos que generar estas señales 10101010101.. cambiando de 0 a 1, y de 1 a 0, cada cierto tiempo simulando así una velocidad en Hercios. Por ejemplo, los microprocesadores tienen internamente una señal de reloj, que actualmente suele variar del orden de los 2000-3000 MHzs. En las placas de desarrollo FPGAs podemos tener un reloj de 50-100 MHzs. Así sucesivamente, mediante señales de reloj, podremos disparar acciones y movimientos de los bits de un lado a otro, de un circuito a otro, de un componente a otro. De esta forma es cómo se orquestan realmente las acciones internas de muchos procesamientos digitales..

VHDL unidad aritmetico lógica

VHDL: diseñando una unidad aritmético lógica

Aquí dejo otro code-kata en VHDL, esta vez de una ALU básica con 8 modos de funcionamiento: suma, resta, multiplicación, exponente a 2, complemento a 2, and, or y not. ALU son las siglas de Arithmetic Logic Unit. Se trata de un componente básico de los procesadores. Resumiendo, es un circuito que recibe unas entradas y saca unas señales de salida, destinado a hacer operaciones aritméticas o lógicas como pueden ser la suma, resta, multiplicación, and, or, etcétera. En esta ALU tenemos 3 entradas: 2 de ellas son los números, y la tercera entrada es el modo de funcionamiento (la operación que queremos que haga). En las salidas le he puesto 3 salidas: 1 es el resultado básico para la mayoría de estas operaciones, 1 resultado de multiplicación que es un vector de bits más largo, y una salida de estado que aunque no se en éste código usa la idea es dar una señal de éxito 0 o de error 1.