Está en la página 1de 12

Sistemas Digitales

Universidad Don Bosco


Profesor: Virgilio Reyes

Tutorial sobre cmo crear un proyecto VHDL y como probarlo a travs de un diagrama de tiempo

Vamos a disear un multiplexor de 4 canales de entrada (I0, I1, I2 e I3), una salida Z y dos lneas de seleccin
que sern implementadas por medio de un vector (std_logic_vector).
Las variables de entrada a la entidad sern: I0, I1, I2 e I3
La variable de seleccin que representar un vector de entrada de 2 bits ser: S
La variable de salida ser: Z
Paso I: Crear un nuevo proyecto por medio de la opcin New Project Wizard

Paso II: Dar clic en el botn Next de la siguiente imagen

Paso III: Elegir la ubicacin donde ser guardado el proyecto. En mi caso cree una carpeta donde guardar el
proyecto y el nombre de la carpeta que eleg se llama: Demostracion. Ustedes observarn que
automticamente el programa les sugiere que el nombre del proyecto y de la entidad sea igual que la carpeta
donde ustedes guardaran el proyecto. As que queda a discrecin de ustedes si el nombre de la entidad es
igual al de la carpeta, o si lo desean le cambian el nombre al proyecto y a la entidad. En mi caso, los dejare
igual.

Paso IV: La siguiente ventana sirve para agregar algn cdigo fuente que ustedes posean de algn otro
proyecto. En nuestro caso, como no tenemos cdigos fuentes externos que agregar, simplemente damos clic
en el botn Next.

Paso V: Como el software de Quartus fue elaborado para los FPGA Altera, el mismo IDE te da la opcin de
agregar herramientas de terceras partes si lo deseas. Pero nuestro caso no ser ese. Asi que a la siguiente
ventana, dar clic en el botn Next:

Paso VI: En la siguiente ventana seleccionar la familia de FPGA Cyclone y hacer clic en la opcin: No, I want
to allow.
Y por ltimo en la misma ventana dar clic en el botn Finish.

Paso VII: Dar clic en el botn New para agregar un nuevo archivo VHDL

Paso VIII: Escribir el siguiente cdigo VHDL que describe el Hardware del Multiplexor de 4 canales de entrada
que queremos implementar.

Paso IX: Una vez escrito el programa. Dar clic en la siguiente opcin para hacer un Analisis y Sintesis de
nuestro diseo y verificar que no contiene errores de sintaxis.

Paso X: Ahora para probar nuestro diseo de Hardware, crearemos un cronograma de tiempo con las
variables de entrada y salida de nuestra entidad. Para ello dar clic nuevamente en el botn New y seleccionar
la pestaa Other Files y seleccionar la opcin Vector Waveform File.

Paso XI: Cmo nuestra entidad tiene 2 lneas de seleccin en binario, entonces hay 4 combinaciones posibles
para las lneas de seleccin (00,01,10,11). Por lo tanto, si asignamos 20ns (20 nano segundos) por cada
combinacin posible, entonces todo el espectro de tiempo de nuestro sistema ser de 80ns. Por tal motivo,
tenemos que ir al men Edit y seleccionar la opcin End Time como se indica en la siguiente figura:

Paso XII: Ajustamos el tiempo a 80 ns, como se indica a continuacin:

Paso XIII: Ajustar la ventana para que se vea todo el espectro de tiempo de 80 ns.

Paso XIV: Ahora hay que agregar al cronograma de tiempo, todas las variables de entrada y salida de la
entidad. Para ello hay que ir nuevamente al men Edit y seleccionar la opcin Edit Node or Buscomo se
muestra a continuacin:

Paso XV: En la siguiente ventana dar clic en el botn Node Finder

Paso XVI: Dar clic en el botn List para listar todas las entradas y salidas.Despus traspasar todas las
entradas y salidas del lado izquierdo al lado derecho.y dar clic en el botn Ok.

Paso XVII: Despus dar clic en el botn Ok de nuevo, como se muestra a continuacin:

Paso XVIII: Con el paso anterior a usted le aparecer una nueva ventana con el cronograma de tiempo y todas
las variables de entrada y salida de su entidad, tal y como se muestra en la siguiente figura:

Paso XVIIII: Ahora hay que asignar los niveles de voltaje de las seales. Primero comenzamos por el vector S.
Como recordarn el vector S es un vector compuesto por dos variables binarias. En este caso para asignar
las cuatro combinaciones posibles del vector S (00,01,10 y 11), en los que cada uno ocupara 20 ns de
tiempo, se tiene que hacer clic en la lnea de tiempo del vector S y seleccionar el rango de tiempo de 0ns a
20ns. Al seleccionarlo aparecer una ventana como la siguiente, en donde escribiremos el cdigo binario
asociado a las combinaciones de las variables binarias del vector de seleccin S. Para el primer caso
escribimos 00.

Al haber hecho lo anterior, ahora el cronograma de tiempo, especficamente en la lnea de seleccin S,


apareci para los primeros 20ns la combinacin 00, tal y como se muestra en la siguiente figura:

Ahora, realice lo mismo para las siguientes 3 combinaciones restantes (01,10 y 11). Para que el cronograma de
tiempo quede como la siguiente figura:

De la figura anterior, se puede observar que con solo haberle asignado las cuatro combinaciones posibles al
vector S, el mismo software configuro cada elemento del vector S, osea, S*0+ y S*1+.
Ahora que ya estn configurada las 4 combinaciones del vector S, asignaremos los valores de los cuatro
canales de entrada (IO, I1, I2 e I3). Para nuestro ejemplo I0 e I2, valdrn siempre 1 en los 80ns. Y los canales I1
e I3, valdrn 0. Al hacer lo anterior, el cronograma de tiempo de nuestro sistema estar completado y quedara
de la siguiente forma:

Paso XX: Ahora damos clic en el men Assigments y seleccionamos la opcin Settings.

Y en la ventana de Settings, seleccionamos la categora Simulator y despus en la pestaa de Simulation


Mode, damos clic en FunctionalTal y como se muestra en la siguiente imagen. Damos clic en el botn Ok.

Paso XXI: Ahora nos vamos al men Processing y seleccionamos la opcin Start Compilation

Paso XXII: Una vez compilado nuestro programa y que est libre de errores, nos vamos nuevamente al men
Processing y esta vez seleccionamos la opcin Generate Functional Simulation Netlist.

Paso XXIII: Una vez terminado el paso anterior, ahora si podemos correr la simulacin de nuestro programa.
Para ello hacer clic en el icono Start Simulatin, tal y como se muestra en la siguiente figura:

Si la simulacin fue satisfactoria, aparecer una ventana con nuestro cronograma de tiempo ejecutado a partir
de nuestro cdigo VHDL. Recordar que el cronograma de tiempo a lo mejor no muestre todo el espectro de
tiempo y para ello solo hacemos clic en el men View y despus en la opcin Fit in Window Y con esto
nuestro circuito simulado queda de la siguiente manera:

También podría gustarte