blob: dd3b9f10a24557139244ecb54384a227b53389f7 [file] [log] [blame]
module StackPointer #(
parameter W = 8
) (
input clk
, input rst
, input LD
, input INC
, input DEC
, input [W-1:0] D
, output reg [W-1:0] Q
);
initial Q = 0;
always @ (posedge clk or negedge rst)
begin
if( rst == 1'b0 )
Q <= 0;
else if (LD == 1'b1)
Q <= D;
else if (INC == 1'b1)
Q <= Q + (W/8);
else if (DEC == 1'b1)
Q <= Q - (W/8);
else
Q <= Q;
end
endmodule