martes, 25 de enero de 2011

Creando Código VHDL desde Multisim – Parte 1

Creando Código VHDL desde Multisim – Parte 2

El diseño electrónico está cambiando y una de las tendencias es utilizar dispositivos embebidos como los FPGA. Estos dispositivos contienen internamente millones de compuertas lógicas programables y reconfigurables. Nosotros podemos tomar una función lógica, por ejemplo: X=AB+CD, y descargarla al chip FPGA; de manera interna el FPGA ‘quema’ las rutas necesarias para crear dicha función. La ventaja principal de esto radica en el hecho de que la función lógica está en hardware, lo cual ofrece mayor confiabilidad en un sistema.

Para programar FPGAs se utilizar un lenguaje descriptor de hardware, o HDL, siendo el más utilizando VHDL. Este lenguaje está basado en texto por lo cual es necesario conocer la sintáxis del mismo. Para aprender un poco más del código VHDL te recomiendo un tutorial del blog de Ayuda Electrónica, solo da clic aquí.

En Multisim 11 (y posterior) versiones Educacional y Estudiantil existe una nueva carácterística llamada Esquemático PLD (Dispositivo Lógico Programable), y la idea es crear un circuito lógico utilizando compuertas, flip flops,, buffers, etc., y posteriormente crear de manera automática el código VHDL necesario para programar un chip FPGA. Con esto nos ahorramos mucho tiempo de diseño.

Quiero hacer notar que el Esquemático PLD de Multisim se diseñó de tal forma que trabaja de la mano con una tarjeta de National Instruments llamada NI Digital Electronics FPGA Board. Esta tarjeta es excelente para prácticas de electrónica digital y contiene un chip FPGA Xilinx Spartan-3E, además de periféricos como LEDs, switches, etc. Esta tarjeta se conecta via USB a la PC y una vez que el código VHDL que genera Multisim está listo lo podemos descargar al chip FPGA de la tarjeta.

Es posible programar otros chips FPGA que sean de 32 bits y soportados por el software Xilinx ISE, esto requiere de un poco más de trabajo. Si estás interesado házmelo saber para referirte a más recursos.

Veamos un ejemplo del uso del Esquemático PLD en Multisim. Nuestro objetivo será realizar la función X=AB+CD, asi que necesitaremos cuatro entradas (A, B, C y D) y una salida (X), tal como se indica en la figura siguiente:

multisim

Vamos a abrir Multisim y seleccionar Archivo>>Nuevo>>Diseño PLD…

multisim

En este primer paso Multisim nos pregunta si vamos a utilizar la tarjeta digital que les mencioné anteriormente, un nuevo archivo de configuración, o simplemente un proyecto vacío. Voy a seleccionar la primer opción y dar clic en Siguiente:

multisim

El nombre de mi diseño es Funcion Lógica, y el chip FPGA utilizado por la tarjeta digital de NI es XC3S500E. Damos clic en Siguiente:

multisim

En la ventana anterior podemos ver la lista de conectores de entradas/salidas disponibles en la tarjeta digital de NI. Voy a seleccionar los switches SW0, SW1, SW2 y SW3 que corresponderán a las entradas A, B, C y D de mi función lógica; y para la salida X utilizaré el LED0.

Damos clic en Finalizar, Multisim crea un diseño en blanco y coloca las entradas y salidas seleccionadas en el espacio de trabajo:

multisim
Lo que sigue es capturar nuestra circuito lógico, pero eso lo dejaremos para la siguiente parte del tutorial.

Mantente sintonizado y no olvides agregarte a la lista de seguidores del blog, asi te llegarán las actualizaciones.

Saludos!

Fernando