Ich bin neu bei Verilog, also bitte entschuldigen Sie alle Anfängerfehler. Ich versuche, einen 3-Byte-Stack in Verilog zu implementieren. Verwenden von R_W zum Lesen von write (push/pop) und einem 2D-Array zum Speichern des Inhalts des Stapels.Der Versuch, einen Stapel in Verilog zu implementieren. Was stimmt nicht mit dem Code?
`timescale 1ns/1ps
module one(R_W,PUSH,POP);
input PUSH;
input R_W;
output POP;
wire [31:0] PUSH;
reg [31:0] POP;
wire R_W;
reg [31:0] temp[0:3];
integer tos = 3;
if(R_W == 1 && tos != 3)
begin
POP = temp[tos];
end
if(R_W == 0 && tos != 0)
begin
tos = tos +1;
POP = temp[tos];
end
endmodule
Prüfstand
`include"one.v"
module one_test();
wire pop;
reg [31:0] push;
wire r_w;
initial begin
push = 2'd12;
r_w = 0;
#10
$finish;
end
one one(r_w,push,pop);
endmodule
Was ist Ihre Frage? Bitte lies [die Hilfe zum Stack-Überlauf] (http://stackoverflow.com/help). –
Sie vermissen einen 'immer'-Block. Sie benötigen wahrscheinlich auch ein Takt- und/oder Freigabesignal. – Greg