laboratorio de microprocesadores - itba -daniel jacoby 1 rev 010 -2009 laboratorio de...

78
Laboratorio de Microproce sadores - ITBA -Daniel Ja coby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby [email protected] Marzo 2009 Instituto Tecnológico de Buenos aires Uso del editor grafico de Altera (Quartus II)

Upload: nita-montero

Post on 27-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

1

REV 010 -2009

LABORATORIO DE MICROPROCESADORES

Daniel A Jacoby

[email protected]

Marzo 2009

Instituto Tecnológico de Buenos aires

Uso del editor grafico de Altera (Quartus II)

Page 2: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

2

Introducción

El propósito de este documento es ayudar a familiarizarse con el uso del editor grafico de Altera que forma parte del ambiente de desarrollo del Quartus II.

Iniciaremos creando un archivo esquemático partiendo desde cero. Para empezar creamos un proyecto nuevo usando el Project Wizard

Page 3: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

3

1- Start Project Wizard

El primer paso es iniciar el “Project Wizard”

Page 4: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

4

2- Crear una carpeta

Crear una carpeta y un nombre para el proyecto

Page 5: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

5

3- Agregar archivos de diseño adicionales

Agregar archivos y librerías al proyecto

Este paso se puede ignorar y solo tiene sentido si se quiere usar material de diseños previos o de terceros

Page 6: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

6

4- Selección del dispositivo

Se debe seleccionar el dispositivo indicado que es el que usa la placa Cyclone

Nota: Lo único que puede llegar a diferir es la velocidad

Actualmente se usara el dispositivo:

EP1C6T144C6

Page 7: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

7

5- Selección de Herramientas adicionales de diseño

Con este cuadro se seleccionan herramientas adicionales de diseño (EDA: Electronic Design Automation) como ser Leonardo Spectrum ,synplify o modelsim.

En nuestro caso no seleccionamos ninguna

Page 8: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

8

6- Resumen de las opciones seleccionadas

Con este cuadro se visualizan las opciones elegidas de manera que si alguna no corresponde con lo deseado se puede volver a modificar (Back)

Page 9: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

9

7- Adicionar un esquemático al proyecto

21

Page 10: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

10

8- Guardar el archivo

Page 11: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

11

Herramientas de dibujo

La Barra de herramientas contiene herramientas comunes como ser escritura de texto, zoom , rotación , espejado (flip), dibujar líneas , figuras y pantalla completa.

La herramienta principal para realizar un esquemático es la de selección y dibujo asistido esta herramienta realiza diferentes operaciones dependiendo del contexto.

Dos operaciones principales se realizan mediante esta herramienta: selección de objetos y interconexión de símbolos lógicos. El “symbol tool” nos permite colocar elementos de la librería existente o de nuestros propios archivos. Las tres herramientas ortogonales nos permiten conectar objetos entre si. La herramienta banda elástica (rubberband) nos permite mantener las conexiones entre objetos cuando esta activa. Se verán ejemplos de uso de todas estas herramientas en las siguientes paginas

Page 12: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

12

Inserción de Símbolos Lógicos

Existen dos formas de insertar símbolos lógicos

Usando el botón de la barra de herramientas :

O haciendo doble click en un punto no usado de esquemático

Page 13: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

13

Inserción de Símbolos Lógicos

Expandiendo el árbol podemos encontrar diferentes categorías de componentes.

Todas las compuertas básicas , flipflops y conectores de entrada y salida se pueden encontrar dentro de la librería de primitivas.

Dentro de others podemos encontrar componentes heredados de la librería maxplus ( versión previa al Quartus II) asi como varios componentes de la familia 74XX (TTL). Esto ultimo es de especial interés para convertir viejos diseños basados en esta familia a su equivalente lógico en una FPGA. Finalmente estan las mega-funciones provistas por altera. Estas ultimas son bloques de mediana y alta complejidad provistos por Altera

Page 14: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

14

Inserción de Símbolos Lógicos

Vamos a empezar colocando una compuerta AND en nuestro esquemático.

Para lo cual expandimos el árbol y hacemos un click con el mouse sobre el nombre del componente.

La opción repeat insert mode nos permite crear múltiples instancias del componente.

Una vez seleccionadas las opciones presionamos OK.

Si no se va hacer ningún cambio hacemos directamente dobleclick sobre el nombre del componente.

Con ESC finalizamos este modo

Page 15: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

15

Inserción de Símbolos Lógicos

Acá creamos 3 instancias del componente observar como cada instancia tiene un nombre distinto (inst ,inst1, inst2)

El nombre de cada instancia es usado solo como referencia en lo archivos de netlist y reportes

Page 16: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

16

Operaciones Básicas

Para seleccionar objetos en el editor Grafico simplemente hacemos click sobre los símbolos con la herramienta de selección

Podemos seleccionar múltiples objetos haciendo CTRL + Click mientras se seleccionan los símbolos o bien dibujando un área rectangular que incluya los objetos que se desean seleccionar.

Para deseleccionar se debe hacer click con el Mouse sobre un área vacía

Para mover un símbolo hacer drag del mismo ( botón izq + desplazamiento del mouse)

Para copiar un símbolo se puede usar el menú contextual al clickear el objeto o bien la tecla CTRL + Drag

Para eliminar un objeto seleccionarlo primero y luego presionar DEL o usar el menú contextual.

Se puede rotar un símbolo usando la opción para rotar del menú de contexto o las herramientas rotación en el caso de que la cantidad a rotar sea múltiplos de 90 grados

Page 17: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

17

Interconexión de objetos

Para interconectar dos objetos usar la herramienta de selección y realizar un drag de un punto de conexión al otro. Nótese que la flecha cambia a cruz cuando se esta sobre el punto de conexión

Para cambiar la dirección en la que se esta dibujando un cable soltar el botón del Mouse y presionarlo nuevamente continuando así en la nueva dirección

Una forma alternativa de conectar dos componentes es acercar un componente al otro de manera que los puntos de conexión se toquen soltar el botón del mouse y luego alejar (drag) uno de los componentes del otro. La conexión se realizara en forma automática (rubber banding debe estar activo).

Para conectar un cable que no empieza en un punto de conexión se debe usar la herramienta ortogonal .

Una vez que un componente se encuentra conectado se puede mover dicho componente a otro lugar sin que se rompa la conecion (que se ajustara automáticamente) si se encuentra activa la herramienta de rubber band Caso contrario se romperá la conexión

Page 18: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

18

Interconexión de objetos

Cuando se desea conectar dos líneas que se cortan se deberá usar la herramienta ortogonal y hacer un doble click en la unión para insertar un nodo (para removerlo se deberá volver a hacer doble click en la unión). No olvidar activar la herramienta ortogonal

Doble Click

Doble Click

Page 19: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

19

Interconexión de objetos

Para seleccionar un segmento de una conexión basta con hacer click sobre el mismo. Si se efectúa un doble click se seleccionan todos los segmentos que forman la conexión.

Un solo click Doble click

Page 20: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

20

Interconexión de objetos

Para seleccionar una porción de una conexión usar la herramienta de selección parcial seleccionando una área rectangular alrededor de la zona de interés (drag) todo lo que queda dentro de esta área puede ser eliminado

Page 21: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

21

Interconexión de objetos (Buses)Para interconectar símbolos mediante buses usar la herramienta ortogonal para buses

Se Puede convertir una línea de un conductor a bus seleccionando el o los segmentos que la integran y usando el botón derecho seleccionar “Bus Line”. Si se desea convertir un bus en línea repetir la operación en forma idéntica pero seleccionando esta vez “Node Line”.

Se le pueden asignar nombres tanto a buses como a líneas seleccionando el bus (o línea) y luego seleccionando propiedades (del menú de contexto – (botón derecho)).

En el caso de los buses la sintaxis es: data[7..0].

En este caso tenemos un bus de 8 bits cuyo nombre es data

Si deseamos usar una línea del bus se debe usar el nombre del mismo agregando el índice: Ej: data2 o bien data[2]

Page 22: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

22

Interconexión de objetos (Buses)Para comprobar que el nombre de un bus o línea fue ingresado correctamente seleccionar el bus o línea y verificar que el nombre también fue seleccionado.

Podemos verificar nuestras conexiones mediante el reporte de síntesis

Page 23: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

23

Diseño Jerárquico

Antes de continuar borrar todos los componentes que se encuentren en schtut1.bdf

Page 24: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

24

Diseño JerárquicoHabiendo finalizado con las herramientas básicas del editor vamos a concentrarnos en la etapa de diseño.

Todo diseño puede se mas o menos complejo lo importante es tener una herramienta que nos permita expresar nuestras ideas con facilidad. En general se inicia con una visión global de lo que se desea hacer. Posteriormente se divide el proyecto en unidades o bloques mas pequeños que forman un árbol jerárquico. Esto es lo mismo que se hace en lenguajes de programación. Dos practicas muy frecuentes se usan para llegar a este resultado son el diseño TOP-DOWN y BOTTOM-UP

En la implementación TOP-DOWN el diseñador tiene una visión global del proyecto dividiendo el mismo en partes mas pequeñas de esta manera el diseñador se puede concentrar mas en la estructura que en los detalles técnicos de los bloques que constituyen el diseño. Esos detalles pueden quedar por ahora indefinidos.

En la implementación BOTTOM-UP el diseñador se concentra el la implementación de bloques de menor nivel en la escala jerárquica integrando estos en estructuras de un nivel mas alto. De esta manera se pueden verificar el funcionamiento de cada bloque antes de construir el diseño completo.

Quartus II dispone de herramientas para seguir cualquiera de estos dos caminos o una mezcla de ellos.

Page 25: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

25

Diseño JerárquicoBOTOM-UP

En Quartus II se pueden crear símbolos que representen a un modelo dado

Este modelo puede estar definido por un esquemático o un archivo en HDL (VHDL ,VERILOG o AHDL) según que descripción del modelo consideremos mas apropiada.

Por ejemplo podemos crear un símbolo para un sumador completo de un bit cuyo esquemático se muestra a continuación:

Page 26: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

26

Diseño JerárquicoPara crear el símbolo se deben seguir los siguientes pasos:

1- Creamos un archivo esquemático donde dibujaremos el circuito cuyo nombre será: fadder.bdf

(File New block diagram / schematic file)

2- Dibujamos el circuito.

3- Creamos el símbolo

(File Create/Update Create symblol file for current file)

Una vez finalizado podemos ver el símbolo que representa nuestro nuevo componente en la librería del proyecto.

Page 27: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

27

Diseño JerárquicoPodemos ahora insertar nuestro nuevo componente en un esquemático de la misma manera que lo hicimos con componentes ya existentes en la librería.

SCHTUT1.BDF

Page 28: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

28

Diseño JerárquicoINFO: Cuando se generamos el símbolo se creo un archivo fadder.bsf que contiene la representación grafica de nuestro bloque. (bsf Block Symbol File)

Si deseamos podemos verlo seleccionando la opción “EDIT SELECTED SYMBOL” con el botón de contexto del Mouse.

Normalmente no es de mayor modificarlo así que lo podemos cerrar.

Page 29: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

29

Diseño JerárquicoSi ahora hacemos doble click sobre el bloque obtendremos el esquemático que lo representa. De esta manera empezamos a generar nuestro primer nivel de abstracción encapsulando dentro de un símbolo un diseño de menor nivel cuyos detalles quedan ocultos detrás del símbolo.

Doble Click

SCHTUT1.BDFFADDER.BDF

Page 30: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

30

Diseño Jerárquico (Navegación)Para volver al nivel superior ir al menú de proyecto y seleccionar la opción UP o directamente CTRL-U (y CTRL-D para volver a bajar)

Page 31: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

31

Diseño JerárquicoSi hacemos una modificación en nuestro bloque como ser cambiar el circuito o modificar el nombre de un pin debemos regenerar el archivo grafico asociado. Recordemos que para hacer esto debemos hacer

(File Create/Update Create symblol file for current file)

Para que este cambio sea efectivo en el o los niveles superiores debemos actualizarlos símbolos en cada esquemático.

Para hacer esto seleccionamos el bloque y con el botón de contexto del Mouse seleccionar Update Symbol or Block.. Y luego la opción que corresponda

Page 32: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

32

Diseño JerárquicoPodemos insertar tantas instancias de nuestro bloque como deseemos e interconectarlo con otros elementos por ejemplo con cuatro instancias tenemos un sumador completo de 4 bits

Vamos entonces a crear un archivo llamado Four_bit_ader.bdf y dibujar el siguiente circuito:

Page 33: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

33

Diseño JerárquicoAhora podemos crear un nuevo componente basado en este ultimo circuito (Four_bit_ader.bdf) asi tenemos:

Insertemos este componente en schtut1.bdf

Page 34: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

34

Diseño JerárquicoPodemos visualizar el árbol jerárquico con la solapa de jerarquia Esa vista del proyecto nos permite navegar y visualizar las dependencias cuando el proyecto es complejo

Page 35: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

35

Diseño JerárquicoSi en lugar de un esquemático preferimos describir nuestro sumador en VHDL también podemos generar el BSF correspondiente. VHDL nos permite describir al sumador de diferentes maneras

Page 36: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

36

Diseño JerárquicoOtra posible versión seria esta:

Vamos a adoptar esta versión y la guardamos como fadder.vhd u otro nombre. El primer paso es verificar que esta libre de errores

Page 37: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

37

Diseño JerárquicoComo segundo paso generamos el bsf asociado (verificar que la ventana con el código fuente en vhdl este activa)

Para hacer esto repetimos la misma operación que en el caso del esquemático:

Y obtenemos:

(File Create/Update Create symblol file for current file)

(observar que el nombre de las señales es diferente en el caso del código VHDL y el esquemático así sabemos diferenciarlos esto es solo con fines didácticos )

FADDER.VHD

FADDER.BDF

Page 38: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

38

Diseño JerárquicoImportante : Cada vez que se modifica el modelo ( SCH o HDL ) debemos regenerar el símbolo. Luego actualizar el bloque grafico en los esquemáticos que correspondan.

Finalmente a titulo informativo existe la posibilidad de generar un HDL a partir de un esquemático para esto hacer

File Create / Update Create HDL design file for current file (VHDL o Verilog)

Resumiendo:

Bottom-Up nos permite crear un diseño jerárquico partiendo del nivel mas bajo

Page 39: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

39

Diseño Jerárquico

Top-DownQuartus II nos brinda una herramienta para diseñar con mas facilidad en el nivel jerárquico mas alto de nuestro proyecto. Esta herramienta es el editor de bloques + el smart mapper para crear diseños gráficos basados en bloques. Estos bloques inicialmente pueden ser cajas vacías representando bloques con código indefinido que están interconectados entre si. De esta manera se puede agregar , eliminar y reorganizar partes del diseño asta llegar a lo que uno desea

El editor de esquemático puede ser entones usado no solamente para dibujar estos últimos en la forma tradicional sino que además puede ser usado como un editor de un diagrama en bloques de nuestro diseño

Para empezar vamos a crear un esquemático nuevo en blanco (o borrar lo que había )

Page 40: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

40

Diseño Jerárquico

Editor de bloquesVamos a crear un bloque usando la herramienta para tal fin

Page 41: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

41

Diseño Jerárquico

Editor de bloquesPartes que componen al bloque

Nombre del bloque

Instancia

Tabla de I/O (Vacía pues aun

no definimos nada)

Simbolo

Page 42: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

42

Diseño Jerárquico

Editor de bloquesVamos a crear un bloque que represente un sumador completo. Con el boton de contexto del Mouse elegimos “block properties” y cambiamos el nombre del bloque a Full_Adder.

Page 43: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

43

Diseño Jerárquico

Editor de bloquesEn la solapa I/O Agregamos la entrada “A” de nuestro sumador como entrada

Page 44: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

44

Diseño Jerárquico

Editor de bloquesAgregando las demás nos queda:

Page 45: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

45

Diseño Jerárquico

Editor de bloquesSeleccionando OK nos queda el bloque y luego seleccionando la Opción AutoFit del menú de contexto podemos visualizar todas las entradas y salidas del bloque

AutoFit

Page 46: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

46

Diseño Jerárquico

Editor de bloquesAhora vamos a asociar una entidad VACIA al bloque paqra lao cual en el menu de contexto seleccionamos “Create design File from selected block”

Page 47: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

47

Diseño Jerárquico

Editor de bloquesComo resultado se genera el archivo FullAdder.VHD

(observar que la arquitectura esta vacia)

Page 48: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

48

Diseño Jerárquico

Conduits y Smart MapperVamos a implementar un sumador completo de 4 bits para lo cual creamos 4 instancias del mismo. Para interconectarlas usaremos los llamados “Conduits” en lugar de buses.

Un conduit es in conector que conecta bloques a pines u otros bloques .Representa una colección no ordenada de señales que pueden tener un alias que las representa. Es similar a un cable canal usado en instalaciones eléctricas. Un conduit es distinto a un bus dado que por el conduit el numero de señales no es fija. Las señales provenientes de pines y de otras señales conectadas al mismo se propagan a lo largo de todo el conduit y se conectan a cualquier I/O de un bloque cuyo nombre coincida.

Se puede visualizar esta información en la tabla de conexiones disponible en las propiedades del conduit (solapa signals)

Conduit

Page 49: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

49

Diseño Jerárquico

Conduits y Smart MapperEl nombre del conduit es un alias para la colección de señales y aparece sobre el conduit en la forma <<< alias name >>> .

El comportamiento de los conduit es el siguiente:

Los pines agregan automáticamente sus señales a un conduit si están en contacto con el.

Cuando se conectan bloques con conduits se realizara una conexión en forma automática entre cualquier señal cuyo nombre coincida con el del puerto I/O del bloque

 

Page 50: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

50

Diseño Jerárquico

Conduits y Smart MapperCuando un conduit se conecta a un bloque se genera una tabla (mapper) que permite asociar los I/O del bloque con las señales en el conduit. Haciendo doble click sobre el tenemos:

Mapper

Defino que I/O

Se conecta con

Que señal del conduit

Defino el tipo de pin

In,Out o.Bidir

Page 51: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

51

Diseño JerárquicoConduits y Smart Mapper

Ej: Hay dos señales A1 y B1 en el conduit como su nombre no coincide con los I/O del bloque debemos hacer el mapeo en forma manual no ocurre lo mismo con CIN cuya conexión con el bloque se realiza en forma automática (pues su nombre coincide).

Page 52: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

52

Diseño JerárquicoSolo para fines didácticos vamos a completar nuestro proyecto de acuerdo a la siguiente figura:

Tener presente que la arquitectura del bloque todavía NO fue definida. Es muy ilustrativo hacer el análisis y síntesis del proyecto

Page 53: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

53

Diseño JerárquicoLos resultados son los siguientes:

CIN = INPUT();

A1 = INPUT();

B1 = INPUT();

COUT = OUTPUT(GND);

S = OUTPUT(GND);

inst8 = B1 & A1;

TEST = OUTPUT(inst8);

Los dos primeros Warnings son consecuencia de que la arquitectura del Full_adder no esta definida aun. Lo mismo ocurre con el tercero dado que al no estar definida la arquitectura los pines de salida COUT y S no tienen drivers asociados (no hay ecuaciones definidas para cada pin) como consecuencia el compilador asigna valores por defecto a ambos (GND). El cuarto warning es consecuencia de lo mismo nos dice que la entrada CIN no esta conectada a ninguna lógica. Observar que esto ultimo no ocurre con A1 y A2 dado que si bien no hay arquitectura definida estas dos señales alimentan la compuerta “AND”. Observar que se puede simular el sistema aun estando ausente la definición del bloque Full_adder (Solo simulamos la compuerta).

Ecuaciones

Page 54: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

54

Diseño JerárquicoLas señales en el conduit son globales y por lo tanto visibles fuera del conduit de manera que no es necesario una conexión directa al mismo. Observar la compuerta AND ahora conectada vía nombres (A1 , A2) (Connection by Name).

Page 55: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

55

Diseño JerárquicoVamos completar el diseño creando un sumador completo de 4 bits. Para crear las 3 instancias restantes basta copiar y pegar (la numeración de instancias es automática).

Vamos a empezar a definir los pines de entrada y salida. Nótese que vamos a nombrar a los pines con el mismo nombre que los I/O del bloque de manera de hacer uso de la asociación automática de nombres.

Page 56: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

56

Diseño JerárquicoAhora Iniciamos las conexiones de la parte de entrada empezando con CIN. Es interesante para aclarar conceptos remarcar la diferencia entre conectar usando un solo conductor (node) o un conduit. En el primer caso estamos obligados a nombrar el cable y realizar el mapeo. En el segundo caso todo es automático .

Page 57: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

57

Diseño JerárquicoContinuamos con las demás entradas (vista parcial)

Page 58: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

58

Diseño JerárquicoContinuamos con las demás entradas (Vista completa)

Page 59: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

59

Diseño JerárquicoAhora continuamos con las salidas: (vista parcial 1/2)

Page 60: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

60

Diseño JerárquicoAhora continuamos con las salidas: (vista parcial 2/2)

Page 61: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

61

Diseño JerárquicoEsquema completo

Page 62: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

62

Diseño JerárquicoEs ilustrativo ver que señales hay en el conduit y con que instancia están conectados

Page 63: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

63

Diseño JerárquicoUna observación: Para conectar el Cout al Cin se uso un cable en lugar de un conduit se prefirió hacerlo asi pues en ambos casos era necesario el mapeo y el cabe representa mas claramente el hecho de que es una señal de un bit. Notese que se debe nombrar el cable (C1)

Page 64: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

64

Diseño JerárquicoPodemos compilar para ver si no tenemos errores

Este resultado nos es familiar pues nos faltaría definir la arquitectura

ARCHITECTURE Full_Adder_architecture OF Full_Adder IS

BEGIN

S<=A XOR B XOR CIN;

COUT<=(A AND B) OR (CIN AND A) OR (CIN AND B);

END Full_Adder_architecture;

Page 65: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

65

Diseño JerárquicoPodemos mejorar la legibilidad de nuestro esquema asignando aliases a los conduits

Page 66: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

66

Diseño JerárquicoEl uso de bloques y conduits nos da flexibilidad en el momento de hacer cambios. Esto es agregar señales es simple. Al agregar una señal al conduit (en este caso la señal “xx” al mapper del Full_Adder cuya salida es S[0] ) la señal será agregada en forma automática al conduit. Esta señal quedara automáticamente asociada a la salida de la compuerta AND2 (inst8) por asociación automática de nombres. Una ves mas si observamos el resultado de hacer el análisis y síntesis las ecuaciones nos corroboran esta nueva conexión. Otra forma de verificar esta situación es observando las propiedades del conduit.

S[0] = OUTPUT(B1L2); B1L2 = A[0] $ CIN $ (A[3] & B[1]);

Page 67: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

67

Diseño JerárquicoComo se vio Quartus II realiza en forma automática conexiones entre bloques que han sido conectados entre si. Lo mismo ocurre con buses. Veamos la implementación de un contador usando nuestro sumador. Agregando un FF a la salida del sumador y realimentando la salida del mismo hacia uno de los dos operandos (A[3..0] en este caso) y dejando el otro fijo (incremento) tendremos nuestro contador.

Page 68: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

68

Diseño JerárquicoObservaciones: Se uso un bus para conectar la salida del sumador

El FF se replica por cada línea del bus

Al darle al Bus que sale del FF el mismo nombre (A[3..0]) que una de las

entradas al sumador se conectan aromáticamente.

Page 69: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

69

Diseño JerárquicoEsquema completo

Page 70: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

70

Diseño JerárquicoSimulacion:

Para simular debemos

1- Generar un clock externo

2- Definir el incremento B[3..0]

Entonces empezamos por crear un Vector Waweform File (VWF) esto se hace haciendo

File New.. y Other Files

Page 71: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

71

Diseño JerárquicoUna vez abierto el VWF agregamos señales

Botón derecho del mouse acá

Page 72: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

72

Diseño JerárquicoAhora seleccionamos las señales de interés

1

2

3

1- Muestro las señales en existencia (Filter: Pin all)

2- Seleccionamos las señales de interés CTRL-CLIK

3-Transferimos las seleccionadas al panel de selección y terminamos (OK – OK)

Page 73: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

73

Diseño JerárquicoGeneramos el clock

1

2

3

1- Selecciono la señal CLK (mouse)

2- Barra de herramientas

3- Completo el cuadro: 100ns (semi periodo)

Page 74: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

74

Diseño JerárquicoCIN debe estar en 0 Seleccionar CIN le asignamos 0 con

Page 75: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

75

Diseño JerárquicoB[3..0] (incremento) lo ponemos en 1 Seleccionar B y con el menú de contexto seleccionamos “Arbitrary Value ..”

Page 76: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

76

Diseño JerárquicoFinalmente debemos agregar las señales de salida que queremos ver Out[3..0]

Nota: Por defecto en el reporte de simulación se muestran todos los pines de salida en forma individual (no bus).

Como queremos ver las salidas Out[3..0] como un bus se las agregaron como bus en forma explicita.

BUS

Individual

Page 77: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

77

Diseño JerárquicoAhora podemos simular presionando

Page 78: Laboratorio de Microprocesadores - ITBA -Daniel Jacoby 1 REV 010 -2009 LABORATORIO DE MICROPROCESADORES Daniel A Jacoby jacoby@itba.edu.ar Marzo 2009 Instituto

Laboratorio de Microprocesadores - ITBA -Daniel Jacoby

78

Diseño JerárquicoPodemos ahora probar con B=3 (para extender el tiempo de simulación: EditEnd time)

Fin