PLATAFORMA PARA LA EMULACIÓN
   Y RECONFIGURACIÓN DE
 ARQUITECTURAS RISC Y CISC
  JOSE PABLO PINILLA GÓMEZ
 ALFREDO GUALDRÓN GAMARRA
JUSTIFICACIÓN
    Aplicabilidad                          Información detallada




                                            Fuente:
                                            http://ozark.hendrix.edu/~burch/logisim/
Fuente: http://processors.wiki.ti.com

 Diseño cerrrado                                 Aplicación virtual


                 X-ISCKER
 Reduced/Complex Instruction Set Computing Key
            Educational Resource
OBJETIVO GENERAL




   Diseñar   un    emulador    de   procesadores    con
arquitecturas tipo RISC y CISC descritos en Verilog para
FPGA y un software en Visual Basic para supervisar el
estado del procesador que esté implementado.
OBJETIVOS ESPECÍFICOS


1. Diseñar e implementar un procesador de arquitectura
   RISC en circuitos de lógica programable.


2. Diseñar e implementar un procesador de arquitectura
   CISC en circuitos de lógica programable.


3. Programar una Interfaz Gráfica de Usuario (GUI) que
   permita el seguimiento del procesador implementado y la
   traducción de programas en lenguaje ensamblador a
   código de máquina.


4. Elaborar una guía de usuario que facilite la comprensión y
   manejo de la plataforma.
OBJETIVOS ESPECÍFICOS


1. Diseñar e implementar un procesador de arquitectura
   RISC en circuitos de lógica programable.


2. Diseñar e implementar un procesador de arquitectura
   CISC en circuitos de lógica programable.


3. Programar una Interfaz Gráfica de Usuario (GUI) que
   permita el seguimiento del procesador implementado y la
   traducción de programas en lenguaje ensamblador a
   código de máquina.


4. Elaborar una guía de usuario que facilite la comprensión y
   manejo de la plataforma.
METODOLOGÍA DE DISEÑO:
               RISCKER
METODOLOGÍA DE DISEÑO:
                              CARACTERÍSTICAS RISCKER
            Característica                           RISCKER

# de Instrucciones                                       30

# de Registros                                           64

ALU                                                   16 bits

Arquitectura de memoria                               Harvard

Tamaño de las instrucciones                         Fijo: 32-bits

Multiplicación y División                  Unidad de hardware dedicada

Operaciones “Shift”                  Lógica, Aritmética y Rotación tipo "Barril"

Modos de Direccionamiento             Inmediato,Directo, Indirecto,Desplazado

Tamaño máximo de memoria                    65536x32bits 65536x16bits

# de condiciones de salto                                2

Temporizadores                                      2 de 16 bits

Interrupciones                           2 por Temporizador y 2 Externas

Unidad de Control                                       HCU

Arquitectura similar                                   MIPS
METODOLOGÍA DE DISEÑO:
                           ESTRUCTURACIÓN ISA
    TIPO R

 0000        Rd   Rs     Rt   Function [ALU operation & Shift amount]


    TIPO I
Opcode       Rd   Rs                     Inmediato


    TIPO J
Opcode                                   Inmediato



Opcode       Rd   Rs                     Inmediato



Opcode       Rd                          Inmediato
METODOLOGÍA DE DISEÑO:
DIAGRAMA MODULAR RISCKER
METODOLOGÍA DE DISEÑO:
    UNIDAD DE CONTROL
METODOLOGÍA DE DISEÑO:
           ALU-ROTATE
METODOLOGÍA DE DISEÑO:
MULTIPLICACIÓN PARALELA
METODOLOGÍA DE DISEÑO:
     DIVISIÓN PARALELA
METODOLOGÍA DE DISEÑO:
CONTROLADOR DE INTERRUPCIONES
METODOLOGÍA DE DISEÑO:
                          SINTAXIS ASSEMBLER

   [Etiqueta] : [Operación] [Operandos] ; [Comentario]

[Etiqueta]:[Operación] [Rd],[Rs],[Rt],#[Imm/Dir];[Comentario]




beq    rg1, rg0, #16 ;Salto condicional, si rg1 es igual a
                     ;rg0 a la dirección 16

lw     rg3, r0, #0
;Cargar el registro rg3 con el dato Memoria[r0+0]

inc    op     ;Incrementar el puerto de salida (op)
OBJETIVOS ESPECÍFICOS


1. Diseñar e implementar un procesador de arquitectura
   RISC en circuitos de lógica programable.


2. Diseñar e implementar un procesador de arquitectura
   CISC en circuitos de lógica programable.


3. Programar una Interfaz Gráfica de Usuario (GUI) que
   permita el seguimiento del procesador implementado y la
   traducción de programas en lenguaje ensamblador a
   código de máquina.


4. Elaborar una guía de usuario que facilite la comprensión y
   manejo de la plataforma.
METODOLOGÍA DE DISEÑO:
               CISCKER
METODOLOGÍA DE DISEÑO:
                              CARACTERISTICAS CISCKER
            Característica                          CISCKER

# de Instrucciones                                     244

# de Registros                                          4

ALU                                                  16bits

Arquitectura de memoria                          Von Neumann

Tamaño de las instrucciones                   Variable: 8 a 24-bits

Multiplicación y División                          Iteraciones

Operaciones “Shift"                   Logica, Aritmetica y Rotación de 1 bit

Modos de Direccionamiento                 INH,REL,IMM,DIR,EXT,IX,IX+

Tamaño máximo de memoria                          65536x16bits

# de condiciones de salto                              14

Temporizadores                                    2 de 16 bits

Interrupciones                          2 por Temporizador y 2 Externas

Unidad de Control                                     MCU

Arquitectura similar                         HC08 y HC11 Freescale
METODOLOGÍA DE DISEÑO:
    ESTRUCTURACIÓN ISA
METODOLOGÍA DE DISEÑO:
MODOS DE DIRECCIONAMIENTO
METODOLOGÍA DE DISEÑO:
DIAGRAMA MODULAR CISCKER
METODOLOGÍA DE DISEÑO:
    UNIDAD DE CONTROL
METODOLOGÍA DE DISEÑO:
               PHASER
METODOLOGÍA DE DISEÑO:
MULTIPLICACION POR ITERACIONES
METODOLOGÍA DE DISEÑO:
DIVISIÓN POR ITERACIONES
METODOLOGÍA DE DISEÑO:
DISTRIBUCIÓN DE MEMORIA
METODOLOGÍA DE DISEÑO:
                       SINTAXIS ASSEMBLER



[Etiqueta]: [Operación] [Operando], [MD] ;[Comentarios]




 ADDA #10, IX   ; Sumar ACCA con Memoria[IX+10]
 INCA           ; Incrementar ACCA
OBJETIVOS ESPECÍFICOS


1. Diseñar e implementar un procesador de arquitectura
   RISC en circuitos de lógica programable.


2. Diseñar e implementar un procesador de arquitectura
   CISC en circuitos de lógica programable.


3. Programar una Interfaz Gráfica de Usuario (GUI) que
   permita el seguimiento del procesador implementado y la
   traducción de programas en lenguaje ensamblador a
   código de máquina.


4. Elaborar una guía de usuario que facilite la comprensión y
   manejo de la plataforma.
METODOLOGÍA DE DISEÑO:
                       REQUISITOS SOFTWARE



1. Editar archivos de texto con código ensamblador


2. Generar el archivo de inicialización de memoria


3. Permitir la depuración de errores de código


4. Visualizar el estado del procesador


5. Programar desde la interfaz
METODOLOGÍA DE DISEÑO:
                X-ISCKER IDE
   X-ISCKER ASM



 X-ISCKER OBSERVER




X-ISCKER PROGRAMMER
METODOLOGÍA DE DISEÑO: X-
             ISCKER ASM
METODOLOGÍA DE DISEÑO: X-
             ISCKER ASM
METODOLOGÍA DE DISEÑO:
    X-ISCKER Programmer
METODOLOGÍA DE DISEÑO:
SELECCIÓN DE COMANDOS
METODOLOGÍA DE DISEÑO:
      RISCKER Observer
METODOLOGÍA DE DISEÑO:
      CISCKER Observer
METODOLOGÍA DE DISEÑO:
      X-ISCKER Observer
OBJETIVOS ESPECÍFICOS


1. Diseñar e implementar un procesador de arquitectura
   RISC en circuitos de lógica programable.


2. Diseñar e implementar un procesador de arquitectura
   CISC en circuitos de lógica programable.


3. Programar una Interfaz Gráfica de Usuario (GUI) que
   permita el seguimiento del procesador implementado y la
   traducción de programas en lenguaje ensamblador a
   código de máquina.


4. Elaborar una guía de usuario que facilite la comprensión y
   manejo de la plataforma.
METODOLOGÍA DE DISEÑO:
                   Documentación

                         Guía de Usuario XISCKER

                    Tabla de Contenido

                     1. Introducción

 XISCKER             2. Arquitecturas XISCKER

                     3. Arquitectura de la Plataforma
Guía de Usuario
                     4. Programación en XISCKER ASM

                     5. Emulación en XISCKER ASM

                     6. Reconfiguración HW XISCKER

                     7. Bibliografía


       1                               2
METODOLOGÍA DE DISEÑO:
                          Documentación




 XISCKER
Guía de Usuario




       1
METODOLOGÍA DE DISEÑO:
                   Documentación




XISCKER
 Guía de
 Usuario
             RISCKER
    1       Hojas de Datos
                              CISCKER
                  1          Hojas de Datos



                                    1
METODOLOGÍA DE DISEÑO:
                     Documentación




              "Wiki"
http://semilleroadt.upbbga.edu.co/XISCKER/
PLATAFORMA XISCKER



             XISCKER                    Wiki
       RISCKER
             Guía de Usuario
CISCKER
      Hojas de Datos
                   1
Hojas de Datos
             1

      1
FUTURO

RTOS
Compilador
Ensamblador

DISC y VLIW
Multi-Núcleo
Reconfiguración RT




       ?
FUTURO:
                                                       OpenRISC




Fuente: http://orsoc.se/openrisc1200-platform-2/


                                                   Fuente:
                                                   http://opencores.org/openrisc,or1200
¿PREGUNTAS?

Presentación Proyecto de Grado: X-ISCKER

  • 1.
    PLATAFORMA PARA LAEMULACIÓN Y RECONFIGURACIÓN DE ARQUITECTURAS RISC Y CISC JOSE PABLO PINILLA GÓMEZ ALFREDO GUALDRÓN GAMARRA
  • 2.
    JUSTIFICACIÓN Aplicabilidad Información detallada Fuente: http://ozark.hendrix.edu/~burch/logisim/ Fuente: http://processors.wiki.ti.com Diseño cerrrado Aplicación virtual X-ISCKER Reduced/Complex Instruction Set Computing Key Educational Resource
  • 3.
    OBJETIVO GENERAL Diseñar un emulador de procesadores con arquitecturas tipo RISC y CISC descritos en Verilog para FPGA y un software en Visual Basic para supervisar el estado del procesador que esté implementado.
  • 4.
    OBJETIVOS ESPECÍFICOS 1. Diseñare implementar un procesador de arquitectura RISC en circuitos de lógica programable. 2. Diseñar e implementar un procesador de arquitectura CISC en circuitos de lógica programable. 3. Programar una Interfaz Gráfica de Usuario (GUI) que permita el seguimiento del procesador implementado y la traducción de programas en lenguaje ensamblador a código de máquina. 4. Elaborar una guía de usuario que facilite la comprensión y manejo de la plataforma.
  • 5.
    OBJETIVOS ESPECÍFICOS 1. Diseñare implementar un procesador de arquitectura RISC en circuitos de lógica programable. 2. Diseñar e implementar un procesador de arquitectura CISC en circuitos de lógica programable. 3. Programar una Interfaz Gráfica de Usuario (GUI) que permita el seguimiento del procesador implementado y la traducción de programas en lenguaje ensamblador a código de máquina. 4. Elaborar una guía de usuario que facilite la comprensión y manejo de la plataforma.
  • 6.
  • 7.
    METODOLOGÍA DE DISEÑO: CARACTERÍSTICAS RISCKER Característica RISCKER # de Instrucciones 30 # de Registros 64 ALU 16 bits Arquitectura de memoria Harvard Tamaño de las instrucciones Fijo: 32-bits Multiplicación y División Unidad de hardware dedicada Operaciones “Shift” Lógica, Aritmética y Rotación tipo "Barril" Modos de Direccionamiento Inmediato,Directo, Indirecto,Desplazado Tamaño máximo de memoria 65536x32bits 65536x16bits # de condiciones de salto 2 Temporizadores 2 de 16 bits Interrupciones 2 por Temporizador y 2 Externas Unidad de Control HCU Arquitectura similar MIPS
  • 8.
    METODOLOGÍA DE DISEÑO: ESTRUCTURACIÓN ISA TIPO R 0000 Rd Rs Rt Function [ALU operation & Shift amount] TIPO I Opcode Rd Rs Inmediato TIPO J Opcode Inmediato Opcode Rd Rs Inmediato Opcode Rd Inmediato
  • 9.
  • 10.
    METODOLOGÍA DE DISEÑO: UNIDAD DE CONTROL
  • 11.
  • 12.
  • 13.
    METODOLOGÍA DE DISEÑO: DIVISIÓN PARALELA
  • 14.
  • 15.
    METODOLOGÍA DE DISEÑO: SINTAXIS ASSEMBLER [Etiqueta] : [Operación] [Operandos] ; [Comentario] [Etiqueta]:[Operación] [Rd],[Rs],[Rt],#[Imm/Dir];[Comentario] beq rg1, rg0, #16 ;Salto condicional, si rg1 es igual a ;rg0 a la dirección 16 lw rg3, r0, #0 ;Cargar el registro rg3 con el dato Memoria[r0+0] inc op ;Incrementar el puerto de salida (op)
  • 16.
    OBJETIVOS ESPECÍFICOS 1. Diseñare implementar un procesador de arquitectura RISC en circuitos de lógica programable. 2. Diseñar e implementar un procesador de arquitectura CISC en circuitos de lógica programable. 3. Programar una Interfaz Gráfica de Usuario (GUI) que permita el seguimiento del procesador implementado y la traducción de programas en lenguaje ensamblador a código de máquina. 4. Elaborar una guía de usuario que facilite la comprensión y manejo de la plataforma.
  • 17.
  • 18.
    METODOLOGÍA DE DISEÑO: CARACTERISTICAS CISCKER Característica CISCKER # de Instrucciones 244 # de Registros 4 ALU 16bits Arquitectura de memoria Von Neumann Tamaño de las instrucciones Variable: 8 a 24-bits Multiplicación y División Iteraciones Operaciones “Shift" Logica, Aritmetica y Rotación de 1 bit Modos de Direccionamiento INH,REL,IMM,DIR,EXT,IX,IX+ Tamaño máximo de memoria 65536x16bits # de condiciones de salto 14 Temporizadores 2 de 16 bits Interrupciones 2 por Temporizador y 2 Externas Unidad de Control MCU Arquitectura similar HC08 y HC11 Freescale
  • 19.
    METODOLOGÍA DE DISEÑO: ESTRUCTURACIÓN ISA
  • 20.
    METODOLOGÍA DE DISEÑO: MODOSDE DIRECCIONAMIENTO
  • 21.
  • 22.
    METODOLOGÍA DE DISEÑO: UNIDAD DE CONTROL
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
    METODOLOGÍA DE DISEÑO: SINTAXIS ASSEMBLER [Etiqueta]: [Operación] [Operando], [MD] ;[Comentarios] ADDA #10, IX ; Sumar ACCA con Memoria[IX+10] INCA ; Incrementar ACCA
  • 28.
    OBJETIVOS ESPECÍFICOS 1. Diseñare implementar un procesador de arquitectura RISC en circuitos de lógica programable. 2. Diseñar e implementar un procesador de arquitectura CISC en circuitos de lógica programable. 3. Programar una Interfaz Gráfica de Usuario (GUI) que permita el seguimiento del procesador implementado y la traducción de programas en lenguaje ensamblador a código de máquina. 4. Elaborar una guía de usuario que facilite la comprensión y manejo de la plataforma.
  • 29.
    METODOLOGÍA DE DISEÑO: REQUISITOS SOFTWARE 1. Editar archivos de texto con código ensamblador 2. Generar el archivo de inicialización de memoria 3. Permitir la depuración de errores de código 4. Visualizar el estado del procesador 5. Programar desde la interfaz
  • 30.
    METODOLOGÍA DE DISEÑO: X-ISCKER IDE X-ISCKER ASM X-ISCKER OBSERVER X-ISCKER PROGRAMMER
  • 31.
  • 32.
  • 33.
    METODOLOGÍA DE DISEÑO: X-ISCKER Programmer
  • 34.
  • 35.
    METODOLOGÍA DE DISEÑO: RISCKER Observer
  • 36.
    METODOLOGÍA DE DISEÑO: CISCKER Observer
  • 37.
    METODOLOGÍA DE DISEÑO: X-ISCKER Observer
  • 38.
    OBJETIVOS ESPECÍFICOS 1. Diseñare implementar un procesador de arquitectura RISC en circuitos de lógica programable. 2. Diseñar e implementar un procesador de arquitectura CISC en circuitos de lógica programable. 3. Programar una Interfaz Gráfica de Usuario (GUI) que permita el seguimiento del procesador implementado y la traducción de programas en lenguaje ensamblador a código de máquina. 4. Elaborar una guía de usuario que facilite la comprensión y manejo de la plataforma.
  • 39.
    METODOLOGÍA DE DISEÑO: Documentación Guía de Usuario XISCKER Tabla de Contenido 1. Introducción XISCKER 2. Arquitecturas XISCKER 3. Arquitectura de la Plataforma Guía de Usuario 4. Programación en XISCKER ASM 5. Emulación en XISCKER ASM 6. Reconfiguración HW XISCKER 7. Bibliografía 1 2
  • 40.
    METODOLOGÍA DE DISEÑO: Documentación XISCKER Guía de Usuario 1
  • 41.
    METODOLOGÍA DE DISEÑO: Documentación XISCKER Guía de Usuario RISCKER 1 Hojas de Datos CISCKER 1 Hojas de Datos 1
  • 42.
    METODOLOGÍA DE DISEÑO: Documentación "Wiki" http://semilleroadt.upbbga.edu.co/XISCKER/
  • 43.
    PLATAFORMA XISCKER XISCKER Wiki RISCKER Guía de Usuario CISCKER Hojas de Datos 1 Hojas de Datos 1 1
  • 44.
  • 45.
    FUTURO: OpenRISC Fuente: http://orsoc.se/openrisc1200-platform-2/ Fuente: http://opencores.org/openrisc,or1200
  • 46.