Fixed space/tab mixture and indentation in instr_core_interface

This commit is contained in:
Sven Stucki 2015-04-16 15:21:03 +02:00
parent af8b208029
commit 10d9a75f27

View file

@ -26,255 +26,210 @@
////////////////////////////////////////////////////////////////////////////////
module instr_core_interface
(
input logic clk,
input logic rst_n,
(
input logic clk,
input logic rst_n,
input logic req_i,
input logic [31:0] addr_i,
output logic ack_o,
output logic [31:0] rdata_o,
input logic req_i,
input logic [31:0] addr_i,
output logic ack_o,
output logic [31:0] rdata_o,
output logic instr_req_o,
output logic [31:0] instr_addr_o,
input logic instr_gnt_i,
input logic instr_r_valid_i,
input logic [31:0] instr_r_rdata_i,
output logic instr_req_o,
output logic [31:0] instr_addr_o,
input logic instr_gnt_i,
input logic instr_r_valid_i,
input logic [31:0] instr_r_rdata_i,
input logic stall_if_i,
input logic stall_if_i,
input logic drop_request_i
);
input logic drop_request_i
);
enum logic [2:0] {IDLE, PENDING, WAIT_RVALID, WAIT_IF_STALL, WAIT_GNT, ABORT} CS, NS;
enum logic [2:0] {IDLE, PENDING, WAIT_RVALID, WAIT_IF_STALL, WAIT_GNT, ABORT} CS, NS;
logic save_rdata;
logic [31:0] rdata_Q;
logic save_rdata;
logic [31:0] rdata_Q;
logic wait_gnt;
logic [31:0] addr_Q;
logic wait_gnt;
logic [31:0] addr_Q;
always_ff @(posedge clk, negedge rst_n)
begin
if(rst_n == 1'b0)
begin
CS <= IDLE;
rdata_Q <= '0;
addr_Q <= '0;
end
else
begin
CS <= NS;
always_ff @(posedge clk, negedge rst_n)
begin
if(rst_n == 1'b0)
begin
CS <= IDLE;
rdata_Q <= '0;
addr_Q <= '0;
end
else
begin
CS <= NS;
if(wait_gnt)
addr_Q <= addr_i;
if(wait_gnt)
addr_Q <= addr_i;
if(save_rdata)
rdata_Q <= instr_r_rdata_i;
end
end
if(save_rdata)
rdata_Q <= instr_r_rdata_i;
end
end
always_comb
begin
always_comb
begin
instr_req_o = 1'b0;
ack_o = 1'b0;
save_rdata = 1'b0;
rdata_o = instr_r_rdata_i;
instr_addr_o = addr_i;
wait_gnt = 1'b0;
instr_req_o = 1'b0;
ack_o = 1'b0;
save_rdata = 1'b0;
rdata_o = instr_r_rdata_i;
instr_addr_o = addr_i;
unique case(CS)
IDLE:
begin
instr_req_o = req_i;
ack_o = 1'b0;
rdata_o = rdata_Q;
wait_gnt = 1'b0;
if(req_i)
begin
if(instr_gnt_i) //~> granted request
NS = PENDING;
else begin //~> got a request but no grant
NS = WAIT_GNT;
wait_gnt = 1'b1;
end
end //~> if(req_i == 0)
else
begin
NS = IDLE;
end
end // case: IDLE
case(CS)
WAIT_GNT:
begin
instr_addr_o = addr_Q;
instr_req_o = 1'b1;
IDLE :
begin
instr_req_o = req_i;
ack_o = 1'b0;
rdata_o = rdata_Q;
if(instr_gnt_i)
NS = PENDING;
else
begin
// if (drop_request_i)
// NS = IDLE;
// else
NS = WAIT_GNT;
end
end // case: WAIT_GNT
PENDING:
begin
if (instr_r_valid_i) begin
save_rdata = 1'b1;
ack_o = 1'b1;
if(req_i)
begin
if(instr_gnt_i) //~> granted request
NS = PENDING;
else begin //~> got a request but no grant
NS = WAIT_GNT;
wait_gnt = 1'b1;
end
end //~> if(req_i == 0)
else
begin
NS = IDLE;
end
end // case: IDLE
if (stall_if_i) begin
NS = WAIT_IF_STALL;
instr_req_o = 1'b0;
end else begin
NS = IDLE;
instr_req_o = req_i;
if (req_i) begin
if (instr_gnt_i) begin
NS = PENDING;
end else begin
NS = WAIT_GNT;
wait_gnt = 1'b1;
end
end
end
end else begin
NS = WAIT_RVALID;
instr_req_o = 1'b0;
ack_o = 1'b0;
end
end // case: PENDING
WAIT_GNT :
begin
WAIT_RVALID :
begin
NS = WAIT_RVALID;
ack_o = 1'b0;
instr_req_o = 1'b0;
instr_addr_o = addr_Q;
instr_req_o = 1'b1;
if (instr_r_valid_i) begin
ack_o = 1'b1;
save_rdata = 1'b1;
if(instr_gnt_i)
NS = PENDING;
else
begin
// if (drop_request_i)
// NS = IDLE;
// else
NS = WAIT_GNT;
end
if (stall_if_i) begin
instr_req_o = 1'b0;
NS = WAIT_IF_STALL;
end else begin
instr_req_o = req_i;
if (req_i) begin
if (instr_gnt_i)
NS = PENDING;
else begin
NS = WAIT_GNT;
wait_gnt = 1'b1;
end
end else
NS = IDLE;
end
end
end // case: WAIT_RVALID
end // case: WAIT_GNT
WAIT_IF_STALL:
begin
ack_o = 1'b1;
rdata_o = rdata_Q;
if (stall_if_i) begin
NS = WAIT_IF_STALL;
instr_req_o = 1'b0;
end
else
begin
instr_req_o = req_i;
PENDING :
begin
if (req_i) begin
if (instr_gnt_i)
NS = PENDING;
else begin
NS = WAIT_GNT;
wait_gnt = 1'b1;
end
end else
NS = IDLE;
end
end // case: WAIT_IF_STALL
if(instr_r_valid_i)
begin
save_rdata = 1'b1;
ABORT:
begin
NS = IDLE;
ack_o = 1'b1;
instr_req_o = 1'b1;
ack_o = 1'b1;
if(stall_if_i)
begin
instr_req_o = 1'b0;
NS = WAIT_IF_STALL;
end
else
begin
instr_req_o = req_i;
if(req_i)
begin
if( instr_gnt_i )
begin
NS = PENDING;
end
else
begin
NS = WAIT_GNT;
wait_gnt = 1'b1;
end
end
else
NS = IDLE;
end
end
else
begin
NS = WAIT_RVALID;
instr_req_o = 1'b0;
ack_o = 1'b0;
end
end // case: PENDING
WAIT_RVALID :
begin
if(instr_r_valid_i)
begin
ack_o = 1'b1;
save_rdata = 1'b1;
if(stall_if_i)
begin
instr_req_o = 1'b0;
NS = WAIT_IF_STALL;
end
else
begin
instr_req_o = req_i;
if(req_i)
if(instr_gnt_i)
NS = PENDING;
else begin
NS = WAIT_GNT;
wait_gnt = 1'b1;
end
else
NS = IDLE;
end
end
else
begin
NS = WAIT_RVALID;
ack_o = 1'b0;
instr_req_o = 1'b0;
end
end // case: WAIT_RVALID
WAIT_IF_STALL :
begin
ack_o = 1'b1;
rdata_o = rdata_Q;
if(stall_if_i)
begin
instr_req_o = 1'b0;
NS = WAIT_IF_STALL;
end
else
begin
instr_req_o = req_i;
if(req_i)
if(instr_gnt_i)
NS = PENDING;
else begin
NS = WAIT_GNT;
wait_gnt = 1'b1;
end
else
NS = IDLE;
end
end // case: WAIT_IF_STALL
ABORT:
begin
ack_o = 1'b1;
instr_req_o = 1'b1;
if(req_i)
begin
if(instr_gnt_i) //~> granted request
NS = PENDING;
else begin //~> got a request but no grant
NS = WAIT_GNT;
wait_gnt = 1'b1;
end
end //~> if(req_i == 0)
else
begin
NS = IDLE;
end
end // case: ABORT
default :
begin
NS = IDLE;
instr_req_o = 1'b0;
end
endcase
end
if (req_i) begin
if(instr_gnt_i) //~> granted request
NS = PENDING;
else begin //~> got a request but no grant
NS = WAIT_GNT;
wait_gnt = 1'b1;
end
end
end // case: ABORT
default:
begin
NS = IDLE;
instr_req_o = 1'b0;
end
endcase
end
endmodule