29
Sistemas digitales II. Guía 5 1 Circuitos síncronos. Que el alumno diseñe e implemente circuitos con utilización de señales síncronas basadas en el reloj interno de la FPGA. Conocer el entorno grafico de Quartus II. Utilizar VHDL para definir contadores. Diseñar circuitos astables con frecuencias específicas. Diseñar circuitos monoestables con tiempos predefinidos. Qué el alumno pueda utilizar la tarjeta Cyclone III para realizar el diseño de sus propios circuitos digitales. 1 Computadora con Quartus II instalado. 1 tarjeta Cyclone III Starter Board - EP3C25F324, con cable USB y fuente de alimentación. 20 cables (jumpers) hembra macho. 1 Tarjeta I/O – led’s e interruLes pLetores. 1 Tarjeta con display. 1. Desarrollar el código VHDL de la investigación complementaria para probarlos sobre la tarjeta Cyclone III. Figura 1: Diagrama de bloques funcional de la tarjeta de inicio ciclón III FPGA. Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Sistemas Digitales II. Lugar de Ejecución: Microprocesadores (3.23). Objetivo General. Objetivo Específicos. Material y equipo. Tarea previa. Introducción teórica

Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

  • Upload
    others

  • View
    33

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 1

Circuitos síncronos.

Que el alumno diseñe e implemente circuitos con utilización de señales síncronas basadas enel reloj interno de la FPGA.

Conocer el entorno grafico de Quartus II. Utilizar VHDL para definir contadores.

Diseñar circuitos astables con frecuencias específicas. Diseñar circuitos monoestables con tiempos predefinidos. Qué el alumno pueda utilizar la tarjeta Cyclone III para realizar el diseño de sus propios circuitos

digitales.

1 Computadora con Quartus II instalado. 1 tarjeta Cyclone III – Starter Board - EP3C25F324, con cable USB y fuente de alimentación. 20 cables (jumpers) hembra – macho. 1 Tarjeta I/O – led’s e interruLes pLetores. 1 Tarjeta con display.

1. Desarrollar el código VHDL de la investigación complementaria para probarlos sobre la tarjetaCyclone III.

Figura 1: Diagrama de bloques funcional de la tarjeta de inicio ciclón III FPGA.

Facultad: Ingeniería.Escuela: Electrónica.Asignatura: Sistemas Digitales II.Lugar de Ejecución: Microprocesadores (3.23).

Objetivo General.

Objetivo Específicos.

Material y equipo.

Tarea previa.

Introducción teórica

Page 2: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 2

Figura 2: Tarjeta Cyclone III - EP3C25F324 FPGA marca Altera.

Figura 3: PInOut de pulsadores y led’s de tarjeta Cyclone III, Altera.

Page 3: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 3

Parte I: Creación de proyectos en Quartus II.1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio .2) Dé clic izquierdo en el menú File >> New Project Wizard…3) En la ventana de la figura 4 dé clic izquierdo en el botón Next>.

Figura 4: Asistente de creación de proyectos en Quartus II - Altera.

4) Cree la carpeta FFD donde alojara su proyecto,ubique la dirección donde se guardarán losproyectos y asigne el nombre FFD a este proyecto, conforme al nombre de la entidad que sequiere realizar, ver figura 5.

Figura 5: Asistente de creación de proyectos en Quartus II - Altera.

Procedimiento.

Page 4: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 4

5) Si ya posee archivos que agregar al proyecto agréguelos en la ventana de la figura 6 por mediodel botón de puntos suspensivos y luego Add; sino solo dé clic izquierdo en el botón Next>.

Figura 6: Agregando archivos al proyecto en Quartus II - Altera.

6) Seleccione las características y/o valores descritos en la Tabla 1 y figura 7, según cada uno delos campos:

Figura 7: Seleccionando tarjeta Cyclone III en Quartus II - Altera.

Page 5: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 5

Campo ValorFamily Cyclone IIITarget device Specific device selected in ‘Available devices’ listPackage FBGAPin count 324Speed grade 6Available devices EP3C25F324C6

Tabla 1: Especificación de tarjeta Cyclone III – Altera propiedad UDB.

7) Una vez que haya elegido las opciones descritas en el punto anterior dé clic en el botón Next>de la figura 7.

8) En la ventana de la figura 8, seleccione en el campo Design Entry / Synthesis la opción DKDesign Suite y luego dé clic izquierdo en el botón Next>.

Figura 8: Herramientas de EDA en Quartus II - Altera.

9) En la ventana de la figura 9, dé clic izquierdo en el botón Finish.10) La ventana de Quartus II debería de haberse modificado en su recuadro superior izquierdo

alojando el nombre del proyecto elegido (FFD) para este ejemplo, según la secuencia de figuras4 a la 9). Ver figura 10.

Page 6: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 6

Figura 9: Ventana resumen de la creación del proyecto en Quartus II - Altera.

Figura 10: Proyecto FFD en Quartus II - Altera.

Page 7: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 7

Creación de archivos VHDL en Quartus II.11) Abra el editor con: File > New con lo que abrirá la ventana de dialogo de la figura 11, marque

la opción VHDL File y presione OK.

Figura 11: Creación de archivos VHDL en Quartus II - Altera.

12) Se abrirá una página en blanco para que digite su código. Como ejemplo escriba el códigomostrado a continuación:

Library IEEE;Use IEEE.STD_LOGIC_1164.ALL;--------------------------------------------Entity FFD is

Port ( d, clk, rst: in STD_LOGIC;q, qn: out STD_LOGIC);

end FFD;--------------------------------------------architecture Behavioral of FFD isbegin

process(clk, rst)begin

if(rst=ꞌ1ꞌ) thenq <= ꞌ0ꞌ;qn<= ꞌ1ꞌ;

elsif(clkꞌevent and clk=ꞌ1ꞌ) thenq <= d;qn<= not(d);

end if;end process;

end Behavioral;

--------------------------------------------

Código 1: VHDL para creación de FF – D en Quartus II - Altera.

13) Guarde el archivo en una ubicación conocida (de preferencia dentro de la carpeta donde creó elproyecto) con el nombre elegido en los pasos 4 y 10 (FFD.vhd) o verifique la figura 5.

Page 8: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 8

Figura 12: Descripción de iconos de Quartus II - Altera.

Sintetizando el código en Quartus II.14) En el cuadro inferior izquierdo de Quartus II, dé doble clic izquierdo en el icono a la izquierda

de la opción Analysis & Synthesis.o

15) En el cuadro inferior izquierdo de Quartus II, dé clic derecho en Analysis & Synthesis yseleccione la opción Start.

Verificando el diagrama esquemático (simplificado)en Quartus II.16) En el cuadro inferior izquierdo de Quartus II, expanda Netlist Viewers, dé clic derecho en RTL

Viewer y seleccione la opción Open (Ver figura 13). Se desplegará una ventana en la que podráver la sintetización del código (modelo simplificado en figura 14).

Figura 13: Verificación de RTL Viewer en Quartus II - Altera.

Page 9: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 9

Figura 14: Verificación de RTL Viewer en Quartus II - Altera.

Verificando el diagrama esquemático (explicito - detallado) en Quartus II.17) En el cuadro inferior izquierdo de Quartus II, dé clic derecho en Technology Map Viewer

(Post-Mapping) y seleccione la opción Open. Se desplegará una ventana en la que podrá ver lasintetización del código (modelo detallado en figura 15).

Figura 15: Verificación de Technology MapViewer en Quartus II - Altera.

Simulación de la aplicación creando archivos de prueba (Test Bench - vht) en Quartus II.18) En Quartus – II, dé clic izquierdo en: Assignments >> Settings.19) En la ventana abierta, seleccione EDA Tool Settings en el panel izquierdo, en la sección

Simulation en la parte derecha seleccione: ModelSim-Altera y dé clic izquierdo en OK.20) En Quartus – II, dé clic izquierdo en Tools >Options…21) En la ventana abierta, seleccione la opción EDA Tools Options del panel izquierdo y verifique

la dirección de la ubicación del simulador (ModelSim-Altera):Windows: C:\altera\13.1\modelsim_ase\win32aloemLinux: /home/user/altera/13.1/modelsim_ase/bino /home/user/altera/13.1/modelsim_ase/linuxaloem

Page 10: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 10

Figura 16: Settings ModelSim – Altera, Quartus II.

Figura 17: Options ModelSim – Altera, Quartus II.

22) Para crear el archivo de simulación, dé clic izquierdo en: Processing >> Start >> Start TestBench Template Writer tal como lo indica la figura 18. Revisar la ruta de la ubicación delarchivo en la parte inferior de Quartus II, en Type Message(ver figura 19).

Page 11: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 11

Figura 18: Generación de Test Bench – Altera, Quartus II.

Figura 19: Sección de mensajes – Altera, Quartus II.

23) Dé clic izquierdo en File >> Open para abrir el archivo con extensión .vht (figura 20), de sernecesario modifique la sección Files of type a Test Bench Output Files (*.vht *.vt) o All Files(*.*), para que se muestre el archivo recién creado.

Figura 20: Abrir archivos con extensión .vht, Quartus II.

Page 12: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 12

24) Introduzca los estímulos (cambios o asignaciones en las variables de entrada):

-- Copyright (C) 1991-2013 Altera Corporation-- Your use of Altera Corporation's design tools, logic functions-- and other software and tools, and its AMPP partner logic-- functions, and any output files from any of the foregoing-- (including device programming or simulation files), and any-- associated documentation or information are expressly subject-- to the terms and conditions of the Altera Program License-- Subscription Agreement, Altera MegaCore Function License-- Agreement, or other applicable license agreement, including,-- without limitation, that your use is for the sole purpose of-- programming logic devices manufactured by Altera and sold by-- Altera or its authorized distributors. Please refer to the-- applicable agreement for further details.-- ***************************************************************************-- This file contains a Vhdl test bench template that is freely editable to-- suit user's needs.Comments are provided in each section to help the user-- fill out necessary details.-- ***************************************************************************-- Generated on "12/31/201620:16:28"-- Vhdl Test Bench template for design: FFD-- Simulation tool : ModelSim-Altera (VHDL)

LIBRARY ieee;USE ieee.std_logic_1164.all;

ENTITY FFD_vhd_tst ISEND FFD_vhd_tst;

ARCHITECTURE FFD_arch OF FFD_vhd_tst IS-- constantsConstant clock_period: time := 10 ns;-- signalsSIGNAL clk: STD_LOGIC;SIGNAL d : STD_LOGIC;SIGNAL q : STD_LOGIC;SIGNAL qn : STD_LOGIC;SIGNAL rst : STD_LOGIC;

COMPONENT FFDPORT (clk : IN STD_LOGIC;d : IN STD_LOGIC;q : OUT STD_LOGIC;qn : OUT STD_LOGIC;rst : IN STD_LOGIC);

END COMPONENT;

BEGINi1 : FFDPORT MAP (

-- list connections between master ports and signalsclk => clk,d => d,q => q,qn => qn,rst => rst

);

-- Clock process definitionsclock_process : processbegin

clk <= '0';wait for clock_period/2;clk <= '1';wait for clock_period/2;

end process;

Page 13: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 13

init : PROCESS-- variable declarationsBEGIN

-- code that executes only onceWAIT;END PROCESS init;

always : PROCESS-- optional sensitivity list-- ( )-- variable declarationsBEGIN-- code executes for every event on sensitivity list

Rst <= ꞌ1ꞌ;d <= ꞌ0ꞌ;wait for 10 ns;d <= ꞌ1ꞌ;wait for 10 ns;rst <= ꞌ0ꞌ;d <= ꞌ0ꞌ;wait for 10 ns;d <= ꞌ1ꞌ;wait for 10 ns;

WAIT;END PROCESS always;END FFD_arch;

Código 2: VHDL para testbench de FF – D en Quartus II - Altera.

25) En Quartus – II, dé clic en: Assignments >> Settings (o la combinación de teclas: Ctrl + Shift+ E).

26) Seleccione Simulation en el panel izquierdo, y habilite en el panel derecho: Compile testbench, agregue el test bench creado en los puntos 22 al 24, dando clic izquierdo en el botón enTest Benches…

Figura 21: Compilararchivos Test Bench, Quartus II.

Page 14: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 14

27) Dé clic izquierdo en el botón New de la ventana de la figura 22.

Figura 22: Compilar archivos Test Bench, Quartus II.

28) En la ventana de la figura 23, especifique nombres para: Test Bench name: FFD, Top LevelModule in Test Bench: FFD_vhd_tst, habilite Use test bench to perform VHDL timingsimulation, en el campo Design instance name in test bench seleccione el nombre que tiene lainstancia: i1 (para este caso), en el campo End simulation at: coloque un valor acorde altiempo ejecutado en las pruebas (para este caso 40 ns) y dé clic izquierdo en el botón …

Figura 23:Compilararchivos Test Bench, Quartus II.

29) Busque el archivo con extensión vht (FFD.vht) y dé clic en el botón Open, tal como se muestraen la figura 24).

30) Por último dé clic izquierdo en el botón Add y luego en el botón Ok en la ventana de la figura23.

Page 15: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 15

Figura 24:Compilar archivos Test Bench, Quartus II.

31) Dé clic izquierdo en el botón Ok de la ventana de la figura 22.32) Dé clic izquierdo en el botón Ok de la ventana de la figura 21.33) Dé clic izquierdo en Tools >> Run Simulation Tool >> RTL Simulation (o dé clic izquierdo

en el icono RTL Simulation, ver figura 25).

Figura 25: Simulación en ModelSim – Altera, Quartus II.

Nota: RTL Simulation Simulación funcional (Modelsim®, Quartus II). Verificar el modelo lógico y el flujo de datos (Sin retrasos de tiempo).

Page 16: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 16

34) En la ventana ModelSim ALTERA STARTER EDITION 10.1d, dé clic izquierdo en el botónZoom Full (F), de la ventana (figura 26), y expanda las variables para ver el comportamientoindividual de entradas y salidas.

Figura 26: Simulación en ModelSim – Altera, Quartus II.

Asignación de pines en Quartus II.35) Se utilizará la herramienta Pin Planner. En Quartus dé clic izquierdo en la opción

Assignments >> Pin Planner, ver figura 27 (o presione Ctrl + Shift + N)

Figura 27: Asignación de pines, Pin Planner, Quartus II - Altera.

36) En la ventana de la figura 28 dé doble clic izquierdo en cada una de las celdas de la columnaLocation para asignar cada pin físico correspondiente al nombre de la variable del códigoVHDL de la columna Node Name.

37) Asigne los valores conforme a la tabla 2.

Page 17: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 17

Figura 28: Asignación de pines, Pin Planner, Quartus II - Altera.

Variables delcódigo VHDL

Nombre de lospines de la FPGA Nombre de señal I/O Standard

clk B9 CLK11 3.3-V LVTTLd F1 BUTTON1 3.3-V LVTTLq P12 LED2 3.3-V LVTTLqn P13 LED1 3.3-V LVTTLrst F2 BUTTON2 3.3-V LVTTL

Tabla 2: Tabla de asignaciones de pines conforme al circuito de la figura 14.

38) En la ventana del Pin Planner, dé clic izquierdo en el menú: Processing >> Start I/OAssignment Analysis.

39) Cierre la ventana del Pin Planner en: File >> Close.40) O puede realizar la compilación en Quartus II, dando clic izquierdo en el botón Start

Compilation.

Figura 29: Realizar compilación, Quartus II - Altera.

Programando la tarjeta Cyclone III.41) Conecte la tarjeta Cyclone III a su fuente de alimentación y con el cable USB a la computadora.42) Encienda la tarjeta y en Quartus II, dé clic izquierdo en Tools >> Programmer.43) Se desplegará la ventana de la figura 31, por defecto se carga el archivo a programar. En caso

de que no se cargará el archivo es necesario agregar el archivo, dando clic en el botón Add Filey luego se debe indicar la ruta del archivo a programar con extensión .sof(…FFD/output_files/FFD.sof) ver figura 32, que es en donde se guardó el proyecto de estapráctica y dé clic en el botón Open.

Page 18: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 18

Figura 30: Programando la FPGA, Programmer, Quartus II - Altera.

Figura 31: Programando la FPGA, Programmer, Quartus II - Altera.

Figura 32: Programando la FPGA, Programmer, Quartus II - Altera.

Page 19: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 19

44) Dé clic izquierdo en el botón Hardware Setup (ver figura 31) y se abre una ventana con lapestaña Hardware Setting, en la sección Currently selected hardware seleccione USB-Blaster [2-1.1] y se da clic en Close.

Figura 33: Programando la FPGA, Programmer, Quartus II - Altera.

Windows 7:45) Si el controlador del Hardware no aparece dé clic izquierdo en:

Inicio >> Panel de control >> Sistema y seguridad >> Sistema >> Administrador dedispositivos.

46) Clic derecho sobre: USB-Blaster [USB-0], (ver figura 34) seleccione la opción Actualizadorsoftware de controlador…

Figura 34: Configuración de USB – Blaster en Windows 7.

47) En la ventana de la figura 35, seleccione la opción Buscar software del controlador en elequipo.

Page 20: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 20

Figura 35: Configuración de USB – Blaster en Windows 7.

48) Seleccione el directorio: C:\altera\13.1\quartus\drivers y dé clic izquierdo en el botónsiguiente.

49) En la ventana que se despliegue habilite la opción Siempre confiar en el software de“Delaware Altera Corporation” y dé clic izquierdo en el botón Instalar (ver figura 36).

Figura 36: Configuración de USB – Blaster en Windows 7.

50) Espere a que termine el proceso de instalación y dé clic en el botón cerrar de la figura 37.

Figura 37: Configuración de USB – Blaster en Windows 7.

51) Cierre la ventana del administrador de dispositivos (ver figura 34) y repita los pasos 42 al 44.52) En la ventana de la figura 38, se habilitará el botón Start, dé clic izquierdo sobre él.

Page 21: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 21

Figura 38: Programando la FPGA, Programmer, Quartus II - Altera.

53) Verifique el funcionamiento del código VHDL realizado, cada vez que presione el pulsador dela entrada “d” deberá apagarse el correspondiente LED asignado en la tabla 2.

Nota:En este punto hay que decir que tanto los interruptores como los led’s de la tarjeta Cyclone III sonactivos en bajo, es decir que los interruptores producen un cero al presionarlos o un uno lógicocuando no están presionados; en el caso de los led’s es necesario aplicar un cero lógico parapoder encenderlos. Tal como se indica en la figura 3 y en el documento: cycloneiii_sb_3c25.pdf.

Figura 39: Especificación de pines de tarjeta Cyclone III.

rstd

qnq

Page 22: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 22

Parte II:Contador binario con visualización hexadecimal.54) Realice un proyecto Count_disp para los archivos VHDL proporcionados a continuación,

dichos archivos deben estar todos en la misma carpeta.

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.numeric_std.ALL;--------------------------------------------------------------------------entity Count is

generic ( Salidas : natural:= 3);Port ( clk : in STD_LOGIC;

reset : in STD_LOGIC;updown : in STD_LOGIC;ena : in STD_LOGIC;load : in STD_LOGIC;Dat_in : in STD_LOGIC_VECTOR (Salidas downto 0);Qout : out STD_LOGIC_VECTOR (Salidas downto 0));

end Count;--------------------------------------------------------------------------architecture Behavioral of Count issignal cnt: unsigned (Salidas downto 0);signal SLOWCLK: std_logic;constant Tope: integer:= 50000;begin

count_proc: process(SLOWCLK, reset, updown, ena, load, Dat_in, cnt)begin

if (ena = '1') thenif (load = '0') then

Qout <= Dat_in;cnt <= unsigned(Dat_in);

elsif(reset = '0') thencnt <= (others=> '0');Qout <= STD_LOGIC_VECTOR(cnt);

elsif (rising_edge(SLOWCLK)) thenif (updown = '1') then --Ascendente

cnt <= cnt + 1;else --Descendente

cnt <= cnt - 1;end if;Qout <= STD_LOGIC_VECTOR(cnt);

end if;end if;

end process count_proc;

SLOWCLOCK: process(clk, reset)variable cont1:integer range 0 to Tope := 0;variable cont2: integer range 0 to 500 := 0;

beginif (reset = '0') then

cont1 := 0;cont2 := 0;

elseif rising_edge(clk) then

cont1 := cont1 + 1;if cont1 = Tope then

cont1 := 0;cont2 := cont2 + 1;if cont2 = 500 then

SLOWCLK <= NOT(SLOWCLK);cont2 := 0;

end if;end if;

end if;end if;

end process;end Behavioral;--------------------------------------------------------------------------

Código 3: Contador binario de 4 bits con frecuencia de refresco 1Hz.

Page 23: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 23

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;--------------------------------------------------------------------------entity bin4_bcd is

generic( Pines : natural:= 3);Port (num_bin : in STD_LOGIC_VECTOR(Pines downto 0);

num_bcd : out STD_LOGIC_VECTOR(Pines downto 0);num_bcd2 : out STD_LOGIC_VECTOR(Pines downto 0));

end bin4_bcd;--------------------------------------------------------------------------Architecture Behavioral of bin4_bcd isbeginproc_conv: process (num_bin)begin

if(num_bin> 9) thennum_bcd2 <= STD_LOGIC_VECTOR(num_bin + 6);num_bcd <= "0001";

elsenum_bcd2 <= num_bin;num_bcd <= "0000";

end if;end process proc_conv;end Behavioral;--------------------------------------------------------------------------

Código 4: Convertidor binario (4 bits) a bcd.

library IEEE;use IEEE.STD_LOGIC_1164.ALL;--------------------------------------------------------------------------entity Deco7hexCC isPort( Data_In : in STD_LOGIC_VECTOR (3 downto 0);

Data_Out : out STD_LOGIC_VECTOR (7 downto 0));endDeco7hexCC;--------------------------------------------------------------------------architecture Behavioral of Deco7hexCC isbegin

Data_Out<= x"FC" when Data_In = "0000" elsex"60" when Data_In = "0001" elsex"DA" when Data_In = "0010" elsex"F2" when Data_In = "0011" elsex"66" when Data_In = "0100" elsex"B6" when Data_In = "0101" elsex"BE" when Data_In = "0110" elsex"E0" when Data_In = "0111" elsex"FE" when Data_In = "1000" elsex"E6" when Data_In = "1001" elsex"EE" when Data_In = "1010" elsex"3E" when Data_In = "1011" elsex"1A" when Data_In = "1100" elsex"7A" when Data_In = "1101" elsex"DE" when Data_In = "1110" else x"8E";

end Behavioral;--------------------------------------------------------------------------

Código 5: Decodificador hexadecimal a siete segmentos.

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;--------------------------------------------------------------------------entity Mux_display is

generic ( Pines : natural:= 7 );Port ( a : in STD_LOGIC_VECTOR(Pines downto 0);

b : in STD_LOGIC_VECTOR(Pines downto 0);clk : in STD_LOGIC;c, d : out STD_LOGIC;z : out STD_LOGIC_VECTOR(Pines downto 0));

Page 24: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 24

end Mux_display;--------------------------------------------------------------------------architecture Behavioral of Mux_display issignal SLOWCLK: std_logic;constant Tope: integer := 10000; -- 50 MHz / (2*10000*50) = 50 Veces por segundobegincount_proc: process(SLOWCLK, a, b)begin

if (SLOWCLK = '1') thenz <= a;c <= '1';d <= '0';

elsez <= b;c <= '0';d <= '1';

end if;end process count_proc;

SLOWCLOCK: process(clk)variable cont1: integer range 0 to Tope := 0;variable cont2: integer range 0 to 50 := 0;begin

if rising_edge(clk) thencont1 := cont1 + 1;if cont1 = Tope then

cont1 := 0;cont2 := cont2 + 1;if cont2 = 50 then

SLOWCLK <= NOT(SLOWCLK);cont2 := 0;

end if;end if;

end if;end process;end Behavioral;--------------------------------------------------------------------------

Código 6: Multiplexor para decodificador hexadecimal a siete segmentos.

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.numeric_std.ALL;--------------------------------------------------------------------entity Count_disp is

generic ( Pout : natural:= 7;Pin : natural:= 3);

Port ( clk : in STD_LOGIC;reset : in STD_LOGIC;updown : in STD_LOGIC;ena : in STD_LOGIC;load : in STD_LOGIC;c, d : out STD_LOGIC;Dat_in : in STD_LOGIC_VECTOR (Pin downto 0);Salidas : out STD_LOGIC_VECTOR (Pout downto 0));

end Count_disp;--------------------------------------------------------------------architecture Behavioral of Count_disp is----------------------------------------------------------------------Declaracion de componentes--------------------------------------------------------------------component Count is

Port ( clk : in STD_LOGIC;reset : in STD_LOGIC;updown : in STD_LOGIC;ena : in STD_LOGIC;load : in STD_LOGIC;Dat_in : in STD_LOGIC_VECTOR (Pin downto 0);Qout : out STD_LOGIC_VECTOR (Pin downto 0));

end component;

Page 25: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 25

component bin4_bcd isPort ( num_bin : in STD_LOGIC_VECTOR (Pin downto 0);

num_bcd : out STD_LOGIC_VECTOR (Pin downto 0);num_bcd2 : out STD_LOGIC_VECTOR (Pin downto 0));

end component;

component Deco7hexCC isPort ( Data_In : in STD_LOGIC_VECTOR (Pin downto 0);

Data_Out : out STD_LOGIC_VECTOR (Pout downto 0));end component;

component Mux_display isPort ( a : in STD_LOGIC_VECTOR(Pout downto 0);

b : in STD_LOGIC_VECTOR(Pout downto 0);clk : in STD_LOGIC;c, d : out STD_LOGIC;z : out STD_LOGIC_VECTOR(Pout downto 0));

end component;--------------------------------------------------------------------signal Out_count: STD_LOGIC_VECTOR (Pin downto 0);signal In_Deco1 : STD_LOGIC_VECTOR (Pin downto 0);signal In_Deco2 : STD_LOGIC_VECTOR (Pin downto 0);signal Out_Deco1: STD_LOGIC_VECTOR (Pout downto 0);signal Out_Deco2: STD_LOGIC_VECTOR (Pout downto 0);begin----------------------------------------------------------------------Instanciacion de componentes--------------------------------------------------------------------U1: Count port map(clk, reset, updown, ena, load, Dat_in, Out_count);U2: bin4_bcd port map(Out_count, In_Deco1, In_Deco2);U3: Deco7hexCC port map(In_Deco1, Out_Deco1);U4: Deco7hexCC port map(In_Deco2, Out_Deco2);U5: Mux_display port map(Out_Deco1, Out_Deco2, clk, c, d, Salidas);end Behavioral;--------------------------------------------------------------------

Código 7: Contador bcd (4 bits) con visualización en display de siete segmentos.

55) Verifique el RTL Viewer de la aplicación realizada.

Figura 40: Contador bcd (4 bits) con visualización en display de siete segmentos.

Count_disp

Page 26: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 26

Figura 41: Contador bcd (4 bits) con visualización en display de siete segmentos.

56) Realice la asignación de pines de la tarjeta Cyclone III conforme a la tabla 3.

Variables delcódigo VHDL

Nombre de lospines de la FPGA Nombre de señal Pin en tarjeta

THDB-HTGI/O Standard

clk B9 CLK11 3.3-V LVTTLreset F1 BUTTON1 3.3-V LVTTLupdown F2 BUTTON2 3.3-V LVTTLena A10 BUTTON3 3.3-V LVTTLload B10 BUTTON4 3.3-V LVTTLDat_in(3) K1 HSMC_TX_n6 J3(9) 3.3-V LVTTLDat_in(2) L5 HSMC_RX_n6 J3(6) 3.3-V LVTTLDat_in(1) L2 HSMC_TX_p7 J3(7) 3.3-V LVTTLDat_in(0) L4 HSMC_RX_p7 J3(4) 3.3-V LVTTLc K2 HSMC_TX_p6 J3(13) 3.3-V LVTTLd K5 HSMC_RX_p6 J3(8) 3.3-V LVTTLQout(7) – a B2 HSMC_TX_p4 J3(25) 3.3-V LVTTLQout(6) – b C2 HSMC_RX_p4 J3(18) 3.3-V LVTTLQout(5) – c B1 HSMC_TX_n4 J3(23) 3.3-V LVTTLQout(4) – d C1 HSMC_RX_n4 J3(16) 3.3-V LVTTLQout(3) – e G2 HSMC_TX_p5 J3(17) 3.3-V LVTTLQout(2) – f H2 HSMC_RX_p5 J3(14) 3.3-V LVTTLQout(1) – g G1 HSMC_TX_n5 J3(15) 3.3-V LVTTLQout(0) – PD H1 HSMC_RX_n5 J3(10) 3.3-V LVTTL

Tabla 3: Tabla de asignaciones de pines para el código 7.

abcdefg.

GndDISP1

abcdefg.

GndDISP2

74LS48A3A2A1A0

testRBI

gfedcba

RBO

U5

74LS48A3A2A1A0

testRBI

gfedcba

RBO

U4

1234

8

KPD1

S3

S2

S1CP1CP2

Q1Q2

V2

+V

V15V

74LS85A3A2A1A0B3B2B1B0

IA<BIA=BIA>B

A<BA=BA>B

U374LS85

74F83A4A3A2A1B4B3B2B1

Cin

s4s3s2s1

Cout

U2

74LS193CPUCPDPLMRD3D2D1D0

TCUTCDQ3Q2Q1Q0

U1

R6330

R5330

R41k

R31k

R21k

R11k

Page 27: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 27

Figura 42: Diagrama de conexiones.

Figura 43: Especificación de conectores de tarjeta THDB-HTG.

57) Verifique su funcionamiento del proyecto utilizando las tarjetas Cyclone III, display,interruptores y led’s.

58) Apague la tarjeta Cyclone III, desconecte la alimentación de la misma.59) Desconecte la tarjeta Cyclone III de la computadora.60) Cierre las aplicaciones abiertas y apague la computadora.

1. Realizar un Multivibrador astable, con habilitador (activo en alto), se tendrán 16 posiblesfrecuencias de salida de acuerdo a la combinación de 4 interruptores (5, 10, 20, 50, 100, 200,500, 1000, 2000, 5000, 10k, 20k, 50k, 100k, 200k, 500k) Hz.

2. Realizar un modulador por ancho de pulso, es decir que se tendrá una salida astable a unafrecuencia elegida por el docente (la cual será diferente para cada estudiante), con 4interruptores se podrá elegir el tiempo en alto [0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5,0.55, 0.6, 0.65, 0.7, 0.75, 0.8]*T de la señal de la salida variando así el ciclo de trabajo de laseñal de salida.

Ejercicios de aplicación

Page 28: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 28

3. Realizar un contador ascendente /descendente de 6 bits a un 0.5 Hz, la visualización de la salidapodrá elegirse entre octal, hexadecimal o bcd, deberá poseer entradas de habilitación, reset, pre-establecimiento y load.

4. Realice un cronometro - temporizador monoestable, tendrá un interruptor para dar inicio altiempo en alto a su salida, un interruptor para detener la temporización y por ende poner lasalida al estado bajo, mientras la salida está en alto se activará un contador [0, 99] de segundos(mostrar en display) y se detendrá al detener la temporización, además deberá tener un pulsadorpara reiniciar al temporizador a condiciones iniciales no importando cual fuere su estado en lasalida.

5. Realizar un temporizador monoestable, pin de inicio, pin de reset (debe funcionar similar alejercicio anterior), y con 4 interruptores con los que se podrá elegir 16 posibles tiempos [0.5, 1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]s en los que la salida tendrá estado alto, luego detranscurrido el tiempo, la salida se volverá al estado bajo, hasta un nuevo inicio.

1. http://denethor.wlu.ca/pc120/quartus_testbench.shtml2. Pedroni, Volnei A. Circuit Design and Simulation with VHDL (2nd Edition). (2010). MIT

Press:http://app.knovel.com/hotlink/toc/id:kpCDSVHDLN/circuit-design-simulation/circuit-design-simulation

3. Ashenden, Peter J.Designer’s Guide to VHDL (3rd Edition). (2008). Elsevier.:http://app.knovel.com/hotlink/toc/id:kpDGVHDLEO/designer-s-guide-vhdl/designer-s-guide-vhdl

4. https://eciencia.urjc.es/bitstream/handle/10115/4045/diseno_de_circuitos_digitales_con_vhdl_v1.01.pdf?sequence=3&isAllowed=y

5. http://www.estadofinito.com/binario-bcd-7seg/6. https://www.altera.com/en_US/pdfs/literature/manual/rm_ciii_starter_board.pdf7. http://www.altera.com/literature/hb/qts/quartusii_handbook.pdf8. https://www.altera.com/en_US/pdfs/literature/manual/archives/intro_to_quartus2.pdf9. https://www.altera.com/content/dam/altera-

www/global/en_US/pdfs/literature/hb/cyc3/cyc3_ciii52001.pdf10. https://www.altera.com/content/dam/altera-

www/global/en_US/pdfs/literature/hb/cyc3/cyclone3_handbook.pdf11. http://dsid.escom.ipn.mx/julio/cursos/prac/arq_computadoras/Prac_1_DE2.pdf12. https://eva.fing.edu.uy/file.php/508/laboratorio/guia_Quartus_II_V5.pdf13. http://homepage.cem.itesm.mx/garcia.andres/PDF201411/Quartus%20II%289.1%29.pdf14. https://deberesfacilitos.files.wordpress.com/2009/11/quartus-ii.pdf15. http://ingeniarlab.blogspot.com/2014/02/programacion-de-la-fpga-cyclone-iii.html16. https://www.altera.com/en_US/pdfs/literature/ug/ug_ciii_starter_kit.pdf17. http://windows.microsoft.com/es-419/windows/open-device-manager#1TC=windows-718. https://groups.google.com/forum/#!topic/embeddednewbies/yraDD5oXlbU

Bibliografía

Page 29: Objetivo Específicos. Material y equipo. · Parte I: Creación de proyectos en Quartus II. 1) Dé un clic en el icono de Quartus-II en la barra de lanzadores a la izquierda del escritorio

Sistemas digitales II. Guía 5 29

19. https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ds/hsmc_spec.pdf

20. https://www.altera.com/en_US/pdfs/literature/hb/cyc3/cyclone3_handbook.pdf21. https://www.altera.com/en_US/pdfs/literature/ug/ug_ciii_devkit.pdf22. https://www.iit.comillas.edu/becas/