Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Tabla de contenido
Introducción ........................................................................................................................................ 3
¿Qué es un datapath? ..................................................................................................................... 3
Tipos de instrucción R ..................................................................................................................... 4
Objetivo de la actividad:...................................................................................................................... 7
Diagrama de diseño: ....................................................................................................................... 8
Desarrollo de actividad: ...................................................................................................................... 8
Parte 1: modificaciones. .................................................................................................................. 8
Modificación 1 ............................................................................................................................. 8
Modificación 2 ............................................................................................................................. 9
Parte 2: Módulos nuevos .............................................................................................................. 10
Módulo 1 ................................................................................................................................... 10
Módulo 2 ................................................................................................................................... 11
Módulo 3 ................................................................................................................................... 12
Parte 3: Módulos que no cambiaron ............................................................................................ 13
Parte 4: Integración del top level .................................................................................................. 13
Parte 5: test bench ........................................................................................................................ 15
Conclusión ......................................................................................................................................... 17
Referencias Bibliograficas ................................................................................................................. 17
2
Introducción:
¿Qué es un datapath?
Se refiere la integración a un nivel más alto de los componentes para el crear un conjunto
el cual referencia todo el proceso, el cual es generado por el procesador, de forma más
simplificada es el trayecto de la información para realizar las operaciones que deseamos,
no es más que una sub-red interconectada.
Para la integración de un datapath es crítico lo que se debe hacer, es decir para que función
se quiere desarrollar dicho diseño, debido a que depende de esto para el nivel de
abstracción sobre la instrucción , para el desarrollo de esta actividad nos enfocaremos en
desarrollar instrucciones tipo R.
Para la ejecución de instrucciones tipo R sobre una arquitectura tipo MIPS es necesario,
(saltando los ciclos fetch y la memoria de instrucciones) un banco de registros, una ALU,
una Memoria Tipo cache, una Unidad de control, una unidad de control sobre la ALU, un
MUX, y nuestra instrucción.
Como las instrucciones tipo R son aritméticas- lógicas, todas se desarrollaran en la ALU, por
lo tanto es de forma fundamental su funcionamiento. Y la otra parte fundamental de esto,
es el banco de registros. Esto es debido a que las instrucciones de tipo de R contienen 3
operados, de los cuales 2 son posiciones de lectura de nuestro banco de registros, y el
tercero es la dirección de destino, claro está que no es ese orden.
3
Ilustración 1: Datapath para instrucciones tipo R
Código de
operación rs bits rt bits rd shamt Función
bits [25:21] [20:16] bits[15:11] bits[10:6] bits[5:0]
[31:26]
donde el código de operación se utiliza para determinar que tipo es, en este caso
una tipo R.
rs es la primer dirección de lectura
rt es la segunda dirección de lectura
rd es la dirección de destino, (dirección para la escritura)
shamt no lo utilizaremos
función es que operación de tipo R queremos realizar(suma, resta, división, entre
otras)
Tipos de instrucción R
Como bien sabemos las instrucciones tipo R realizan tarea aritméticas y lógicas
4
Estas son las instrucciones tipo R, cabe recordad que todas las instrucciones tipo R tienen
un Opcode “000 000”
5
24. MTHI: Mover un registro normal a HI; función: “010 001”
25. MTLO: Mover un registro normal a LO; función: “010 011”
26. MULT: Multiplicar; función: “011 000”
27. MULTU: Multiplicar sin signo; función: “011 001”
28. NOP: No operación; función: “000 000”
29. NOR: NOR lógica; función: “100 111”
30. OR: OR lógica; función: “100 101”
31. PAUSE: Espera por el LLBit por limpiar; función: “000 000”
32. ROTR: Rota la palabra a la derecha; función: “000 010”
33. ROTRV: Rota la palabra a la derecha una cantidad variable de bits; función: “000
110”
34. SLL: Cambia la palabra a la izquierda lógica; función: “000 000”
35. SLLV: Cambia la palabra a la izquierda lógica una cantidad variable de bits; función:
“000 100”
36. SLT: Comparativa menor que; función: “101 010”;
37. SLTU: Comparativa menor que sin signo; función: “101 011”;
38. SRA: Cambia la palabra a derecha, le da un giro; función: “000 011”
39. SRAV: Cambia la palabra a derecha una cantidad variable de bits, le da un giro;
función: “000 111”
40. SRL: Cambia la palabra a la derecha lógicamente; función: “000 010”
41. SRLV: Cambia la palabra a la derecha lógicamente una cantidad variable de bits;
función: “000 110”
42. SUB: resta; función: “100 010”
43. SUBU: Resta sin signo; función: “100 011”
44. SYSCALL: Llamar al sistema para una excepción; función: “001 100”
45. TEQ: Detiene una instrucción si son iguales; función: “110 100”
46. TGE: Detiene una instrucción si es mayor o igual; función: “110 000”
47. TGEU: Detiene una instrucción si es mayor o igual sin signo; función: “110 001”
48. TLT: Detiene una instrucción si es menor que; función: “110 010”
6
49. TLT: Detiene una instrucción si es menor que sin signo; función: “110 011”
50. TNE: Detiene la instrucción si no es igual; función: “110 110”
51. XOR: OR exclusiva lógica; función: “100 110”
Estas son la gran mayoría de las instrucciones de MIPS32 bits, cabe aclarar que como se
sabe la arquitectura utiliza un sistema basado en memorias las cuales se les asigna una
posición con un valor la cual tiene un significado dependiendo de la dirección en la cual se
está usando, solo para aclarar las funciones repetidas, es ese el porqué.
Objetivo de la actividad:
El objetivo de la actividad es desarrollar un datapath para que cumpla con las instrucciones
tipo R que vamos a designar de arquitectura tipo MIPS, nuestro diseño se compondrán de
un banco de registros, una memoria, una ALU, una Unidad de control, una ALU control y un
multiplexor.
7
Diagrama de diseño:
Desarrollo de actividad:
Parte 1: modificaciones.
Debido a que el datapath es la integración a una escala de las actividades anteriores;
necesitamos el modificar unos módulos para lograr la actividad.
Modificación 1:
Primero tenemos que modificar la memoria para que cumpla con el diseño.
8
Ilustración 2: Memoria modificada
Modificación 2:
Debido a que haremos más operaciones dentro de nuestra ALU necesitamos el expandir la
cantidad de casos para poder realizar la actividad.
9
Ilustración 4: Continuación de la ALU modificada
Módulo 1:
Debemos crear una unidad de control que es la que se encarga de leer el Opcode de la
instrucción y mandar la señal a los demás módulos, esto es fundamental ya que como su
nombre es la que controla todo
10
Ilustración 6: Unidad de control
Módulo 2:
Una vez creada la Unidad de control, procedemos a crear un bloque que será nuestra
ALU_control el cual, controla en base al tipo de instrucción, que operación debe hacer la
ALU.
11
Ilustración 7: ALU control
Módulo 3:
12
Por último el modulo es más que un MUX que elige si pasa una instrucción de la memoria o
de la ALU.
13
Ilustración 11: DATAPATH
14
Con eso finalizamos el top level, lo compilamos y una vez copilado para asegurarnos de su
funcionamiento comprobemos usando el sistema de analizador de diseños o el
interconectado de nuestro modulo (netlist)
Nuestro diseño debe quedar algo así esto nos permitirá el visualizar que las conexiones son
las correctas debido a que es de suma importancia y cuidado el hacer esto.
15
Ilustración 15: Visualizacion del Banco de registros
16
Ilustración 18: Vista general
Referencias Bibliograficas
D., P. (2014). Computer Organization and Desing. USA: Morgan Kaufman.
Lee, W. F. (2003). Verilog Coding for Logic Synthesis. New Jersey: Willey Interscience.
Mano, M. M. (1982). Lógica digital y Diseño de Computadores. Los Angeles: Prentice Hall.
17