Curso VHDL – Primer proyecto, parte 2

Al final de la anterior entrega de este tutorial, agregamos el módulo compuerta_or, en esta realizaremos la simulación del módulo y agregaremos uno más. Empecemos :).

En Project Navigator, sección Design, pasamos View a Simulation, luego seleccionamos el componente compuerta_or y en la ventana Processes doble clic en Simulate Behavioral Model:

Nuevamente se abre ISim Simulator, y de manera similar a la simulación del módulo compuerta_and, evaluaremos las cuatro combinaciones posibles según la tabla de verdad de la operación OR para dos entradas:

B A S
0 0 0
0 1 1
1 0 1
1 1 1


Hacemos clic con el botón derecho sobre la entrada a en la ventana de simulación, pero en esta ocasión no utilizaremos el comando Force Constant…, sino Force Clock…, tendremos esta ventana:

El comando Force Clock… permite indicar que una entrada tendrá valores alternados entre 0 y 1 durante la simulación, es decir, como una señal de reloj. En la ventana Define Clock definimos algunas opciones como el periodo, ciclo de trabajo y el valor del primer pulso, para el caso de nuestra simulación, configuraremos Leading Edge Value a 0 y Trailing Edge Value a 1, mientras que Period será de 100 ns:

Hacemos clic en OK y configuramos de manera similar la entrada b, pero variando el periodo a 200 ns:
.
Bien, ejecutemos la simulación por un tiempo determinado, por defecto 1 us, hacemos clic en el botón Run for the time specified on the toolbar y después en el botón Zoom to Full View, tendremos lo siguiente:

Ahora, haremos clic en el botón Zoom in hasta observar con más detalle los cambios de valor de las señales de la simulación, de ser necesario desplazamos la ventana usando la barra ubicada en la parte inferior:

En la imagen se observan algunos cambios de valor entre 0 y 1 de las señales de entrada a y b, los suficientes para evaluar las cuatro combinaciones diferentes de la tabla de verdad. Estas transiciones las conseguimos al usar la opción Force Clock… para las señales a y b, además, notemos que al configurar el periodo de la señal b como el doble con respecto al periodo de la señal a, las transiciones corresponden de manera exacta con las de la tabla de verdad.
En la imagen podemos ver que nuestro componente funciona correctamente, así que podemos continuar con un módulo más: compuerta_xor.
Para agregar el módulo, seguimos los mismos pasos que con los módulos anteriores, hasta quedar con este código:

----------------------------------------------------------------------------------
-- Compuerta XOR de dos entradas
-- Mexchip - Tutorial VHDL
-- Diciembre 2010
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
 
entity compuerta_xor is
	port (
		a : in  STD_LOGIC;
		b : in  STD_LOGIC;
		s : out  STD_LOGIC
	);
end compuerta_xor;
 
architecture comportamiento of compuerta_xor is
 
begin
 
	s <= a xor b;
 
end comportamiento;

Verificamos la sintaxis (recordemos indicar Implementation en la opción View de la ventana Design, debería resultar:

Antes de proceder con la simulación, recordaremos la tabla de verdad de la operación XOR de dos entradas:

B A S
0 0 0
0 1 1
1 0 1
1 1 0

Ahora si, la simulación, seguimos los pasos que al principio indicamos para simular el componente compuerta_or y deberíamos tener:

Si desplazamos el cursor por la línea de tiempo la columna Value indica los valores para cada señal en el instante de simulación indicado por el cursor, por ejemplo, desplazando el cursor unos instantes después de los 1,150 ns:

La columna Value indica el valor 1 para las señales de entrada a y b, mientras un 0 para la salida s. Observando la línea de tiempo, confirmamos con la simulación que el componente compuerta_xor funciona correctamente :).

En la continuación del tutorial, veremos por primera vez el diseño de tipo estructural, usando los módulos VHDL que hasta este momento hemos desarrollado para crear otro más complejo. ¡Hasta la próxima!

15 thoughts on “Curso VHDL – Primer proyecto, parte 2”

  1. Esta muy bien, solo que me gustaria saber como se simula haciendole un test bench, porfa si tienes informacion enviamela a mi correo. Gracias

    1. Qué tal Mónica, ¿te refieres a un testbench en código o al asistente que en versiones anteriores tenía el entorno ISE?

      En una próxima publicación del tutorial trataremos las simulaciones con testbench en código, mantente al pendiente :).

  2. Excelentes tutos, parece que se va a poner interesante, ahora estoy con los microcontroladores pero ya quiero jugar con los FPGA, los voy a estar siguiendo espero que continuen con sus estupendos tutoriales una pregunta veo que por el nombre mexchip son de México o me equivoco, quiero adquirir una tarjeta de desarrollo FPGA, Spartan 3E, o una Nexys 2, cual recomiendan o donde conseguirlas, por que solo estas las he visto en una tienda en linea que esta en el Distrito Federal.

    saludos

    1. Qué tal S3rgio, muchas gracias por los comentarios :). En efecto, somos de México, concretamente de la región centro del edo. de Veracruz :). No conocemos algún distribuidor en México además de la tienda que comentas, supongo que te refieres a Robodacta ;). Nosotros hemos comprado tarjetas directamente a Xilinx y Digilent y te puedo decir que nos han salido más económicas aún con los impuestos, yo he comprado una Spartan 3 Starter a Xilinx, después dos Spartan 3E Starter a Digilent para un amigo, también conozco compañeros que se han reunido para encargarlas, y por ejemplo, ya dividiendo costos entre todos, la Nexys 2 que ahorita tengo prestada me parece salió en alrededor de $2,100. Creo que hacer una compra directa es la mejor opción en cuanto a costo, sobretodo si tienes la opción de hacerlo a través de alguna institución escolar, en cuanto a inmediatez, creo que Robodacta sería la opción siempre y cuando las tengan en existencia, ya que en ocasiones solamente son bajo pedido.

      Por cierto, ya visité tu blog, está más que interesante, trataré de darle alguna visita a menudo :).

      Nuevamente, gracias por tus comentarios, hasta pronto.

      1. Hola, disculpa, sabes que precio cobran de impuestos? Quiero comprar una Nexy 3, y quiero saber si la van a retener en aduana o llega directo al domicilio?

          1. Hola, en dado caso que cobraran impuestos? como te notifican que tienes que pagar el impuesto? o si lo está reteniendo aduana?
            Saludos.

          2. Como para envíos internacionales Digilent utiliza paquetería privada, ésta se encarga del trámite en aduana y del pago de impuestos si corresponde, por lo que cuando llega el paquete a tu domicilio, los empleados de la paquetería te indican el monto que debes pagar para que se te entregue el paquete. Deben entregarte una nota donde se indique el cobro por parte de la aduana, o debe venir en los documentos que acompañan tu paquete.

          3. Muchas gracías. Una última pregunta. Desde que se compra en internet en qué tiempo tarda en llegar al domicilio?

  3. Muchas gracias por responder, efectivamente era robodacta la que comentaba, ya estuve viendo lo que comentas sobre Xilinx y ese programa universitario, esta muy bueno solo que no se si pueda adquirir cualquier placa (claro solo una ya lei lo terminos ) que ofrecen en ese programa con descuento a mi que soy estudiante, ya que estuve viendo que cuando la vas a comprar te dan la opcion de un boton con precio pero dice academico, solo la basys 2 cuenta con boton de estudiante, se ve muy bien una atlys spartan6, pero solo cuenta con boton academico no se si se refiera a profesores o uso academico (profesores o estudiantes), y una pregunta más debido a que en el formulario te piden pago por tarjeta, tengo poca experiencia en el pago en linea piden numeros de tarjeta, me podrian orientar cuales tendria que dar (de todas formas quiero ir al banco para que me orienten ) ya que no tengo tarjeta y tendria que usar la de mi mamá.

    Saludos.

    1. Los precios académicos están excelentes, aunque en mi caso no he comprado de esa forma porque lamentablemente no tenía cuenta de correo electrónico con dominio de la escuela :(. Para que te los aprueben tienes que proporcionar los siguientes datos:

      * Nombre de tu universidad
      * Tu correo electrónico con dominio de la universidad
      * Nombre de tu profesor(a)
      *Correo electrónico de tu profesor(a) con dominio de la universidad
      Tipo de institución (universidad, técnica, bachillerato…)
      Tipo de usuario (estudiante, profesor, asistente…)
      Departamento o área
      Sitio web del departamento

      Los marcados con * son obligatorios. Como te dije, yo no compré con descuento académico porque no tenía dirección de correo con dominio de la universidad, pero comprando directo me ha salido mejor que comprar aquí en México.

      En cuanto al pago, se necesita tarjeta de crédito, te puedo decir que yo he comprado dos veces en el sitio de Digilent y muchas otras en otros sitios (Amazon, Sparkfun, entre otros), hasta la fecha nunca he tenido problemas, sobre esto te puedo dar las siguientes recomendaciones:

      Nunca realices la compra en una computadora de uso público.
      Siempre ten actualizado tu antivirus y si sospechas que tienes troyanos o malware limpia tu equipo.
      Trata de comprar siempre en sitios reconocidos o de los cuales tengas buenas referencias.

      Cualquier otra duda, con mucho gusto te respondemos, si lo deseas, lo podemos hacer por correo y no por aquí ;).

  4. buen dia disculpa, estoy viendo una tarjeta cpld que me piden en mi escuela, estoy en el tecnologico de saltillo, solo mi pregunta es ustedes cuanto pagaron y cuales impuestos? estuve viendo la informacion para realizar el pedido y solo me carga el costo de transporte por fedex que son 25 dlls eso es todo lo que tengo que pagar a parte del precio por supuesto de la tarjeta? espero puedam orientarme muchas gracias y saludos!

    1. Qué tal, además del precio del producto y del envío, se tiene que hacer un pago por los impuestos de importación, estos no los controla Digilent por lo que no se muestran en su página. El monto de impuesto de importación se calcula en aduana al momento de ingresar al país, tiene que ver con el valor de la mercancía, su tipo y su origen. No sabemos cuánto te cobrarán, pero debe ser un porcentaje del costo de lo que comprarás, estímalo en un 10 a 20%. Lo que si te puedo comentar, es que las compras que hemos hecho a Digilent no nos salió muy caro (ahorita no recuerdo con precisión), pero, en una ocasión conseguimos que en la escuela nos ayudaran y recibieran el pedido (con la dirección de la escuela), en esa ocasión creo recordar que no nos cobraron nada de impuesto :).

Leave a Reply