Bus-buffer testing start
This commit is contained in:
		
							parent
							
								
									dbd9403f72
								
							
						
					
					
						commit
						1f02deb8ed
					
				|  | @ -94,9 +94,9 @@ | |||
|     "class":"firrtl.transforms.CombinationalPath", | ||||
|     "sink":"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_WrPtr1_m", | ||||
|     "sources":[ | ||||
|       "~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_ldst_dual_r", | ||||
|       "~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_busreq_r", | ||||
|       "~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_busreq_m" | ||||
|       "~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_busreq_m", | ||||
|       "~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_ldst_dual_r" | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|  |  | |||
							
								
								
									
										10350
									
								
								el2_lsu_bus_buffer.fir
								
								
								
								
							
							
						
						
									
										10350
									
								
								el2_lsu_bus_buffer.fir
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										4621
									
								
								el2_lsu_bus_buffer.v
								
								
								
								
							
							
						
						
									
										4621
									
								
								el2_lsu_bus_buffer.v
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -114,6 +114,7 @@ class  el2_lsu_bus_buffer extends Module with RequireAsyncReset with el2_lib { | |||
|     val WrPtr1_r = Output(UInt()) | ||||
|     val WrPtr1_m = Output(UInt()) | ||||
|     val wdata_in = Output(UInt()) | ||||
|     val buf_state = Output(UInt()) | ||||
|   }) | ||||
|   def indexing(in : UInt, index : UInt) = Mux1H((0 until math.pow(2, index.getWidth).asInstanceOf[Int]).map(i=>(index===i.U)->in(i))) | ||||
|   def indexing(in : Vec[UInt], index : UInt) = Mux1H((0 until math.pow(2, index.getWidth).asInstanceOf[Int]).map(i=>(index===i.U)->in(i))) | ||||
|  | @ -417,12 +418,19 @@ class  el2_lsu_bus_buffer extends Module with RequireAsyncReset with el2_lib { | |||
|   val obuf_data = rvdffe(obuf_data_in, obuf_wr_en, io.lsu_busm_clk, io.scan_mode) | ||||
|   obuf_wr_timer := withClock(io.lsu_busm_clk){RegNext(obuf_wr_timer_in, 0.U)} | ||||
|   val WrPtr0_m = WireInit(UInt(DEPTH_LOG2.W), 0.U) | ||||
| 
 | ||||
|   val found_array1 = (0 until DEPTH).map(i=>((buf_state(i)===idle_C) & !((ibuf_valid & (ibuf_tag===i.U)) | | ||||
|     (io.lsu_busreq_r & (WrPtr0_r===i.U)) | (io.ldst_dual_r & (WrPtr1_r === i.U))))->i.U) | ||||
|     (io.lsu_busreq_r & (WrPtr0_r === i.U)) | | ||||
|     (io.ldst_dual_r & (WrPtr1_r === i.U)))) -> i.U) | ||||
| 
 | ||||
|   WrPtr0_m := MuxCase(0.U, found_array1) | ||||
|   val found_array2 = (0 until DEPTH).map(i=>((buf_state(i)===idle_C) & !((ibuf_valid & (ibuf_tag===i.U)) | | ||||
|     (io.lsu_busreq_m & (WrPtr0_m===i.U)) | (io.lsu_busreq_r & (WrPtr0_r === i.U)) | (io.ldst_dual_r & (WrPtr1_r===i.U))))->i.U) | ||||
|   val WrPtr1_m = MuxCase(0.U, found_array2) | ||||
|   io.buf_state := buf_state.reduce(Cat(_,_)) | ||||
| 
 | ||||
|   val WrPtr1_m = MuxCase(0.U, (0 until DEPTH).map(i=>((buf_state(i)===idle_C) & !((ibuf_valid & (ibuf_tag===i.U)) | | ||||
|     (io.lsu_busreq_m & (WrPtr0_m===i.U)) | | ||||
|     (io.lsu_busreq_r & (((WrPtr0_r === i.U)) | | ||||
|       (io.ldst_dual_r & (WrPtr1_r===i.U))))))           ->  i.U)) | ||||
| 
 | ||||
|   io.WrPtr1_m := WrPtr1_m | ||||
|   val buf_age = Wire(Vec(DEPTH, UInt(DEPTH.W))) | ||||
|   buf_age := buf_age.map(i=> 0.U) | ||||
|  |  | |||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue