Taller Pico

Embed Size (px)

Citation preview

  • 8/2/2019 Taller Pico

    1/51

    PICOBLAZE

    RESUMEN:

    Softmicro de 8 bits Xilinx

  • 8/2/2019 Taller Pico

    2/51

    1 Introduccin2 Arquitectura Picoblaze3 Programacin en ensamblador Picoblaze

    4 Integracin con VHDL

    Procesadores Embebidos de 8 bits

  • 8/2/2019 Taller Pico

    3/51

    Picoblaze

    Microprocesador de 8 bits

    Empotrado en un FPGA Xilinx

    Soft core Optimizado ocupa 200 celdas lgicas

    Menos del 5% Spartan 3s200

    Aplicaciones Debido a que el desarrollo del software es

    usualmente mas fcil que crear hardware a lamedida, la opcin de un microcontrolador espreferida para aplicaciones no criticas en el tiempo.

    Picoblaze requiere 2 ciclos para completar unainstruccin

    Si el reloj del sistema es de 50 MHz, Picoblaze ejecuta25 millones de instrucciones por segundo

  • 8/2/2019 Taller Pico

    4/51

    Diagrama de un fsmd y unmicroprocesador

  • 8/2/2019 Taller Pico

    5/51

    Bus de datos de 8 bits ALU de 8 bits con

    banderas de acarreo eindicacin de cero

    16 registros de propsitogeneral de 8 bits

    64 byte de memoria dedatos

    Formato deinstrucciones de 18 bits

    Bus de direcciones de10 bits (1024instrucciones)

    Stack de 31 palabras 256 puertos de entrada 256 puertos de salida

    2 ciclos de reloj porinstruccin 5 ciclos de reloj para

    respuesta deinterrupcion

    Organizacinbsica

  • 8/2/2019 Taller Pico

    6/51

    Diagrama a bloques de

    picoblaze

  • 8/2/2019 Taller Pico

    7/51

    Top Level HDL modules

    Picoblaze es unsistema organizadoen 2 mdulos de

    alto nivel en HDL

    El modulo KCPSM3es el procesador

    Picoblaze

  • 8/2/2019 Taller Pico

    8/51

    KC

    PSM

    3

    clk (entrada 1 bit), sealde reloj del sistema

    reset (entrada 1 bit), seal

    de reset address (salida 10 bits),

    direccin de la memoriade instrucciones,especifica la localidad dedonde se va a leer lainstruccin

    instruction ( entrada 18bits), instruccin port_id(salida 8 bits),

    direccin del puerto deentrada o puerto de salida

    in_port(entrada 8 bits),datos de entrada de losperifricos de entrada/salida

    read_strobe(salida 1 bit),strobe asociado con laoperacin de entrada

  • 8/2/2019 Taller Pico

    9/51

    o out_port( salida 8 bits), datos de

    salida hacia los perifricos deentrada/salida

    o write_strobe (salida 1 bit) strobeasociado con las operacionesde salida

    o interrupt ( entrada 1 bit) solicitud

    de interrupcin de los perifricosde entrada/salida

    o interrupt_ack (salida 1 bit),reconocimiento de lainterrupcin hacia los perifricosde entrada/salida

    KC

    PSM

    3

  • 8/2/2019 Taller Pico

    10/51

    El segundo modulo es para lamemoria de instrucciones

    Durante el desarrollousualmente almacenamos elcdigo ensamblado en lamemoria y se configura comouna ROM en el lenguaje dedescripcin de hardware.

  • 8/2/2019 Taller Pico

    11/51

  • 8/2/2019 Taller Pico

    12/51

    CONJUNTO DE INSTRUCCIONES

    57 INSTRUCCIONES

    Instrucciones del tipo: Lgicas

    Aritmticas De prueba y comparacin Corrimiento y rotacin Movimiento de datos Control del flujo de

    programa Relacionadas con las

    interrupciones

    MODELO DEPROGRAMACIN

  • 8/2/2019 Taller Pico

    13/51

    FORMATO DEINSTRUCCIN

  • 8/2/2019 Taller Pico

    14/51

    FORMATO DE

    INSTRUCCIN

  • 8/2/2019 Taller Pico

    15/51

    Comparacin y Test

    Comp: comparan 2 registros o bien reg cte ylas banderas de Z y C se ponen a 1

  • 8/2/2019 Taller Pico

    16/51

  • 8/2/2019 Taller Pico

    17/51

    FORMATO DEINSTRUCCIN

  • 8/2/2019 Taller Pico

    18/51

    FORMATO DEINSTRUCCIN

  • 8/2/2019 Taller Pico

    19/51

    FORMATO DEINSTRUCCIN

  • 8/2/2019 Taller Pico

    20/51

    Instrucciones tipo lgicas

  • 8/2/2019 Taller Pico

    21/51

    Aritmticas

  • 8/2/2019 Taller Pico

    22/51

    De prueba y comparacin

  • 8/2/2019 Taller Pico

    23/51

    Corrimiento y rotacin

  • 8/2/2019 Taller Pico

    24/51

  • 8/2/2019 Taller Pico

    25/51

    Movimiento de datos

  • 8/2/2019 Taller Pico

    26/51

    Control del flujo de programa

  • 8/2/2019 Taller Pico

    27/51

  • 8/2/2019 Taller Pico

    28/51

  • 8/2/2019 Taller Pico

    29/51

    Relacionadas con lasinterrupciones

  • 8/2/2019 Taller Pico

    30/51

  • 8/2/2019 Taller Pico

    31/51

  • 8/2/2019 Taller Pico

    32/51

  • 8/2/2019 Taller Pico

    33/51

  • 8/2/2019 Taller Pico

    34/51

  • 8/2/2019 Taller Pico

    35/51

  • 8/2/2019 Taller Pico

    36/51

  • 8/2/2019 Taller Pico

    37/51

  • 8/2/2019 Taller Pico

    38/51

  • 8/2/2019 Taller Pico

    39/51

  • 8/2/2019 Taller Pico

    40/51

  • 8/2/2019 Taller Pico

    41/51

  • 8/2/2019 Taller Pico

    42/51

  • 8/2/2019 Taller Pico

    43/51

  • 8/2/2019 Taller Pico

    44/51

  • 8/2/2019 Taller Pico

    45/51

  • 8/2/2019 Taller Pico

    46/51

  • 8/2/2019 Taller Pico

    47/51

  • 8/2/2019 Taller Pico

    48/51

    Directivas pblaze ide

  • 8/2/2019 Taller Pico

    49/51

    Diferencias entre la sintaxis del

    kcpsm3 y Pblaze Ide

  • 8/2/2019 Taller Pico

    50/51

    En matlab:Xlpb_as

    Otra manera de ensamblar un

    programa es a travs de MATLAB. Paraesto, ejecutamos en la ventana decomandos >> cd c:\assembler; xlpb_as-p 'diego.psm'La primera instruccin cdc:\assembler es para ubicarnos en la

    carpeta donde guardamos el programayla segunda xlpb_as -p 'diego.psm' espara ensamblar el programa (se puedeexplorar en detalle el comando xlpb_asejecutando type xlpb_as en la ventanade comandos de MATLAB). Si elprograma no presenta errores, se tienelasiguiente presentacin en pantalla:

  • 8/2/2019 Taller Pico

    51/51