forked from Github_Repos/cvw
		
	merge of reverted main into up to date main
This commit is contained in:
		
						commit
						2155cb2e91
					
				@ -59,8 +59,8 @@
 | 
			
		||||
// Peripheral memory space extends from BASE to BASE+RANGE
 | 
			
		||||
// Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits
 | 
			
		||||
 | 
			
		||||
`define BOOTTIMBASE   32'h00000000 //only needs to go from 0x1000 to 0x2FFF, extending to a power of 2  // ***dh 3 June 2021 change this to ensure segfault on null pointer access.
 | 
			
		||||
`define BOOTTIMRANGE  32'h00003FFF
 | 
			
		||||
`define BOOTTIMBASE   32'h00001000 // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder
 | 
			
		||||
`define BOOTTIMRANGE  32'h00000FFF
 | 
			
		||||
`define CLINTBASE     32'h02000000
 | 
			
		||||
`define CLINTRANGE    32'h0000FFFF
 | 
			
		||||
`define PLICBASE      32'h0C000000
 | 
			
		||||
 | 
			
		||||
@ -59,8 +59,8 @@
 | 
			
		||||
// Peripheral memory space extends from BASE to BASE+RANGE
 | 
			
		||||
// Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits
 | 
			
		||||
 | 
			
		||||
`define BOOTTIMBASE   32'h00000000 //only needs to go from 0x1000 to 0x2FFF, extending to a power of 2
 | 
			
		||||
`define BOOTTIMRANGE  32'h00003FFF
 | 
			
		||||
`define BOOTTIMBASE   32'h00001000 // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder
 | 
			
		||||
`define BOOTTIMRANGE  32'h00000FFF
 | 
			
		||||
`define CLINTBASE     32'h02000000
 | 
			
		||||
`define CLINTRANGE    32'h0000FFFF
 | 
			
		||||
`define PLICBASE      32'h0C000000
 | 
			
		||||
 | 
			
		||||
@ -62,8 +62,8 @@
 | 
			
		||||
// Peripheral memory space extends from BASE to BASE+RANGE
 | 
			
		||||
// Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits
 | 
			
		||||
 | 
			
		||||
`define BOOTTIMBASE   32'h00000000
 | 
			
		||||
`define BOOTTIMRANGE  32'h00003FFF
 | 
			
		||||
`define BOOTTIMBASE   32'h00001000 // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder
 | 
			
		||||
`define BOOTTIMRANGE  32'h00000FFF
 | 
			
		||||
`define TIMBASE    32'h00000000
 | 
			
		||||
`define TIMRANGE   32'hFFFFFFFF
 | 
			
		||||
`define CLINTBASE  32'h02000000
 | 
			
		||||
 | 
			
		||||
@ -62,8 +62,8 @@
 | 
			
		||||
// Peripheral memory space extends from BASE to BASE+RANGE
 | 
			
		||||
// Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits
 | 
			
		||||
 | 
			
		||||
`define BOOTTIMBASE   32'h00000000
 | 
			
		||||
`define BOOTTIMRANGE  32'h00003FFF
 | 
			
		||||
`define BOOTTIMBASE   32'h00001000 // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder
 | 
			
		||||
`define BOOTTIMRANGE  32'h00000FFF
 | 
			
		||||
`define TIMBASE    32'h80000000
 | 
			
		||||
`define TIMRANGE   32'h000FFFFF
 | 
			
		||||
`define CLINTBASE  32'h02000000
 | 
			
		||||
 | 
			
		||||
@ -58,8 +58,8 @@
 | 
			
		||||
// Peripheral memory space extends from BASE to BASE+RANGE
 | 
			
		||||
// Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits
 | 
			
		||||
 | 
			
		||||
`define BOOTTIMBASE   32'h00000000
 | 
			
		||||
`define BOOTTIMRANGE  32'h00003FFF
 | 
			
		||||
`define BOOTTIMBASE   32'h00001000 // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder
 | 
			
		||||
`define BOOTTIMRANGE  32'h00000FFF
 | 
			
		||||
`define TIMBASE       32'h80000000
 | 
			
		||||
`define TIMRANGE      32'h07FFFFFF
 | 
			
		||||
`define CLINTBASE  32'h02000000
 | 
			
		||||
 | 
			
		||||
@ -63,8 +63,8 @@
 | 
			
		||||
// Peripheral memory space extends from BASE to BASE+RANGE
 | 
			
		||||
// Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits
 | 
			
		||||
 | 
			
		||||
`define BOOTTIMBASE   32'h00800000
 | 
			
		||||
`define BOOTTIMRANGE  32'h00003FFF
 | 
			
		||||
`define BOOTTIMBASE   32'h00001000 // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder
 | 
			
		||||
`define BOOTTIMRANGE  32'h00000FFF
 | 
			
		||||
`define TIMBASE       32'h00000000
 | 
			
		||||
`define TIMRANGE      32'h07FFFFFF
 | 
			
		||||
`define CLINTBASE  32'h02000000
 | 
			
		||||
 | 
			
		||||
@ -62,8 +62,8 @@
 | 
			
		||||
// Peripheral memory space extends from BASE to BASE+RANGE
 | 
			
		||||
// Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits
 | 
			
		||||
 | 
			
		||||
`define BOOTTIMBASE   32'h00000000
 | 
			
		||||
`define BOOTTIMRANGE  32'h00003FFF
 | 
			
		||||
`define BOOTTIMBASE   32'h00001000 // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder
 | 
			
		||||
`define BOOTTIMRANGE  32'h00000FFF
 | 
			
		||||
`define TIMBASE       32'h80000000
 | 
			
		||||
`define TIMRANGE      32'h07FFFFFF
 | 
			
		||||
`define CLINTBASE  32'h02000000
 | 
			
		||||
 | 
			
		||||
@ -62,8 +62,8 @@
 | 
			
		||||
// Peripheral memory space extends from BASE to BASE+RANGE
 | 
			
		||||
// Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits
 | 
			
		||||
 | 
			
		||||
`define BOOTTIMBASE   32'h00000000
 | 
			
		||||
`define BOOTTIMRANGE  32'h00003FFF
 | 
			
		||||
`define BOOTTIMBASE   32'h00001000 // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder
 | 
			
		||||
`define BOOTTIMRANGE  32'h00000FFF
 | 
			
		||||
`define TIMBASE    32'h80000000
 | 
			
		||||
// `define TIMRANGE   32'h0007FFFF
 | 
			
		||||
`define TIMRANGE   32'h07FFFFFF
 | 
			
		||||
 | 
			
		||||
@ -61,8 +61,8 @@
 | 
			
		||||
// Peripheral memory space extends from BASE to BASE+RANGE
 | 
			
		||||
// Range should be a thermometer code with 0's in the upper bits and 1s in the lower bits
 | 
			
		||||
 | 
			
		||||
`define BOOTTIMBASE   32'h00000000
 | 
			
		||||
`define BOOTTIMRANGE  32'h00003FFF
 | 
			
		||||
`define BOOTTIMBASE   32'h00001000 // spec had been 0x1000 to 0x2FFF, but dh truncated to 0x1000 to 0x1FFF because upper half seems to be all zeros and this is easier for decoder
 | 
			
		||||
`define BOOTTIMRANGE  32'h00000FFF
 | 
			
		||||
`define TIMBASE    32'h80000000
 | 
			
		||||
`define TIMRANGE   32'h0007FFFF
 | 
			
		||||
`define CLINTBASE  32'h02000000
 | 
			
		||||
 | 
			
		||||
@ -94,7 +94,7 @@ module tlb #(parameter ENTRY_BITS = 3,
 | 
			
		||||
 | 
			
		||||
  // Index (currently random) to write the next TLB entry
 | 
			
		||||
  logic [ENTRY_BITS-1:0] WriteIndex;
 | 
			
		||||
  logic [2**ENTRY_BITS-1:0] WriteLines; // used as the one-hot encoding of WriteIndex
 | 
			
		||||
  logic [(2**ENTRY_BITS)-1:0] WriteLines; // used as the one-hot encoding of WriteIndex
 | 
			
		||||
 | 
			
		||||
  // Sections of the virtual and physical addresses
 | 
			
		||||
  logic [`VPN_BITS-1:0] VirtualPageNumber;
 | 
			
		||||
 | 
			
		||||
@ -167,7 +167,7 @@ module testbench();
 | 
			
		||||
 | 
			
		||||
  // initial loading of memories
 | 
			
		||||
  initial begin
 | 
			
		||||
    $readmemh({`LINUX_TEST_VECTORS,"bootmem.txt"}, dut.uncore.bootdtim.RAM, 'h1000 >> 3);
 | 
			
		||||
    $readmemh({`LINUX_TEST_VECTORS,"bootmem.txt"}, dut.uncore.bootdtim.RAM, 'h1000 >> 3); // load at address 0x1000, start of boot TIM
 | 
			
		||||
    $readmemh({`LINUX_TEST_VECTORS,"ram.txt"}, dut.uncore.dtim.RAM);
 | 
			
		||||
    $readmemb(`TWO_BIT_PRELOAD, dut.hart.ifu.bpred.bpred.Predictor.DirPredictor.PHT.memory);
 | 
			
		||||
    $readmemb(`BTB_PRELOAD, dut.hart.ifu.bpred.bpred.TargetPredictor.memory.memory);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user