Últimas entradas del blog

VHDL: el tic tac de un reloj a 100 MHzs

2019-08-11 - Categorías: VHDL
VHDL simulando 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..

Continuar leyendo..

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

2019-08-11 - Categorías: VHDL
VHDL diseñando una ALU.

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.

Continuar leyendo..

VHDL: uniendo circuitos, un sumador completo de 4 bits

2019-08-08 - Categorías: VHDL
VHDL port map haciendo un sumador completo de 4 bits.

Sigo poniéndome al día en electrónica digital, diseñando circuitos digitales. Así que aquí vuelvo con otro code-kata para hacer un sumador de varios bits. Para este sumador reutilizo un componente previamente hecho, diseñando un sumador completo de 4 bits.

Es decir, en un post anterior escribí un sumador completo simple de 1 bit. Ahora con la instrucción de VHDL llamada port map, podemos enlazar tantos componentes como necesitemos en circuitos más grandes. Usando port map es la forma que tenemos de escalar tanto como queramos, todos los circuitos que queramos en sistemas digitales cada vez más grandes.

Continuar leyendo..

VHDL: restador completo de 1 bit

2019-08-05 - Categorías: VHDL
VHDL restador completo de 1 bit
VHDL restador completo de 1 bit.

Aquí dejo otro code-kata en VHDL, ahora para construir un restador completo de 1 bit. Recibe 3 entradas y saca 2 salidas. Es muy parecido al sumador completo del post anterior.

Continuar leyendo..

VHDL: sumador completo de 1 bit

2019-08-05 - Categorías: VHDL
VHDL sumador completo 1 bit.

Traigo un code-kata de un circuito digital. Se trata de un sumador completo de 1 bit. Es decir, es un circuito con 3 entradas y 2 salidas. Las tres entradas son: un acarreo, y los dos bits que vamos a sumar.

Continuar leyendo..

Symfony: tutorial 16: la seguridad

2019-08-03 - Categorías: PHP / Symfony

La seguridad no es una de las asignaturas difíciles en Symfony. Puede ser difícil en otras aplicaciones web hechas a medida, pero en Symfony, siguiendo unas pocas directrices, conseguiremos aplicaciones web muy seguras. Symfony nos provee de mecanismos fáciles de configurar, de métodos de programación para usar allí donde necesitemos estas capas de seguridad. Además de que hay componentes, hechos por expertos en seguridad, para nuestros proyectos.

Este es un post muy teórico, en donde dejo las pinceladas principales para luego ahondar más en cada tema. Y también he tratado de dejar un caso de uso a modo de codekata, como viene siendo costumbre en la serie de tutoriales de iniciación a Symfony. Usando en Symfony los componentes recomendados, y unas pocas directrices, conseguiremos aplicaciones web muy seguras sin ser necesariamente expertos en seguridad web.

Continuar leyendo..

VHDL: multiplexor de 4 a 1 con selección de 2 bits

2019-08-02 - Categorías: VHDL
VHDL multiplexor 4 a 1 son selección de 2 bits

Code-kata para generar un circuito de un multiplexor. En este caso es un multiplexor que recibe 4 señales de entrada y las encauza en una salida eligiendo con otras dos señales de entrada cuál tiene que encauzar a la salida.

Es decir, los 2 pins de entrada para seleccionar nos permiten 4 posibilidades: 00, 01, 10 y 11. Esto nos permite, suponiendo que tenemos 4 señales de entrada x0, x1, x2 y x3; que si seleccionamos 00 en la salida saldrá la señal de entrada x0, si ponemos 01 saldrá la señal x1, si ponemos 10 saldrá la señal x2 y si ponemos en selección 11 saldrá la señal de entrada x3 por la única salida que hay.

Continuar leyendo..

VHDL: decodificador BCD de 4 bits para display de 7 segmentos

2019-08-02 - Categorías: VHDL
VHDL decodificador 4 bits para display de 7 segmentos.

Code-kata para mostrar en un display de siete segmentos números en binario que van desde el 0 al 9. Es un sencillo circuito que se puede encadenar con otros para mostrar los dígitos que sean necesarios. Esto es lo que se llama un decodificador BCD de 4 bits para un display de 7 leds, en este caso.

No tiene mucho que explicar simplemente que es un circuito que convierte las señales de entrada de 4 bits en una señal de salida de 7 bits. Las de entrada son números en binario del 0 al 9. Mientras que las de salida simplemente encienden o apagan los segmentos para pintar el número que toque.

Continuar leyendo..

VHDL: decodificador 4 a 16

2019-07-31 - Categorías: VHDL
GTKWave señales del banco de pruebas de un decodificador 4 a 16.

Otro code-kata traigo ahora. Se trata de un decodificador que tiene 4 pines de entrada y 16 de salida. Le falta la señal de habilitado/deshabilitado. Puede servir para activar 16 cosas, en función a una señal de entrada de 4 bits, como paso intermedio en el viaje de la información por los circuitos, etc..

Continuar leyendo..

VHDL: los ladrillos básicos; and, or, not, nand, nor, xor y xnor

2019-07-31 - Categorías: VHDL
VHDL puertas lógicas básicas.

Dejo aquí un code-kata a modo de apunte de consulta. Se trata de un código no sintetizable, ya que no tiene entradas ni salidas, sólo es a modo de pruebas. Una entidad sin entradas ni salidas que asigna concurrentemente señales x y para visualizar en GTKWave los resultados de las puertas lógicas.

Sin muchas explicaciones, es más sencillo leer el código. Tenemos dos partes principales en los ficheros .vhd: la del entity y la del architecture que define el entity.

Continuar leyendo..

VHDL: diseñando hardware con software libre

2019-07-28 - Categorías: VHDL

Con este post comienzo con una serie de apuntes sobre el lenguaje de definición de hardware VHDL. Para los nuevos, VHDL no es un lenguaje de programación, sino un lenguaje de definición. Me explico, no lo confundamos o hablaremos piedras. Algunos lo llaman Very Hight Difficult Language 😀 difícil es, pero en realidad las siglas vienen del VHSIC (Very High Speed Integrated Circuit) y HDL (Hardware Description Language).

Resumiendo, VHDL es un lenguaje de descripción de hardware, con el que podemos definir y probar hardware, antes de pedir su fabricación a mayor escala. También podemos inyectar el diseño generado en FPGAs para usar directamente en los prototipos, ya viendo después si conviene sintetizarlo o no, y con qué tecnología.

Continuar leyendo..

Raspberry Pi: el manejo básico del GPIO con sysfs

2019-06-20 - Categorías: GNU/Linux
Raspberry Pi

Cada loco con su tema ? pues yo aquí que sigo con la Raspberry Pi, como niño con juguete nuevo.. ? En un post anterior estuve escribiendo sobre el GPIO desde el punto de vista del programador PHP, y con Symfony. Sigo quitando capas, mientras que voy aprendiendo, y aquí que he llegado al sistema de ficheros..

Cité que podíamos tener acceso directo al hardware, pero realmente me equivocaba, no es acceso directo al hardware, sino a través del sistema de ficheros, ya que estaba usando PHP. Después de unas cuantas pruebas, así como haciendo Machine Learning 😀 me corrijo a mi mismo, y también me corregí los errores del post anterior.

Continuar leyendo..

© 2024 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.