You are on page 1of 46

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

CPU
Aporta la inteligencia al S.E. Con/sin memoria interna. Usar/no memoria externa. Arquitectura especfica. CONTROL

DATAPATH

Unidad de Procesamiento CPU Memoria

Perifricos de E/S.
Memoria

Lenguaje C para (sistemas embebidos)S.E. Programas portables y robustos. Tener cdigo C rpido y pequeo. Identificar los elementos crticos en cada programa. Desarrollar software para el control de Hardware: Firmware.
5

ASICs: Application Specified Integrated Circuit. Lgica Reconfigurable: FPGA, CPLD, ... Procesadores: MPUs, MCUs, DSPs,

CONFIGURACION DEL HARDWARE

Los ncleos de procesadores se pueden implementar en hardware o software. Procesadores en hardware: Usan un ncleo de procesador embebido en silicio dedicado y ofrecen ventajas hibridas entre FPGA y ASIC. Procesadores en software: Usan elementos lgicos programables existentes en el FPGA para implementar la lgica del procesador.

Amigobot robot controlado por una FPGA con un procesador Nios.

14

Utilizando el software EDA de diseo digital Quartus II, la herramienta SOPC (System on Programmable Chip) Builder, el entorno de desarrollo integrado Nios II IDE, todos de Altera Corporation, 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 como direccin 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 programa para escritura y lectura en SRAM debe implementarse en lenguaje ANSI C. El tope de jerarqua del proyecto ser grfico y el nombre del proyecto se llama genera.

15

16

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 se presiona el pulsador, la seal key_reset pasa a 0 pero con rebotes, y al soltar el pulsador, la seal key_reset pasa a 1 pero con rebotes. La seal db_button produce un pulso (activo nivel bajo) libre de rebotes por efecto del presionado y soltado del pulsador. La seal resetn es un reset ascrono del circuito y la seal clk_50MHz es el reloj del circuito con una frecuencia de 50MHz. (este bloque ser entregado) b) lfsr8bits.- Este bloque implementa dos circuitos. El primero de ellos es un contador de 8 bits hacia arriba. El segundo es un generador pseudo random de 8 bits usando la tcnica LFSR (Linear Feedback Shift Register). Cuando la seal sel es 0, la seal salida[7..0] tiene valores pseudo random, y cuando la seal sel es 1, la seal salida[7..0] tiene valores de un contador hacia arriba. La generacin de los valores de cuenta (pseudo random o secuenciales) se producen con el flanco de subida de la seal clock. Cuando la seal resetn es 0, ambos circuitos vuelven al valor 00H de manera asncrona. Cuando la seal resetn es 1, permite la operacin sncrona.
17

c) procesador.- Este bloque es generado por la herramienta SOPC Buider. Tiene un puerto de entrada de 8 bits llamado lfsr_in_pio (que lee el 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 via programa en ANSI C) y el otro se llama sel_out_pio para generar la seal 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 reloj a 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.

18

19

20

21

22

23

24

25

26

27

28

29

(lfsr_in_pio, clock_out_pio,sel_out_pio)

30

31

32

33

34

35

36

37

38

a) En la barra de men seleccionar System Auto-Assign Base Addresses. Con esto los campos de Base y End de la figura 2 se actualizan, para que no exista traslape de direcciones. Igualmente, seleccionar System Auto-Assign IRQs, para actualizar la lista de IRQs.

b) En la barra de men seleccionar File Save, salvando todos los cambios.


c) Presionar el botn Next y luego el botn Generate para generar el bloque procesador. Al final, seleccionar File Save de la barra de men.

39

40

41

42

43

44

http://www.palabrasydefiniciones.com/electronica/m.htm http://users.ece.gatech.edu/~hamblen/book/bookse.htm http://www.altera.com/literature/lit-index.html http://www.altera.com/products/software/quartusii/modelsim/qts-modelsim-index.html 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)


45

46

You might also like