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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? registerfile.v

?? 若干VHDL語言的源代碼
?? V
?? 第 1 頁 / 共 3 頁
字號:
`include "Def_RegisterFile.v"
`include "Def_Mode.v"

//this register file support 4 reads and 3 write
module RegisterFile(	//change of state
			in_IfChangeState,	//this port means access other bank of register, only SWI or FIQ or IRQ or UND or ABT use it
			in_MemAccessUserBankRegister2WB,	//access user bank, use only by LDM/STM
			in_ChangeStateAction,	//which  bank of register to access
			//SWI or FIQ or IRQ or UND or ABT  only use r14 as link register
			//LDM/STM use user bank only
			//other read port
			in_LeftReadEnable,
			in_LeftReadRegisterNumber,
			out_LeftReadBus,
			in_RightReadEnable,
			in_RightReadRegisterNumber,
			out_RightReadBus,
			in_ThirdReadEnable,
			in_ThirdReadRegisterNumber,
			out_ThirdReadBus,
			in_FourthReadEnable,
			in_FourthReadRegisterNumber,
			out_FourthReadBus,
			in_WriteEnable,
			in_WriteRegisterNumber,
			in_WriteBus,
			in_SecondWriteEnable,
			in_SecondWriteRegisterNumber,
			in_SecondWriteBus,
			in_ThirdWriteEnable,
			in_ThirdWriteRegisterNumber,
			in_ThirdWriteBus,
			//the processor mode
			in_ProcessorMode,
			clock,
			reset
);

//////////////////////////////////////////////////
//////////////////////////////////////////////////
//		port declaration		//
//////////////////////////////////////////////////
//////////////////////////////////////////////////
input		in_IfChangeState;
input		in_MemAccessUserBankRegister2WB;
input	[4:0]	in_ChangeStateAction;

input in_LeftReadEnable,in_RightReadEnable,in_ThirdReadEnable,in_FourthReadEnable,in_WriteEnable,in_SecondWriteEnable,in_ThirdWriteEnable;
input [`Def_RegisterSelectWidth-1:0] in_LeftReadRegisterNumber,in_RightReadRegisterNumber,in_ThirdReadRegisterNumber,in_FourthReadRegisterNumber,in_WriteRegisterNumber,in_SecondWriteRegisterNumber,in_ThirdWriteRegisterNumber;

output [`WordWidth-1:0] out_LeftReadBus,out_RightReadBus,out_ThirdReadBus,out_FourthReadBus;
reg [`WordWidth-1:0] out_LeftReadBus,out_RightReadBus,out_ThirdReadBus,out_FourthReadBus;
input [`WordWidth-1:0] in_WriteBus,in_SecondWriteBus,in_ThirdWriteBus;

input [4:0] in_ProcessorMode;

input clock,reset;

//////////////////////////////////////////////////
//////////////////////////////////////////////////
//		memory for registers		//
//////////////////////////////////////////////////
//////////////////////////////////////////////////
//16 general register
reg [`WordWidth-1:0]  Registers0;
reg [`WordWidth-1:0]  Registers1;
reg [`WordWidth-1:0]  Registers2;
reg [`WordWidth-1:0]  Registers3;
reg [`WordWidth-1:0]  Registers4;
reg [`WordWidth-1:0]  Registers5;
reg [`WordWidth-1:0]  Registers6;
reg [`WordWidth-1:0]  Registers7;
reg [`WordWidth-1:0]  Registers8;
reg [`WordWidth-1:0]  Registers9;
reg [`WordWidth-1:0]  Registers10;
reg [`WordWidth-1:0]  Registers11;
reg [`WordWidth-1:0]  Registers12;
reg [`WordWidth-1:0]  Registers13;
reg [`WordWidth-1:0]  Registers14;
reg [`WordWidth-1:0]  Registers15;

//7 reg for FIQ mode
reg [`WordWidth-1:0]  Registers8_FIQ;
reg [`WordWidth-1:0]  Registers9_FIQ;
reg [`WordWidth-1:0]  Registers10_FIQ;
reg [`WordWidth-1:0]  Registers11_FIQ;
reg [`WordWidth-1:0]  Registers12_FIQ;
reg [`WordWidth-1:0]  Registers13_FIQ;
reg [`WordWidth-1:0]  Registers14_FIQ;

//2 reg for supervisor mode
reg [`WordWidth-1:0]  Registers13_SVC;
reg [`WordWidth-1:0]  Registers14_SVC;

//2 reg for abort mode
reg [`WordWidth-1:0]  Registers13_ABT;
reg [`WordWidth-1:0]  Registers14_ABT;

//2 reg for IRQ mode
reg [`WordWidth-1:0]  Registers13_IRQ;
reg [`WordWidth-1:0]  Registers14_IRQ;

//2 reg undefined instruction mode
reg [`WordWidth-1:0]  Registers13_UND;
reg [`WordWidth-1:0]  Registers14_UND;

//Def_LocalForwardRegister
reg [`WordWidth-1:0]  LocalForwardRegister;


integer ssycnt;

//left read
always @(Registers0 or
	Registers1 or
	Registers2 or
	Registers3 or
	Registers4 or
	Registers5 or
	Registers6 or
	Registers7 or
	Registers8 or
	Registers9 or
	Registers10 or
	Registers11 or
	Registers12 or
	Registers13 or
	Registers14 or
	Registers15 or
	Registers8_FIQ or
	Registers9_FIQ or
	Registers10_FIQ or
	Registers11_FIQ or
	Registers12_FIQ or
	Registers13_FIQ or
	Registers14_FIQ or
	Registers13_SVC or
	Registers14_SVC or
	Registers13_ABT or
	Registers14_ABT or
	Registers13_IRQ or
	Registers14_IRQ or
	Registers13_UND or
	Registers14_UND or
	LocalForwardRegister or
	in_ProcessorMode or
	in_LeftReadEnable or
	in_LeftReadRegisterNumber	or
	in_IfChangeState	or
	in_ChangeStateAction	or
	in_MemAccessUserBankRegister2WB
)
begin
	if(in_LeftReadEnable==1'b1)
	begin
		case (in_LeftReadRegisterNumber)
		8'b0000_0000:
			out_LeftReadBus=Registers0;
		8'b0000_0001:
			out_LeftReadBus=Registers1;
		8'b0000_0010:
			out_LeftReadBus=Registers2;
		8'b0000_0011:
			out_LeftReadBus=Registers3;
		8'b0000_0100:
			out_LeftReadBus=Registers4;
		8'b0000_0101:
			out_LeftReadBus=Registers5;
		8'b0000_0110:
			out_LeftReadBus=Registers6;
		8'b0000_0111:
			out_LeftReadBus=Registers7;
		8'b0000_1000:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_LeftReadBus=Registers8;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_LeftReadBus=Registers8_FIQ;
			else
				out_LeftReadBus=Registers8;
		end
		8'b0000_1001:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_LeftReadBus=Registers9;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_LeftReadBus=Registers9_FIQ;
			else
				out_LeftReadBus=Registers9;
		end
		8'b0000_1010:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_LeftReadBus=Registers10;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_LeftReadBus=Registers10_FIQ;
			else
				out_LeftReadBus=Registers10;
		end
		8'b0000_1011:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_LeftReadBus=Registers11;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_LeftReadBus=Registers11_FIQ;
			else
				out_LeftReadBus=Registers11;
		end
		8'b0000_1100:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_LeftReadBus=Registers12;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_LeftReadBus=Registers12_FIQ;
			else
				out_LeftReadBus=Registers12;
		end
		8'b0000_1101:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_LeftReadBus=Registers13;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_LeftReadBus=Registers13_FIQ;
			else if(in_ProcessorMode==`MODE_SVC)
				out_LeftReadBus=Registers13_SVC;
			else if(in_ProcessorMode==`MODE_ABT)
				out_LeftReadBus=Registers13_ABT;
			else if(in_ProcessorMode==`MODE_IRQ)
				out_LeftReadBus=Registers13_IRQ;
			else if(in_ProcessorMode==`MODE_UND)
				out_LeftReadBus=Registers13_UND;
			else//normal
				out_LeftReadBus=Registers13;
		end
		8'b0000_1110:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
				out_LeftReadBus=Registers14;
			else if(in_IfChangeState==1'b1)
			begin
				case(in_ChangeStateAction)
				`MODE_FIQ:
					out_LeftReadBus=Registers14_FIQ;
				`MODE_SVC:
					out_LeftReadBus=Registers14_SVC;
				`MODE_ABT:
					out_LeftReadBus=Registers14_ABT;
				`MODE_IRQ:
					out_LeftReadBus=Registers14_IRQ;
				`MODE_UND:
					out_LeftReadBus=Registers14_UND;
				default:
					out_LeftReadBus=Registers14;
				endcase
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_LeftReadBus=Registers14_FIQ;
			else if(in_ProcessorMode==`MODE_SVC)
				out_LeftReadBus=Registers14_SVC;
			else if(in_ProcessorMode==`MODE_ABT)
				out_LeftReadBus=Registers14_ABT;
			else if(in_ProcessorMode==`MODE_IRQ)
				out_LeftReadBus=Registers14_IRQ;
			else if(in_ProcessorMode==`MODE_UND)
				out_LeftReadBus=Registers14_UND;
			else//normal
				out_LeftReadBus=Registers14;
		end
		8'b0000_1111:
			out_LeftReadBus=Registers15;
		`Def_LocalForwardRegister:
			out_LeftReadBus=LocalForwardRegister;
		default:
			out_LeftReadBus=`WordZero;
		endcase
	end
	else
	begin
		out_LeftReadBus=`WordZero;
	end
end

//right read
always @(Registers0 or
	Registers1 or
	Registers2 or
	Registers3 or
	Registers4 or
	Registers5 or
	Registers6 or
	Registers7 or
	Registers8 or
	Registers9 or
	Registers10 or
	Registers11 or
	Registers12 or
	Registers13 or
	Registers14 or
	Registers15 or
	Registers8_FIQ or
	Registers9_FIQ or
	Registers10_FIQ or
	Registers11_FIQ or
	Registers12_FIQ or
	Registers13_FIQ or
	Registers14_FIQ or
	Registers13_SVC or
	Registers14_SVC or
	Registers13_ABT or
	Registers14_ABT or
	Registers13_IRQ or
	Registers14_IRQ or
	Registers13_UND or
	Registers14_UND or
	LocalForwardRegister or
	in_ProcessorMode or
	in_RightReadEnable or
	in_RightReadRegisterNumber	or
	in_IfChangeState	or
	in_ChangeStateAction	or
	in_MemAccessUserBankRegister2WB
)
begin
	if(in_RightReadEnable==1'b1)
	begin
		case (in_RightReadRegisterNumber)
		8'b0000_0000:
			out_RightReadBus=Registers0;
		8'b0000_0001:
			out_RightReadBus=Registers1;
		8'b0000_0010:
			out_RightReadBus=Registers2;
		8'b0000_0011:
			out_RightReadBus=Registers3;
		8'b0000_0100:
			out_RightReadBus=Registers4;
		8'b0000_0101:
			out_RightReadBus=Registers5;
		8'b0000_0110:
			out_RightReadBus=Registers6;
		8'b0000_0111:
			out_RightReadBus=Registers7;
		8'b0000_1000:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_RightReadBus=Registers8;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_RightReadBus=Registers8_FIQ;
			else
				out_RightReadBus=Registers8;
		end
		8'b0000_1001:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_RightReadBus=Registers9;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_RightReadBus=Registers9_FIQ;
			else
				out_RightReadBus=Registers9;
		end
		8'b0000_1010:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_RightReadBus=Registers10;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_RightReadBus=Registers10_FIQ;
			else
				out_RightReadBus=Registers10;
		end
		8'b0000_1011:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_RightReadBus=Registers11;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_RightReadBus=Registers11_FIQ;
			else
				out_RightReadBus=Registers11;
		end
		8'b0000_1100:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_RightReadBus=Registers12;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_RightReadBus=Registers12_FIQ;
			else
				out_RightReadBus=Registers12;
		end
		8'b0000_1101:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)
			begin
				out_RightReadBus=Registers13;
			end
			else if(in_ProcessorMode==`MODE_FIQ)
				out_RightReadBus=Registers13_FIQ;
			else if(in_ProcessorMode==`MODE_SVC)
				out_RightReadBus=Registers13_SVC;
			else if(in_ProcessorMode==`MODE_ABT)
				out_RightReadBus=Registers13_ABT;
			else if(in_ProcessorMode==`MODE_IRQ)
				out_RightReadBus=Registers13_IRQ;
			else if(in_ProcessorMode==`MODE_UND)
				out_RightReadBus=Registers13_UND;
			else//normal
				out_RightReadBus=Registers13;
		end
		8'b0000_1110:
		begin
			if(in_MemAccessUserBankRegister2WB==1'b1)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
经典三级视频一区| 亚洲电影你懂得| 国产一区二区三区蝌蚪| 日韩亚洲欧美中文三级| 丝袜a∨在线一区二区三区不卡| 91网站在线观看视频| 亚洲天堂2016| 色欧美片视频在线观看在线视频| 亚洲免费观看高清在线观看| 91在线高清观看| 亚洲国产视频一区二区| 欧美顶级少妇做爰| 久久99久久精品| 国产亚洲欧美一区在线观看| 99久久婷婷国产综合精品电影| 国产精品高清亚洲| 欧美日韩一区国产| 日韩av电影免费观看高清完整版在线观看 | 不卡一区二区中文字幕| 国产精品久久综合| 欧美日韩一区中文字幕| 久久国产视频网| 国产精品卡一卡二卡三| 91精品1区2区| 捆绑变态av一区二区三区| 久久精品视频一区二区| 一本久久综合亚洲鲁鲁五月天 | 精品日韩一区二区| 国产成人精品免费看| 亚洲人亚洲人成电影网站色| 欧美亚洲一区二区三区四区| 久久精品国产一区二区三 | 国产黄色91视频| 亚洲小说春色综合另类电影| 日韩欧美国产综合一区| 丁香啪啪综合成人亚洲小说 | 五月天欧美精品| 久久精品一区二区三区不卡牛牛| 91免费观看视频| 美国av一区二区| 亚洲精品视频一区二区| 精品毛片乱码1区2区3区| 91年精品国产| 国产乱对白刺激视频不卡| 亚洲图片欧美色图| 国产校园另类小说区| 欧美疯狂做受xxxx富婆| 99精品黄色片免费大全| 精品一区二区三区香蕉蜜桃| 亚洲一级二级三级在线免费观看| 国产日韩精品一区| 这里只有精品电影| 色婷婷精品大在线视频| 国产精品 欧美精品| 日本不卡视频在线| 亚洲最新在线观看| 国产日韩在线不卡| 精品日韩av一区二区| 欧美视频一区在线| 9i在线看片成人免费| 国产乱码字幕精品高清av | 99免费精品视频| 国产主播一区二区三区| 日韩成人免费看| 亚洲一级在线观看| 亚洲欧美日韩系列| 中文字幕一区二区三| 国产欧美一二三区| 久久久午夜电影| 精品欧美乱码久久久久久| 在线成人免费观看| 欧美视频在线播放| 欧美日韩一区二区三区四区五区| 91在线一区二区三区| 成人毛片在线观看| 风间由美一区二区三区在线观看 | 色狠狠综合天天综合综合| 国产91清纯白嫩初高中在线观看| 精品制服美女久久| 麻豆精品在线观看| 久久精品72免费观看| 日韩电影在线一区二区| 91网址在线看| 91蝌蚪porny九色| 99精品视频一区二区| jvid福利写真一区二区三区| av爱爱亚洲一区| 一本久久精品一区二区| 在线日韩一区二区| 欧美日韩一卡二卡| 日韩一区二区免费在线观看| 91精品国产色综合久久ai换脸| 欧美日韩国产精选| 91精品国产品国语在线不卡| 欧美精品久久99久久在免费线 | 国产91丝袜在线播放0| 成人福利视频网站| 91一区二区三区在线观看| 色一情一乱一乱一91av| 欧美在线色视频| 91麻豆精品国产无毒不卡在线观看| 91麻豆精品国产91久久久久久| 日韩一级免费一区| 国产亚洲精品久| 日韩一区中文字幕| 亚洲成人动漫一区| 久久疯狂做爰流白浆xx| 国产福利91精品一区| 91丝袜高跟美女视频| 777xxx欧美| 中文字幕欧美激情一区| 一区二区三区在线观看国产| 男人的天堂亚洲一区| 国产999精品久久久久久绿帽| 一本到不卡精品视频在线观看| 在线电影一区二区三区| 国产日韩高清在线| 亚洲国产裸拍裸体视频在线观看乱了| 秋霞午夜av一区二区三区| 成人免费看视频| 7777精品伊人久久久大香线蕉经典版下载 | 欧美影片第一页| 精品剧情在线观看| 亚洲精选视频免费看| 免费在线一区观看| 99久久精品国产导航| 在线综合+亚洲+欧美中文字幕| 91成人在线免费观看| 欧美精品乱码久久久久久| 国产日产欧美一区二区三区| 国产精品视频观看| 亚洲第四色夜色| 精东粉嫩av免费一区二区三区| 99精品久久99久久久久| 91麻豆精品国产| 中文字幕成人av| 日日骚欧美日韩| 成人国产精品免费观看动漫| 欧美在线三级电影| 久久这里只有精品6| 一区二区三区日韩欧美| 久久国产夜色精品鲁鲁99| 欧美体内she精高潮| 久久蜜臀中文字幕| 亚洲在线观看免费| 成人综合婷婷国产精品久久| 91福利小视频| 亚洲免费观看视频| 国产伦精一区二区三区| 欧美在线不卡视频| 国产午夜久久久久| 国产一二精品视频| 欧美精品三级在线观看| 国产精品第13页| 极品少妇一区二区| 欧美性色欧美a在线播放| 国产精品久久久久久亚洲伦| 久久国产精品无码网站| 欧美体内she精视频| 国产精品久久久久久久久晋中| 国产一区二区三区观看| 欧美精品久久久久久久多人混战| 亚洲三级在线观看| 国产成人精品综合在线观看| 在线观看成人免费视频| 一区二区三区四区蜜桃| 高清不卡一二三区| 精品国产91亚洲一区二区三区婷婷| 亚洲精品欧美专区| 色婷婷综合久久久| 国产精品久久久久毛片软件| 国产麻豆91精品| 精品裸体舞一区二区三区| 性做久久久久久久免费看| 欧美精品 日韩| 亚洲成av人片一区二区梦乃| 91网站最新地址| 中文字幕一区在线| 色婷婷久久久亚洲一区二区三区| 欧美国产日产图区| 国产成人综合在线| 亚洲精品在线观看网站| 国产精品一级片| 久久久蜜桃精品| 国产酒店精品激情| 久久日韩粉嫩一区二区三区 | 国产性做久久久久久| 奇米在线7777在线精品| 制服丝袜亚洲精品中文字幕| 午夜精品国产更新| 91精品黄色片免费大全| 亚洲va欧美va国产va天堂影院| 欧美一区二区三区小说| 麻豆精品国产传媒mv男同 | 欧美电影一区二区三区| 亚洲午夜私人影院| 欧美va在线播放| 国产一区免费电影| 久久久综合精品| 国产河南妇女毛片精品久久久|