mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Replaced .or with or_rows structural code in MMU read circuitry for synthesis.
This commit is contained in:
		
							parent
							
								
									a4bd128978
								
							
						
					
					
						commit
						4be1e8617f
					
				@ -56,7 +56,8 @@ module tlbcam #(parameter TLB_ENTRIES = 8,
 | 
			
		||||
    .clk, .reset, .VPN, .SATP_ASID, .SV39Mode, .PTE_G(PTE_Gs), .PageTypeWriteVal, .TLBFlush,
 | 
			
		||||
    .WriteEnable(WriteEnables), .PageTypeRead, .Match(Matches));
 | 
			
		||||
  assign CAMHit = |Matches & ~TLBFlush;
 | 
			
		||||
  assign HitPageType = PageTypeRead.or; // applies OR to elements of the (TLB_ENTRIES x 2) array to get 2-bit result
 | 
			
		||||
  or_rows #(TLB_ENTRIES,2) PageTypeOr(PageTypeRead, HitPageType);
 | 
			
		||||
  //assign HitPageType = PageTypeRead.or; // applies OR to elements of the (TLB_ENTRIES x 2) array to get 2-bit result
 | 
			
		||||
 | 
			
		||||
endmodule
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -41,7 +41,9 @@ module tlbram #(parameter TLB_ENTRIES = 8) (
 | 
			
		||||
 | 
			
		||||
  // RAM implemented with array of flops and AND/OR read logic
 | 
			
		||||
  tlbramline #(`PPN_BITS+10) tlblineram[TLB_ENTRIES-1:0](clk, reset, Matches, WriteEnables, PTE[`PPN_BITS+9:0], RamRead, PTE_Gs);
 | 
			
		||||
  assign PageTableEntry = RamRead.or; // OR each column of RAM read to read PTE
 | 
			
		||||
  //assign PageTableEntry = RamRead.or; // OR each column of RAM read to read PTE
 | 
			
		||||
  or_rows #(TLB_ENTRIES, `PPN_BITS+10) PTEOr(RamRead, PageTableEntry);
 | 
			
		||||
 | 
			
		||||
  // Rename the bits read from the TLB RAM
 | 
			
		||||
  assign PTEAccessBits = PageTableEntry[7:0];
 | 
			
		||||
  assign PPN = PageTableEntry[`PPN_BITS+9:10];
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user