miércoles, 2 de febrero de 2011

Creando Código VHDL desde Multisim – Parte 2

Creando Código VHDL desde Multisim – Parte 1

Continuando con el tutorial de la creación de código VHDL desde un esquemático de Multisim en la primera parte creamos un nuevo diseño PLD en Multisim donde definimos las entradas y la salida del circuito lógico. Ahora vamos a capturar el esquemático, recordemos que nuestro objetivo es la función X=AB+CD, donde A, B, C y D serán entradas de switches (SW0, SW1, SW2, SW3) y X será un LED (LED0).

Seleccionamos el menú Colocar>>Componente… para abrir el buscador de componentes. Cabe mencionar que dado que estamos en modo PLD, la base de datos maestra está limitada y solo encontraremos componentes relacionados con lógica digital. Date un momente para explorar los distintos grupos y familias disponibles en la base de datos de Multisim.

Ahora vamos al Grupo PLD Logic, Familia LOGIC_GATES y seleccionemos el componente AND2 (vamos a necesitar dos compuertas AND), también requerimos una OR. Conectamos el circuito tal como se muestra en la figura siguiente:

multisim fpga

A manera de resumen recordemos q las entradas SW0 hasta SW3 correspondería a switches reales, y la salida LED0 a un indicador, la función lógica estaría embebida en el chip FPGA. Aquí hay una parte de la tabla de verdad para este circuito:

X=AB+CD

A

B

C

D

AB

CD

X

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

0

1

1

0

1

1

Para probar nuestro circuito podemos simplemente conectar señales de entrada y un indicador a la salida, o incluso podemos crear otro circuito que sea de prueba (eso lo dejaremos para otro artículo), por el momento vamos a enfocarnos en la generación del código VHDL. Para esto en Multisim vamos al menú Transferir>>Exportar a PLD…

multisim fpga

En la ventana anterior vemos que hay varias opciones, suponiendo que no tenemos conectada ninguna tarjeta con chip FPGA vamos únicamente a generar los archivos VHDL. Damos clic en Siguiente, seleccionamos una ruta para guardar el archivo, clic en Finalizar y listo. Multisim crea dos archivos con extensión vhd. Estos archivos se pueden abrir con un editor de texto. Aquí está una parte:

multisim fpga

A manera de resumen concluimos que con el nuevo esquemático PLD de Multisim podemos crear un circuito lógico y generar el código VHDL (necesario para programar un FPGA) de manera automática. Por otro lado, este módulo de PLD trabaja muy bien con la tarjeta NI Digital Electronics FPGA Board de National Instruments, la cual es ideal para prácticas de laboratorio. A esta tarjeta se le puede descargar directamente el código VHDL desde Multisim.

Espero les haya gustado este introducción al esquemático PLD, no olviden mandar sus preguntas y comentarios.

Hasta pronto,

Fernando

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

miércoles, 8 de diciembre de 2010

Mejorando la Apariencia de tus Diseños en Multisim

Como buenos ingenieros muchas veces ponemos toda nuestra atención en el diseño y funcionamiento de un circuito, una vez que está listo y necesitamos reportar los resultados simplemente copiamos y pegamos el circuito sin tomar en cuenta la apariencia del mismo; es aquí donde debemos preguntarnos: ¿la captura del circuito está organizada? ¿es fácil de entender? ¿estoy colocando notas que detallen su funcionamiento?

A nivel educacional y profesional es necesario documentar un diseño de la mejor manera pues de esta manera es más entendible y fácil de modificar a futuro. En este artículo muestro las herramientas disponibles en Multisim para mejorar la apariencia de los diseños.

Iniciemos con las anotaciones gráficas: texto, líneas, formas geométricas e imágenes. En Multisim se pueden encontrar estas opciones en el menú Colocar. Para colocar etiquetas de texto basta con seleccionar dicha opción, después dar clic en el espacio de trabajo y capturar el texto deseado:

multisim

Una vez que está colocado el texto podemos cambiarle el tamaño, tipo de letra, etc. Basta con dar clic derecho sobre el texto y seleccionar Fuente… en el menú de contexto. Por cierto, las etiquetas de texto son flotantes, se pueden mover libremente.

Justo abajo de la opción Texto en el menú Colocar de Multisim, se encuentra los Gráficos:

multisim

Con ellos podemos agregar líneas, formas geométricas y hasta importar una imagen bmp:

multisim

Al igual que en el texto, si damos clic derecho sobre una línea o figura geométrica, podemos cambiar su color y estilo de pluma, tipo de relleno y hasta crear flechas.

Mis favoritos son los Comentarios, esta opción también está en el menú Colocar de Multisim. Los comentarios son pequeñas etiquetas de texto que son visibles cuando acercamos el apuntador del mouse:

multisim


También los podemos personalizar dando clic derecho sobre ellos.

Ningún circuito está completo sin su Bloque de Título el cual contiene el título del diseño, nombre del diseñador, etc. Multisim tiene varias plantillas que podemos utilizar, para esto vamos al menú Colocar>>Bloque de Título… y seleccionamos una de las plantillas. Por ejemplo:

multisim

De manera predeterminada los Bloque de Título están en inglés, pero dando clic derecho sobre ellos podemos editarlos. Una vez editados damos doble clic para ingresar la información.

Si requieres imprimir el circuito lo primero que tienes que hacer es configurar las Opciones de Impresión. Estas opciones las encuentras en el menú Archivo de Multisim. Ahí encontraremos la Configuración de Impresión del Circuito: tamaño de hoja, orientación, márgenes, etc. También hay una opción para seleccionar la impresión de los instrumentos.

La próxima vez que diseñes un circuito en Multisim, no olvides utilizar estas opciones para documentarlo mejor.

Hasta la próxima.

Fernando

jueves, 18 de noviembre de 2010

Cómo Crear un Amplificador de Audio LM386 en Multisim

Hace unos días un seguido de este blog de Multisim me comentó que estaba buscando el componente LM386 para simular amplificadores de audio. Este componente no está incluido en la base de datos de Multisim, pero si tenemos el modelo SPICE podemos crearlo utilizando el Asistente de Componentes. Hice una búsqueda en la Web y pude localizar un modelo SPICE para el LM386; cabe mencionar que el modelo no está garantizado, pero en primeras pruebas he obtenido buenos resultados. Asi que a continuación les comparto un tutorial de cómo crear este componente personalizado en Multisim. Si quieres ver un tutorial más básico de creación de componentes visita el artículo Creando Componentes Básicos en Multisim.

El LM386 es un amplificador de potencia para uso en aplicaciones de bajo voltaje, típicamente se utiliza en amplificadores de radio AM-FM. La hoja de especificaciones se puede descargar aquí. El modelo SPICE para el LM386 lo encontré en este foro de discusión. Únicamente copie el modelo al block de notas y lo guardé con la extensión .txt. En la siguiente figura vemos un extracto de este modelo:

multisim

Con la hoja de especificaciones del LM386 y el modelo SPICE ahora vamos a Multisim en Español y seleccionamos el menú Herramientas>>Asistente de Componentes. En el primer paso ingresamos la información general del componente:

multisim

En el paso 2 debemos agregar la información de la huella (footprint) para el componente; esto es necesario en caso que después necesitemos transferir el diseño a Ultiboard para crear el PCB. Para esto se da clic en el botón Seleccione una huella. De acuerdo a la hoja de especificaciones este componente está disponible en varios encapsulados, en este caso yo seleccioné la huella M08A:

multisim


multisim

Ahora podemos editar el símbolo, damos clic en el botón Editar para abrir el Editor de Símbolo en Multisim, es muy fácil utilizarlo. Yo hice un símbolo sencillo:

multisim

Paso 4. Asignamos el tipo de terminal (bidireccional, entrada, etc) a cada pin:

multisim

Mapeamos las terminales del símbolo con las terminales de la huella:

multisim

Muy importante, copiamos y pegamos el contenido del modelo SPICE para el LM386:

multisim

El siguiente paso es bastante crítico y es aquí donde la mayoría de las veces se cometen errores. Aquí debemos mapear los nodos del modelo con las terminales del símbolo. Esta información se encuentra por lo general al principio del modelo SPICE. Si abrimos el archivo de texto que contiene el modelo para el LM386 vamos a ver que la configuración es uno a uno; por ejemplo, el nodo 1 está mapeado a la terminal g1 (Gain 1), nodo 2 con la terminal inn (-Input), etc. No siempre se tiene este caso ideal, por lo que se debe ser cautelosos:

multisim

Listo, guardamos el componente en la Base de Datos de Usuario. Incluso podemos crear una nueva Familia:

multisim

Para probarlo armé una de las aplicaciones típicas contenidas en la hoja de especificaciones. Es un amplificador con ganancia de 20:

multisim

Para una entrada de 1mVp a 500 Hz tenemos la siguiente salida:

multisim

Espero les haya gustado este tutorial y les sea de ayuda.

Saludos!

Fernando

viernes, 22 de octubre de 2010

Creando un Prototipo Virtual en Multisim

Cuando estamos diseñando un circuito en Multisim utilizamos la simulación para darnos una idea del comportamiento del circuito bajo ciertos escenarios. Después esto construimos un prototipo físico al cual conectamos señales reales para obtener mejores resultados. Muy frecuentemente encontraremos desde pequeñas hasta grandes diferencias entre los resultados de la simulación en Multisim y las mediciones reales.

Estas diferencias se deben no solo a que los componentes reales tienen ciertas tolerancias, sino también al hecho de que en simulación con Multisim todas nuestras señales de entrada son ideales, es decir, no están sujetas a ruidos, fluctuaciones, atenuaciones, etc.

Ahora bien, ¿qué pasa si en lugar de utilizar fuentes ideales en la simulación alimentamos nuestro diseño electrónico con datos reales previamente capturados y guardados? Definitivamente que la simulación del circuito en Multisim nos daría resultados más apegados a la realidad. Incluso no habría necesidad de construir el prototipo físico en una etapa temprana del diseño.

Con Multisim esto es posible gracias al concepto del Prototipo Virtual. Para crearlo necesitamos primero capturar la señal de entrada y guardarla en un archivo de formato LVM. Este formato es propietario de LabVIEW y está basado en ASCII. Una vez guardados los datos en formato LVM, mandamos a llamar el archivo mediante una fuente de señal en Multisim, la Fuente de Voltaje LVM LabVIEW; y posteriormente conectamos esta fuente a nuestro circuito.

Veamos esto más a detalle mediante un ejemplo.

El siguiente es un circuito capturado en Multisim que sirve para filtar la señal proveniente de los latidos del corazón. Este circuito es la etapa de un dispositivo médico.



multisim

Para probar dicho filtro en Multisim podríamos conectar un generador de funciones, seleccionar una señal senoidal, probar con diferentes amplitudes y frecuencias, y finalmente analizar los resultados. Sin embargo dichos resultados distarían mucho de la realidad puesto que las señales eléctricas provenientes de los latidos del corazón son arbitrarias. Sin embargo, podemos crear un Prototipo Virtual y probar el circuito con una señal real.

El primer paso es capturar y guardar la señal de interés. Para esto necesitamos algún sensor o transductor y hardware para adquirir datos. Posteriormente utilizaríamos LabVIEW ó LabVIEW SignalExpress para guardar los datos de la adquisición en un formato LVM. Esta etapa va más allá del objetivo de este artículo, pero si les gustaría saber más no duden en decirme.

El correspondiente archivo LVM tiene la siguiente forma:

multisim

Ahora bien, en Multisim vamos a colocar la fuente LVM_VOLTAGE ubicada en el Grupo SOURCES, Familia SIGNAL_VOLTAGE_SOURCES:


multisim
En las propiedades de esta fuente podemos seleccionar el archivo LVM previamente creado:

multisim

Listo, ahora simulamos nuestro circuito en Multisim y obtenemos una mejor respuesta:

multisim

La señal azul son los datos a la entrada de nuestro circuito, los cuales fueron capturados previamente, es una señal real. El color rojo es la señal filtrada después de pasar por el circuito.

Como pueden ver, el Prototipo Virtual es una herramienta poderosa que nos puede ayudar a mejorar nuestros resultados de simulación y probar el circuito sin necesidad de crear un costoso prototipo físico. Claro, una parte clave de este método es la captura de la señal pues se requiere de hardware y software especializado. Si quieren aprender más de esta parte háganmelo saber para escribir un artículo al respecto.

Saludos!

Fernando

martes, 19 de octubre de 2010

Foro de Innovación Tecnológica en Guatemala

La semana pasada tuve el honor de participar en el Foro de Innovación Tecnológica, evento organizado por la Universidad Galileo en Guatemala.

multisim

En este evento estudiantes de diversas carreras como Electrónica, Mecatrónica, Telecomunicaciones y Sistemas de diversas universidades tuvieron oportunidad de conocer nuevas tecnologías e incluso tener una experiencia práctica al participar en una serie de talleres.

Algunos de los temas de este evento incluyeron: uso eficiente de la energía, robótica, escalabilidad de sistemas de Internet, microcontroladores, automatización y por supuesto, simulación de circuitos.

multisim

Por mi parte tuve oportunidad de dar dos pláticas relacionadas con el uso de la simulación de circuitos durante el proceso de diseño electrónico, cómo mejorar los resultados de simulación, y además impartí dos talleres del uso de Multisim para diseño lógico programable y la herramienta de NI ELVIS II para prototipos de circuitos.

multisim


Me encanta participar en este tipo de eventos pues me permite conocer las inquietudes de estudiantes y profesores. De hecho desde mi época de estudiante siempre procuraba asistir a foros, congresos y todo lo relacionado con la industria para mantenerme actualizado en las tecnologías emergentes.



multisim

Regreso muy motivado de este evento y con muchas ideas para seguir creando contenido para este sitio. Contenido que es para ustedes y cuyo objetivo es crear una cultura de compartir información técnica entre estudiantes, profesores e ingenieros de habla hispana.

Gracias a la Universidad Galileo por la invitación, y gracias a ustedes por seguir al tanto de este blog.

Saludos!

Fernando

jueves, 23 de septiembre de 2010

Análisis de Barrido de CD en Multisim

El Análisis de Barrido de CD en Multisim es utilizado para calcular el punto de polarización de un circuito sobre un rango de valores. Esto es, Multisim simula el circuito varias veces barriendo valores CD dentro de un rango predeterminado.

Para conocer más a detalle el Análisis de Barrido de CD en Multisim lo utilizaremos como una herramienta para graficar el comportamiento de un diodo Zener:

multisim
El circuito anterior es un simple regulador Zener donde el diodo mantiene una salida constante a pesar de que la corriente a través de el cambie. En este caso, el diodo 1N4462 tiene un voltaje Zener (Vz) de 7.5V y una tolerancia del 5%. Los valores de entrada de voltaje mínimo y máximos que pueden ser regulados por este diodo son 7.41 V y 26.41 V, respectivamente.

Comprobaremos lo anterior utilizando el Análisis de Barrido de CD en Multisim en un rango de 0 V a 40 V.

En Multisim seleccionemos Simular>>Análisis>>Barrido de CD… y configuremos los parámetros de análisis como se indica:

multisim

Lo anterior indica que vamos a variar V1 (la fuente independiente) desde 0 V hasta 40 V con incrementos de 1 V. El botón Cambiar Filtro puede desplegar variables más avanzadas (por ejemplo: nodos dentro de un modelo BJT). También existe la opción de agregar una segunda fuente independiente, esto es útil para realizar un barrido anidado.

Ahora vamos a la pestaña Salida y agreguemos V(2), el voltaje en el nodo 2, como la variable seleccionada para análisis:

multisim

Damos clic en el botón Simular para realizar el análisis:

multisim

De la figura anterior podemos observar que la salida es estable alrededor de 7.5 V, lo cual es el voltaje Zener nominal del 1N4462. También podemos ver que el rango de de trabajo del diodo Zener concuerda con lo establecido anteriormente.

En la siguiente entrada utilizaremos nuevamente el Análisis de Barrido de CD en Multisim para trazar las curvas características de un MOSFET.

Saludos!

Fernando