Max+plus II Altera Ing. L. Gorenkova
Max+plus II es el software desarrollado por ALTERA para diseño lógico con los Dispositivos Lógicos Programables (PLD) ( CPLD o FPGA ). Los tres principales editores de Max+plus II son:
- Editor Grafico - Editor de Formas de Onda - Editor de Textos (VHDL)
I. GRAPHIC EDITOR
Graphic Editor es un sofisticado programa para captura de los Diagramas Esquemáticos de cualquier complejidad. Graphic Editor puede utilizar también editor auxiliar llamado Editor de Sí mbolos mbolos. Con el Symbol Editor se puede crear, editar y ver los sí mbolos mbolos nuevos. Estos sí mbolos mbolos pueden ser usados en diagramas esquemáticos creados con Graphic Editor.
Editor Grafico permite crear y editar los archivos de diseño esquemático con extensión .gdf (Graphic Design File) que incluyen una combinación de megafunciones macrofunciones y sí mbolos mbolos primitivos provenientes de las librerí as as correspondientes.
Proyecto. Un Proyecto es cualquier circuito o subcircuito lógico diseñado en Max+plus II. Un Proyecto puede ser representado por un solo archivo (file) o por varios archivos. En este caso el nombre del proyecto debe ser el mismo como el nombre del archivo superior(top-level) del diseño que se puede visualizar presionando la tecla en la Barra de Herramientas.
Max+plusII realiza compilación, simulación y análisis del tiempo solo de un proyecto a la vez.
Para iniciar un nuevo proyecto se puede en la Barra del Menú presionar la tecla
O en la Barra del Menú presionar File | New Una vez abierta la hoja del nuevo proyecto esta debe ser grabada File | Save As con el nombre deseado y con extensión .gdf .
Normalmente la hoja del nuevo Proyecto tiene tamaño D: (22x34 in) y orientación horizontal. Tamaño de la hoja del Proyecto se puede modificar activando File | Size - ( tamaño y orientación deseados )
Para cambiar el nombre del Proyecto en la Barra de Tí tulos tulos se debe presionar en la Barra de Herramientas la tecla
Se puede escoger los sí mbolos mbolos CI de cualquier librerí a desde la Barra del Menú: Symbol | Enter Symbol También se puede seleccionar una librerí a con doble “click izquierdo” sobre la hoja del proyecto. Una vez seleccionado el sí mbolo mbolo se puede dar “click derecho” sobre el y con ayuda del menu que se abre se puede realizar muchas operaciones, tales como recortar, copiar, pegar, editar nombres de los terminales, asignar retardos, rotar, etc.
Librerí a de trabajo.
Es la primera librerí a de la lista de las librerí as. as. Es la librerí a donde se guardan todos los archivos de sus proyectos. La localización y el nombre del directorio donde esta su librerí a de trabajo no tiene importancia.
Librerí a de sí mbolos mbolos Primitiva. max2lib \ prim prim Esta librerí a contiene muchos sí mbolos mbolos útiles en el diseño, tales como Input, Output, Vcc, Gnd. Algunos de los sí mbolos mbolos son operadores. En caso que el diseño final será cargado en un PLD y no armado de los CI discretos, entonces en el diseño pueden ser usados todos los sí mbolos mbolos genéricos que se encuentran en esta librerí a. a.
Librerí a de Macrofunciones. max2lib \ mf mf En esta librerí a se encuentran todos los sí mbolos mbolos de los CI reales. Puertas, Inversores, Mux, Decodificadores, Comparadores, Sumadores, Convertidores de código, Flip-Flops, Contadores y Registros. Pero ningún dispositivo que requiere conexión de algún componente externo esta en esta librerí a. a. Por ejemplo: 74121(multivibrador monoestable)
Librerí a de Megafunciones y m ódulos parametrizados. max2lib \ mega_lpm mega_lpm
Cada modulo en esta librerí a es tecnológicamente independiente, es decir, puede ser implementado en cualquier tipo de chip. Cada modulo es también parametrizado, lo que significa que puede ser usado de varias maneras. Esta librerí a pude ser usada solo si el diseño final será implementado en un PLD.
Para utilizar esta librerí a: a:
File | MegaWizard Plug -in Manager
En la ventana que se abre seleccionar: Create a new custom megafuncion variacion | Next
Barra de Herramientas. Barra de herramientas se presenta por debajo de barra de menú. Todas las comandos que pueden ser llamados de la Barra de Herramientas están disponibles como comandos del menú y pueden ser llamados con el mouse o con las teclas de control.
La tecla Undo permite deshacer las operaciones o comandos anteriores. La segunda tecla Max+plus Help le proporciona la información sobre cualquier parte del circuito. Primero se debe presionar la tecla y luego hacer “click ” en lugar sobre el cual se desea obtener la información.
Presionando la tecla y luego el sí mbolo mbolo seleccionado Max+plus II Help le mostrara la tabla de modo de operación del elemento. Esta le proporciona la información sobre su funcionamiento lógico. Si le interesa saber la configuración interna del elemento seleccionado se debe hacer doble”click izquierdo” sobre elemento. Aparece la descripción que en algunos casos esta en forma grafica y en otros casos en forma de texto.
Las siguientes teclas permiten abrir las aplicaciones de Max+plus II. Pero algunas solo deben ser utilizadas en casos cuando la implementación final del diseño será un PLD. - Exhibición de Jerarquí a - Asignación de los Pines del PLD - Compilador - Simulador - Analizador de Tiempos - Programador
Antes de Compilar o Simular el proyecto se debe asegurar que el nombre del proyecto al cual se desea compilar o simular sea igual al nombre del proyecto que se muestra en la Barra de Tí tulos tulos. Si no es así , puede cambiar desde la Barra del Menú:
File | Project | Set Project to Current File
O simplemente puede en la Barra de Herramientas presionar la tecla
Para iniciar la operación de Compilar se puede en la Barra de Menú presionar Max+plus II | Compiler
O en la Barra de Herramientas presionar la tecla y luego seleccionar una de los dos posibles modos de Compilar.
Funcional SNF Extractor no incluye retardos de los dispositivos y es usada para chequear los errores lógicos solamente. Timing SNF Extractor incluye los retardos de los dispositivos y realiza la compilación completa del proyecto incluyendo sí ntesis, ntesis, partición y asignación de pines sobre un PLD real.
Inicialmente el programa Max+plus II coloca la operación de Compilar en
Timing SNF Extractor
Cuando no se desea utilizar un PLD para implementar el circuito es recomendable hacer solo la Compilación Funcional para no crear los archivos innecesarios. Para cambiar el modo de compilar se debe en la Barra de Menú presionar Processing y luego desactivar el modo que no desea usar.
Después de hacer cualquier cambio en su dise ño, se debe siempre volver a grabar y compilar el proyecto antes de hacer la simulación o configurar un PLD. El proyecto debe ser compilado con 0 Errors. Si el mensaje dice
Project Compilation was Successful, entonces su proyecto no tiene ni un error. Los warnings pueden ser analizados e ignorados.
Para realizar la operación de Simulación se debe crear el archivo de Formas de Onda ya que el proceso de Simulación se realiza analizando los Diagramas de Tiempo de las salidas luego de asignar los valores deseadas en las entradas. Para esto en la Barra del Menú presionar
Max+plus II | Waveform Editor
O en la Barra de Herramientas presionar la tecla de nuevo proyecto y luego debe seleccionar
| Waveform Editor file
El archivo que se abrirá debe ser grabado con la extensión .scf (Simulater Channel File).
El archivo contiene representación en formas de onda de los valores de entradas que manejan la simulación.
Con comandos Node | Enter Nodes from SNF (Simulator Netlist File) y luego List se eligen las señales de entrada y salida que se desean observar en los Diagramas de Tiempo.
Con comandos File | End Time se establece el periodo de tiempo durante del cual se desarrollará la simulación. Con comandos View | Fit in Window todo el periodo elegido para simulación se presentara en la pantalla. O se puede simplemente en la Paleta de Herramientas presionar la tecla
Con comandos Options | Grid Size se elige la distancia entre las grid lí neas neas muy útiles para graficar los señales de entrada.
Un Grid es la unidad de medida definida por ALTERA y usada en Graphic y Symbol Editors. Un Grid es igual a ocho pí xeles. xeles. En Waveform Editor un Grid es el intervalo de tiempo entre grid lí neas neas definido por el usuario. Una vez graficados los valores de los señales de entradas deseados se activa: Max+plus II | Simulator| Start o simplemente presiona la tecla
Los resultados de simulación se puede apreciar analizando los Diagramas de Tiempo los cuales nos indican:
Si el circuito diseñado genera las señales deseadas en los momentos deseados. En caso de Compilación y Simulación sobre un PLD los Diagramas de Tiempo nos indicaran los tiempos de retardo que experimentan las señales de salida. Se puede elegir PLD que produce menor retardo.
Cuando el proyecto es bastante grande se hace dif í ícil c il hacer las conexiones entre los componentes y visualizar todo el proyecto en la ventana. En este caso se recomienda hacer el proyecto por bloques. Se diseñan todos los bloques como proyectos individuales y se los guardan como File | Create Default Symbol. Al final se unen todos los bloques en proyecto superior (top-level).
El principio de descomposición funcional es muy usado en la ingenierí a para los diseños grandes. Los diseños complejos son divididos en unidades del diseño mas pequeñas. Las unidades mas pequeñas son mas f áciles de entender e implementar. Luego los diseños mas pequeños son interconectados para formar un Sistema Digital complejo. Además, las unidades pequeñas del diseño pueden ser reutilizadas en otros diseños.
No es necesario tener todas las entradas y salidas interconectadas con las lí neas. neas. Es suficiente con asignar a los dos terminales que deben tener el mismo nombre. Para etiquetar el terminal se debe hacer el click derecho y seleccionar Enter Node | Bus Name Cuando las lí neas neas de los señales tienen el mismo nombre ellas serán interconectadas automáticamente.
Project Save & Check. Al presionar esta tecla se guardan todos los archivos abiertos y parcialmente se compila el proyecto en el que se trabaja. Project Save & Compile. Se guardan todos los archivos abiertos y se compila el proyecto en el que se trabaja sobre un PLD. Project Save & Simulate. Se guardan todos los archivos abiertos, se abre la ventana de simulaci ón y se realiza la simulación sobre un PLD.
A lado izquierdo de la pantalla se puede observar la Paleta de Herramientas. La paleta puede tener teclas diferentes para los archivos del Editor Grafico (Graphic Editor) y para los archivos del Editor de Formas de Onda (Waveform Editor). Se puede apuntar con mouse a cualquier tecla de esta paleta y la Barra de Status le indicara la función de cada una.
Estas tres teclas, por ejemplo, le ayudaran a controlar el tamaño del circuito que desea observar en la pantalla. - La primera tecla aumentara gradualmente el tamaño del circuito. - La segunda disminuirá el tamaño del circuito. - La tercera permite observar todo el circuito en la pantalla, es decir, realiza la misma operación que el comando View / Fit in Window
II. WAVEFORM EDITOR
Editor de formas de Onda (Waveform Editor). Editor de formas de Onda puede ser utilizado no solamente para crear las Diagramas de Tiempo que son necesarios para analizar los resultados de Simulación. Waveform Editor también puede ser utilizado como una herramienta de ingreso del dise ño.
Pero es practico utilizar Waveform Editor para ingreso del diseño solo en casos de los dise ños con un numero pequeño de entradas y salidas. Con Waveform Editor puede ser creado un subcircuito que puede ser interconectado con otros subcircuitos en un diseño grande. Con Waveform Editor se puede implementar los circuitos que no forman parte de las librerí as as del Max+plus II, tales como EPROM.
Primero se debe abrir un nuevo archivo como Waveform Editor file y seleccionar la extensión .wdf (Waveform Design File). Se graba el archivo con el nombre elegido verificando que la extensión sigue siendo .wdf . En la Barra del Menú: Node | Insert Node. Ingrese los nombres de todas las entradas y salidas que desea que tenga su circuito y grafique las ondas de las señales de las entradas y las ondas de las señales las salidas deseadas para las señales de entradas dadas.
Al seleccionar el nombre de cualquier señal se activara la Paleta de Herramientas. - asignar el nivel Bajo de voltaje - asignar el nivel Alto de voltaje - asignar el nivel Don´t care (ø) - asignar el nivel de alta impedancia - invertir el el nivel de voltaje - asignar la señal de CLK ( reloj ) - asignar la secuencia deseada
Si el circuito diseñado con Waveform Editor será implementado con un EPROM es recomendable crear un Table File.
Table File es un archivo de texto que contiene una lista de formato tabular de todas las entradas y salidas, es decir, una tabla de verdad. Para crear Table File se debe en la Barra del Menú: File | Create Table File. En el archivo creado encontraremos ya lista el programa para el EPROM.
Max+plus II permite combinar los archivo tipo .wdf con otros tipos de archivos del diseño en un Proyecto Jerárquico . Al compilar el archivo tipo . wdf automáticamente se crea Default Symbol y este sí mbolo mbolo puede ser usado para los diseño en Graphic Editor. Con Waveform Editor se puede diseñar cualquier circuito Secuencial como Maquinas de Estado, Contadores y Registros. Y también es ideal para cualquier circuito Combinatorial.
III. TEXT EDITOR
Editor de Texto de Max+plus II permite ingresar el diseño descrito en Verilog HDL, AHDL y VHDL. Editor de Texto tambien puede ser usado para entrar, editar y ver cualquier otro archivo de ASCII. Cuando se usa VHDL para descripción del diseño el archivo del proyecto debe tener la extensión vhd.
. .
Se puede crear diseños de Sistemas Digitales enteramente en VHDL o mezclar los diseños en VHDL con los diseños hechos con Editores Grafico y de Formas de Onda.
Es muy practico usar Syntax Coloring para detectar los errores de texto. Esta opción puede ser activada en la Barra del Menú | Options. Luego Barra de Menú | Options | Color Palette se definen los colores deseados.
Editor tambien tiene opción de sangrado, que automáticamente coloca el texto de la siguiente lí nea nea en posición relacionada con la posición de la lí nea nea anterior. En la Barra del Menú se selecciona Options | Auto-Indent.
El sintaxis del código VHDL a veces es dif í ícil c il de recordar. Text Editor proporciona una colección de plantillas. Para seleccionar la plantilla deseada: o en la Barra del Menú
Templates | VHDL Template
Los procedimientos de Compilación Functional y Simulación son similares a los de otros editores. Tambien es similar el uso de Message Processor para la localización rápida de los errores.
Cuando el diseño ya esta compilado sin errores y la simulación indica que las operaciones deseadas se realizan en los momentos deseados, se puede programar un CPLD (o configurar un FPGA) de la siguiente manera. En la Barra del Menú: Max+plus II | Programmer o en la Barra de Herramientas presionar la tecla
Un FPGA es el FPLD basado SRAM. Por lo tanto su configuración debe ser recargada cada vez que se conecte a la fuente de alimentación. Esta tarea puede ser realizada por una memoria EPROM de configuración externa con ayuda de una interfase serial JTAG (Joint Test Action Group). En este caso se programa la EPROM (EPC2) y el programa automáticamente se recarga al FPGA cada vez que se conecta la fuente de alimentaci ón .
IV. DETALLES PRACTICOS
Antes de programar o configurar un FPLD se debe elegir el dispositivo deseado. En la Barra del Menú: Assign | Device | (CPLD o FPGA). Nota: Para tener la lista completa de los dispositivos debe desactivar la ventana
Para asignar las entradas y salidas deseadas a los pines de un FPLD: Assign | Pin | Location | Chip …
Luego: Search…| List | (nombre de I/O) | OK
Luego: Pin | (numero) | Input/Output | OK
Una vez asignados todos los terminales deseados se realiza la compilación Timing y simulación.
Hay otro modo de asignar las entradas y salidas deseadas a los pines de un FPLD. En la Barra del Menú: Max+plus II | Floorplan Editor o en la Barra de Herramientas presionar la tecla
Luego de la ventana Unassigned Nodes & Pins elegir la entrada o salida deseada y arrastrar hasta el pin de FPLD deseado.
Para apropiada operación de Circuitos Secuenciales Sincrónicos es esencial reducir al mí nimo nimo el efecto llamado “clock skew”, que se presenta porque diferentes flip-flops no disparan al mismo tiempo.
Una de las causas de “clock skew” es la siguiente:
La otra causa de “clock skew” es la diferencia de la longitud de alambres que conducen la señal de clock a los flipflops. Por lo tanto, es indispensable usar la apropiada distribución de la señal de clock, por ejemplo, llamada el “H tree”
Un FPLD usualmente proporciona una o mas entradas “global clock ” ” (GCLK ) que puede ser conectada a todos flip-flops de FPLD. La conexión de las puertas lógicas en las entradas de flipflops debe ser evitada. Todos los FPLD tambien proporcionan la entrada “global reset” (GCLRn).
Asignación de pines de CPLD EPM7128SLC84 para conector J1 J1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
pin CPLD 83
Función GCLK1
44
MCell E 65
45
MCell E 67
46
MCell E 69
7,19,32,42 47,59,72,82
GND GND
48
MCell E 72
49
MCell E 73
50
MCell E 75
51
MCell E 77
84 2
Input/OE1 Input/OE2/GCLK2
52
1
MCell E 80
Input/GCLRn
73
MCell H 115
74
MCell H 117
75
MCell H 118
76
MCell H 120
77
MCell H 123
79
MCell H 125
3,13,26,38 43,53,66,78
VCC VCC
80
MCell H 126
81
MCell H 128
33
MCell D 64
34
MCell D 61
35
MCell D 59
36
MCell D 57
37
MCell D 56
39
MCell D 53
40
MCell D 51
41
MCell D 49
12
MCell A 3
11
MCell A 5
10
MCell A 6
9
MCell A 8
8
MCell A 11
6
MCell A 13
5
MCell A 14
4
MCell A 16
Problema de sincronismo. Señales externos muy a menudo son aleatorios y duran mucho tiempo comparando con el periodo de Clock. Para evitar el funcionamiento erróneo del Sistema Digital estas señales deben ser sincronizadas para que duran solo un periodo de Clock.
Durante de compilación Timing el Compilador de Max+plus II genera un reporte de utilización del FPLD llamado .rpt. Este reporte proporciona la información sobre la conexión de los pines en el proyecto que ya ha sido compilado. Se puede observar que pines de entrada “dedicated” no usados son conectados a Gnd y pines I/O no usados son indicados como Reserved. Todos los pines I/O Reserved deben permanecer sin conectar después de compilación. La conexión de un pin I/O Reserved a Vcc, Gnd u otra señal puede ocasionar daño del FPLD.
No se permite conectar f í ísicamente s icamente ningún pin de FPLD directamente a Vcc o Gnd!!! Ni de modo permanente, ni por un instante!!! Siempre debe haber una resistencia en serie entre el pin de un FPLD y Vcc o Gnd.
Cuando es necesario conectar a las entradas o salidas de un FPLD algunos componentes externos (LEDs, displays, botoneras, etc.) y estos componentes se encuentran conectados en un Proto Board,
para polarización de estos componentes se debe utilizar Vcc y Gnd de la Tarjeta educativa.
Conexión de un diodo LED al terminal de un FPLD. El valor tí pico pico de la corriente IOL que esta especificado en el Data Sheet para un PLD es 12 mA. Para V DD DD = 5 V el valor de R L será 5 V / 12 mA ≈ 417 Ω. Por lo tanto, el valor de R L debe ser ≥ 470 Ω. Si la luminosidad del diodo LED ( IOL) es insuficiente, entonces en la salida del PLD debe ser implementado un buffer para proporcionar mayores valores de IOL.
Conexión de display a los terminales de un FPLD. Para obtener la mejor luminosidad del display y la mayor protección de las entradas del FPLD es necesario la conexión de una resistencia de 470 Ω ÷ 820 Ω entre cada segmento del display y el terminal del FPLD.
+ AC
7
6
1
2
1 6
7
2
5
3 4 8
5 4
3
Punto Decimal
AC
CC
7
6
1
2
1 6
7
2
5
3 4 8
5 4
3
CC
Punto Decimal
Conexión de las botoneras al terminal de un FPLD.
Botonera Verdadera – baja
Botonera Verdadera – alta
Cuando es necesario utilizar dos Tarjetas educativas se debe conectar los terminales de Vcc y Gnd de la manera indicada:
Si a cualquier entrada del FPLD le llega el voltaje mayor que su Vcc el FPLD puede dañarse.