mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	More Cleanup.
This commit is contained in:
		
							parent
							
								
									68e54977fe
								
							
						
					
					
						commit
						1663f571ed
					
				| @ -209,7 +209,10 @@ module ifu ( | ||||
|       logic [`PA_BITS-1:0] ICacheBusAdr; | ||||
|       logic                ICacheBusAck; | ||||
|       logic                SelUncachedAdr; | ||||
| 
 | ||||
|       logic [1:0]          CacheRW, RW; | ||||
|        | ||||
|       assign CacheRW = {ICacheFetchLine, 1'b0} & ~{ITLBMissF, ITLBMissF}; | ||||
|       assign RW = NonIROMMemRWM & ~{ITLBMissF, ITLBMissF} & ~{CacheableF, CacheableF}; | ||||
|       cache #(.LINELEN(`ICACHE_LINELENINBITS), | ||||
|               .NUMLINES(`ICACHE_WAYSIZEINBYTES*8/`ICACHE_LINELENINBITS), | ||||
|               .NUMWAYS(`ICACHE_NUMWAYS), .LOGBWPL(LOGBWPL), .WORDLEN(32), .MUXINTERVAL(16), .DCACHE(0)) | ||||
| @ -230,12 +233,12 @@ module ifu ( | ||||
|       AHBCachedp #(WORDSPERLINE, LINELEN, LOGBWPL, `ICACHE)  | ||||
|       cachedp(.HCLK(clk), .HRESETn(~reset), | ||||
|             .HRDATA, | ||||
|             .CacheRW({ICacheFetchLine, 1'b0} & ~{ITLBMissF, ITLBMissF}), .HSIZE(), .HBURST(IFUHBURST), .HTRANS(IFUHTRANS), | ||||
|             .CacheRW, .HSIZE(), .HBURST(IFUHBURST), .HTRANS(IFUHTRANS), | ||||
|             .Funct3(3'b010), .HADDR(IFUHADDR), .HREADY(IFUHREADY), .HWRITE(IFUHWRITE), .CacheBusAdr(ICacheBusAdr), | ||||
|             .WordCount(), .SelUncachedAdr, .SelBusWord(), | ||||
|               .CacheBusAck(ICacheBusAck),  | ||||
|             .FetchBuffer, .PAdr(PCPF), | ||||
|             .RW(NonIROMMemRWM & ~{ITLBMissF, ITLBMissF} & ~{CacheableF, CacheableF}), .CPUBusy, | ||||
|             .RW, .CPUBusy, | ||||
|             .BusStall, .BusCommitted()); | ||||
| 
 | ||||
|       mux2 #(32) UnCachedDataMux(.d0(FinalInstrRawF), .d1(FetchBuffer[32-1:0]), | ||||
| @ -243,11 +246,12 @@ module ifu ( | ||||
|     end else begin : passthrough | ||||
|       assign IFUHADDR = PCPF; | ||||
|       logic CaptureEn; | ||||
|        | ||||
|       logic [1:0] RW; | ||||
|       assign RW = NonIROMMemRWM & ~{ITLBMissF, ITLBMissF}; | ||||
|       flopen #(`XLEN) fb(.clk, .en(CaptureEn), .d(HRDATA), .q(AllInstrRawF[31:0])); | ||||
| 
 | ||||
| 
 | ||||
|       AHBBusfsm busfsm(.HCLK(clk), .HRESETn(~reset), .RW(NonIROMMemRWM & ~{ITLBMissF, ITLBMissF}), .CaptureEn, | ||||
|       AHBBusfsm busfsm(.HCLK(clk), .HRESETn(~reset), .RW, .CaptureEn, | ||||
|                        .BusCommitted(), .CPUBusy, .HREADY(IFUHREADY), .BusStall, .HTRANS(IFUHTRANS), .HWRITE(IFUHWRITE)); | ||||
|            | ||||
|       assign IFUHBURST = 3'b0; | ||||
|  | ||||
| @ -243,6 +243,10 @@ module lsu ( | ||||
|       logic                SelBusWord; | ||||
|       logic [`XLEN-1:0]    LSUHWDATA_noDELAY; //*** change name
 | ||||
|       logic [`XLEN/8-1:0]  ByteMaskMDelay; | ||||
|       logic [1:0]          CacheRW, UnCacheRW; | ||||
| 
 | ||||
|       assign CacheRW = {DCacheFetchLine, DCacheWriteLine} & ~{IgnoreRequest, IgnoreRequest}; | ||||
|       assign UnCacheRW = LSURWM & ~{IgnoreRequest, IgnoreRequest} & ~{CacheableM, CacheableM}; | ||||
| 
 | ||||
|       cache #(.LINELEN(`DCACHE_LINELENINBITS), .NUMLINES(`DCACHE_WAYSIZEINBYTES*8/LINELEN), | ||||
|               .NUMWAYS(`DCACHE_NUMWAYS), .LOGBWPL(LOGBWPL), .WORDLEN(`LLEN), .MUXINTERVAL(`XLEN), .DCACHE(1)) dcache( | ||||
| @ -260,9 +264,9 @@ module lsu ( | ||||
|         .HRDATA,  | ||||
|         .HSIZE(LSUHSIZE), .HBURST(LSUHBURST), .HTRANS(LSUHTRANS), .HWRITE(LSUHWRITE), .HREADY(LSUHREADY), | ||||
|         .WordCount, .SelBusWord, | ||||
|         .Funct3(LSUFunct3M), .HADDR(LSUHADDR), .CacheBusAdr(DCacheBusAdr), .CacheRW({DCacheFetchLine, DCacheWriteLine} & ~{IgnoreRequest, IgnoreRequest}), | ||||
|         .Funct3(LSUFunct3M), .HADDR(LSUHADDR), .CacheBusAdr(DCacheBusAdr), .CacheRW, | ||||
|         .CacheBusAck(DCacheBusAck), .FetchBuffer, .PAdr(LSUPAdrM), | ||||
|         .SelUncachedAdr, .RW(LSURWM & ~{IgnoreRequest, IgnoreRequest} & ~{CacheableM, CacheableM}), .CPUBusy, | ||||
|         .SelUncachedAdr, .RW(UnCacheRW), .CPUBusy, | ||||
|         .BusStall, .BusCommitted(BusCommittedM)); | ||||
| 
 | ||||
|       mux2 #(`LLEN) UnCachedDataMux(.d0(LittleEndianReadDataWordM), .d1({{`LLEN-`XLEN{1'b0}}, FetchBuffer[`XLEN-1:0] }), | ||||
| @ -282,6 +286,9 @@ module lsu ( | ||||
| 
 | ||||
|     end else begin : passthrough // just needs a register to hold the value from the bus
 | ||||
|       logic CaptureEn; | ||||
|       logic [1:0] RW; | ||||
|       assign RW = LSURWM & ~{IgnoreRequest, IgnoreRequest}; | ||||
|        | ||||
|       assign LSUHADDR = LSUPAdrM; | ||||
|       assign LSUHSIZE = LSUFunct3M; | ||||
|   | ||||
| @ -290,7 +297,7 @@ module lsu ( | ||||
|       flop #(`XLEN) wdreg(clk, LSUWriteDataM, LSUHWDATA); // delay HWDATA by 1 cycle per spec; *** assumes AHBW = XLEN
 | ||||
|       flop #(`XLEN/8) HWSTRBReg(clk, ByteMaskM, LSUHWSTRB); | ||||
| 
 | ||||
|       AHBBusfsm busfsm(.HCLK(clk), .HRESETn(~reset), .RW(LSURWM & ~{IgnoreRequest, IgnoreRequest}), | ||||
|       AHBBusfsm busfsm(.HCLK(clk), .HRESETn(~reset), .RW, | ||||
|                        .BusCommitted(BusCommittedM), .CPUBusy, .BusStall, .CaptureEn, .HREADY(LSUHREADY), .HTRANS(LSUHTRANS), | ||||
|                        .HWRITE(LSUHWRITE)); | ||||
|            | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user