Install tlb into ifu

This commit is contained in:
Thomas Fleming 2021-03-04 03:11:34 -05:00
parent ab6ae6d3f1
commit 1a2db17ee5
4 changed files with 23 additions and 3 deletions

View File

@ -52,6 +52,12 @@ module ifu (
output logic IllegalIEUInstrFaultD,
output logic InstrMisalignedFaultM,
output logic [`XLEN-1:0] InstrMisalignedAdrM,
// TLB Management
//input logic [`XLEN-1:0] PageTableEntryF,
//input logic ITLBWriteF, ITLBFlushF,
// *** satp value will come from CSRs
// input logic [`XLEN-1:0] SATP,
output logic ITLBMissF, ITLBHitF,
// bogus
input logic [15:0] rd2
);
@ -65,8 +71,18 @@ module ifu (
logic [31:0] InstrF, InstrRawD, InstrE, InstrW;
logic [31:0] nop = 32'h00000013; // instruction for NOP
// *** temporary hack until we can figure out how to get actual satp value
// from priv unit -- Thomas F
logic [`XLEN-1:0] SATP = '0;
// *** temporary hack until walker is hooked up -- Thomas F
logic [`XLEN-1:0] PageTableEntryF = '0;
logic ITLBFlushF = '0;
logic ITLBWriteF = '0;
tlb #(3) itlb(clk, reset, SATP, PCF, PageTableEntryF, ITLBWriteF, ITLBFlushF,
InstrPAdrF, ITLBMissF, ITLBHitF);
// *** put memory interface on here, InstrF becomes output
assign InstrPAdrF = PCF; // *** no MMU
//assign InstrPAdrF = PCF; // *** no MMU
//assign InstrReadF = ~StallD; // *** & ICacheMissF; add later
assign InstrReadF = 1; // *** & ICacheMissF; add later

View File

@ -49,10 +49,11 @@
/* *** TODO:
* - add LRU algorithm (select the write index based on which entry was used
* least recently)
* - refactor modules into multiple files
*/
// The TLB will have 2**ENTRY_BITS total entries
module tlb_toy #(parameter ENTRY_BITS = 3) (
module tlb #(parameter ENTRY_BITS = 3) (
input clk, reset,
// Current value of satp CSR (from privileged unit)
@ -223,7 +224,7 @@ endmodule
module tlb_rand #(parameter ENTRY_BITS = 3) (
input clk, reset,
output [ENTRY_BITS:0] WriteIndex
output [ENTRY_BITS-1:0] WriteIndex
);
logic [31:0] data;

View File

@ -87,6 +87,9 @@ module wallypipelinedhart (
logic FloatRegWriteW;
logic SquashSCW;
// memory management unit signals
logic ITLBMissF, ITLBHitF;
// bus interface to dmem
logic MemReadM, MemWriteM;
logic [2:0] Funct3M;