laboratorio 10: interfaces programables de e/s · o arquitectura harvard o 16 registros de 8 bits o...
TRANSCRIPT
![Page 1: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/1.jpg)
José Manuel Mendías CuadrosDpto. Arquitectura de Computadores y AutomáticaUniversidad Complutense de Madrid
Laboratorio 10:Interfaces programables de E/Smapeo en el espacio de direcciones de un microcontrolador
Diseño automático de sistemas
![Page 2: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/2.jpg)
2
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
Diseñar un esquema genérico de interconexión de interfaces programables de dispositivos a un bus síncrono.
o Conceptualmente análogo al usado por Xilinx EDK para interconectar sistemas hardware a un microcontrolador.
o Cada interfaz se mapeará en un rango de direcciones dado y actuará como esclavo del bus realizando transferencias de datos desde/hacia el microcontrolador
Bus
MCU(master)
interfaz 1(slave)
interfaz 2(slave)
dispositivo 1 dispositivo 2
Memoria
![Page 3: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/3.jpg)
3
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
aBusdBuswrCErdCErst_nclk
CPU(master)
interfaz 1(slave)
busWrapper 1
regSel
wrErdE
dataIn
dataOut
interfaz 2(slave)
busWrapper 2
regSel
wrErdE
dataIn
dataOut
dispositivo 1 dispositivo 2
![Page 4: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/4.jpg)
4
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
controlador dispositivo
![Page 5: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/5.jpg)
5
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
stat
dataOut
LD
LD
REGconfconf
dataIn
LD
LD
controlador dispositivo
![Page 6: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/6.jpg)
6
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
stat
dataOut
LD
LD
REGconfconf
dataIn
LD
LD
controlador dispositivo
dataIn
![Page 7: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/7.jpg)
7
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
stat
dataOut
LD
LD
REGconfconf
dataIn
LD
LD
controlador dispositivo
dataIn
E
regSel wrE
![Page 8: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/8.jpg)
8
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
controlador
stat
dataOut
E
LD
LD
dataInregSel wrE dataOut
E
rdE
REGconfconf
dataIn
LD
LD
dispositivo
![Page 9: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/9.jpg)
9
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
controlador
stat
dataOut
E
LD
LD
dataInregSel wrE dataOut
E
rdE
REGconfconf
dataIn
LD
LD
dispositivo
![Page 10: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/10.jpg)
10
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
Diseñar un adaptador de bus genérico:o Permitirá mapear en direcciones distintas los registros de un interfaz programableo Serán configurables:
• el número de registros del interfaz (NUMREG)• la dirección base (BASEADDR) a partir de la cual están ubicados los registros • La anchura del bus de datos (DWIDTH) y direcciones (AWIDTH)
aBus
wrErdE
wrCErdCE
dataIn
dBus
dataOut regSel
= BASEADDR
AWIDTH
DWIDTHDWIDTH
log2(NUMREG)AWIDTH‐log2(NUMREG)
![Page 11: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/11.jpg)
11
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
Diseñar un puerto de entrada/salida programable:o Dispondrá de un registro de configuración (accesible si regSel vale 1):
• Cada bit configura la correspondiente línea de io como entrada/salida (1/0)
o Dispondrá de un registro de datos (accesible si regSel vale 0):• Si el puerto está configurado como salida, almacenará el valor escrito por la CPU. Su salida
estará conectada al puerto.• Si el puerto está configurado como entrada, en todo ciclo cargará el valor presente en el
puerto. Su entrada estará conectada al puerto.
o Adicionalmente dispondrá de una salida de interrupción• Se activará durante un ciclo si hay cambio en algún puerto configurado como entrada.
GPIO
rst_nclk
int
ioPWIDTHregSel
rdE
dataOutdataIn
DWIDTH
wrE
DWIDTH
![Page 12: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/12.jpg)
12
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
conRegi
datRegi
![Page 13: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/13.jpg)
13
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
conRegi
datRegi
ioj
![Page 14: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/14.jpg)
14
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
conRegi
datRegi
ioi
sync
0 1
![Page 15: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/15.jpg)
15
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
conRegi
datRegi
ioi
sync
0 1
dataIni
![Page 16: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/16.jpg)
16
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
conRegi
datRegi
ioj
sync
0 1
dataOuti
rdE
0
1
E
regSel
dataInj
![Page 17: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/17.jpg)
17
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
conRegi
datRegi
ioi
sync
0 1
dataOuti
rdE
0
1
E
regSel
dataIni
1
0E
wrE
![Page 18: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/18.jpg)
18
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
dataIni
dataOuti
1
0E
conRegi
ioi
rdE datRegi
0 1
sync
wrE
0
1
E
regSel
int
![Page 19: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/19.jpg)
19
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
dataIni
dataOuti
1
0E
conRegi
ioi
rdE datRegi
0 1
sync
wrE
0
1
E
regSel
int
![Page 20: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/20.jpg)
20
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
Siguiendo el mismo patrón es sencillo diseñar cualquier tipo de interfaz programable partiendo de un controlador de dispositivo
UART lite
intTx
regSel
rdE
dataOutdataIn
wrE
intRx
RxDTxD
Controladorde
interrupcionesintTx
regSel
rdE
dataOutdataIn
wrE
intRx
intIn
intRqtintCode
![Page 21: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/21.jpg)
21
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
RxDrs232receiver8
TxDrs232transmitterbusy
8
![Page 22: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/22.jpg)
22
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
RxDrs232receiver8
TxDrs232transmitterbusy
8
TxFifo rdEwrE
8
wrEdataIn
TxEmpty
![Page 23: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/23.jpg)
23
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
RxDrs232receiver8
TxDrs232transmitterbusy
8
TxFifo rdEwrE
RxFifo wrErdE
8
wrEdataIn
TxEmpty
dataOut
rdE
1
0
regSel
E
8
![Page 24: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/24.jpg)
24
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
RxDrs232receiver8
TxDrs232transmitterbusy
8
TxFifo rdEwrE
RxFifo wrErdE
8
wrEdataIn
TxEmpty
dataOut
rdE
1
0
regSel
E
TxFull
RxFull RxEmpty8
![Page 25: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/25.jpg)
25
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
RxDrs232receiverRxFifo8
wrErdE
TxDrs232transmitterTxFifo rdEwrE
TxFull TxEmpty
wrEdataIn
RxFull RxEmptydataOut
rdE
1
0
regSel
E
88
intRx
intTx
busy
8
![Page 26: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/26.jpg)
26
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
RxDrs232receiverRxFifo8
wrErdE
TxDrs232transmitterTxFifo rdEwrE
TxFull TxEmpty
wrEdataIn
RxFull RxEmptydataOut
rdE
1
0
regSel
E
88
8
intRx
intTx
busy
![Page 27: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/27.jpg)
27
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
intPendiST
REGconfintMaski
intEnable
LD
LD
CL
![Page 28: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/28.jpg)
28
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
intPendi
REGconfintMaski
intEnable
LD
LD
CL
dataIni
E
regSel wrE
10
23
ST
intIni
![Page 29: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/29.jpg)
29
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
intPendi
REGconfintMaski
intEnable
LD
LD
CL
dataIni
E
regSel wrE
10
23
ST
intIni
![Page 30: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/30.jpg)
30
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
intPendi
REGconfintMaski
intEnable
LD
LD
CL
dataIni
E
regSel wrE
10
23
A
intCode
E
intRqt
ST
intIni
![Page 31: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/31.jpg)
31
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
intPendi
E
dataIniregSel wrE
dataOuti
E
rdE
REGconfintMaski
intEnable
LD
LD
0CL
10
23
10
23
A
intCode
intRqt
E
ST
intIni
![Page 32: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/32.jpg)
32
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
diagrama RTL
intPendi
E
ST
dataIniregSel wrE
dataOuti
E
rdE
REGconfintMaski
intEnable
LD
LD
0
intIni
CL
10
23
10
23
A
intCode
intRqt
E
![Page 33: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/33.jpg)
33
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
Para testar el esquema de interconexión conectaremos 3 GPIO con un microcontrolador de 8 bits:
o Un GPIO estará conectado a los switches y mapeado a partir de la dirección (fc)16o Un GPIO estará conectado a los leds y mapeado a partir de la dirección (fe)16o Un GPIO estará conectado a los 7‐segs y mapeado a partir de la dirección (fa)16
Como microcontrolador usaremos PicoBlace (versión KCPMS3) de Xilinx.o Soft core escrito en VHDL que ocupa 96 slices + 1 blockRAM en una Spartan3o Rendimiento predecible: 2 ciclos/instruccióno Arquitectura Harvardo 16 registros de 8 bitso Memoria de datos (Scratchpad RAM) para 64 datos de 8 bitso Memoria de programa (PROM) para 1024 instrucciones de 18 bits o Pila para 31 direcciones de 10 bitso Bus de periféricos de 8 bits con señalización por strobe de 1 cicloo Una única línea de INT/ACKo Dispone de ensamblador
![Page 34: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/34.jpg)
34
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
PicoBlace de Xilinx
![Page 35: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/35.jpg)
35
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
lab10.vhd
architecture syn of lab10 is
...
begin
gpioWrapper1 : busWrappergeneric map ( NUMREG => 2, DWIDTH => 8, AWIDTH => 8, BASEADDR => 16#fe# )port map (
wrCE => wrCE, rdCE => rdCE, aBus => aBus, dBus => dBus, regSel => regSel1, wrE => wrE1, dataIn => dataIn1, rdE => rdE1, dataOut => dataOut1
);
gpio1 : gpiogeneric map ( DWIDTH => 8, PWIDTH => 8 )port map (
rst_n => rst_n, clk => clk, regSel => regSel1(0), wrE => wrE1, dataIn => dataIn1, rdE => rdE1, dataOut => dataOut1, int => int1,io => leds
);
...
![Page 36: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/36.jpg)
36
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
lab10.vhd
...
microcontroller: kcpsm3port map(
reset => not rst_n, clk => clk,interrupt => interrupt, interrupt_ack => interrupt_ack,address => apBus, instruction => dpBus, port_id => aBus, write_strobe => wrCE, out_port => outPort, read_strobe => rdCE, in_port => dBus
);
dBus <= outPort when wrCE='1' else (others => 'Z');
programMemory : RAMB16_S18generic map (
INIT_00 => "01FF80016F3FCFFC...",...
) port map (
clk => clk, en => '1', ssr => '0', we => '0',addr => apBus,di => X"0000", dip => "00",do => dpBus(15 downto 0), dop => dpBus(17 downto 16)
);
end syn;
![Page 37: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/37.jpg)
37
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
lab10.psm
CONSTANT GPIODAT1, fe ;Define las direcciones de dispositivosCONSTANT GPIOCON1, ff...NAMEREG s0, arg ;Renombra registrosNAMEREG sF, aux...
ADDRESS 000main:
DISABLE INTERRUPT CALL gpio_init ;Inicializa dispositivosCALL segs_initENABLE INTERRUPT LOAD arg, 00
loop:CALL segs_putchar ;Indefinidamente muestra los numeros 0-f en el displayCALL delayADD arg, 01AND arg, 0fJUMP loop
isr:STORE aux, 3f ;Guarda el valor del registro usadoINPUT aux, GPIODAT1 ;Lee dato de GPIO-1 OUTPUT aux, GPIODAT2 ;Escribe el dato leido en GPIO-2FETCH aux, 3f ;Restaura el valor del registro usadoRETURNI ENABLE
...
![Page 38: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/38.jpg)
38
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
lab10.psm
...gpio_init:
LOAD aux, ff ;Programa GPIO-1 como entradaOUTPUT aux, GPIOCON1 LOAD aux, 00 ;Programa GPIO-2 como salidaOUTPUT aux, GPIOCON2LOAD aux, 00 ;Programa GPIO-3 como salidaOUTPUT aux, GPIOCON3RETURN
segs_init:LOAD aux, 00 OUTPUT aux, GPIODAT3 ;Apaga el displayLOAD aux, 7e ;Crea en la scratchad una tabla de codigos 7-segmentosSTORE aux, 00LOAD aux, 30STORE aux, 01...RETURN
segs_putchar:FETCH aux, (arg) ;Visualiza un numero en el display indexando la tablaOUTPUT aux, GPIODAT3RETURN
ADDRESS 3ff ;Instala la ISR en la tabla del vector de interrupcionJUMP isr
![Page 39: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/39.jpg)
39
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
1. Crear el proyecto lab10 en el directorio DAS 2. Descargar de la Web en el directorio common los ficheros
o busWrapper.vhd, kcpsm3.vhd y gpio.vhd
3. Descargar de la Web en el directorio lab10 los ficheros:o lab10.vhd y lab10.ucf
4. Completar el fichero common.vhd con la declaración de los nuevos componentes reusables.
5. Completar el código omitido en el ficheros:o busWrapper.vhd y gpio.vhd
6. Añadir al proyecto los ficheros:o common.vhd, synchronizer.vhd, busWrapper.vhd, kcpsm3.vhd,
gpio.vhd, lab10.vhd y lab10.ucf
7. Sintetizar, implementar y generar el fichero de configuración.8. Conectar la placa y encenderla.9. Descargar el fichero lab10.bit
![Page 40: Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o Memoria de datos (ScratchpadRAM) para 64 datos de 8 bits o Memoria de programa](https://reader035.vdocumento.com/reader035/viewer/2022063013/5fcaf75b4b14665fed761cd9/html5/thumbnails/40.jpg)
40
DAS
labo
ratorio
10:
Interfaces program
ables de
E/S
J.M
. Men
días
2017
Licencia CC (Creative Commons)o Ofrece algunos derechos a terceras personas bajo ciertas
condiciones. Este documento tiene establecidas las siguientes:
Más información: https://creativecommons.org/licenses/by‐nc‐sa/4.0/
Reconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licenciahará falta reconocer la autoría.
No comercial (Non commercial): La explotación de la obra queda limitada a usos no comerciales.
Compartir igual (Share alike):La explotación autorizada incluye la creación de obras derivadas siempre que mantengan la misma licencia al ser divulgadas.