Está en la página 1de 16

Implementación de

Memorias
Ing. Javier Andrés Torres P. M.Sc
Escalares y Vectores
En Verilog se pueden representar wire [3:0] n0;
bits a nivel individual o grupal wire n1;
• Un solo bit dentro de una reg [3:0] d0;
secuencia se puede representar reg d1;
mediante un flip –flop.

• Un conjunto 16 bits en una


secuencia implican un registro

Una declaración tipo net o reg sin un


rango especificado se considera de 1
bit y se denomina escalar

Una declaración tipo net o reg con


un rango especificado se considera
un vector
Escalares y Vectores
Las dimensiones de un
arreglo se especifican reg y1 [11:0];
después del nombre y // y1 es arreglo de 12 registros, cada uno de 1 bit de ancho de
se denominan arreglos // palabra
multidimensionales.
wire [0:7] y2 [3:0]
// y2 es un arreglo tipo net de 4 registros cada uno de 8 bits de
Los arreglos en verilog
// ancho de palabra
pueden ser de tipo:

reg, wire, integer, y


reg [7:0] y3 [0:1][0:3];
real
// y3 es un arreglo en 2D de 2 filas y 4 columnas y cada registro
// tiene un ancho de palabra de 8 bits
Ejemplo de una Memoria
module memoria
(
output reg [7:0] q,
input [7:0] d,
input [6:0] a,
input we,
input clk
);
reg [7:0] mem [127:0];
always @(posedge clk) begin
if (we)
mem[a] <= d;
q <= mem[a];
end
endmodule
RISC – CISC
RISC : Reduced instruction set computer

CISC : Complex Instruction set computer

SISC : Small Instruction set computer


CISC
El objetivo principal de la arquitectura CISC es completar una tarea en la menor
cantidad posible de líneas de código en leguaje Asembler

Esto se logra construyendo un hardware dentro del procesador que sea capaz de
comprender y ejecutar una serie de operaciones.

Como por ejemplo, un procesador CISC vendría preparado con una instrucción
específica ("MULT"). Cuando se ejecuta, esta instrucción carga los dos valores en
registros separados, multiplica los operandos en la unidad de ejecución y luego
almacena el producto en el registro apropiado. Por lo tanto, toda la tarea de
multiplicar dos números se puede completar con una instrucción:

mult A , B , C
RISC
Los procesadores RISC solo usan instrucciones simples que se pueden ejecutar en un ciclo
de reloj.

Por lo tanto, el comando "MULT" descrito anteriormente podría dividirse en tres


comandos separados:

- LOAD: Que mueve datos del banco de memoria a un registro.


- PROD: Que encuentra el producto de dos operandos ubicados dentro de los registros
- STORE: Que mueve datos de un registro a los bancos de memoria.

Para realizar la operación descrita anteriormente se necesitaría de la siguiente secuencia:

LOAD A, W
PROD B
STORE C
COMPARATIVA
CISC RISC
Énfasis en el hardware Énfasis en el software
Incluye instrucciones complejas que requieren de varios Emplea instrucciones que se ejecutan en un único ciclo de
ciclos de reloj reloj
incorpora instrucciones orientadas a realizar movimientos Incorpora instrucciones orientadas al movimiento entre
de datos entre posiciones de memoria ACUMULADOR – POSICION DE MEMORIA
Tamaños de código pequeños ( Programa) , ciclos altos por Ciclos bajos por segundo, tamaños de código grandes
Segundo (Grande)
Transistores utilizados para almacenar instrucciones Gasta más transistores en registros de memoria
complejas
Las Instrucciones tienen un tamaño variable Todas las instrucciones tienen el mismo tamaño
COMPARATIVA
CISC RISC
Arquitecturas 0x86 ARM, PIC, AVR, etc
DATAPATH

http://www.sinaptec.a
lomar.com.ar/2018/03
/computadora-de-4-bit
s-capitulo-1.html
Implementación de Datapath
empleando
Logisim

Ing. Javier Andrés Torres P. M.Sc


Control
ALU

Banderas
Instrucciones
La mitad de las
Instrucciones son
de 8 bits
OpX : Código de la Operación. En este tipo de
Instrucciones el valore es 0X
Rd : Registro de Destino
Rs : Registro Fuente

La otra mitad de
las Instrucciones
son de 16 bits

OpX : Código de la Operación. En este tipo de


Instrucciones el valore es 1X
Immediate: Es una constante o un valor inmediato
PCSEL: Selector para incrementar el PC o carga

Elementos de 1 Hilo el valor de salto desde el Registro Inmediato.


PCLOAD: Selector para cargar o no el PC con
un nuevo valor
IRLOAD: Carga el registro de instrucciones con
una nueva instrucción
IMLOAD: Carga el registro Inmediato con un
nuevo valor
READWRITE: Selector para leer o escribir la
memoria.
WRITE: Selector para escribir o no un valor de
regreso a un registro
Elementos de 2 Hilo
ADDRSEL: Seleccione una dirección a partir del valor del PC, el
registro inmediato, el registro de fuente o el registro de destino

REGSEL: Selecciona un valor a escribir en un registro a


partir del Registro Inmediato, otro registro, el bus de datos
o desde la ALU

DREGSEL y SREGSEL, seleccionan dos registros cuyos


valores se enviaron a la ALU

ALUOP: Selector sobre cual del los dos bits de op2


controlan la operación de la ALU
Links
• https://minnie.tuhs.org/CompArch/Tutes/week02.html
• https://minnie.tuhs.org/CompArch/Tutes/week03.html
• https://www.youtube.com/watch?v=kRlSFm519Bo&list=PLowKtXNTB
ypGqImE405J2565dvjafglHU&index=2
• https://eater.net/
• https://medium.com/@karlrombauts/building-an-8-bit-computer-in-l
ogisim-part-1-building-blocks-a4f1e5ea0d03

También podría gustarte