pcic_t.tdf

来自「PCI logicore,在某网站上下载的ip核文件」· TDF 代码 · 共 1,849 行 · 第 1/5 页

TDF
1,849
字号
	TS_DXFR, 					
	TS_LRD_WAIT, 	
	TS_DISC, 		
	TS_TURN_AR).clrn		= rstn;

	(TS_IDLE_not, 		
	TS_ADR_VLD, 	
	TS_ADR_CLMD, 	
	TS_DXFR, 					
	TS_LRD_WAIT, 	
	TS_DISC, 		
	TS_TURN_AR).d		=  (not 	TS_IDLE_d, 		
							TS_ADR_VLD_d, 	
							TS_ADR_CLMD_d, 	
							TS_DXFR_d, 											
							TS_LRD_WAIT_d, 	
							TS_DISC_d, 		
							TS_TURN_AR_d);

	TS_IDLE = not TS_IDLE_not;

	TS_IDLE_d_lc = LCELL((TS_ADR_VLD and  serr_sig_set)
				OR (TS_TURN_AR));
	TS_IDLE_d = (TS_IDLE and not targ_trig)
				OR TS_IDLE_d_lc;

	TS_ADR_VLD_d = (TS_IDLE and targ_trig);



	TS_ADR_CLMD_d = (TS_ADR_VLD and not serr_sig_set)
					OR (TS_DXFR_d_lc2
								 and not ((not lt_rdyn) or cfg_cyc));

------- TS_DXFR_d Optimization ----------------------------------------------------------------


--	TS_DXFR_d = (TS_ADR_CLMD and not ((retry or not lt_discn or not lt_abortn) and not cfg_cyc) 
--						and ((not lt_rdyn) or cfg_cyc))
--				OR (TS_DXFR and not (not lt_abortn or not lt_discn) 
--						  and not (not frame and trdy_OR))
--				OR (TS_LRD_WAIT and not (not lt_abortn OR not lt_discn) 
--							 and LR_PXFR);
	TS_DXFR_d_lc1 = LCELL((retry or not lt_discn or not lt_abortn) and not cfg_cyc);
	TS_DXFR_d_lc2 = LCELL(TS_ADR_CLMD and not (TS_DXFR_d_lc1 or mstr_actv) );
	TS_DXFR_d_lc3 = LCELL(TS_LRD_WAIT and not (not lt_abortn OR not lt_discn) 
							 and LR_PXFR);
	TS_DXFR_d_lc4 = LCELL(
					(TS_DXFR_d_lc2
							and ((not lt_rdyn) or cfg_cyc))
					OR TS_DXFR_d_lc3 );
	TS_DXFR_d_lc5 = LCELL(
								TS_DXFR and not (not lt_abortn or not lt_discn)
							);
	TS_DXFR_d = TS_DXFR_d_lc4
					OR  (TS_DXFR_d_lc5 and not (not frame and trdy_OR));

------ TS_LRD_WAIT_d Optimization -------------------------------------------------------------



	TS_LRD_WAIT_d = (TS_LRD_WAIT and not (not lt_abortn OR not lt_discn) 
						    and not LR_PXFR);

----- TS_DISC_d Optimization ------------------------------------------------------------------


--	TS_DISC_d = (TS_ADR_CLMD and ((retry or not lt_discn or not lt_abortn) and not cfg_cyc))
--				OR (TS_DXFR and (not lt_abortn or not lt_discn))	
--				OR (TS_LRD_WAIT and (not lt_abortn OR not lt_discn))
--				OR (TS_DISC and not (not frame));



	TS_DISC_d = LCELL(
					(TS_ADR_CLMD and (((retry or not lt_discn or not lt_abortn) and not cfg_cyc) or mstr_actv))
						OR (TS_DXFR and (not lt_abortn or not lt_discn))	
						OR (TS_LRD_WAIT and (not lt_abortn OR not lt_discn))
				  )
				OR (TS_DISC and not (not frame));

------ TS_TURN_AR_d Optimization ---------------------------------------------------------------


--	TS_TURN_AR_d = (TS_DXFR and not (not lt_abortn or not lt_discn) 
--					    and (not frame and trdy_OR))
--					OR (TS_DISC and (not frame));
	TS_TURN_AR_d = (LCELL(
						(TS_DXFR and not (not lt_abortn or not lt_discn))
						)	 
					    and (not frame and trdy_OR)
					)
					OR (TS_DISC and (not frame));


 
	


-- Target Write State Machine


	(LW_IDLE_not,	
	LW_LXFR,
	LW_WAIT,
	LW_DONE).clk		= clk;

	(LW_IDLE_not,	
	LW_LXFR,
	LW_WAIT,
	LW_DONE).clrn		= rstn;

	(LW_IDLE_not,	
	LW_LXFR,
	LW_WAIT,
	LW_DONE).d		= (not 	LW_IDLE_d,	
							LW_LXFR_d,
							LW_WAIT_d,
							LW_DONE_d);			

	LW_IDLE = not LW_IDLE_not;


	LW_IDLE_d = (LW_IDLE and not (TS_ADR_CLMD and not lt_rdyn and not cfg_cyc and wr_rdn and not serr_sig_set and lt_abortn and not retry))
				OR (LW_DONE);

-------- LW_LXFR_d Optimization ---------------------------------------------------------


--	LW_LXFR_d = (LW_IDLE and (TS_ADR_CLMD and not lt_rdyn and not cfg_cyc and wr_rdn and not serr_sig_set and lt_abortn and not retry))
--				OR (LW_LXFR and not (not lt_rdyn and not TS_DXFR and TS_DISC and irdy) and not (TS_TURN_AR) and not (lt_rdyn and irdy))
--				OR (LW_WAIT and not (data_timeout_error) and not (lt_rdyn) and not (not lt_rdyn AND not TS_DXFR));
	LW_LXFR_d = LCELL(
					(LW_IDLE and (TS_ADR_CLMD and not lt_rdyn and not cfg_cyc and wr_rdn and not serr_sig_set and lt_abortn and not retry))
					OR (LW_WAIT and not (data_timeout_error) and not (lt_rdyn) and not (not lt_rdyn AND not TS_DXFR))
				  
--				OR (LW_LXFR and not (TS_TURN_AR) and not (not lt_rdyn and not TS_DXFR and TS_DISC and irdy)  and not (lt_rdyn and irdy));
--				OR (LW_LXFR and not TS_TURN_AR and (lt_rdyn OR NOT TS_DISC OR NOT  irdy)  and (NOT lt_rdyn OR NOT irdy));

--				OR (LW_LXFR and not TS_TURN_AR and lt_rdyn   and NOT lt_rdyn );
--				OR (LW_LXFR and not TS_TURN_AR and NOT TS_DISC  and NOT lt_rdyn );
--				OR (LW_LXFR and not TS_TURN_AR and NOT  irdy  and NOT lt_rdyn );

--				OR (LW_LXFR and not TS_TURN_AR and lt_rdyn   and  NOT irdy);
--				OR (LW_LXFR and not TS_TURN_AR and NOT TS_DISC  and  NOT irdy);
--				OR (LW_LXFR and not TS_TURN_AR and NOT  irdy  and  NOT irdy);


--				OR (LW_LXFR and not TS_TURN_AR and NOT TS_DISC  and NOT lt_rdyn );
--				OR (LW_LXFR and not TS_TURN_AR and NOT TS_DISC  and  NOT irdy);
--				OR (LW_LXFR and not TS_TURN_AR and NOT  irdy);

					OR (LW_LXFR and not TS_TURN_AR and NOT TS_DISC  and NOT lt_rdyn )

				   )
				OR (LW_LXFR and not TS_TURN_AR and NOT  irdy );

--------- LW_WAIT_d Optimization ---------------------------------------------------------


--	LW_WAIT_d = (LW_LXFR and not (not lt_rdyn and not TS_DXFR and TS_DISC and irdy) and not (TS_TURN_AR) and (lt_rdyn and irdy and not TS_DISC))
--				OR (LW_WAIT and not (data_timeout_error) and (lt_rdyn));

	LW_WAIT_d = LCELL(
					(LW_WAIT and not (data_timeout_error) and (lt_rdyn))
				   )	
--					OR (LW_LXFR and not (TS_TURN_AR) and  (lt_rdyn or not TS_DISC or not irdy)  and (lt_rdyn and irdy and not TS_DISC)) ;

--					OR (LW_LXFR and not (TS_TURN_AR) and  (lt_rdyn  and lt_rdyn and irdy)) ;
--					OR (LW_LXFR and not (TS_TURN_AR) and  (not TS_DISC and lt_rdyn and irdy)) ;
--					OR (LW_LXFR and not (TS_TURN_AR) and  (not irdy  and lt_rdyn and irdy)) ;

--					OR (LW_LXFR and not (TS_TURN_AR) and  (lt_rdyn  and irdy)) ;
--					OR (LW_LXFR and not (TS_TURN_AR) and  (not TS_DISC and lt_rdyn and irdy)) ;

					OR LCELL(
							 (LW_LXFR and not TS_TURN_AR and lt_rdyn and not TS_DISC)
							) and irdy ;

---------- LW_DONE_d Optimization -------------------------------------------------------


--	LW_DONE_d = (LW_LXFR and  ((not lt_rdyn and not TS_DXFR and TS_DISC and irdy) or TS_TURN_AR))
--				OR (LW_WAIT and (data_timeout_error or (not lt_rdyn AND not TS_DXFR)) and not (lt_rdyn));

--	LW_DONE_d = (LW_WAIT and (data_timeout_error or (not lt_rdyn AND not TS_DXFR)) and not (lt_rdyn))
--				OR (LW_LXFR and  ((not lt_rdyn and TS_DISC and irdy) or TS_TURN_AR));

	LW_DONE_d = LCELL(
					(LW_WAIT and not (lt_rdyn) and data_timeout_error )
  	               		OR (LW_WAIT and not (lt_rdyn) AND not TS_DXFR )
						OR (LW_LXFR and  TS_TURN_AR)
				  )
				OR LCELL(
						(LW_LXFR and  not lt_rdyn and TS_DISC)
					    )	 and irdy;



-- Target Read State Machine


	(LR_IDLE_not, 		
--	LR_PXFR, 		
	LR_LXFR, 		
	LR_WAIT, 		
	LR_DONE, 			
--	LR_PXFR_32,	
	LR_WAIT_32).clk	= clk;



	(LR_IDLE_not, 		
--	LR_PXFR, 		
	LR_LXFR, 		
	LR_WAIT, 		
	LR_DONE, 			
--	LR_PXFR_32,	
	LR_WAIT_32).clrn	= rstn;


	(LR_IDLE_not, 		
--	LR_PXFR, 		
	LR_LXFR, 		
	LR_WAIT, 		
	LR_DONE, 			
--	LR_PXFR_32,	
	LR_WAIT_32).d		= ( not	LR_IDLE_d, 		
--							LR_PXFR_d, 		
							LR_LXFR_d, 		
							LR_WAIT_d, 		
							LR_DONE_d, 			
--							LR_PXFR_32_d,	
							LR_WAIT_32_d);

LR_IDLE = not LR_IDLE_not;


LR_IDLE_d = (LR_IDLE and not (TS_ADR_VLD and not wr_rdn and not cfg_cyc and not retry and not serr_sig_set and lt_abortn and lt_discn) )
			OR (LR_DONE);

-------- LR_LXFR_d Optimization ----------------------------------------------------------------

--	LR_LXFR_d = (LR_IDLE and (TS_ADR_VLD and not wr_rdn and not cfg_cyc and not retry and not serr_sig_set and lt_abortn and lt_discn ))
--				OR (LR_LXFR and not (not lt_abortn or not lt_discn OR TS_DISC) and not (not lt_rdynR and direct_xfr) and not (not lt_rdynR and not direct_xfr))
--				OR (LR_PXFR and not (not lt_abortn or not frame or TS_DISC)  and not (not irdy and not lt_rdynR and direct_xfr) and (irdy and lt_rdynR));
--LR_PXFR_32_hi_low_sel_lc1 = LCELL((not ad_ir_address2 and not dac_sr.q) or (not hi_adr_hr2 and dac_sr.q));
--LR_PXFR_32_hi_low_sel_lc2 = LCELL((ad_ir_address2 and not dac_sr.q) or (hi_adr_hr2 and dac_sr.q));
--LR_PXFR_32_r1_lc1 = LCELL( (not lt_rdynR and LR_PXFR_32_hi_low_sel_lc1) or (not lt_rdynR_R and LR_PXFR_32_hi_low_sel_lc2));

 LR_LXFR_d_lc1 = LCELL(not (not lt_rdynR and direct_xfr) and not (not lt_rdynR and lt_ldata_ack and not direct_xfr));
 LR_LXFR_d_lc2 = LCELL(LR_LXFR and (lt_abortn AND lt_discn AND NOT TS_DISC));
 LR_LXFR_d_lc3 = LCELL( not retry and not serr_sig_set and lt_abortn and lt_discn);
 LR_LXFR_d_lc4 = LCELL(LR_IDLE and TS_ADR_VLD and not wr_rdn and not cfg_cyc);
 LR_LXFR_d_lc5 = LCELL(
				(LR_LXFR_d_lc4 and LR_LXFR_d_lc3)
				OR (LR_LXFR_d_lc2 and LR_LXFR_d_lc1)
			  	);
 LR_LXFR_d_lc6 = LCELL(
					(LR_PXFR and lt_rdynR and lt_abortn and not TS_DISC)
				   );
 LR_LXFR_d = LR_LXFR_d_lc5	
--			OR (LR_PXFR and not (not lt_abortn or not frame or TS_DISC)  and not (not irdy and not lt_rdynR and direct_xfr) and (irdy and lt_rdynR));

--			OR (LR_PXFR and (lt_abortn and frame and not TS_DISC)  and (irdy or lt_rdynR or not direct_xfr) and (irdy and lt_rdynR));
--			OR (LR_PXFR and (irdy and lt_rdynR) and (lt_abortn and frame and not TS_DISC)  and (irdy or lt_rdynR or not direct_xfr) );

--			OR (LR_PXFR and lt_rdynR and lt_abortn and not TS_DISC and frame   and irdy  );
--			OR (LR_PXFR and lt_rdynR and lt_abortn and not TS_DISC and frame  and irdy and not direct_xfr );

			OR (LR_LXFR_d_lc6 and frame  and irdy)  ;

------- LR_PXFR_32_d Optimization --------------------------------------------------------------

%
LR_PXFR_32_d = --(LR_LXFR and not (not lt_abortn or not lt_discn OR TS_DISC) and not (not lt_rdynR and direct_xfr) and (not lt_rdynR and not direct_xfr) )
--			OR (LR_PXFR_32 and not (not lt_abortn OR not frame) and not (irdy))
--			OR (LR_PXFR and not (not lt_abortn or not frame or TS_DISC) and not (not irdy and not lt_rdynR and direct_xfr) and not (irdy and lt_rdynR) and not (not irdy and not lt_rdynR and not direct_xfr) and (irdy and not lt_rdynR and not direct_xfr) )
--			OR (LR_WAIT_32 and not (not lt_abortn or not frame) and (irdy));

--			(LR_LXFR and (lt_abortn and lt_discn and not TS_DISC) and (lt_rdynR or not direct_xfr) and (not lt_rdynR and not direct_xfr) )

--			(LR_LXFR and lt_abortn and lt_discn and not TS_DISC and not lt_rdynR and not direct_xfr and lt_rdynR   )
			LCELL(
					(LR_LXFR and lt_abortn and lt_discn and not TS_DISC and not lt_rdynR and not direct_xfr )
				)	
			OR (LCELL(
						(LR_PXFR_32 and lt_abortn)
					) and frame and not irdy) -- END of 2nd LCELL
			OR (LCELL(
						(LR_WAIT_32 and lt_abortn) 

--			OR (LR_PXFR and (lt_abortn and not TS_DISC and not lt_rdynR and not direct_xfr and frame and irdy) 
--					  and (irdy or lt_rdynR or not direct_xfr) 
--					  and (not irdy or not lt_rdynR) 
--					  and (irdy or lt_rdynR or direct_xfr) 

						OR (LR_PXFR and (lt_abortn and not TS_DISC and not lt_rdynR and not direct_xfr))
					) and frame and irdy);-- END of 3rd LCELL

--					  and (irdy or lt_rdynR or not direct_xfr) 
--					  and (not irdy or not lt_rdynR) 
--					  and (irdy or lt_rdynR or direct_xfr) 

%


--------- LR_PXFR_32 Register-OR Optimization --------------------------------------------------------------

LR_PXFR_32_r1.clk = clk;
LR_PXFR_32_r1.clrn = rstn;

--LR_PXFR_32_hi_low_sel_lc1 = LCELL((not ad_ir_address2 and not dac_sr.q) or (not hi_adr_hr2 and dac_sr.q));
--LR_PXFR_32_hi_low_sel_lc2 = LCELL((ad_ir_address2 and not dac_sr.q) or (hi_adr_hr2 and dac_sr.q));
--LR_PXFR_32_r1_lc1 = LCELL( (not lt_rdynR and LR_PXFR_32_hi_low_sel_lc1) or (not lt_rdynR_R and LR_PXFR_32_hi_low_sel_lc2));

LR_PXFR_32_r1_d_lc1 = LCELL(not TS_DISC and not lt_rdynR and lt_abortn and not direct_xfr);
LR_PXFR_32_r1_d_lc2 = LCELL(
						(LR_LXFR  and lt_discn and LR_PXFR_32_r1_d_lc1 and lt_ldata_ack  )
--						or (LR_PXFR_32 and not trdy_or)
							); 
LR_PXFR_32_r1_d_lc3 = LCELL(
						(LR_PXFR_32 and lt_abortn)
					);
LR_PXFR_32_r1_d = LR_PXFR_32_r1_d_lc2	
			OR (LR_PXFR_32_r1_d_lc3 and frame and not irdy); -- END of 2nd LCELL
LR_PXFR_32_r1.d = LR_PXFR_32_r1_d;
					
					
LR_PXFR_32_r2.clk = clk;
LR_PXFR_32_r2.clrn = rstn;
LR_PXFR_32_r2_d_lc1 = LCELL(
						(LR_WAIT_32 and lt_abortn) 
						OR (LR_PXFR and LR_PXFR_32_r1_d_lc1)
					);
LR_PXFR_32_r2_d = (LR_PXFR_32_r2_d_lc1 and frame and irdy);-- END of 3rd LCELL
LR_PXFR_32_r2.d = LR_PXFR_32_r2_d;

LR_PXFR_32 = LR_PXFR_32_r1.q OR LR_PXFR_32_r2.q;

LR_PXFR_32_d = LR_PXFR_32_r1_d OR LR_PXFR_32_r2_d;


-------- LR_PXFR_d Optimization ----------------------------------------------------------------


--LR_PXFR_d = (LR_LXFR and not (not lt_abortn or not lt_discn OR TS_DISC) and (not lt_rdynR and direct_xfr))
--			OR (LR_PXFR_32 and not (not lt_abortn OR not frame) and (irdy))
--			OR (LR_PXFR and not (not lt_abortn or not frame or TS_DISC) and not (not irdy and not lt_rdynR and direct_xfr) and not (irdy and lt_rdynR) and not (not irdy and not lt_rdynR and not direct_xfr) and not (irdy and not lt_rdynR and not direct_xfr) )
--			OR (LR_WAIT and not (not lt_abortn or not frame) and (irdy) ) ;

--jot LR_PXFR_d = LCELL(
--jot					(LR_LXFR and lt_abortn and lt_discn and not TS_DISC and not lt_rdynR and direct_xfr)
--jot				)
--jot			OR (LCELL(
--jot						(LR_PXFR_32 and lt_abortn)
--			OR (LR_PXFR and (lt_abortn and frame and not TS_DISC) and (irdy or lt_rdynR or not direct_xfr) and (not irdy or not lt_rdynR) and (irdy or lt_rdynR or direct_xfr) and (not irdy or lt_rdynR or direct_xfr) )
--jot						OR (LR_WAIT and lt_abortn)  

--			OR (LR_PXFR and (lt_abortn and frame and not TS_DISC) 
--					  and (irdy or lt_rdynR or not direct_xfr) 
--					  and (not irdy or not lt_rdynR) 
--					  and (irdy or lt_rdynR or direct_xfr) 
--					  and (not irdy or lt_rdynR or direct_xfr) )

--			OR (LR_PXFR and (lt_abortn and frame and not TS_DISC) 
--					  and (irdy or lt_rdynR or not direct_xfr) 
--					  and (not irdy or not lt_rdynR) 
--					  and (lt_rdynR or direct_xfr) 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?