You are on page 1of 5

4to.

Laboratorio de Sistemas Digitales II


EE-636M, perodo 2016-2
Informe Final

Wilder Gonzales Lavi


Facultad de Ingeniera Elctrica y Electrnica
Universidad Nacional de Ingeniera
Lima, Per
antony.tauro1@gmail.com

Abstract Este informe final de laboratorio se ha desarrollado con el propsito de presentar el procedimiento
de codificacin en lenguaje VHDL para el diseo de un CPU de arquitectura RISC monociclo, adjuntando
adems algunas simulaciones.

I. INTRODUCCIN
En la actualidad cuando utilizamos una computadora, lo que hacemos es proporcionar una serie de bits
(entrada) y sta sigue las instrucciones para transformar esa entrada en otra serie de
bits (salida) y devolverla en informacin. El CPU rene complejos circuitos electrnicos, los cuales son
incorporados todos estos circuitos en un chip de silicio, al cual se le llama microprocesador.
Una de las primeras decisiones a la hora de disear un microprocesador es decidir cul ser su juego de
instrucciones.
La decisin por dos razones; primero, el juego de instrucciones decide el diseo fsico del conjunto;
segundo, cualquier operacin que deba ejecutarse en el microprocesador deber poder ser descrita en
trminos de un lenguaje de estas instrucciones. Frente a esta cuestin caben dos filosofas de diseo;
mquinas denominadas CISC y mquinas denominadas RISC.

Este informe consta de una serie de archivos que determinan cada etapa de una arquitectura RISC, como
tope de jerarqua se utiliza el archivo TinyMips, y los dems archivos cumplen diferentes funciones (ifetch,
idecode, execute, memory, writeback y pll) todos controlados por el archivo control.

II. TRABAJOS RELACIONADOS


El trabajo realizado por los autores Robert Wille del Inst. of Comput. Sci., Univ. of Bremen, Bremen,
Germany, Mathias Soeken del Inst. of Comput. Sci., Univ. of Bremen, Bremen, Germany, Daniel Groe
del Inst. of Comput. Sci., Univ. of Bremen, Bremen, Germany, Eleonora Schnborn del Inst. of Comput.
Sci., Univ. of Bremen, Bremen, Germany y Rolf Drechsler del Inst. of Comput. Sci., Univ. of Bremen,
Bremen, Germany, en su paper Designing a RISC CPU in Reversible Logic, presentan un progreso
impresionante en el desarrollo de enfoques de sntesis, aplicacin de elementos secuenciales, y lenguajes
de descripcin hardware. En este trabajo, estos logros recientes se emplean con el fin de disear una CPU
RISC en la lgica reversible que puede ejecutar programas de software escritos en un lenguaje ensamblador.
Los respectivos componentes combinacionales y secuenciales se han diseado utilizando tcnicas de diseo
del estado de la tcnica.
III. PLANEAMIENTO DEL PROBLEMA

A. CPU RISC MONOCICLO


El desarrollo del laboratorio deber ser de forma estructurada, es decir, de manera jerrquica, con
TinyMips como archivo de tope de jerarqua.
La secuencia de ciclos de instruccin de este CPU es: IFetch, Idecode, Execution, Memory y
Writeback y todo se realiza en un pulso de reloj.

Los bloques de memoria ROM y RAM fueron creados a partir de la herramienta MegaWizard Plug-
in Manager del software Quartus II donde el modelo de memoria a escoger es ROM 1-PORT y
RAM 1-PORT respectivamente que se encuentran en el grupo Memory Compiler.

Device Family: Ciclone II Q output bus: 16bits Numbers of words: 1024


RAM Block type: Auto Single clock: Yes Q output: no debe ser
registrada
Initial content of memory: Yes Allow Ins System Memory Content Editor Yes

Instance ID of RAM: RAM File for memory content data: ram.mif

Instance ID of ROM: ROM File for memory content data: rom.mif

En este diagrama
Formato de instrucciones del CPU RISC Monociclo TinyMips

Para el archivo execute se debe seguir las siguientes instrucciones:

Tabla1. Instrucciones del CPU RISC Monociclo TinyMips

Se dispone de cuatro registros de usuario (R0 a R3), identificados por campos de registro (rs, rt y rd)
dependiendo de la instruccin en curso, y que el registro R0 siempre tendr como contenido 0000h y no
puede ser sujeto de modificacin. Para las direcciones de memoria de instrucciones (ROM) solo se harn
llegar los 10 bits menos significativos del PC a pesar que este tiene 16 bits.

Notar que para la implementacin de las instrucciones jump se debern crear caminos adicionales ya que
estos no se encuentran en las plantillas dadas de los archivos.

Constrains: tsu=1 ns, tco=16 ns, tpd=3 y th=2 ns.

Finalmente para la carga inicial de las memorias ROM y RAM se deber realizarse mediante los archivos
mif. El programa principal en la memoria ROM se cargara a partir de 0000h y la subrutina empieza en
0080h. Las direcciones pde memoria RAM para el arreglo de datos 16 valores arranca desde la posicin
10h. El arreglo no se debe destruir, y los valores ordenados se deben almacenar en otro arreglo que
comienza en la posicin 0040h. Al terminar la ejecucin el CPU deber estar en un bucle infinito.
IV. DESCRIPCIN GENERAL DE LA SOLUCIN

A. Descripcin de cada archivo:


iFetch:
Se realiz las actualizaciones del PC utilizando el mux del Add_result, adems de utilizar otro
mux para la seal del Jump.
Se asign a la seal PC_plus_1 el valor de PC+1, luego en un process se actualizaba el valor de
PC, finalmente se asignaba las salidas con las seales internas utilizadas.

Idecode:
En este archivo se hizo el reseteo y la escritura de datos en un array de registros siendo estos R0,
R1, R2 y R3 definidos en la seal register_array.
Tambin se realiz la asignacin de las seales de los datos de lectura, read_data_1 y
read_data_2, adems del mux para el registro write_register_address y la extensin del signo.

Execute:

Se presenta la secuencia de instrucciones expuestas en la tabla 1 anterior, se utiliz un case con


la variable Opcode para diferenciar las instrucciones. Finalmente se realiz el mux del
ALU_result para las salidas.

Control:

Para las seales de salida se realiza una combinacin de cada bit del opcode para

V. RESULTADOS EXPERIMENTALES
Valores de tsu, tco, tpd y th.

La frecuencia utilizada en el laboratorio fue de 50 MHz.

= 0.221
= 14.489
= 2.612
= 1.698

VI. OBSERVACIONES Y CONCLUSIONES


En la simulacin se puede observar el producto a partir del acumulado el valor final es 119
(hexadecimal), pero como cada registro posee 8 bits, el resultado es 19(hexadecimal).
Utilizando la herramienta de Quartus II Programer del men Tools es que se pudo hacer la
configuracin del dispositivo, y para verificar si el programa funciona, se selecciona la opcin
In-System Memory Content Editor, con ello se puede garantizar si el programa es el correcto y
cumple las especificaciones requeridas.
Las computadoras han ido evolucionando con el pasar del tiempo, crendose ms procesadores
de varios cores, posibilitando una mayor eficacia en el trabajo y aumentando las instrucciones de
ejecucin, por ello que se concluye que debido a esta experiencia del laboratorio es que se aprecia
un panorama general de la funcionalidad de un CPU tipo RISC.

REFERENCES
[1] M. Morris Mano, Computer System Architecture, 3rd Edition, Prentice Hall, 1993.

[2] http://ieeexplore.ieee.org/document/5954228/
ANEXO

You might also like