IMC DONE
This commit is contained in:
		
							parent
							
								
									eb0a5636fc
								
							
						
					
					
						commit
						b328da3cec
					
				| 
						 | 
					@ -114,13 +114,6 @@
 | 
				
			||||||
      "~el2_ifu_mem_ctl|el2_ifu_mem_ctl>io_ic_rd_hit"
 | 
					      "~el2_ifu_mem_ctl|el2_ifu_mem_ctl>io_ic_rd_hit"
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "class":"firrtl.transforms.CombinationalPath",
 | 
					 | 
				
			||||||
    "sink":"~el2_ifu_mem_ctl|el2_ifu_mem_ctl>io_test",
 | 
					 | 
				
			||||||
    "sources":[
 | 
					 | 
				
			||||||
      "~el2_ifu_mem_ctl|el2_ifu_mem_ctl>io_dma_mem_wdata"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    "class":"firrtl.transforms.CombinationalPath",
 | 
					    "class":"firrtl.transforms.CombinationalPath",
 | 
				
			||||||
    "sink":"~el2_ifu_mem_ctl|el2_ifu_mem_ctl>io_ic_debug_rd_en",
 | 
					    "sink":"~el2_ifu_mem_ctl|el2_ifu_mem_ctl>io_ic_debug_rd_en",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										18903
									
								
								el2_ifu_mem_ctl.fir
								
								
								
								
							
							
						
						
									
										18903
									
								
								el2_ifu_mem_ctl.fir
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										7332
									
								
								el2_ifu_mem_ctl.v
								
								
								
								
							
							
						
						
									
										7332
									
								
								el2_ifu_mem_ctl.v
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
					@ -126,7 +126,7 @@ class mem_ctl_bundle extends Bundle with el2_lib{
 | 
				
			||||||
  val iccm_buf_correct_ecc = Output(Bool())
 | 
					  val iccm_buf_correct_ecc = Output(Bool())
 | 
				
			||||||
  val iccm_correction_state = Output(Bool())
 | 
					  val iccm_correction_state = Output(Bool())
 | 
				
			||||||
  val scan_mode = Input(Bool())
 | 
					  val scan_mode = Input(Bool())
 | 
				
			||||||
  val test = Output(UInt())
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
class el2_ifu_mem_ctl extends Module with el2_lib {
 | 
					class el2_ifu_mem_ctl extends Module with el2_lib {
 | 
				
			||||||
  val io = IO(new mem_ctl_bundle)
 | 
					  val io = IO(new mem_ctl_bundle)
 | 
				
			||||||
| 
						 | 
					@ -633,7 +633,7 @@ class el2_ifu_mem_ctl extends Module with el2_lib {
 | 
				
			||||||
  io.iccm_rden := (ifc_dma_access_q_ok & io.dma_iccm_req & !io.dma_mem_write) | (io.ifc_iccm_access_bf & io.ifc_fetch_req_bf)
 | 
					  io.iccm_rden := (ifc_dma_access_q_ok & io.dma_iccm_req & !io.dma_mem_write) | (io.ifc_iccm_access_bf & io.ifc_fetch_req_bf)
 | 
				
			||||||
  val iccm_dma_rden = ifc_dma_access_q_ok & io.dma_iccm_req & !io.dma_mem_write
 | 
					  val iccm_dma_rden = ifc_dma_access_q_ok & io.dma_iccm_req & !io.dma_mem_write
 | 
				
			||||||
  io.iccm_wr_size := Fill(3, io.dma_iccm_req) & io.dma_mem_sz
 | 
					  io.iccm_wr_size := Fill(3, io.dma_iccm_req) & io.dma_mem_sz
 | 
				
			||||||
  io.test := rvecc_encode(io.dma_mem_wdata(31,0))
 | 
					
 | 
				
			||||||
  val dma_mem_ecc = Cat(rvecc_encode(io.dma_mem_wdata(63,32)), rvecc_encode(io.dma_mem_wdata(31,0)))
 | 
					  val dma_mem_ecc = Cat(rvecc_encode(io.dma_mem_wdata(63,32)), rvecc_encode(io.dma_mem_wdata(31,0)))
 | 
				
			||||||
  val iccm_ecc_corr_data_ff = WireInit(UInt(39.W), 0.U)
 | 
					  val iccm_ecc_corr_data_ff = WireInit(UInt(39.W), 0.U)
 | 
				
			||||||
  io.iccm_wr_data := Mux(iccm_correct_ecc & !(ifc_dma_access_q_ok & io.dma_iccm_req), Fill(2,iccm_ecc_corr_data_ff),
 | 
					  io.iccm_wr_data := Mux(iccm_correct_ecc & !(ifc_dma_access_q_ok & io.dma_iccm_req), Fill(2,iccm_ecc_corr_data_ff),
 | 
				
			||||||
| 
						 | 
					@ -713,8 +713,6 @@ class el2_ifu_mem_ctl extends Module with el2_lib {
 | 
				
			||||||
    val way_status_new = WireInit(UInt(ICACHE_STATUS_BITS.W), 0.U)
 | 
					    val way_status_new = WireInit(UInt(ICACHE_STATUS_BITS.W), 0.U)
 | 
				
			||||||
    val way_status_new_w_debug = Mux(io.ic_debug_wr_en & io.ic_debug_tag_array,
 | 
					    val way_status_new_w_debug = Mux(io.ic_debug_wr_en & io.ic_debug_tag_array,
 | 
				
			||||||
      if (ICACHE_STATUS_BITS == 1) io.ic_debug_wr_data(4) else io.ic_debug_wr_data(6, 4), way_status_new)
 | 
					      if (ICACHE_STATUS_BITS == 1) io.ic_debug_wr_data(4) else io.ic_debug_wr_data(6, 4), way_status_new)
 | 
				
			||||||
 | 
					 | 
				
			||||||
 // io.test := way_status_new_w_debug
 | 
					 | 
				
			||||||
    val way_status_new_ff = withClock(io.free_clk) {
 | 
					    val way_status_new_ff = withClock(io.free_clk) {
 | 
				
			||||||
      RegNext(way_status_new_w_debug, 0.U)
 | 
					      RegNext(way_status_new_w_debug, 0.U)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue