URL
https://opencores.org/ocsvn/rtf65002/rtf65002/trunk
[/] [rtf65002/] [trunk/] [rtl/] [verilog/] [load_mac.v] - Diff between revs 32 and 35
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 32 |
Rev 35 |
Line 25... |
Line 25... |
if (unCachedData)
|
if (unCachedData)
|
`endif
|
`endif
|
begin
|
begin
|
if (isRMW)
|
if (isRMW)
|
lock_o <= 1'b1;
|
lock_o <= 1'b1;
|
cyc_o <= 1'b1;
|
wb_read({radr,2'b00});
|
stb_o <= 1'b1;
|
|
sel_o <= 4'hF;
|
|
adr_o <= {radr,2'b00};
|
|
state <= LOAD_MAC2;
|
state <= LOAD_MAC2;
|
end
|
end
|
`ifdef SUPPORT_DCACHE
|
`ifdef SUPPORT_DCACHE
|
else if (dhit)
|
else if (dhit)
|
load_tsk(rdat,rdat8);
|
load_tsk(rdat,rdat8);
|
Line 41... |
Line 38... |
state <= DCACHE1;
|
state <= DCACHE1;
|
end
|
end
|
`endif
|
`endif
|
LOAD_MAC2:
|
LOAD_MAC2:
|
if (ack_i) begin
|
if (ack_i) begin
|
cyc_o <= 1'b0;
|
wb_nack();
|
stb_o <= 1'b0;
|
|
sel_o <= 4'h0;
|
|
adr_o <= 34'h0;
|
|
load_tsk(dat_i,dati);
|
load_tsk(dat_i,dati);
|
end
|
end
|
`ifdef SUPPORT_BERR
|
`ifdef SUPPORT_BERR
|
else if (err_i) begin
|
else if (err_i) begin
|
lock_o <= 1'b0;
|
lock_o <= 1'b0;
|
cyc_o <= 1'b0;
|
wb_nack();
|
stb_o <= 1'b0;
|
if (em | isOrb)
|
we_o <= 1'b0;
|
derr_address <= adr_o[31:0];
|
sel_o <= 4'h0;
|
else
|
dat_o <= 32'h0;
|
derr_address <= adr_o[33:2];
|
|
intno <= 9'd508;
|
state <= BUS_ERROR;
|
state <= BUS_ERROR;
|
end
|
end
|
`endif
|
`endif
|
LOAD_MAC3:
|
LOAD_MAC3:
|
begin
|
begin
|
regfile[Rt] <= res;
|
regfile[Rt] <= res[31:0];
|
case(Rt)
|
case(Rt)
|
4'h1: acc <= res;
|
4'h1: acc <= res[31:0];
|
4'h2: x <= res;
|
4'h2: x <= res[31:0];
|
4'h3: y <= res;
|
4'h3: y <= res[31:0];
|
default: ;
|
default: ;
|
endcase
|
endcase
|
// Rt will be zero by the time the IFETCH stage is entered because of
|
// Rt will be zero by the time the IFETCH stage is entered because of
|
// the decrement below.
|
// the decrement below.
|
if (Rt==4'd1)
|
if (Rt==4'd1)
|
© copyright 1999-2025
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.