34
M Del PicoBlaze al MicroBlaze Patricia Borensztejn Segundo Cuatrimestre 2013 Clase 1 Co-Diseño Hardware Software usando FPGA Museo Botero, Bogotá Colombia

Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

  • Upload
    vodien

  • View
    269

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

M

Del PicoBlaze al MicroBlaze

Patricia Borensztejn Segundo Cuatrimestre 2013

Clase 1 Co-Diseño Hardware Software usando FPGA

Mu

seo B

otero

, Bo

gotá C

olo

mb

ia

Page 2: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Co Diseño con PicoBlaze

PicoBlaze

BRAM Instrucción

dirección

DEC

OD

IFIC

AC

ION

y R

UTE

O In_port

Out_port

port_id

read_strobe write_strobe

7-Segmentos

UART

LEDS y SWITCHES

RS232

Museo Botero, Bogotá Colombia

Page 3: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Co-Diseño con PicoBlaze

• PicoBlaze: – Procesador de 8 bits – Arquitectura Básica RISC – Se programa en ensamblador – No hay sistema operativo, se carga un programa en el

BRAM y eso es lo que se ejecuta. – No hay drivers para dispositivos. – Todo lo que no hay, se puede hacer. Lo que quiero

decir es que NO esta hecho. – Podríamos implementar por ejemplo un

microcontrolador, el PICO16, usando de base el PicoBlaze , podríamos basarnos en el PIC16.

Page 4: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

PIC16 (Microchip) Microcontrolador

Page 5: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

PIC16F887

Page 6: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

PIC16

• RISC architecture – Only 35 instructions to learn – All single-cycle instructions except branches

• Operating frequency 0-20 MHz • Precision internal oscillator

– Factory calibrated – Software selectable frequency range of 8MHz

to 31KHz

• Power supply voltage 2.0-5.5V – Consumption: 220uA (2.0V, 4MHz), 11uA (2.0

V, 32 KHz) 50nA (stand-by mode)

• Power-Saving Sleep Mode • Brown-out Reset (BOR) with software control

option • 35 input/output pins

– High current source/sink for direct LED drive – software and individually programmable pull-

up resistor – Interrupt-on-Change pin

• 8K ROM memory in FLASH technology – Chip can be reprogrammed up to 100.000

times

• In-Circuit Serial Programming Option – Chip can be programmed even embedded in

the target device

• 256 bytes EEPROM memory – Data can be written more than 1.000.000

times

• 368 bytes RAM memory • A/D converter:

– 14-channels – 10-bit resolution

• 3 independent timers/counters • Watch-dog timer • Analogue comparator module with

– Two analogue comparators – Fixed voltage reference (0.6V) – Programmable on-chip voltage reference

• PWM output steering control • Enhanced USART module

– Supports RS-485, RS-232 and LIN2.0 – Auto-Baud Detect

• Master Synchronous Serial Port (MSSP) – supports SPI and I2C mode

Page 8: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Co

-Dis

eño

co

n P

ico

Bla

ze

Page 9: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Co Diseño basado en PicoBlaze

// ===================================================== // KCPSM and ROM instantiation // ===================================================== kcpsm3 proc_unit (.clk(clk), .reset(reset), .address(address), .instruction(instruction), .port_id(port_id), .write_strobe(write_strobe), .out_port(out_port), .read_strobe(read_strobe), .in_port(in_port), .interrupt(1'b0), .interrupt_ack()); programa rom_unit (.clk(clk), .address(address), .instruction(instruction));

Page 10: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Definición de Sistema Embebido

An embedded system is nearly any computing system (other than a general-purpose computer) with the following characteristics: Single function Typically designed to perform a predefined function Tightly constrained Tuned for low cost Single-to-fewer component based Performs functions fast enough Consumes minimum power Reactive and real-time Must continually monitor the desired environment and react to changes Hardware and software coexistence

Page 11: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Sistema Embebido en FPGA

Embedded design in an FPGA consists of the following: • Develop processor system in FPGA MicroBlaze processor (soft core) Peripherals PLBv46 (XPS) AXI interconnect Reset, clocking, debug ports • Use Operating System (OS) or Real Time Operating System (RTOS)

(optional) • Generate drivers and libraries • Create the software application Software routines Interrupt service routines (optional)

Page 12: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Co Diseño

• Cualquier sistema electronico ( o casi cualquiera de sus partes) puede realizarse tanto en hardware (puertas lógicas, registros, FSM) como en software (instrucciones ejecutadas en un procesador)

• El mejor criterio para decidir que parte del sistema se ejecuta en hardware y que parte en software es cuan rápido queremos que cada parte se ejecute.

Page 13: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Co Diseño

• Nano o Pico segundos: ni hablar, va al hardware. Ejemplo, una suma, una multiplicación. Una lectura a memoria.

• Microsegundos: si una instrucción tarda en ejecutarse un ciclo de reloj de 1 Giga, eso es 1 nanosegundo, por lo tanto en un microsegundo se ejecutan….1000 instrucciones. Hay que ver que hacemos…

• Milisegundos: es del orden de tiempo que necesitamos para encender un led… por ejemplo. Si lo hacemos en hardware, tenemos que gastar lógica para implementar delays.

Page 14: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Co Diseño

• En el flujo de diseño tradicional de un sistema embebido, se deciden los componentes hardware, se arma el sistema hardware y luego se escribe el programa que corre en el microcontrolador o elemento de proceso elegido.

• Es muy interesante poder tener flexibilidad, tanto en el software como en el hardware, y además, poder intercambiar la funcionalidad entre ambos durante el proceso de diseño.

• Esta posibilidad la tenemos con los FPGA, que incorporan núcleos de procesador (hard o soft) mas herramientas de diseño que permiten integrar los dos flujos llegando incluso a la verificación conjunta del sistema.

Page 15: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Co Diseño

• The cooperative design of hardware and

software components;

• The unification of currently separate

hardware and software paths;

• Moving of functionality between hardware

and software;

Page 16: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

IP Intelectual Property

• Actualmente los diseños son tan grandes y complejos que es impracticable hacer cada porción de cero. (“from scratch”)

• La solución es “reusar” bloques funcionales, estos se denominan IP (Intelectual Property) y pueden ser: – Propios (de anteriores diseños)

– Comprados a fabricantes de FPGA

– Comprados a terceros

Page 17: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

IP’s

a) Bloques IP no encriptados : el fabricante sintetiza el código, lo simula y lo verifica, y te entrega el fuente RTL (descripción funcional ). Ese fuente se sintetiza con el resto del código.

b) Bloques IP encriptados: el fabricante encripta el nivel RTL. No hay standard de encriptacion. Lo que compras para un fabricante no sirve para otro.

c) Bloques IP a nivel de netlist, sin ruteo y sin emplazamiento . Las netlists son a nivel de CLB y estan también encriptadas. Mas optimizadas que a nivel de RTL.

d) Bloques IP a nivel de netlist, ruteados y emplazados. Muy optimizados. Netlists encriptada. Posicion fija relativa al FPGA o no.

Page 18: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

IP’s

• IP´s • Core Generator:

– Se pueden parametrizar y elegir las funciones deseadas y desactivar otras (por ej. MicroBlaze sin unidad de coma flotante). Creo que todos los IP´s de Xilinx son de este tipo.

• System Generator: – Integran varios IP´s. Por ejemplo el Base System

Builder que usaremos para crear el sistema MicroBlaze MCS.

Page 19: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

IP´s

Create RTL

for IP block

IP Provider FPGA Designer

Incorporate

IP block(s)

Unplaced-and-

unrouted netlist

Synthesis

Create RTL for

body of design

Unplaced-and-

unrouted netlist

Synthesis

Incorporate

IP block(s)

Place-and-Route Place-and-Route

Placed-and-routed

netlist

Placed-and-routed

netlist

(a)

(b)

(c)

Page 20: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Co Diseño con MicroBlaze • MicroBlaze MSC (Micro Controller System)

– Es un sistema microcontrolador basado en un procesador de 32 bits

– Tiene memoria local de 4 a 64Kbytes – El sistema MSC incluye dispositivos básicos de E/S:

• Una UART • 4 timers fijos • 4 timers programables • Un controlador de interrupciones • 4 ports de entrada de 32 bits • 4 ports de salida de 32 bits

– El desarrollo de software se realiza con el SDK (Sofware Development Kit) de xilinx

– Se programa en C o C++ – Admite Sistema Operativo – Tiene soporte para debugging

Page 21: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

MicroBlaze MCS (Micro Controller System)

Page 22: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Instanciación de un MicroBlaze //----------------------------------------------------------------------------- // micro_top.v //----------------------------------------------------------------------------- module micro_top ( RS232_Uart_1_sout, RS232_Uart_1_sin, RESET, GCLK ); output RS232_Uart_1_sout; input RS232_Uart_1_sin; input RESET; input GCLK; (* BOX_TYPE = "user_black_box" *) micro micro_i ( .RS232_Uart_1_sout ( RS232_Uart_1_sout ), .RS232_Uart_1_sin ( RS232_Uart_1_sin ), .RESET ( RESET ), .GCLK ( GCLK ) ); endmodule

Page 23: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Instanciación de MicroBlaze

• Hay varias maneras de instanciar un MicroBlaze MCS :

1. Usando el ISE Proyect Navigator y agregando un IP core de tipo processor.

2. Usando el ISE Proyect Navigator y agregando un embedded processor que lo que hace es abrir el XPS (Xilinx Platform Studio)

3. Directamente abriendo el XPS y construyendo el sistema mediante el BSB (Base System Builder)

Page 24: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

1. Agregando un IP core de tipo Processor

Page 25: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

2. Agregando un Embedded Processor

Page 26: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

3. Mediante el XPS

Page 27: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Co Diseño con MicroBlaze

• El MicroBlaze es un IP (Intellectual Property) de Xilinx. Está incluido en el ISE Design Suite.

• Es un “soft core”. • El EDK (Embedded Development Kit) es un conjunto de

herramientas y de IP´s que permiten diseñar un sistema completo basado en MicroBlaze para su implementación en FPGA.

• El EDK pertenece al ISE Design Suite, que ademas tiene otras herramientas: – ISE Proyect Navigator – PlanAhead – ChipScope….

Page 28: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

EDK (Embedded Development Kit)

• Formado por :

– XPS: Xilinx Platform Studio, arma la plataforma de hardware

– SDK: Software Development Kit: desarrollo de aplicaciones en C/C++. Entorno basado en ECLIPSE.

– Primero se arma la plataforma hardware, luego la aplicación para ella.

Page 29: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Design Suites de Xilinx

• ISE Design Suite y Vivado Design Suite • Vivado esta especializada en crear SoC (System

on Chip) , especialmente creada para el ultimo producto de XILINX: Zynq-7000 que contiene un dual core ARM Cortex A9 , mas Lógica Programable.

• Vivado cuesta 3000 dólares por nodo. • Vivado tiene una herramienta de síntesis

automática de C, C++ o System C a RTL. • ISE Design Suite creo que ya no se vende por

separado sino como parte de Vivado

Page 30: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Xilinx University Program

• Xilinx tiene un University Program (xup) que otorga licencias de ISE Design Suite a las cátedras de universidades.

• Actualmente tenemos licencias vigentes hasta abril 2014.

• Xilinx también tiene convenios con digilent para ofrecer placas de desarrollo a precios con descuentos para universidades.

Page 31: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

¿Que vamos a hacer?

• Vamos a aprender a usar el EDK, siguiendo un tutorial de xilinx que nos va a enseñar a: – Crear un sistema basado en MicroBlaze – Crear nuevos IPs y agregarlos al sistema – Crear nuestros propios dispositivos (modulos hdl) e

incorporarlos al sistema – Desarrollar la aplicación accediendo a los dispositivos

del sistema – Debuggear la aplicación corriendo en la placa – Esto nos puede llevar unas seis clases. Quizas menos.

Quizas mas. En xilinx el tutorial es un curso que se da en dos dias completos.

Page 32: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Pre-requisitos

• Familiarity with the Xilinx ISE™ tool set

• Basic C programming

• Basic understanding of processor-based system

• Basic HDL knowledge

Page 33: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Diseño Completo

Page 34: Del PicoBlaze al MicroBlaze - dc.uba.ar · Del PicoBlaze al MicroBlaze ... •MicroBlaze MSC (Micro Controller System) ... Quizas mas. En xilinx el tutorial es un curso que se da

Luego….

• Incorporar al sistema una BRAM, y hacer una aplicación que lea y escriba en la BRAM

• Incorporar al sistema un controlador de VGA y hacer una aplicación que escriba en la VGA el contenido de un BRAM, o bien cualquier otra cosa

• Incorporar al sistema un controlador de memoria externa. Hacer una aplicación que lea de memoria externa a BRAM y escriba de BRAM a memoria externa.

• Usar todas esas primitivas para … armar alguna aplicación mas grande, un procesamiento de imágenes, un juego, etc.