diseño y verificación en vhdl de microcontrolador...
TRANSCRIPT
-
SEMINARIO DE EXTENSIÓN DE ISLD – 2016
Clase inicial: Jueves 18 de Agosto, de 8:15 a 10:15 hs, Sala de Conferencias 1.Siguientes clases: Jueves 25 de Agosto y 1, 8 y 15 de Septiembre.
Sergio Noriega
Diseño y verificación en VHDL de microcontrolador
implementado en FPGA
uC16
-
Sergio Noriega - 2014
MÓDULO 1
-
Sergio Noriega - 2014
OBJETIVOS
EL PRESENTE SEMINARIO TIENE COMO OBJETIVO, INTRODUCIR A LOS ALUMNOS AL DISEÑO Y VERIFICACIÓN DE CIRCUITOS DIGITALES COMPLEJOS, EMPLEANDO TÉCNICAS BASADAS EN LENGUAJE DE DESCRIPCIÓN DE ALTO NIVEL DE ABSTRACCIÓN ,COMO ES EL VHDL Y EN PARTICULAR, ADENTRARSE EN EL DESARROLLO DE UN SISTEMA MICROPROCESADOR, EL CUAL ESTARÁ TOTALMENTE CONTENIDO DENTRO DE UNA FPGA.
A DIFERENCIA DE LOS ESQUEMAS TRADICIONALES DE ENSEÑANZA PARA ENCARAR EL DISEÑO DE UN MICRO, AQUÍ SE EMPLEARÁ UNA FILOSOFÍA BASADA EN DISEÑAR HARDWARE PARA EL CONTROL DE UNA MEMORIA RAM, LA CUAL IRÁ EVOLUCIONANDO PASO A PASO. EN FORMA SECUENCIAL SE IRÁ INCREMENTANDO LA CAPACIDAD DE PROCESAMIENTO DE DICHA UNIDAD DE CONTROL, PUDIENDO SER EXTENSIVO PARA EL CONTROL DE OTROS PERIFÉRICOS, TALES COMO CONVERSORES DE DATOS, GENERADORES PWM, PLL’S, ETC.
SE TRABAJARÁ EN BASE A UN MICRO CON ARQUITECTURA TIPO “CISC” DONDE LA CPU SE DISEÑARÁ EN BASE A MÁQUINA DE ESTADOS.
DADO QUE EL DISEÑO SE DESARROLLARÁ DE MANERA SECUENCIAL, INCREMENTANDO EN CADA PROYECTO LA COMPLEJIDAD DE FUNCIONES, NO SE CONSIDERARÁN OPTIMIZACIONES EN CUANTO AL REORDENAMIENTO DE ESTADOS REQUERIDOS, (SALVO ALGUNA EXCEPCIÓN) A FIN DE SIMPLIFICAR EL SEGUIMIENTO DE LA EVOLUCIÓN DE LA MÁQUINA DE ESTADOS .
-
uPMemoria
+Periféricos
BUS DE CONTROL
BUS DE DIRECCIONES
BUS DE DATOS
Sergio Noriega - 2014
DIAGRAMA EN BLOQUES DE UN SISTEMA BÁSICO DE MICROPROCESADOR
-
Sergio Noriega - 2014
PROYECTO RAM
Descripción en VHDL de una memoria SRAM de simple puerto (RAM)
-
MEM
OR
IA
FPGA
RAM
MEM
OR
IA
RA
M
clock
wren
data
address
q
12
16
GENERADOR DE ESTÍMULOS
DESDE TEST BENCH
BUSDATAMEMIN
BUS DATAMEMOUT
BUS DIRMEM
-
RAM
ESTA ES UNA DE LAS POSIBLES MANERAS DE DESCRIBIR MEMORIA RAM SINCRÓNICA PARA QUE LUEGOEL COMPILADOR RECONOZCA Y SELECCIONE LOS BLOQUES DERAM DEDICADOS PARA SUIMPLEMENTACIÓN.VENTAJA: DISEÑO OPTIMIZADO.DESVENTAJA: NO ES PORTABLE A OTRAS FPGA QUE NO TENGAN RAMDEDICADA.
-
RAM
MODELO DE RAM CONFIGURADA:ADDRESS, DATA IN, WREN = SINCRO.DATA OUT = ASINCRO.
USE RAM DEDICADA
REGISTROS = 4096ANCHO PALABRA =16
-
RAM
-
RAMCONTENIDO DEL ARCHIVO RAM.HEX PARA ESTE PROYECTO
CONTENIDO EN HEXADE LA MEMORIA RAMUNA VEZ CREADA.
FILE
EN FILE NEW MEMORY FILES:SE ELIGE EN ESTE CASO,HEXADECIMAL FILE.
-
RAMREPORTE FINAL DEL COMPILADOR
DETECCIÓN DEL COMPILADOR DE MEMORIA RAM
-
RAM
Descripción del testbench enVHDL de la memoria SRAM especificada anteriormente.
-
RAM
Después de declarar e instanciar la entidad de la memoria a probar, se generan dos procesos concurrentes:
1 – El del reloj, denominado “gen_reloj”.
2 – El de las señales estímulo, denominado “estimulos”.
-
RAM
LECTURA DE LA RAM ESCRITURA DE LA RAM LECTURA
SE LEEN LAS 10 PRIMERAS POSICIONES DE MEMORIA RAM,LUEGO SE LAS ESCRIBE CON NÚMEROS CONCECUTIVOS YSE VUELVEN A LEER DESDE EL INICIO LAS 20 PRIMERAS.
Diagrama temporal del TEST de la memoria RAM
-
RAM
SECUENCIA DE INICIAL DE LECTURA DE DATOS:SE LEEN TODOS X”FFFF” SEGÚN LA INICIALIZACIÓN DE LA MEMORIA.
-
RAM
LUEGO DE LA SECUENCIA DEESCRITURA SE LEEN LOS DATOSPREVIAMENTE ESCRITOS.
-
Sergio Noriega - 2014
PROYECTO CU1
Descripción de un control de memoriaRAM elemental para escritura-lecturacon una máquina de estado y un registrocontador.
CU1
-
clock
BUSDATAMEMIN
BUS DATAMEMOUT
BUS DIRMEM
MEM
OR
IA
RSTCLK
CONTROL
PC
16
FPGA
CU1
MEM
OR
IA
RA
M
X“0
00
0”
clock
wren
data
address
q
X“0
00
0”
opselecpc,clockpc
12
16
16
VALORES CONSTANTES
-
FPGAPC16
PC
16
clockpc
entradapc
opselecpc (1..0)
1616
GENERADOR DE ESTÍMULOS
DESDE TEST BENCH salidapc
-
Sergio Noriega - 2014
Descripción en VHDL de unregistro-contador de 16 bitspreseteable (PC16)
-
PC16
-
PC16
-
PC16
Sergio Noriega - 2014
-
PC16
-
CU1
INSTANCIACIÓN DE LASENTIDADES “RAM” Y “PC16”DESCRIPTAS EN ARCHIVOSSEPARADOS E INVOCADOSAQUÍ COMO “COMPONENTES”
-
CU1
-
CU1
-
CU1REPORTE DEL COMPILADOR
-
CU1DIAGRAMA TEMPORAL MOSTRANDO LA EVOLUCIÓN DE LAS SEÑALES
-
Sergio Noriega - 2014
PROYECTO CU2
Descripción de un control de memoriaRAM elemental para escritura-lecturacon una máquina de estado y un registrocontador y latch para el bus de direcciones.
CU2
-
BUSDATAMEMIN
BUS DATAMEMOUT
BUS DIRMEM
MEM
OR
IA
BUS CONTROL
RSTCLK
CONTROL
PC
16
MA
R
FPGACU2
MEM
OR
IA
X”0
00
0”
dat
a
-
CU2
Trabajos a realizar en este proyecto:
1) Leer el dato desde la RAM (posición de memoria X”0000”).2) Incrementar en ‘1’ el contenido de contador PC16.3) Leer el dato desde la RAM de la siguiente posición de memoria.4) Incrementar en ‘1’ el contenido de contador PC16.5) Leer el dato desde la RAM.
Sergio Noriega - 2014
-
Sergio Noriega - 2014
Descripción en VHDL de unregistro de 16 bits (MAR16)
-
FPGAMAR
MA
R1
6
clockmar
entradamar
escribirmar
1616
GENERADOR DE ESTÍMULOS
DESDE TEST BENCH salidamar
-
MAR
-
MAR
-
MAR
-
MAR
-
CU2
-
CU2
-
CU2
CARGO PC16 CON X”0000”PROGRAMO NUEVO ESTADO
DESACTIVO PC16PROGRAMO NUEVO ESTADO
-
CU2
ESCRIBO REGISTRO MARPROGRAMO COMO NUEVO ESTADO
DESACTIVO REGISTRO MARPROGRAMO COMO NUEVO ESTADO
INCREMENTO PC16PROGRAMO NUEVO ESTADO
DESACTIVO REGISTRO PC16PROGRAMO COMO NUEVO ESTADO
-
CU2
ESCRIBO REGISTRO MARPROGRAMO COMO NUEVO ESTADO
DESACTIVO REGISTRO MARPROGRAMO COMO NUEVO ESTADO
-
CU2TEST-BENCH DEL PROYECTO CU2
-
CU2TEST-BENCH DEL PROYECTO CU2
-
CU2
-
CU2
MEMORIA RAM PREVIAMENTEINICIALIZADA CON DATOS
-
CU2
-
CU3
PROYECTO CU3
DISEÑO EN VHDL DE CONTROLADOR DE ESCRITURA Y LECTURA DE UNA MEMORIA RAM.
Sergio Noriega - 2014
-
BUSDATAMEMIN
BUS DATAMEMOUT
BUS DIRMEM
MEM
OR
IA
BUS CONTROL
RST
CLK
CONTROL
PC
16
MA
RM
DR
OM
DR
I
FPGACU3
MEM
OR
IA
RX
X”0
00
0”
MAR:MEMORY ADDRESS REGISTER
MDRI:MEMORYDATA-INREGISTER
RX:DATAREGISTER
MDRO:MEMORYDATA-OUTREGISTER
-
Sergio Noriega - 2014
Descripción en VHDL de unregistro de 16 bits (MDRO)
-
FPGA
MDRO
MD
RO
clockmdro
entradamdro
escribirmdro
1616
GENERADOR DE ESTÍMULOS
DESDE TEST BENCH salidamdro
-
MDRO
-
MDROTEST-BENCH DE MDRO
-
MDRO
-
Sergio Noriega - 2014
Descripción en VHDL de unregistro de 16 bits (MDRI)
-
Sergio Noriega - 2014
El mismo diseño que MDRO
-
FPGA
MDRI
MD
RI
clockmdri
entradamdri
escribirmdri
1616
GENERADOR DE ESTÍMULOS
DESDE TEST BENCH salidamdri
-
Sergio Noriega - 2014
TEST-BENCH DE MDRI
-
Sergio Noriega - 2014
Descripción en VHDL de unregistro-contador de 16 bitspreseteable (RX)
-
FPGARX
RX
clockrx
entradarx
opselecrx (1..0)
1616
GENERADOR DE ESTÍMULOS
DESDE TEST BENCH salidarx
resetrx
-
RX
-
RXTEST-BENCH DE RX
-
RX
-
Diagrama temporal de la prueba del registro de datos RX
INC DEC LATCHLATCH RESET SINCR.
RX
-
CU3
-
CU3
-
CU3
-
CU3
Carga PC con 0x0000
Habilita MAR
-
CU3
Escribe en MDRI
-
CU3
Carga Rx contenido de MDRI
Incrementa contenido de RX
-
CU3
Modo escritura de RAM
Carga Rx contenido de MDRI
-
CU3
-
CU3
-
CU3
1) Se lee la posición de memoria 0x000 que contiene dato = 0x0000 en MDRI.2) Se escribe el RX con dicho valor.3) Se incrementa el contenido de RX.4) Se transfiere el contenido de RX a MDRO.5) Se configura la RAM para escritura.