URL
https://opencores.org/ocsvn/m32632/m32632/trunk
Subversion Repositories m32632
Compare Revisions
- This comparison shows the changes necessary to convert path
/m32632/trunk
- from Rev 12 to Rev 13
- ↔ Reverse comparison
Rev 12 → Rev 13
/rtl/I_PFAD.v
4,8 → 4,9
// http://opencores.org/project,m32632 |
// |
// Filename: I_PFAD.v |
// Version: 1.0 |
// Date: 30 May 2015 |
// Version: 1.1 bug fix |
// History: 1.0 first release of 30 Mai 2015 |
// Date: 7 November 2015 |
// |
// Copyright (C) 2015 Udo Moeller |
// |
617,11 → 618,16
reg [11:0] spointer,dpointer; |
reg [9:0] todo; |
reg [9:4] todo_reg; |
wire [3:0] abzug; |
reg dis_opt; |
wire [31:0] diff_poi; |
wire mehr,weiter,op_str,no_opt; |
|
assign op_str = (OPCODE[7:3] == 5'b0101_0); |
|
assign diff_poi = SRC2 - SRC1; // Special Case |
|
always @(posedge BCLK) if (op_str && OPCODE[2]) dis_opt <= (diff_poi[31:3] == 29'd0); |
|
// This logic is for detection if an accelerated MOVS/MOVM inside a page is possible - Backward is not possible |
always @(posedge BCLK) |
if (op_str) |
631,11 → 637,10
end |
|
assign no_opt = OPCODE[1] | ((spointer[11:3] == 9'h1FF) & (spointer[2:0] != 3'b000)) |
| kill_opt | ((dpointer[11:3] == 9'h1FF) & (dpointer[2:0] != 3'b000)); |
| kill_opt | ((dpointer[11:3] == 9'h1FF) & (dpointer[2:0] != 3'b000)) |
| dis_opt; |
|
assign abzug = OPCODE[0] ? todo_reg[7:4] : 4'h0 ; |
|
assign pfad_5 = SRC1 - {28'h0,abzug}; |
assign pfad_5 = SRC1 - {28'h0,todo_reg[7:4]}; |
|
assign mehr = (pfad_5[31:4] != 28'h0); |
|
665,7 → 670,7
default : todo = 10'hxxx; |
endcase |
|
always @(posedge BCLK) if (op_str) todo_reg <= todo[9:4]; // store for next phase 51 |
always @(posedge BCLK) if (op_str) todo_reg <= {todo[9:8],(OPCODE[2] ? 4'd0 : todo[7:4])}; // store for next phase 51 |
|
assign weiter = mehr | (pfad_5[3:0] != 4'h0); |
|