sesion 5 (sopc builder y nios ii)

Upload: pedro-aberga-farro

Post on 03-Apr-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    1/46

    Diseo de un procesador NIOS II a medida usando lasherramientas SOPC Builder.

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    2/46

    2

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    3/46

    3

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    4/46

    4

    CPU

    CONTROL

    DATAPATH

    Unidad de Procesamiento

    CPU Memoria

    Memoria

    Aporta lainteligencia al S.E.

    Con/sin memoriainterna.

    Usar/no memoriaexterna.

    Arquitecturaespecfica.

    Perifricos de E/S.

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    5/46

    5

    Lenguaje C para

    (sistemasembebidos)S.E.

    Programas portables yrobustos.

    Tener cdigo C rpido ypequeo.

    Identificar loselementos crticos encada programa.

    Desarrollar softwarepara el control deHardware: Firmware.

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    6/46

    6

    ASICs: Application Specified Integrated Circuit.

    Lgica Reconfigurable: FPGA, CPLD, ...

    Procesadores: MPUs, MCUs, DSPs,

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    7/46

    CONFIGURACION DEL HARDWARE

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    8/46

    Los ncleos de procesadores se pueden implementar

    en hardware o software.

    Procesadores en hardware: Usan un ncleo deprocesador embebido en silicio dedicado y ofrecen

    ventajas hibridas entre FPGA y ASIC.

    Procesadores en software: Usan elementos lgicos

    programables existentes en el FPGA para implementarla lgica del procesador.

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    9/46

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    10/46

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    11/46

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    12/46

    Amigobot robot controlado por una FPGA con un procesador Nios.

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    13/46

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    14/46

    14

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    15/46

    15

    Utilizando el software EDA de diseo digital Quartus II, laherramienta SOPC (System on Programmable Chip) Builder, elentorno de desarrollo integrado Nios II IDE, todos de AlteraCorporation, implementar la especificacin de un sistema embebido

    en el FPGA Cyclone II EP2C20F484C7 que sea capaz de leer de

    un puerto un valor pseudo random de 8 bits que sirva comodireccin de memoria SRAM para escribir datos, para que luego

    estos datos sean leidos generndose direcciones de manera

    secuencial ascendente. La especificacin final debe quedar en

    lenguaje de descripcin VHDL, y la implementacin del programapara escritura y lectura en SRAM debe implementarse en lenguaje

    ANSI C. El tope de jerarqua del proyecto ser grfico y el nombredel proyecto se llama genera.

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    16/46

    16

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    17/46

    17

    Tomar nota que en la figura anterior se tienen los siguientes bloques:

    a) debounce.- Este bloque implementa un circuito para eliminar rebotes

    causados por la presin de un pulsador (seal key_reset). Cada vez que sepresiona el pulsador, la seal key_reset pasa a 0 pero con rebotes, y alsoltar el pulsador, la seal key_reset pasa a 1 pero con rebotes. La sealdb_button produce un pulso (activo nivel bajo) libre de rebotes por efecto delpresionado y soltado del pulsador. La seal resetn es un reset ascrono delcircuito y la seal clk_50MHz es el reloj del circuito con una frecuencia de50MHz. (este bloque ser entregado)

    b) lfsr8bits.- Este bloque implementa dos circuitos. El primero de ellos es uncontador de 8 bits hacia arriba. El segundo es un generador pseudo random

    de 8 bits usando la tcnica LFSR (LinearFeedback Shift Register). Cuando laseal sel es 0, la seal salida[7..0] tiene valores pseudo random, ycuando la seal sel es 1, la seal salida[7..0] tiene valores de un contadorhacia arriba. La generacin de los valores de cuenta (pseudo random o

    secuenciales) se producen con el flanco de subida de la seal clock. Cuandola seal resetn es 0, ambos circuitos vuelven al valor00H de maneraasncrona. Cuando la seal resetn es 1, permite la operacin sncrona.

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    18/46

    18

    c) procesador.- Este bloque es generado por la herramienta SOPCBuider. Tiene un puerto de entrada de 8 bits llamado lfsr_in_pio (que leeel valor generado por el bloque lfsr8bits) y dos puertos de salida de 1 bit.Uno de estos se llama clock_out_pio (para generar seales de reloj viaprograma en ANSI C) y el otro se llama sel_out_pio para generar laseal sel a ser aplicada al bloque lfsr8bits (tambin via programa en

    ANSI C). Tambin tiene interfaz hacia memorias SDRAM y SRAM.

    d) clk_pll.- Este bloque es un PLL que sirve para generar la seal de reloja ser aplicada la memoria SDRAM de la tarjeta DE1 de Altera donde se

    implementar el proyecto. De los 3 PLLs disponible en la megafucin

    ALTPLL, utilizar solo uno y que corresponde a la salida c0.

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    19/46

    19

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    20/46

    20

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    21/46

    21

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    22/46

    22

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    23/46

    23

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    24/46

    24

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    25/46

    25

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    26/46

    26

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    27/46

    27

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    28/46

    28

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    29/46

    29

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    30/46

    30

    (lfsr_in_pio, clock_out_pio,sel_out_pio)

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    31/46

    31

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    32/46

    32

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    33/46

    33

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    34/46

    34

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    35/46

    35

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    36/46

    36

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    37/46

    37

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    38/46

    38

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    39/46

    39

    a) En la barra de men seleccionarSystemAuto-AssignBase Addresses. Con esto los campos de Base y End dela figura 2 se actualizan, para que no exista traslape de

    direcciones. Igualmente, seleccionarSystemAuto-Assign

    IRQs, para actualizar la lista de IRQs.

    b) En la barra de men seleccionarFileSave, salvandotodos los cambios.

    c) Presionar el botn Next y luego el botn Generate paragenerar el bloque procesador. Al final, seleccionarFileSave de la barra de men.

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    40/46

    40

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    41/46

    41

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    42/46

    42

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    43/46

    43

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    44/46

    44

  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    45/46

    45

    http://www.palabrasydefiniciones.com/electronica/m.htm

    http://users.ece.gatech.edu/~hamblen/book/bookse.htm

    http://www.alteraforum.com/

    http://www.worldlingo.com/ma/enwiki/es/Nios_II

    file:///C:/altera/81/nios2eds/documents/index.htm(cambiar numero segn versin instalada, ejm: 81, 91)

    http://www.altera.com/literature/lit-index.html

    http://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.html

    http://www.palabrasydefiniciones.com/electronica/m.htmhttp://users.ece.gatech.edu/~hamblen/book/bookse.htmhttp://www.alteraforum.com/http://www.worldlingo.com/ma/enwiki/es/Nios_IIhttp://c/altera/81/nios2eds/documents/index.htmhttp://www.altera.com/literature/lit-index.htmlhttp://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.htmlhttp://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.htmlhttp://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.htmlhttp://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.htmlhttp://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.htmlhttp://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.htmlhttp://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.htmlhttp://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.htmlhttp://www.altera.com/products/software/quartus-ii/modelsim/qts-modelsim-index.htmlhttp://www.altera.com/literature/lit-index.htmlhttp://www.altera.com/literature/lit-index.htmlhttp://www.altera.com/literature/lit-index.htmlhttp://c/altera/81/nios2eds/documents/index.htmhttp://www.worldlingo.com/ma/enwiki/es/Nios_IIhttp://www.alteraforum.com/http://users.ece.gatech.edu/~hamblen/book/bookse.htmhttp://www.palabrasydefiniciones.com/electronica/m.htm
  • 7/29/2019 Sesion 5 (Sopc Builder y Nios II)

    46/46

    46