+ All Categories
Transcript
Page 1: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6 PROYECTO CU6

DISEÑO EN VHDL DE MICROPROCESADOR ELEMENTAL CON UN REGISTRO INTERNO CON ACCESO DIRECTO A LA MEMORIA DE DATOS PARA REALIZAR LECTURA Y ESCRITURA DE LA MISMA Y OPERACIONES ARITMÉTICO-LÓGICAS ENTRE ELLA Y DICHO REGISTRO.

Page 2: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

BUS DATA MEM IN

BUS DATA MEM OUT

BUS DIR MEM

MEM

OR

IA

uP16

BUS CONTROL

CLK RST

CPU

MA

R

MD

RO

M

DR

I

FPGA CU6

MEM

OR

IA

IR

PC

16

R

MU

XM

AR

RX

MUXRX

ALU

CLK_UP16

DIV_CLK

Page 3: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6

14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IR 15

00000000 = CLR RX 00000001 = INC RX 00000010 = LDI RX 00000011 = DEC RX 00000100 = NOP 10000000 = RST 00000101 = LDD RX 00000110 = STR RX 00000111 = OPERACIONES ARITMÉTICO- LÓGICAS ENTRE MEMORIA DE DATOS Y REGISTRO “RX”.

01000 RX RX +MEM 01001 RX RX + MEM +C 01010 RX RX - MEM 010 11 RX RX – MEM - C 10001 RX NOT RX 00101 RX SWAP RX 10000 RX SLA RX 10001 RX SRA RX 10010 RX SLL RX 10011 RX SRL RX 11000 RX RX AND MEM 11001 RX RX NAND MEM 11010 RX RX OR MEM 11011 RX RX NOR MEM 11100 RX RX XOR MEM 11101 RX RX XNOR MEM

EN “0”

Page 4: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

FPGA ALUR

clockalu

entradaalu_a

opselecalu (4..0)

16

16

GENERADOR DE ESTÍMULOS

DESDE TEST BENCH

salidaalu

ALU

entradaalu_b

16

Page 5: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

ALUR

Page 6: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

ALUR

IMPLEMENTACIÓN DE “A + B + CARRY”

y “A – B – CARRY”

RECIÉN EN EL PROYECTO CU7

Page 7: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

ALUR TEST-BENCH DE ALUR

Page 8: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

ALUR

Page 9: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

ALUR

Page 10: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

ALUR

salidaalu <= A B A X”F00F” X”A0AF”

Page 11: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

ALUR

salidaalu <= A + B A + B + C A – B A – B – C X”190BE” X”190BF” X”4F60” X”4F5F”

Page 12: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

ALUR

salidaalu <= A NOT A SWAP A SLA SRA

Page 13: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

ALUR

salidaalu <= A AND B A NAND B A OR B A NOR B A XOR B

Page 14: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

MUXRX

Page 15: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

MUXRX

Page 16: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

MUXRX TEST-BENCH DE MUXRX

Page 17: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

MUXRX

Page 18: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6

(1) TRABAJOS CON INSTRUCCIONES SÓLO CON RX: --REALIZAR OPERACIÓN. --GRABAR RESULTADO EN EL REGISTRO. (2) TRABAJOS CON INSTRUCCIONES ENTRE RX Y MEM: --LEER DATO DE MEMORIA. --REALIZAR OPERACIÓN. --GRABAR RESULTADO EN EL REGISTRO. PARA OPTIMIZAR EL USO DE ESTADOS SE APROVECHA PARTE DE LAS RUTINAS DE (1) EN LAS ACTIVIDADES DE (2) COMO SE HIZO EN EL PROYECTO ANTERIOR CON STR_RX/LDD_RX Y LDI_RX.

Page 19: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6

Page 20: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6

Page 21: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6

Page 22: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6

Page 23: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6

TEST-BENCH PARA CU6

Page 24: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6 REPORTE DEL COMPILADOR

Page 25: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6 CONTENIDO DEL ARCHIVO RAM.HEX PARA ESTE PROYECTO

Instrucciones cargadas en RAM: LDI RX, 0200

STR RX, 0800 LDI RX, 0018 STR RX, 0801 LDD RX, 0800 RST RX + MEM, 0801 LDI RX, F001 SLL RX SRL RX SRL RX RX AND MEM, 0800 NOT RX RST

Page 26: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6

TEST BENCH PARA VERIFICAR CONTENIDO DE RAM PARA ESTE PROYECTO

Page 27: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU6

LDI RX, 0800 LDI RX, 0801 LDD RX, 0800 RX + MEM SLL SRL RX AND MEM NOT RX

Page 28: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7 PROYECTO CU7

DISEÑO EN VHDL DE MICROPROCESADOR ELEMENTAL CON UN REGISTRO INTERNO CON ACCESO DIRECTO A LA MEMORIA DE DATOS PARA REALIZAR LECTURA Y ESCRITURA DE LA MISMA Y OPERACIONES ARITMÉTICO-LÓGICAS ENTRE ELLA Y DICHO REGISTRO. SE ADICIONAN INSTRUCCIONES PARA IMPLEMENTAR REDIRECCIONAMIENTO CONDICIONAL E INCONDICIONAL Y OPERACIONES CONDICIONALES CON REGISTRO RX.

Page 29: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

BUS DATA MEM IN

BUS DATA MEM OUT

BUS DIR MEM

MEM

OR

IA

uP16

BUS CONTROL CPU

MA

R

MD

RO

M

DR

I

FPGA CU7

MEM

OR

IA

IR

PC

16

R

MU

XM

AR

RX

MUXRX

ALU CCR

CLK RST

CLK_UP16

DIV_CLK 0

1

0 1

Nota: Ahora MDRO se conecta a la salida de la ALU

Page 30: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IR 15

00000000 = CLR RX 00000001 = INC RX 00000010 = LDI RX 00000011 = DEC RX 00000100 = NOP 10000000 = RST 00000101 = LDD RX 00000110 = STR RX 00000111 = OPERACIONES ARITMÉTICO- LÓGICAS ENTRE MEMORIA DE DATOS Y REGISTRO “RX”. 00010000 = JMP PC, (MEMCODE+1) 00010001 = JMP PC, IF Z 00010010 = JMP PC, IF C 00010011 = DEC RX, IF NOT Z

01000 RX RX +MEM 01001 RX RX + MEM +C 01010 RX RX - MEM 010 11 RX RX – MEM - C 10001 RX NOT RX 00101 RX SWAP RX 10000 RX SLA RX 10001 RX SRA RX 10010 RX SLL RX 10011 RX SRL RX 11000 RX RX AND MEM 11001 RX RX NAND MEM 11010 RX RX OR MEM 11011 RX RX NOR MEM 11100 RX RX XOR MEM 11101 RX RX XNOR MEM

EN “0”

Dependendientes del CCR (CONDITION CODE REGISTER) *

*

Page 31: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CCR

Page 32: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CCR

Page 33: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CCR TEST-BENCH DE CCR

Page 34: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CCR REPORTE DEL COMPILADOR

Page 35: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CCR

C = 1 , Z=1

C = 1 , Z=0

C = 0 , Z=1

C = 1 , Z=1

RESET

Page 36: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

Page 37: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

Page 38: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

(zero = ‘1’ or salidarx = X”0000”)

Page 39: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

INCORPORACIÓN PARA USAR LAS INSTRUCCIONES “A+B+Carry” y “A-B-Carry”

Page 40: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7 CONTENIDO DEL ARCHIVO RAM.HEX PARA ESTE PROYECTO

Instrucciones cargadas en RAM: JMP PC, 0004

LDI RX, 00FF LDI RX, 0003 INC RX INC RX DEC RX IF Z JMP PC IF Z, 000C RST LDI RX, 0022 JMP PC IF Z, 0012 JMP PC, 0013 RST LDI RX, FFFF STR RX, 0900 LDI RX, 0001 RX + MEM, 0900 JMP PC IF C, 001E RST DEC RX DEC RX RST

Page 41: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

JMP PC, 0004

LDI RX, 0003 INC RX INC RX

ME SALTEO «LDI RX, 00FF» DEBIDO A «JMP PC, 0004»

Page 42: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

DEC RX IF NOT ZERO

Z=‘1’

LDI RX, 0022

SALTO CONDICIONAL SI ES CERO

Page 43: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

LDI RX, 0022

Page 44: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

STR RX, 0900 LDI RX, 0001

Page 45: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

RX + MEM, 0900 JMP PC IF Z, 001E

Page 46: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU7

DEC RX DEC RX RST

Page 47: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 PROYECTO CU8 (CON AIRE DE MICROCONTROLADOR)

DISEÑO EN VHDL DE MICROPROCESADOR ELEMENTAL CON UN REGISTRO INTERNO CON ACCESO DIRECTO A LA MEMORIA DE DATOS PARA REALIZAR LECTURA Y ESCRITURA DE LA MISMA Y OPERACIONES ARITMÉTICO-LÓGICAS ENTRE ELLA Y DICHO REGISTRO. ADEMÁS DISPONE DE INSTRUCCIONES PARA IMPLEMENTAR REDIRECCIONAMIENTO CONDICIONAL E INCONDICIONAL Y OPERACIONES CONDICIONALES CON REGISTRO RX. SE ADICIONA EN ESTE PROYECTO LA HABILIDAD DE MANEJAR DOS PUERTOS DE DATOS EXTERNOS A LA FPGA CON CONTROL INDEPENDIENTE DE OPERACIÓN EN CADA BIT.

Page 48: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

RST CLK

CU8

BUS DATA_IN

BUS ADDRESS

MEM

OR

IA

uP16

CPU

PC

16R

MA

R

RX

IR

MD

RO

M

DR

I

MU

XM

AR

MUXRX

FPGA

CCR ALU

BUS CONTROL

BUS DATA _OUT

PORT A PORT B

ENTRADAS A FPGA SALIDAS DE FPGA

REGPA M

UX

MD

RI

REGPB

ENTR

AD

A S

A F

PG

A

Page 49: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 A FIN DE APROVECHAR LA PLACA DEMO DE CYCLONE IV, SE HA DISEÑADO EL “PORT A” COMO SALIDA DE 8 BITS A FIN DE MANEJAR DIRECTAMENTE LOS 8 LEDS DISPONIBLES. EL “PORT B” COMO ENTRADA, TIENE ASOCIADOS PULSADORES Y DIP-SWITCHES. EL “PORT A” PUEDE TRABAJAR EN DOS MODALIDADES: NORMAL ESCRITURA DESDE REGISTRO RX. A NIVEL DE BIT BORRAR Ó AJUSTAR CADA UNO DE LOS 8 BITS DEL PORT DE FORMA INDEPENDIENTE, MANTENIENDO EL MISMO ESTADO DEL RESTO. EL “PORT B” PUEDE TRABAJAR EN DOS MODOS DIFERENTES: NORMAL LECTURA DE TODOS SUS BITS EN FORMA SIMULTÁNEA. TEST A NIVEL DE BIT ANALIZA EL ESTADO DE UN BIT EN PARTICULAR A FIN DE DEFINIR UNA POSIBLE ACCIÓN.

Page 50: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8

REG

PA

CPU

RX

8

PO

RT

A

PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0

FPGA

PORT B

PB

7

PB

6

PB

5

PB

4

PB

3

PB

2

PB

1

PB

0

MDRI

IMPLEMENTACIÓN PARA MANEJO DE PUERTOS E/S

ENTRADA

SALIDA

8

REGPB

MUXMDRI

RAM

16

1 6

Page 51: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 IR 15

X”0000” 00000000 = CLR RX X”0100” 00000001 = INC RX X”0200” 00000010 = LDI RX X”0300” 00000011 = DEC RX X”0400” 00000100 = NOP X”8000” 10000000 = RST X”0500” 00000101 = LDD RX X”0600” 00000110 = STR RX X”070X” 00000111 = OPERACIONES ARITMÉTICO- LÓGICAS ENTRE MEMORIA DE DATOS Y REGISTRO “RX”. X”0800” 00001000 = STR RXL, PORT A X”09X0” 00001001 = BIT SET I, PORT A X”0AX0” 00001010 = BIT CLR I, PORT A X”0B00” 00001011 = INC PORT A X”0C00” 00001100 = DEC PORT A X”0D00” 00001101 = LDI RX, PORT B X”0E00” 00001100 = BTIJC, PORT B X”0F00” 00001101 = BTIJS, PORT B X”1000” 00010000 = JMP PC, DIR X”1100” 00010001 = JMP PC, IF Z, DIR X”1200” 00010010 = JMP PC, IF C, DIR X”1300” 00010011 = DEC RX, IF NZ

USO ESTOS BITS PARA ENTRAR EL CÓDIGO DE IDENTIFICACIÓN DEL BIT A SELECCIONAR: PORT_A(BIT 0) = “000” PORT_A(BIT 1) = “001” . . . . PORT_A(BIT 6) = “110” PORT_A(BIT 7) = “111”

RESERVADOS

Page 52: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

X”09X0” = 0000 1001 XXX0 0000 BIT SET I, PORT A if (salidair >= X”0900” and salidair <= X”09E0”) then proximoestado <= *el que sea+ X”0AX0” = 0000 1010 XXX0 0000 BIT CLR I, PORT A if (salidair >= X”0A00” and salidair <= X”0AE0”) then proximoestado <= *el que sea+

INSTRUCCIONES BIT SET I, PORTA y BIT CLR I, PORT A

selcoderegpa se conecta a salidair(7 downto 5) opselecregpa debe configurarse con: “100” para modo BIT SET “101” para modo BIT CLR

Page 53: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

X”0800” = 0000 1000 0000 0000 STR RXL, PORT A if (salidair = X”0800”) then proximoestado <= *el que sea+ X”0B00” = 0000 1011 0000 0000 INC, PORT A if (salidair >= X”0A00” and salidair <= X”0AE0”) then proximoestado <= *el que sea+

INSTRUCCIONES STR RX, PORT A INC PORT A DEC PORT A

opselecregpa debe configurarse con: “010” para modo LDI RXL, PORT A “001” para modo INC PORT A “011” para modo DEC PORT A

Page 54: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPA

Page 55: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPA TEST-BENCH DE REGPA

Page 56: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPA

Page 57: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPA

Page 58: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPA

SIMULACIÓN COMPLETA

Page 59: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPA

SIMULACIÓN PARA AJUSTE DE BIT DE PORT A (BIT SET)

Page 60: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPA

SIMULACIÓN PARA BORRADO DE BIT DE PORT A (BIT CLR)

Page 61: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPA

SIMULACIÓN PARA LOAD, INC Y DEC PORT A

Page 62: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPB

Page 63: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPB SIMULACIÓN PARA REGISTRO REGPORTB

Page 64: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

REGPB SIMULACIÓN PARA MUXMDRI

Page 65: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8

Page 66: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8

LDI RX, 000A STR RXL, PORTA BIT CLR 2, PORTA CLR RX BIT CLR 1, PORTA LDI RX, 00FF BIT CLR 0, PORTA DEC PORTA LDI RX, 00AA DEC PORTA STR RXL, PORTA INC PORTA LDI RXL, PORTB CLR RX STR RXL, PORTA BIT SET 0, PORTA BTIJS 0, 0024 BIT SET 1, PORTA RST BIT SET 2, PORTA LDI RX, 0055 BIT SET 3, PORTA STR RXL, PORTA BIT SET 4, PORTA BTJIC, 002B BIT SET 5, PORTA LDI RX, 0001 BIT SET 6, PORTA LDI RX, 00AA BIT SET 7, PORTA STR RXL, PORTA BIT CLR 7, PORTA RST BIT CLR 6, PORTA BIT CLR 5, PORTA BIT CLR 4, PORTA BIT CLR 3, PORTA

CONTENIDO DEL ARCHIVO RAM.HEX PARA ESTE PROYECTO

Page 67: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 INSTRUCCIONES ESPECIFICADAS EN FORMA NEMOTÉCNICA

Page 68: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 INSTRUCCIONES ESPECIFICADAS EN FORMA NEMOTÉCNICA

Page 69: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8

LAS INSTRUCCIONES BIT SET PORT A Y BIT CLR PORT A AUTOMÁTICAMENTE LEEN LA POSICIÓN DEL BIT A MODIFICAR, LEYENDO DESDE EL REGISTRO IR(7,6,5). LAS INSTRUCCIONES TEST BIT JMP IF CLR Y TEST BIT JMP IF SET, PARA PORT A, SON SIMILARES A LAS DE JMP PC IF Z Y JMP PC IF C, EN CARGAN EL DATO DE LA POSIBLE PRÓXIMA DIRECCIÓN DE PROGRAMA Y LUEGO SE RESUELVE SI DEBE SALTAR AHÍ Ó SEGUIR CON LA PRÓXIMA INSTRUCCIÓN CONSECUTIVA. STR RXL, PORT A ES SIMPLE YA QUE SÓLO HAY QUE ESCRIBIR EN REGPA. DADO QUE PORT A ES DE 8 BITS, SÓLO SE CARGA LA PARTE BAJA DE RX. LDI RXH, PORT B, DEBE RUTEAR EL DATO DE SALIDA DE PORT B HACIA RX. PARA ELLO, HAY QUE ESCRIBIR REGPB, DIRECCIONAR LA ENTRADA DE MDRI PARA LEER PORT B Y NO MEMORIA RAM (selmuxmdri = ‘1’). LUEGO SE ESCRIBE MDRI Y POR ÚLTIMO RX. DEBE VOLVERSE LUEGO (selmuxmdri = ‘0’) PARA DIRECCIONAR A LA RAM.

Page 70: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8

INSTANCIACIÓN DE NUEVOS COMPONENTES

Page 71: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 DECISIONES SOBRE INSTRUCCIONES CON “PORTA” Y LECTURA DE “PORTB”

Page 72: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 RUTINA PARA INSTRUCCIONES DE SALTO CONDICIONAL SEGÚN EL PORT_B

SE APROVECHA PARTE DEL HARDWARE DE “REGPA” (SALIDACODE) PARA DECODIFICAR EN LAS INSTRUCCIONES “BTIJC, PORT B” Ó “BTIJS, PORT B”, QUE BIT HAY QUE ANALIZAR. SE COMPARA CON LO LEÍDO EN “SALIDAREGPB” CON UNA FUNCIÓN “AND”: SI EL RESULTADO DÁ “CERO” EL BIT ANALIZADO ERA “0” Y VICEVERSA.

NO SALTA

SALTA SET

Page 73: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8

VUELVE PARA BUSCAR NUEVA INSTRUCC.

RUTINA PARA INSTRUCCIONES DE “SET BIT” Y “CLEAR BIT” EN EL “PORTA”

Page 74: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 RUTINAS PARA INSTRUCCIONES “STR RX, PORTA” E “INC PORTA”

EN LA PRÓXIMA FILMINA

Page 75: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 RUTINAS PARA INSTRUCCIÓN “DEC PORTA”

Page 76: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 INICIO DE RUTINA PARA INSTRUCCIÓN DE LECTURA DEL PORT_B

Page 77: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 RUTINA PARA INSTRUCCIÓN DE LECTURA DEL PORT_B

Page 78: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 RUTINA PARA INSTRUCCIÓN DE LECTURA DEL PORT_B

Page 79: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 FIN DE RUTINA PARA INSTRUCCIÓN DE LECTURA DEL PORT_B

SALTA A PRÓXIMA INSTRUCCIÓN

Page 80: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8

UTILIZA LOS BITS 7,6 Y 5 DE “IR” PARA DECODIFICAR EL BIT CARGADO EN LAS INSTRUCCIONES DE MANEJO DE BIT EN PORTA Y PORTB

Page 81: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8

REPORTE DEL COMPILADOR

4% DE ELEMENTOS LÓGICOS Y

11% DE RAM DEDICADA UTILIZADOS EN ESTE ÚLTIMO

PROYECTO

Page 82: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8

STR RXL, PORT_A INC PORT_A DEC PORT_A

INSTRUCCIONES: STR_RXL, PORT_A ; DEC_ PORT A ; INC_PORT A

Page 83: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 INSTRUCCIONES BIT SET I, PORTA

DESDE INSTRUCCIÓN BITSET 0, PORTA (“0900”) HASTA INSTRUCCIÓN BITSET 7,PORTA (“09E0”)

Page 84: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 INSTRUCCIONES BIT CLR I, PORTA

DESDE INSTRUCCIÓN BITCLR 7, PORTA (“0AE0”) HASTA INSTRUCCIÓN BITCLR 0,PORTA (“0A00”)

Page 85: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 BIT TEST 0, JUMP IF CLR, PORTB X”002E”

COMO EL BIT “7” DE PORT B ES “0” (X”0F” = “00001111”) EL MICRO SALTA A LA POSICIÓN DE MEMORIA X“002B” Y EJECUTA LA INSTRUCCIÓN “LDI RX, 00AA” EN VEZ DE “LDI RX, 0001”. LUEGO CARGA EL PORTA CON DICHO DATO: “AA”

Page 86: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8

COMO EL BIT “0” DE PORT B ES “1” (X”0F” = “00001111”) EL MICRO SALTA A LA POSICIÓN DE MEMORIA X“0024” Y EJECUTA LA INSTRUCCIÓN “LDI RX, 0055” (SALTEA LA DE “RST”) Y LUEGO STR RXL, PORT_A , DONDE PORT_A ADOPTA EL VALOR X“55”

BIT TEST 0, JUMP IF SET, PORTB “0024” Y STR RXL, PORTB

Page 87: PROYECTO CU6 - UNLPcatedra.ing.unlp.edu.ar/electrotecnia/islyd/seminario...SALTO CONDICIONAL SI ES CERO CU7 LDI RX, 0022 CU7 STR RX, 0900 LDI RX, 0001 CU7 RX + MEM, 0900 JMP PC IF

CU8 LDI RXL, PORTB

EL BYTE ALTO DE “RX” SE “RELLENA” CON CEROS.


Top Related