Página 1 de 1

Ejercício con memoria interna de la FPGA - DE2_70

Publicado: 10 Feb 2019, 15:47
por Subcritical
Con el siguiente código de como crear una memoria interna de mcleod_ideafix

Código: Seleccionar todo

module memoria (
  input wire clk,
  input wire [9:0] direccion,
  input wire [7:0] din,
  output reg [7:0] dout,
  input wire escribir
);
reg [7:0] mem[0:1023];
always @(posedge clk) begin
  if (escribir)
    mem[direccion] <= din;
  dout <= mem[direccion];
end
endmodule
Asignamos interruptores a dirección de memoria.
Asignamos interruptores a din datos entrada.
Asignamos diodos led a dout datos salida.
Asignamos un interruptor a escribir.

Y tenemos un módulo de memoria funcional
Memoria001.zip
(2.74 KiB) Descargado 342 veces
Memoria 1kbyte RTL.png
Memoria 1kbyte RTL.png (148.73 KiB) Visto 3790 veces

Re: Ejercício con memoria interna de la FPGA - DE2_70

Publicado: 10 Feb 2019, 20:57
por Subcritical
¿con dicho modulo de memoria podría generar una secuencia de datos incrementando las 10bit direcciones y asignando los 8 bits menos significativos como dato?


Algo parecido a esto:
¿Permitiria la memoria ser grabada a 25mhz?

Código: Seleccionar todo

//Contador de 10 bit para la memmoria y 8-bit para los datos de entrada
module counter_direcciones_10 (
 input clk,
 input reset,
 output reg grabarmemoria,
 output reg [7:0] datos,
 output reg [9:0] direcciones
 );
 
always @(posedge clk)
	begin
		if (direcciones <= 10'b1111111111)
		begin
		direcciones <= direcciones + 10'b1;
		datos = direcciones[7:0];
		end
		else
		begin
		grabarmemoria = 1'b0;
		end
	end

memoria memoria1k_00(
.clk(clk),
.direccion(direcciones), //10 bits de dirección 0:9 en número decimal 0:1023
.din(datos), //datos entrada 8 bits
.dout(datos_salida), //datos salida 8 bits
.escribir(grabarmemoria) // señal de escribir en la memoria 
); 
 
endmodule

Experimento_memoria000.zip
(5.49 KiB) Descargado 350 veces