Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o...

40
José Manuel Mendías Cuadros Dpto. Arquitectura de Computadores y Automática Universidad Complutense de Madrid Laboratorio 10: Interfaces programables de E/S mapeo en el espacio de direcciones de un microcontrolador Diseño automático de sistemas

Transcript of Laboratorio 10: Interfaces programables de E/S · o Arquitectura Harvard o 16 registros de 8 bits o...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.