cu16 proyecto cu16 - unlp...retardos en forma independiente al microcontrolador (uc).--programable...
TRANSCRIPT
CU16
PROYECTO CU16
EJEMPLO DE UTILIZACIÓN DEL MICROCONTROLADOR uC16 COMO
PLC (CONTROLADOR LÓGICO PROGRAMABLE) BÁSICO.
CU16
L1
SW0
SW2
SW0SW1
SW0
SW2
L1
L2 L3
EJEMPLO 1: SIN ENCLAVAMIENTO
PLC
SW0 SW1 SW2
L2 L3 L4
PB0 PB1 PB2 PORT B
PORT APA1 PA2 PA3 PA4
CU16ECUACIONES LÓGICAS: L1 = SW0; L2 = SW0 • SW2; L3 = ( SW1 + SW2 ) • SW0
LEER PORT B
BIT0 PB=0?
SI
NO
(PA) <- 0
BIT1 PA <- 0 BIT1 PA <- 1
EJEMPLO PARA PROGRAMAR "L1"
LEER PORT B
BIT0 PB=0?
SI
NO
(PA) <- 0
BIT2 PA <- 0
BIT2 PA <- 1
EJEMPLO PARA PROGRAMAR "L2"
BIT2 PB=0?
NO
SI
CU16
PLC
SW0 SW1 SW2
L1 L2 L3 L4
SW0
SW1
L4
PB0 PB1 PB2 PORT B
PORT APB1 PB2 PB3 PB4
EJEMPLO 2: CON ENCLAVAMIENTO
SW1 ACTÚA COMO RESET POR NIVEL.SW0 ACTÚA COMO SET POR NIVEL PERO DEJA A "L4" EN SET HASTA QUE ACTÚE NUEVAMENTE SW1.
LATCH
CU16
IF SW1 = 1 THEN L4 <-0ELSIF SW0=1 THEN L4 <-1ENDIF
PSEUDOCÓDIGO EN VHDLLEER PORT B
SW1=1?
SI NO
(0800) <- 0
BIT4 PA <- 0
SW0=1?
MEMORIA 0800 PARA ALMACENAMIENTODE ESTADO DE "L4".
(0800)=0?
(0800) <- 0
SI
NO
NO
SI
BIT4 PA <- 1
(0800) <- 1
EJEMPLO PARA PROGRAMAR "L4"
DISCUSIÓN:CÓMO SE PUEDE HACER PARA TEMPORIZAR ELESTADO DE L4 DURANTEEL ENCENDIDO ..???
CU17
PROYECTO CU17
DISEÑO EN VHDL DE UN TIMER PROGRAMABLE DE 16 BITS, TIMERØ.PERMITE GENERAR TIEMPOS DE PRECISIÓN PARA SU EMPLEO COMORETARDOS EN FORMA INDEPENDIENTE AL MICROCONTROLADOR (uC).--PROGRAMABLE CON RANGO DE 16 BITS. --DIVISOR DE RELOJ DE ENTRADA PROGRAMABLE (X16, X32, …., X2048).--SALIDA DE FIN DE CONTEO PARA SER USADA COMO AVISO DE TIEMPO
ALCANZADO.
DIVISORDE
FREC.
clocktmr
selclocktmr(2...0)
entradatmr (15...0)
opselectmr
Contador binarioregresivo de 16 bits
precargable(DOWNCOUNTER)
salidatmr
TIMER_0CU17
Divisor de reloj de entradaprogramable (8 opciones:desde x16 hasta x2048).
La salida se pone a '1'al llegar el conteo a "0".Se resetea al poner laentrada opselectmr en '0'.
Diseño de contadorregresivo con precargasincrónica y salida deconteo nulo.
CU17 TIMER_0
CU17 TIMER_0
Aquí se genera el aviso de conteo nulo,luego de 64 us desde la habilitación.
clocktmr [ns] x div frec. x entradatmr = 20 ns x 32 x 100 = 64.000 ns
CU17 TIMER_0
INSTRUCCIONES ASOCIADAS CON TIMER0:
LOAD_TMR0
JUMP_IF_TMR0_IS_Z
CU17 TIMER_0
SignalTap II Logic Analyzer
Sergio Noriega 2018
Herramienta empleada cuando es necesario realizar una verificación funcional del diseño empleando el hardware sintetizado en la FPGA. Funciona como un analizador lógico donde es posible seleccionar las señales que servirán para disparar el análisis y las que se desean testear.Las señales de trigger pueden ser internas ó externas de entrada a la FPGAbajo estudio (lo mismo que las señales bajo análisis).Dado que la información se almacena en memoria se requieren recursos tanto de lógica como de memoria dedicada de la propia FPGA en estudio.Los resultados pueden verse en el mismo ambiente de diseño en el Quartus yalmacenados luego en un archivo para posterior tratamiento.
Ventajas:Permite realizar un análisis de la respuesta del hardware empleando eventos de disparo provenientes de señales internas ó externas al dispositivo.
Desventajas:No permite realizar una verificación rigurosa del TIMING. Para ello existen otras herramientas de análisis como por ej. TimeQuest Timing Analyzer.
SIGNAL TAP II
SIGNAL TAP II
En el siguiente ejemplo se analizará la respuesta de los bits de salida de un contador binario de 8 bits, el cual es sintetizado en la FPGA Cyclone IV de la placa DE0-Nano.Todo el proceso de análisis se realiza con la placa conectada a la PC.Se utiliza como trigger la señal de RESET la cual es externa y asignada al pulsadorKEY0.Los 8 bits de salida del contador serán almacenadas en memoria de la FPGAy posteriormente grabados en un archivo.
Al iniciar el análisis en el mismo ambiente del Quartus, es posible ver el diagrama temporal con la evolución de las señales a testear.
La cantidad de muestras se puede ajustar y depende de los recursos de la FPGA.En este caso se eligen 16 Kmuestras.
Para definir el tiempo de muestreo se usa el reloj de 50 MHz de la entrada.
SIGNAL TAP II
reset
enablecount
clk_50mhz
cou
nt
clk
cuen
ta
enableKEY1
resetKEY0
(TRIGGER)
(SAMPLE)
clk_50mhz
divisor_clock_p
SIGNAL TAP II
A este contador se le hacenlas siguientes asignacionesen la placa DE0-Nano:
RESET a pulsador KEY0.ENABLE a pulsador KEY1.CLK_50MHZ a oscilador 50MHz.Las 8 Salidas a los 8 LED´s.
KEY0 y KEY1 están siempre en«1» cuando NO se presionan(son pulsadores sin retención).
SIGNAL TAP II
RESULTADO DE LA COMPILACIÓN SIN USAR LA HERRAMIENTA «SignalTap II»
SIGNAL TAP II
Se configura la entrada de relojclk_50mhz como referencia parael período de muestreo.Se definen 16Kmuestras para eltamaño del buffer de almacena-miento de las señales.
Se definen lasseñales usadas para su análisque son las 8salidas del contador count
SIGNAL TAP II
Se configura el disparo comopretrigger.La señal de disparo es RESET y elmuestreo empieza al detectarseun flanco de subida en esa señal(al soltar el pulsador KEY0).
Requerimiento del analizador
SIGNAL TAP II
Si bien el circuito contador no emplea memoria dedicada, las 16 Kmuestras solicitadas para hacer el análisis, utiliza el 22% de los recursos disponibles con el modelo de la Cyclone IV que viene en la DE0-Nano.Por otro lado, el proyecto requiere un total de 11 Elementos Lógicos para implementarel contador, mientras que el SignalTap, necesita 656.
RESULTADO DE LA COMPILACIÓN AL USAR LA HERRAMIENTA «SignalTap II»
SIGNAL TAP II
PASOS A REALIZAR:
1) El análisis se inicia al presionar el botón de Analysis de la ventana del SignalTap.
2)Como la entrada de RESET es la que origina el comienzo de la adquisición demuestras, se debe presionar KEY0.Al soltar KEY0 (flanco de subida) comienza el proceso el cual se detendrá al llenar el buffer.
3)Al termino de la captura, aparecerá una ventana con un diagrama temporal con las señales configuradas para su análisis.Se puede operar sobre ese diagrama o posteriormente dado que la información sealmacena en un archivo de datos.
SIGNAL TAP II
Diagrama temporal con las 16Kmuestras adquiridas de las 8 salidas del contador
SIGNAL TAP II
Diagrama temporal con las 16Kmuestras adquiridas de las 8 salidas del contador
Zoom
BIBLIOGRAFÍA (I):--VHDL FOR LOGIC SYNTHESIS.ANDREW RUSHTON. 3RD. EDITION. ED. WILEY. 2011.
--THE GUIDE TO VHDL. PETER ASHENDEN – JIM LEWIS. 3RD. EDITION. 2008.
--FINITE STATE MACHINES IN HARDWARE: Theory and Design (with VHDL and SystemVerilog)VOLNEI A. PEDRONI , 2013.
--RAPID PROTOTYPING OF DIGITAL SYSTEMS WITH QUARTUS II.JAMES O. HAMBLEN. ED. SPRINGER. 2005.
--MICROPROCESSOR DESIGN: PRINCIPLES AND PRACTICES WITH VHDL.ENOCH O. WANG. ED. COLE. 2004.
--TRABAJO FINAL “DISEÑO DE UN MICROPROCESADOR EN UN DISPOSITIVO FPGACON VHDL“. ALUMNO: MARCOS MINEO, DEPTO ELECTROTÉCNIA, FAC. DE ING.,U.N.L.P. 2003.
--DISEÑO DE UN MICROCONTROLADOR MC6805 USANDO LÓGICA PROGRAMABLE FLEX de ALTERA. GUILLERMO A. JAQUENOD. 2000.
--FILMINAS DE TEORÍA DE ISLD: "CIRCUITOS LÓGICOS PROGRAMABLES:VHDL". 2017
--Cyclone IV Manual Data Sheet. ALTERA. 2010.
--QUARTUS II HANDBOOK. 10.1 VERSION. ALTERA 2010.
--WEBSITE: eewiki.net (proyectos con controladores para LCD, VGA e I2C)
BIBLIOGRAFÍA (II):
--RAM Initializer (ALTMEM_INIT) Megafunction User Guide (ALTERA).
--Internal Memory (RAM and ROM) User Guide. ALTERA. 2009.
--The Design of an 8-bit CISC CPU Based on FPGA. Yunjie Zhang, Lei Bao Electronic & Information Engineering Department. 2010.
--The Design of an 8-Bit CISC CPU Based on FPGA . IEEE WIRELESS COMMUNICATIONS, NETWORKING AND MOBILE COMPUTING CONFERENCE. 2011.
--Un Microprocesador Elemental como ejercicio de diseño de Sistemas Digitales. T. POLLÁN, C. BERNAL Y A. BONO. Escuela Universitaria de Ingeniería Técnica Industial de Zaragoza. 2007.
--Using ModelSim to Simulate Logic Circuits in VHDL Designs. ALTERA FOR QUARTUS 11.1.
--UM10204 I2C-bus Specification and User Manual (NXP Semiconductors 2014).
--24LC02B Data Sheet (MICROCHIP).
--ADC128S022 Data Sheet (NATIONAL SEMICONDUCTORS).
SEMINARIO DE EXTENSIÓN DE ISLD – 2018
Sergio Noriega – ISLD 2018
uC16
GRACIAS …