J'ai donc créé ce module qui est censé représenter une RAM, sur laquelle je sauvegarde des données en conséquence aux résultats de mon module supérieur.Je veux utiliser le RAM dans mon FPGA Altera DE1-SOC, est-ce que je prends la bonne façon?
module RAM_OUT (pix_val, w_mem_out, set_ram);
input [2:0] w_mem_out;
input [31:0] pix_val;
input set_ram;
reg [15:0] addr_out;
reg [31:0] mem_out1 [0:57599];
reg [31:0] mem_out2 [0:57599];
reg [31:0] mem_out3 [0:57599];
/////////// ram out ///////////////
always @ (w_mem_out or set_ram)
begin
if (set_ram)
addr_out = 0;
else
begin
if (w_mem_out == 1)
begin
mem_out1 [addr_out] = pix_val;
mem_out2 [addr_out] = 32'b11111111_000000000000000000000000;
mem_out3 [addr_out] = 32'b00000000_000000000000000000000000;
addr_out = addr_out + 16'b0000000000000001;
end
else if (w_mem_out == 2)
begin
mem_out1 [addr_out] = 32'b11111111_000000000000000000000000;
mem_out2 [addr_out] = pix_val;
mem_out3 [addr_out] = 32'b00000000_000000000000000000000000;
addr_out = addr_out + 16'b0000000000000001;
end
else if (w_mem_out == 3)
begin
mem_out1 [addr_out] = 32'b11111111_000000000000000000000000;
mem_out2 [addr_out] = 32'b11111111_000000000000000000000000;
mem_out3 [addr_out] = pix_val;
addr_out = addr_out + 16'b0000000000000001;
end
else
addr_out = addr_out;
end
end
endmodule
Le programme fonctionne déjà parfaitement bien sur la simulation, mais étant donné que je prévois de le charger dans mon FPGA, je veux utiliser les mémoires SDRAM disponibles dans le conseil (mon intention est de faire une SOC complète, et j'ai besoin de charger les données dans la SDRAM, puis utiliser ma conception pour traiter ces données). Donc, je me demande si la programmation de la SDRAM est trop loin de ce que j'ai fait dans le code ci-dessus. Vous pouvez voir qu'il y a une certaine logique que j'ai écrite afin de sauvegarder les données que je veux dans les "mémoires" mais je ne suis pas sûr si c'est la même chose quand je fais la SDRAM ou je devrai changer plus tard Je n'aimerais pas ça car mon système fonctionne déjà bien en simulation).
J'ai écrit le code au-dessus de la lecture de la documentation altera, ils disent que c'est la façon de faire une RAM, mais est-ce synthétisable? Qu'est-ce qui se passe réellement dans le FPGA, il infère la mémoire en utilisant les portes de la puce FPGA ou utiliser la mémoire réelle de la carte? Veuillez noter que les données d'entrée sont composées de 57600 numéros 32bits.
Voulez-vous dire quelques conseils sur la façon de mettre en œuvre la SDRAM pour remplacer la RAM ci-dessus que je voulais faire? Puis-je le faire par code sans utiliser NIOS-II ou QSYS? – sujeto1
Quartus II, je crois a un noyau Megawizard pour l'interfaçage avec une SDRAM externe. Vous devrez naviguer vers Outils -> MegaWizard Plugin Manager, qui ouvrira une nouvelle fenêtre.Dans cette nouvelle fenêtre, vous devrez aller à Interface -> External Memory et sélectionner le coeur SDRAM que vous voulez – Prashant
Si je dois stocker 57.000 nombres binaires 32 bits à lire seulement une fois traité et stocké dans la mémoire, un par un. Quelle méthode est la plus pratique à utiliser, la mémoire interne ou la SDRAM? – sujeto1