亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? decoder_arm.v

?? 若干VHDL語(yǔ)言的源代碼
?? V
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
						end
						else
						begin
							out_MEMType=`MEMType_Null;
							out_MEMTargetRegister=`Def_LinkRegister;
						end

						//simple thread of mem stage
						out_SimpleMEMType=`MEMType_MovMain;
						out_SimpleMEMTargetRegister=LeftRegisterNumber;
					end
					else
					begin
						//no need to write back
						//so just write base value to Def_LocalForwardRegister 
						out_ALUTargetRegister=`Def_LocalForwardRegister;

						//main thread of mem stage
						out_MEMEnable=1'b1;
						
						//always load word
						if(IfCurrentRegAccessByLDMSTM==1'b1)
						begin
							out_MEMType=`MEMType_LoadSimpleWord;
							
							if({4'b0000,DecRegNumber[3:0]}==`Def_PCNumber)
								out_MEMTargetRegister=`Def_LinkRegister;
							else
								out_MEMTargetRegister={4'b0000,DecRegNumber[3:0]};
						end
						else
						begin
							out_MEMType=`MEMType_Null;
							out_MEMTargetRegister=`Def_LinkRegister;
						end

						//simple thread of mem stage
						//no need to write back, so just write modified base to Def_LocalForwardRegister
						out_SimpleMEMType=`MEMType_MovMain;
						out_SimpleMEMTargetRegister=`Def_LocalForwardRegister;
					end
				end

				out_IDOwnCanGo=1'b0;
				out_ALUMisc[14]=1'b0;

				//when target register is pc,and PC is to be load
				//then tell mem stage to store this pc and wait for delayed branch signal
				//out_ALUMisc[15] means store delay branch target
				if({4'b0000,DecRegNumber[3:0]}==`Def_PCNumber && in_PipelineRegister_IFID[15]==1'b1)
					out_ALUMisc[15]=1'b1;
				else
					out_ALUMisc[15]=1'b0;
				
				//out_ALUMisc[16] means access user bank registers
				if(in_IsInPrivilegedMode==1'b1 && in_PipelineRegister_IFID[15]==1'b0 && in_PipelineRegister_IFID[22]==1'b1)
					out_ALUMisc[16]=1'b1;
				else
					out_ALUMisc[16]=1'b0;
				
				Next_IncRegNumber=IncRegNumberAdd1;
				Next_DecRegNumber=DecRegNumberSub1;

				Next_PrevOperationWantWriteRegisterFromMEM=IfCurrentRegAccessByLDMSTM;
				if(IfCurrentRegAccessByLDMSTM==1'b1)
					Next_PrevWriteRegister={4'b0000,DecRegNumber[3:0]};
				else
					Next_PrevWriteRegister=`Def_LinkRegister;
					
			   end//of DecRegNumber[7:4]!=4'b1110
			end//of down
			else//up
			begin
			   if(IncRegNumber[7:4]==4'b0001)
			   begin
			   	//perform delayed branch
			   	//except delay branch signal, nothing is use
				out_LeftReadRegisterEnable=1'b0;
				out_LeftReadRegisterNumber=LeftRegisterNumber;
				out_ALULeftFromImm=1'b1;
				
				//deal with offset
				out_RightReadRegisterNumber=RightRegisterNumber;
				out_RightReadRegisterEnable=1'b0;
				out_ALURightFromImm=1'b1;
	
				out_ALUExtendedImmediateValue=32'h0000_0000;
	
				out_ALURightShiftType=`Def_ShiftType_LogicLeft;
				//shift ammount is always 0
				out_ALUSecondImmediateValue=`WordZero;

				//third read bus will be use
				out_ThirdReadRegisterEnable=1'b0;
				out_ThirdReadRegisterNumber=ThirdRegisterNumber;
				out_ALUThirdFromImm=1'b1;

				//a valid ALU
				out_ALUEnable=1'b1;

				//sub 4 from current register
				out_ALUType=`ALUType_Sub;
				out_ALUTargetRegister=`Def_LinkRegister;

				out_SimpleALUType=`ALUType_Null;
				out_SimpleALUTargetRegister=`Def_LinkRegister;

				//main thread of mem stage
				out_MEMEnable=1'b1;
				//always load word
				out_MEMType=`MEMType_Null;
				out_MEMTargetRegister=`Def_LinkRegister;

				//simple thread of mem stage
				out_SimpleMEMType=`MEMType_Null;
				out_SimpleMEMTargetRegister=`Def_LinkRegister;

				out_IDOwnCanGo=1'b1;
				//out_ALUMisc[14] means delay branch
				if(in_PipelineRegister_IFID[15]==1'b1)
					out_ALUMisc[14]=1'b1;
				else
					out_ALUMisc[14]=1'b0;

				//out_ALUMisc[15] means store delay branch target
				out_ALUMisc[15]=1'b0;
				
				if(in_IsInPrivilegedMode==1'b1 && in_PipelineRegister_IFID[15]==1'b1 && in_PipelineRegister_IFID[22]==1'b1)
				begin
					//condition code valid in alu and mem stage
					out_ALUPSRType=`ALUPSRType_SPSR2CPSR;
					out_MEMPSRType=`MEMPSRType_WriteCPSR;
				end

				
				Next_IncRegNumber=`Def_RegisterSelectZero;
				Next_DecRegNumber=`Def_RegisterSelectAllOne;

				Next_PrevOperationWantWriteRegisterFromMEM=1'b0;
				Next_PrevWriteRegister=`Def_LinkRegister;

			   end//of IncRegNumber[7:4]==4'b0001
			   else
			   begin
				out_LeftReadRegisterEnable=1'b1;
				
				//if write back is need, then just read left register as base
				//if write back is not need and it is the first access ,also read left register as base
				// if write back is not need and it is not the first access, then just use LocalForwardRegister
				if(in_PipelineRegister_IFID[21]==1'b1 || IsFirstAccess==1'b1)
					out_LeftReadRegisterNumber=LeftRegisterNumber;
				else 
					out_LeftReadRegisterNumber=`Def_LocalForwardRegister;
					
				//left operand are not from immediate
				out_ALULeftFromImm=1'b0;
				
				//deal with offset
				//offset come from imm in instruction
				out_RightReadRegisterNumber=RightRegisterNumber;
				out_RightReadRegisterEnable=1'b0;
				out_ALURightFromImm=1'b1;
	
				//imm act as offset
				if(IfCurrentRegAccessByLDMSTM==1'b1)
					out_ALUExtendedImmediateValue=32'h0000_0004;
				else
					out_ALUExtendedImmediateValue=32'h0000_0000;
	
				out_ALURightShiftType=`Def_ShiftType_LogicLeft;
				//shift ammount is always 0
				out_ALUSecondImmediateValue=`WordZero;

				//third read bus will be use
				out_ThirdReadRegisterEnable=1'b0;
				out_ThirdReadRegisterNumber=ThirdRegisterNumber;
				out_ALUThirdFromImm=1'b1;

				//a valid ALU
				out_ALUEnable=1'b1;

				//sub 4 from current register
				out_ALUType=`ALUType_Add;

				//deal with the case of pre or post index
				if(in_PipelineRegister_IFID[24]==1'b1)
				begin
					//pre index
					//first perform alu then use result as the address to load
					out_SimpleALUType=`ALUType_Null;
					out_SimpleALUTargetRegister=`Def_LinkRegister;
					if(in_PipelineRegister_IFID[21]==1'b1)
					begin
						//write back alu result to base register
						out_ALUTargetRegister=LeftRegisterNumber;

						//main thread of mem stage
						out_MEMEnable=1'b1;

						//always load word
						if(IfCurrentRegAccessByLDMSTM==1'b1)
						begin
							out_MEMType=`MEMType_LoadMainWord;
							
							if({4'b0000,IncRegNumber[3:0]}==`Def_PCNumber)
								out_MEMTargetRegister=`Def_LinkRegister;
							else
								out_MEMTargetRegister={4'b0000,IncRegNumber[3:0]};
						end
						else
						begin
							out_MEMType=`MEMType_Null;
							out_MEMTargetRegister=`Def_LinkRegister;
						end


						//simple thread of mem stage
						out_SimpleMEMType=`MEMType_MovMain;
						out_SimpleMEMTargetRegister=LeftRegisterNumber;
					end
					else
					begin
						//no need to write back
						//so just write base value to Def_LocalForwardRegister 
						out_ALUTargetRegister=`Def_LocalForwardRegister;

						//main thread of mem stage
						out_MEMEnable=1'b1;
						
						//always load word
						if(IfCurrentRegAccessByLDMSTM==1'b1)
						begin
							out_MEMType=`MEMType_LoadMainWord;
							
							if({4'b0000,IncRegNumber[3:0]}==`Def_PCNumber)
								out_MEMTargetRegister=`Def_LinkRegister;
							else
								out_MEMTargetRegister={4'b0000,IncRegNumber[3:0]};
						end
						else
						begin
							out_MEMType=`MEMType_Null;
							out_MEMTargetRegister=`Def_LinkRegister;
						end


						//simple thread of mem stage
						//no need to write back, so just write the modified base to Def_LocalForwardRegister
						out_SimpleMEMType=`MEMType_MovMain;
						out_SimpleMEMTargetRegister=`Def_LocalForwardRegister;
					end
				end
				else
				begin
					//post index
					//perform alu but use origin base as address to load
					out_SimpleALUType=`ALUType_Mvl;
					out_SimpleALUTargetRegister=`Def_LinkRegister;

					if(in_PipelineRegister_IFID[21]==1'b1)
					begin
						out_ALUTargetRegister=LeftRegisterNumber;

						//main thread of mem stage
						out_MEMEnable=1'b1;

						//always load word
						if(IfCurrentRegAccessByLDMSTM==1'b1)
						begin
							out_MEMType=`MEMType_LoadSimpleWord;

							if({4'b0000,IncRegNumber[3:0]}==`Def_PCNumber)
								out_MEMTargetRegister=`Def_LinkRegister;
							else
								out_MEMTargetRegister={4'b0000,IncRegNumber[3:0]};
						end
						else
						begin
							out_MEMType=`MEMType_Null;
							out_MEMTargetRegister=`Def_LinkRegister;
						end

						//simple thread of mem stage
						out_SimpleMEMType=`MEMType_MovMain;
						out_SimpleMEMTargetRegister=LeftRegisterNumber;
					end
					else
					begin
						//no need to write back
						//so just write base value to Def_LocalForwardRegister 
						out_ALUTargetRegister=`Def_LocalForwardRegister;

						//main thread of mem stage
						out_MEMEnable=1'b1;
						
						//always load word
						if(IfCurrentRegAccessByLDMSTM==1'b1)
						begin
							out_MEMType=`MEMType_LoadSimpleWord;
							
							if({4'b0000,IncRegNumber[3:0]}==`Def_PCNumber)
								out_MEMTargetRegister=`Def_LinkRegister;
							else
								out_MEMTargetRegister={4'b0000,IncRegNumber[3:0]};
						end
						else
						begin
							out_MEMType=`MEMType_Null;
							out_MEMTargetRegister=`Def_LinkRegister;
						end

						//simple thread of mem stage
						//no need to write back, so just write modified base to Def_LocalForwardRegister
						out_SimpleMEMType=`MEMType_MovMain;
						out_SimpleMEMTargetRegister=`Def_LocalForwardRegister;
					end
				end

				out_IDOwnCanGo=1'b0;
				out_ALUMisc[14]=1'b0;

				//when target register is pc,and PC is to be load
				//then tell mem stage to store this pc and wait for delayed branch signal
				//out_ALUMisc[15] means store delay branch target
				if({4'b0000,IncRegNumber[3:0]}==`Def_PCNumber && in_PipelineRegister_IFID[15]==1'b1)
					out_ALUMisc[15]=1'b1;
				else
					out_ALUMisc[15]=1'b0;
				
				//out_ALUMisc[16] means access user bank registers
				if(in_IsInPrivilegedMode==1'b1 && in_PipelineRegister_IFID[15]==1'b0 && in_PipelineRegister_IFID[22]==1'b1)
					out_ALUMisc[16]=1'b1;
				else
					out_ALUMisc[16]=1'b0;
				
				Next_IncRegNumber=IncRegNumberAdd1;
				Next_DecRegNumber=DecRegNumberSub1;

				Next_PrevOperationWantWriteRegisterFromMEM=IfCurrentRegAccessByLDMSTM;
				if(IfCurrentRegAccessByLDMSTM==1'b1)
					Next_PrevWriteRegister={4'b0000,IncRegNumber[3:0]};
				else
					Next_PrevWriteRegister=`Def_LinkRegister;
					
			   end//of IncRegNumber[7:4]!=4'b0001
			end//of up
		end//LDM
		else if(`Def_IsSTM)
		begin
			if(in_PipelineRegister_IFID[23]==1'b0)
			begin//down
			   if(DecRegNumber[7:4]==4'b1110)
			   begin
			   	//this is stm, no need to do anything in this cycle
			   	//just insert a blank into pipeline
			   
				out_LeftReadRegisterEnable=1'b0;
				out_LeftReadRegisterNumber=LeftRegisterNumber;
				out_ALULeftFromImm=1'b1;
				
				//deal with offset
				out_RightReadRegisterNumber=RightRegisterNumber;
				out_RightReadRegisterEnable=1'b0;
				out_ALURightFromImm=1'b1;
	
				out_ALUExtendedImmediateValue=32'h0000_0000;
	
				out_ALURightShiftType=`Def_ShiftType_LogicLeft;
				//shift ammount is always 0
				out_ALUSecondImmediateValue=`WordZero;

				//third read bus will be use
				out_ThirdReadRegisterEnable=1'b0;
				out_ThirdReadRegisterNumber=ThirdRegisterNumber;
				out_ALUThirdFromImm=1'b1;

				//a valid ALU
				out_ALUEnable=1'b1;

				//sub 4 from current register
				out_ALUType=`ALUType_Sub;
				out_ALUTargetRegister=`Def_LinkRegister;

				out_SimpleALUType=`ALUType_Null;
				out_SimpleALUTargetRegister=`Def_LinkRegister;

				//main thread of mem stage
				out_MEMEnable=1'b1;
				//always load word
				out_MEMType=`MEMType_Null;
				out_MEMTargetRegister=`Def_LinkRegister;

				//simple thread of mem stage
				out_SimpleMEMType=`MEMType_Null;
				out_SimpleMEMTargetRegister=`Def_LinkRegister;

				out_IDOwnCanGo=1'b1;

				out_ALUMisc[14]=1'b0;

				out_ALUMisc[15]=1'b0;
				
				Next_IncRegNumber=`Def_RegisterSelectZero;
				Next_DecRegNumber=`Def_RegisterSelectAllOne;

				Next_PrevOperationWantWriteRegisterFromMEM=1'b0;
				Next_PrevWriteRegister=`Def_LinkRegister;

			   end//of DecRegNumber[7:4]==4'b1110
			   else
			   begin
				out_LeftReadRegisterEnable=1'b1;
				
				//if write back is need, then just read left register as base
				//if write back is not need and it is the first access ,also read left register as base
				// if write back is not need and it is not the first access, then just use LocalForwardRegister
				if(in_PipelineRegister_IFID[21]==1'b1 || IsFirstAccess

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久国产一区二区三区四区小说| 亚洲bt欧美bt精品| 久久久国产精品麻豆| 日韩免费观看高清完整版在线观看 | 美女视频网站久久| 热久久一区二区| 久久成人18免费观看| 激情五月播播久久久精品| 国内精品伊人久久久久av影院| 久久99国内精品| 国产黄色91视频| 99视频在线精品| 91久久一区二区| 5566中文字幕一区二区电影| 欧美大片拔萝卜| 国产亚洲1区2区3区| 国产精品九色蝌蚪自拍| 亚洲品质自拍视频| 性做久久久久久免费观看欧美| 日韩在线一区二区| 国产麻豆视频一区| 99久精品国产| 欧美二区三区的天堂| 日韩精品一区二区在线观看| 欧美高清在线一区| 亚洲制服丝袜一区| 精品午夜一区二区三区在线观看| 国产麻豆精品视频| 91亚洲国产成人精品一区二三 | 国产精品毛片高清在线完整版| 亚洲欧洲日产国码二区| 亚洲一二三四在线| 久久精品72免费观看| 成人综合激情网| 欧美在线三级电影| 日韩欧美区一区二| 亚洲视频免费在线观看| 日日骚欧美日韩| 成人午夜激情在线| 欧美精品1区2区3区| 久久久91精品国产一区二区三区| 亚洲三级在线看| 国产成人免费视| 日本韩国一区二区| 精品国产乱码久久久久久牛牛| 中文字幕av一区二区三区| 亚洲午夜久久久久久久久电影院| 精品综合免费视频观看| 91免费视频网址| 精品日韩欧美在线| 亚洲激情第一区| 国产乱人伦偷精品视频不卡| 91影院在线免费观看| 日韩欧美色综合网站| 亚洲精品乱码久久久久久日本蜜臀| 蜜桃一区二区三区四区| 91啪在线观看| 2欧美一区二区三区在线观看视频| 国产精品国产三级国产a| 美腿丝袜亚洲综合| 欧美影院一区二区| 国产午夜精品一区二区三区视频 | 国产精品国产a| 日本特黄久久久高潮| 97国产一区二区| 久久亚洲捆绑美女| 天天色综合成人网| 91麻豆精品视频| 国产色产综合产在线视频| 视频一区二区欧美| 91国产福利在线| 综合网在线视频| 国产高清一区日本| 日韩女同互慰一区二区| 丝袜亚洲另类丝袜在线| 97se狠狠狠综合亚洲狠狠| 国产亚洲精品bt天堂精选| 久久精品免费观看| 欧美日韩国产综合草草| 亚洲精品免费在线播放| www.一区二区| 国产精品女同互慰在线看| 国产精品白丝jk黑袜喷水| 日韩欧美一区电影| 青椒成人免费视频| 6080午夜不卡| 日韩精品一级二级 | 91精品欧美一区二区三区综合在| 老司机午夜精品| 这里只有精品电影| 午夜精品福利一区二区三区蜜桃| 色婷婷av一区二区三区大白胸| 中文字幕欧美日韩一区| 国产馆精品极品| 欧美高清在线一区二区| 东方欧美亚洲色图在线| 国产亚洲一区二区在线观看| 国产一区二区三区不卡在线观看 | 蜜臀av性久久久久蜜臀av麻豆| 欧美日韩一卡二卡三卡| 亚洲国产日产av| 欧美精品丝袜久久久中文字幕| 亚洲一区二区精品久久av| 在线观看日韩精品| 亚洲123区在线观看| 欧美日韩国产免费| 日韩国产精品久久久| 91精品国产91久久久久久最新毛片| 日韩国产欧美三级| 精品久久久久99| 国产不卡视频在线观看| 国产精品天美传媒| 色综合天天综合网天天狠天天| 中文字幕一区二区三区在线不卡| 97久久精品人人做人人爽| 亚洲欧美国产77777| 欧美日韩精品一区二区| 亚洲高清一区二区三区| 欧美一级一区二区| 国产一区 二区 三区一级| 中文在线一区二区| 色综合久久久久久久| 五月婷婷激情综合| 精品日韩欧美在线| 成人高清视频在线| 亚洲一区二区偷拍精品| 日韩天堂在线观看| 国产99久久久国产精品潘金网站| 日韩一区在线看| 欧美日韩综合色| 久久99精品久久久| 中文字幕亚洲电影| 在线91免费看| 国产精品一区在线观看你懂的| 成人免费一区二区三区在线观看| 欧洲亚洲精品在线| 精品中文字幕一区二区| 中文字幕视频一区| 欧美一区国产二区| 成人午夜激情在线| 爽好久久久欧美精品| 国产欧美日韩精品在线| 在线观看日韩高清av| 久久疯狂做爰流白浆xx| 日韩理论片网站| 日韩欧美在线综合网| 成人av第一页| 日本不卡视频在线观看| 国产精品久久久久久亚洲毛片| 欧美日韩国产美女| 成人爽a毛片一区二区免费| 亚洲超碰97人人做人人爱| 久久久www成人免费无遮挡大片 | 久久久久9999亚洲精品| 欧美写真视频网站| 国产成人aaa| 日本在线观看不卡视频| 国产精品久久久久久久久免费丝袜| 69久久99精品久久久久婷婷| 成人免费黄色大片| 久久99国产精品免费网站| 亚洲激情av在线| 中文一区二区完整视频在线观看| 51午夜精品国产| 色琪琪一区二区三区亚洲区| 国产精品一区二区在线观看网站 | 欧美四级电影在线观看| 丁香激情综合国产| 美脚の诱脚舐め脚责91| 一区二区三区欧美亚洲| 中日韩免费视频中文字幕| 日韩免费视频一区| 欧美日韩国产片| 日本伦理一区二区| 成人黄色一级视频| 国产福利一区二区| 久久精品国产久精国产| 亚洲成人激情社区| 亚洲精品欧美在线| 中文字幕制服丝袜成人av| 欧美精品一区二区三区久久久 | 国产精品视频在线看| 日韩精品一区二区在线| 欧美精品久久99久久在免费线 | 欧美性做爰猛烈叫床潮| eeuss鲁一区二区三区| 国产精品69久久久久水密桃| 轻轻草成人在线| 日韩制服丝袜av| 午夜一区二区三区视频| 一区二区视频在线看| 中文字幕亚洲一区二区va在线| 久久老女人爱爱| 欧美xfplay| 精品成人私密视频| 精品精品国产高清a毛片牛牛| 3d动漫精品啪啪一区二区竹菊| 欧美色欧美亚洲另类二区| 在线国产亚洲欧美| 欧美视频自拍偷拍|