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

Slides:



Advertisements
Presentaciones similares
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Advertisements

El modelo de Von Neumann
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
RESUMEN: Softmicro de 8 bits Xilinx
El procesador: la ruta de datos y el control (II Parte)
Composición Interna de un Procesador
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
Cap. 12 Microprocesadores (Conferencia 3) TEEL 4011 Prof. Jaime José Laracuente-Díaz Referencia: Floyd.
“Organización y Arquitectura de Computadores” William Stallings
PICOBLAZE RESUMEN.
RESUMEN: Softmicro de 8 bits Xilinx
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
NCO (Numerically Controlled Oscillator). NCO: Oscilador controlado numéricamente Aplicaciones Conversores digitales up/down PLLs digitales Sistemas de.
UART Universal Asynchronous Receiver/Transmitter.
Asignación de señales en VHDL. VHDL: Asignación de señales La asignación a una señal establece una o más transacciones sobre la misma Cada señal tiene.
ESTRUCTURAS DE DATOS Y ALGORITMOS Samuel Peñaló
Tema II Unidad de memoria. 2.1 Definiciones y conceptos básicos. 2.2 Jerarquía de memorias. 2.3 Memorias de semiconductor. 2.4 Memorias asociativas. 2.5.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
INTRODUCCION A LOS SISTEMAS DE COMPUTO ARQUITECTURA VON NEUMAN Ing. David Gonzalez.
CONSIDERACIONES DE RUIDO EN SISTEMAS PCM ING. JAVIER GARCIA.
NOMBRE: ERICK ANTONIO MATA BARBALENA PROF: ING. LEONOR FALCON MATERIA: MICROPORCESADORES TURNO VESPERTINO 27/04/2017.
CONTROLADORES LOGICOS PROGRAMABLES (PLC) Estructura de un automatismo.
FUNCIONAMIENTO BÁSICO
L. S. C. A. Raúl Monforte Chulin
Organización de computadoras
ARQUITECTURA BÁSICA DE UN ORDENADOR
Microprocesador Estructura interna.
Tratamiento de Datos Capitulo Dos.
El procesador Diseño del control.
Diseño de Circuitos Lógicos Secuenciales
Datapath para las instrucciones aritméticas y lógicas
Datapath para las instrucciones de brinco
EL CPU.
8. Diseño del Procesador Fundamentos de los Computadores
Datapath para las instrucciones de carga y almacenamiento (load/store)
HARDWARE POR: JOEL CASTAÑEDA 1ºA.
ARQUITECTURA DE HARD WARE COMPONENTES EN BLOQUES DEL PROCESADOR
Explicación 3 Periféricos.
Direccionamiento de puerto E/S mapeado en memoria
MC Beatriz Beltrán Martínez Primavera 2016
Creando un solo datapath
CONTENIDO HIPERVINCULOS: ¿Qué es scratch? Interfaz grafica de scratch
JAVIER ANDRES MARTÀ MARTINEZ CODIGO 37772
PICOBLAZE RESUMEN.
Organización del Computador
Hipervínculos scratch
TECNOLOGÍA DE EQUIPOS INFORMÁTICOS
Hardware Description Language
PANTALLA LCD.
Lenguaje Ensamblador. Repertorio de instrucciones Microprocesador Z80.
Scratch Presentado por: Sharon Daniela Bustos Barón. 901 J.M.
HERRAMIENTAS DE PROGRAMACIÓN
PROCESADOR DIGITAL ESPECIALIZADO
Ing. Diego Barragán Guerrero Máquinas de estado con VHDL.
8. Diseño del Procesador Fundamentos de los Computadores
CURSO PROGRAMACIÓN BÁSICA SEMANA 3 ¿Qué es un programa?
Memoria flash y su uso en el microcontrolador MSP430F149
PICOBLAZE RESUMEN.
Empecemos por el principio
PUNTO FIJO - PUNTO FLOTANE
1 TEMA 2: Organización de computadores Procesadores Memorias Dispositivos de E/S.
Operaciones con Acumuladores
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
El procesador Datapath y control.
1 ALU (Unidad aritmético lógica) Registros Unidad de control I/O y buses internos (usualmente 3 estados) I/O y buses internos Los buses I/O son de tres.
DIAGRAMAS DE FLUJO. D I A G R A M A DE F L UJ O EL DI AGRAMA DE FLUJO ES LA REPRESENTACIÓN GRÁFICA DE DICHA SE CUENCIA DE INSTRUCCIONES QUE CONFORMAN.
ARQUITECTURA DE UN MICROPROCESADOR. ESTRUCTURA BÁSICA DE UN SISTEMA MICROPROGRAMABLE A. Hardware CPU (chip microprocesador): es un circuito integrado.
Transcripción de la presentación:

PICOBLAZE (Microcontrolador Embebido de 8 bits)

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

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

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

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

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

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.

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

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

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

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

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

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

Picoblaze Sistemas Digitales - FIUBA Diagrama en bloques

Picoblaze Sistemas Digitales - FIUBA Movimiento de los datos

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

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

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

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

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

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

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)

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;

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

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

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

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

FIN Picoblaze Sistemas Digitales - FIUBA