La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PICOBLAZE (Microcontrolador Embebido de 8 bits). Picoblaze Es un microcontrolador de 8 bits, muy simple, orientado inicialmente para FPGAs de la familia.

Presentaciones similares


Presentación del tema: "PICOBLAZE (Microcontrolador Embebido de 8 bits). Picoblaze Es un microcontrolador de 8 bits, muy simple, orientado inicialmente para FPGAs de la familia."— Transcripción de la presentación:

1 PICOBLAZE (Microcontrolador Embebido de 8 bits)

2 Picoblaze Es un microcontrolador de 8 bits, muy simple, orientado inicialmente para FPGAs de la familia Spartan 3 Está optimizado para este tipo de FPGAs. Se puede conseguir como softcore, provisto por Xilinx Una de sus características principales es que ocupa muy pocos recursos (5% en las 3S200 y menos del 0,3% en las 3S5000) Sistemas Digitales - FIUBA

3 Picoblaze FSMD (Finite State Machine with Data Path) Sistemas Digitales - FIUBA

4 Picoblaze Sistemas Digitales - FIUBA FSMD (Finite State Machine with Data Path)

5 Picoblaze Sistemas Digitales - FIUBA FSMD (Finite State Machine with Data Path)

6 Picoblaze Sistemas Digitales - FIUBA Bloque Picoblaze y su memoria de instrucciones

7 Picoblaze Sistemas Digitales - FIUBA Características Tamaño de programa - Utiliza un solo bloque de memoria que puede alojar 1024 instrucciones de 18 bits (direcciones de 10 bits) Registros - Cuenta con 16 registros de propósito general de 8 bits, especificados como ‘ s0 ’.. ‘ sF ’. En el código assembly se pueden renombrar. - Las operaciones pueden trabajar indistintamente con cada uno de los 16 registros. - No existen registro reservados para ninguna tares en especial - No cuenta con un acumulador, ya que cualquier registro puede cumplir con esa función.

8 Picoblaze Sistemas Digitales - FIUBA Características ALU -Todas las operaciones son realizadas con un operando almacenado en un registro. El resultado es volcado en el mismo registro -Para operaciones que necesiten dos operandos los mismos pueden ser especificados a través de un segundo registro o de una constante de 8 bits -Las operaciones de suma/resta tienen la opción de incluir el flag de carry como entrada -Las operaciones COMPARE y TEST permiten verificar el contenido de los registros sin alterarlos -También incluye las operaciones LOAD, AND, OR, XOR, SHIFT y ROTATE

9 Picoblaze Sistemas Digitales - FIUBA Características Flags y Control del flujo del programa - El resultado de la ALU determina el valor de los flags de carry y cero - El flag de carry se pone en ‘ 1 ’ cuando existe un overflow en una operación aritmética. También se usa para capturar el bit desplazado en las operaciones de desplazamiento y rotación - En la operación TEST el flag de carry indica si el contenido de un registro tiene paridad impar - Los flags pueden ser utilizados para controlar la secuencia de ejecución de un programa por medio de instrucciones de control de flujo condicionales o incondicionales

10 Picoblaze Sistemas Digitales - FIUBA Características Reset - El reset fuerza al procesador a pasar al estado inicial. El programa se ejecutará desde la posición 0 y las interrupciones serán deshabilitadas - Los flags de estado serán reseteados, como así también la pila asociada a las instrucciones CALL/RETURN. - El contenido de los registros no se altera

11 Picoblaze Sistemas Digitales - FIUBA Características Entrada / Salida - Posee 256 puertos de entrada y 256 puertos de salida - Para acceder a un puerto se debe fijar el valor de una dirección de 8 bits especificada por PORT_ID. Esta dirección puede ser especificada como un valor absoluto o, de manera indirecta, por medio del contenido de un registro - La operación de entrada INPUT transfiere el valor existente en el puerto de entrada a uno de los 16 registros - Una operación de entrada se indica a través de un pulso de la señal READ_STROBE. Esta señal indica que el procesador adquirió correctamente el dato - La operación de salida OUTPUT transfiere el valor existente en uno de los 16 registros al puerto de salida - Una operación de salida se indica a través de un pulso de la señal WRITE_STROBE. Usualmente, esta señal es utilizada como un habilitador de clock o de escritura

12 Picoblaze Sistemas Digitales - FIUBA Características Memoria Scratch Pad - Es una memoria interna de propósito general de 64 bytes - Con la instrucción STROE se puede cargar en cualquiera de sus 64 posiciones el valor de cualquiera de los 16 registros - Con la instrucción FETCH se puede escribir en cualquiera de los 16 registros el valor almacenado en cualquiera de las 64 direcciones - La dirección de 6 bits puede ser especificada por un valor absoluto o, de manera indirecta, por el valor contenido en un registro. En este último caso sólo se tienen en cuenta los 6 bits menos significativos Interrupción - Existe una única señal de entrada de interrupción - Por defecto las interrupciones están deshabilitadas (enmascaradas). Desde el programa pueden ser habilitadas y deshabilitadas

13 Picoblaze Sistemas Digitales - FIUBA Características Número de ciclos constante - Todas las instrucciones bajo todas las condiciones se ejecutan en dos ciclos de reloj - Esta caracterísitca (tasa de ejecución constante) es muy importante al momento del cálculo del tiempo de ejecución de un programa, particularmente cuando el procesador se encuentra embebido en un escenario de tiempo real Interrupción - Existe una única señal de entrada de interrupción - Por defecto las interrupciones están deshabilitadas (enmascaradas). Desde el programa pueden ser habilitadas y deshabilitadas

14 Picoblaze Sistemas Digitales - FIUBA Diagrama en bloques

15 Picoblaze Sistemas Digitales - FIUBA Movimiento de los datos

16 Picoblaze Sistemas Digitales - FIUBA Operaciones de entrada: Lógica de la interfaz

17 Picoblaze Sistemas Digitales - FIUBA Operaciones de entrada: Lógica de la interfaz

18 Picoblaze Sistemas Digitales - FIUBA Operaciones de entrada: Temporización

19 Picoblaze Sistemas Digitales - FIUBA Operaciones de salida: Lógica de la interfaz

20 Picoblaze Sistemas Digitales - FIUBA Operaciones de salida: Lógica de la interfaz

21 Picoblaze Sistemas Digitales - FIUBA Operaciones de salida: Temporización

22 Picoblaze Sistemas Digitales - FIUBA Proceso básico de diseño 1. Escritura del programa en código assembly. El archivo poseerá la extensión ” psm ” (por ejemplo programa.psm) 2. Ensamblado del archivo ” psm ”. Se utiliza la aplicación KCPSM3.exe, que genera un archivo “vhd” (con el mismo nombre que el del archivo “psm”, por ejemplo programa.vhd) que contiene la descripción de la memoria de instrucciones c:\>KCPSM3\Assembler\KCPSM.exe programa.psm -> programa.vhd 3. Inclusión de los archivos.vhd correspondientes al módulo del picoblaze y de la memoria de instrucciones, en un proyecto creado con el ISE 4. Generación del bitsteam (archivo de programación)

23 Picoblaze Sistemas Digitales - FIUBA Declaración del componente kcpsm3 component kcpsm3 port ( address : out std_logic_vector(9 downto 0); instruction : in std_logic_vector(17 downto 0); port_id : out std_logic_vector(7 downto 0); write_strobe : out std_logic; out_port : out std_logic_vector(7 downto 0); read_strobe : out std_logic; in_port : in std_logic_vector(7 downto 0); interrupt : in std_logic; interrupt_ack : out std_logic; reset : in std_logic; clk : in std_logic ); end component;

24 Picoblaze Sistemas Digitales - FIUBA Declaración del componente bloque de memoria component myprog port ( address : in std_logic_vector(9 downto 0); instruction : out std_logic_vector(17 downto 0); clk : in std_logic ); end component; Nombre derivado del archivo.psm

25 Picoblaze Sistemas Digitales - FIUBA Ejemplo de código assembly El siguiente ejemplo implementa la lectura de los switches del kit y muestra cada valor a través de los leds del mismo ; Definición de las direcciones de los puertos CONSTANT switch_in, 00 ; puerto de entrada (switches) CONSTANT leds_out, 01 ; puerto de salida (leds) ; Inicio start: INPUT s0, 00 ; se leen los switches y se lo almacena ; en el registro s0 OUTPUT s0, leds_out ; se escribe el contenido del registro s0 ; al puerto de salida (leds) JUMP start ; loop back to start

26 Picoblaze Sistemas Digitales - FIUBA Multiplicación con operandos de 8 bits - Utilizando el Core Generator para instanciar un bloque multiplicador

27 Picoblaze Sistemas Digitales - FIUBA mult_8x8: NAMEREG s0, multiplicando NAMEREG s1, multiplicador NAMEREG s3, result_msb; MSB del resultado NAMEREG s4, result_lsb; LSB del resultado ; ; Definicion de los puertos como constantes CONSTANT multiplicador_lsb, 00 CONSTANT multiplicador_msb, 01 ; ; Envio del multiplicando y del multiplicador a los registros de la FPGA conectados ; a las entradas del bloque multiplicador OUTPUT multiplicando, multiplicador_lsb OUTPUT multiplicador, multiplicador_msb ; ; Entrada del resultado emitido por el bloque multiplicador. INPUT result_lsb, multiplicador_lsb INPUT result_msb, multiplicador_msb Multiplicación con operandos de 8 bits - Código assembly

28 FIN Picoblaze Sistemas Digitales - FIUBA


Descargar ppt "PICOBLAZE (Microcontrolador Embebido de 8 bits). Picoblaze Es un microcontrolador de 8 bits, muy simple, orientado inicialmente para FPGAs de la familia."

Presentaciones similares


Anuncios Google