亚洲欧美第一页_禁久久精品乱码_粉嫩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∨婷婷图片| 欧美性生交片4| 国产欧美精品国产国产专区| 日韩国产欧美三级| 欧美肥胖老妇做爰| 一个色综合av| 色综合久久综合| 国产精品黄色在线观看| 国产不卡在线视频| 日韩丝袜美女视频| 日日夜夜精品视频免费| 日本久久电影网| 亚洲欧洲中文日韩久久av乱码| 国产黄人亚洲片| 久久一夜天堂av一区二区三区| 视频一区二区欧美| 91麻豆精品国产| 亚洲成人免费视| 欧美日韩一区二区三区不卡| 亚洲黄色在线视频| 一本到不卡免费一区二区| 日本一区二区成人| 丁香婷婷综合色啪| 亚洲国产成人午夜在线一区| 国产成人精品亚洲777人妖 | 成人av电影免费观看| 久久先锋影音av| 国产精品中文字幕一区二区三区| 精品三级在线看| 极品尤物av久久免费看| 久久久综合激的五月天| 国产成人在线免费| 国产精品人妖ts系列视频| 国产成人在线看| ㊣最新国产の精品bt伙计久久| 国产69精品久久777的优势| 国产精品久久久久四虎| 99久久精品情趣| 亚洲成人免费电影| 精品免费国产二区三区| 国产成人免费视频精品含羞草妖精| 国产精品嫩草久久久久| 色婷婷久久综合| 日韩精品一级二级| 欧美精品一区二区三区在线播放| 国产黄色精品视频| 亚洲免费观看高清完整版在线观看熊| 色悠久久久久综合欧美99| 日韩av一级电影| 国产欧美日韩综合| 欧美婷婷六月丁香综合色| 男人的j进女人的j一区| 国产亚洲欧美色| 欧美视频一区二| 精品中文av资源站在线观看| 日本一区二区动态图| 色吧成人激情小说| 久久99国产精品麻豆| 中文字幕一区av| 91麻豆精品国产91久久久久久久久 | 日韩一级黄色大片| 国产91色综合久久免费分享| 美女视频一区二区| 国产精品久久久久久久浪潮网站 | 91在线观看视频| 日韩av电影天堂| 日韩一区在线看| 日韩欧美亚洲另类制服综合在线| 国产成人av电影| 日韩高清不卡一区| 中文字幕在线免费不卡| 日韩欧美一区二区视频| 91黄色免费观看| 国产成人在线视频免费播放| 秋霞午夜av一区二区三区| 中文字幕中文字幕在线一区| 日韩精品影音先锋| 欧美日韩小视频| 91视视频在线直接观看在线看网页在线看| 人人精品人人爱| 亚洲午夜电影网| 国产精品久久一级| 久久综合av免费| 日韩午夜av一区| 欧美精品v日韩精品v韩国精品v| 不卡在线观看av| 成人做爰69片免费看网站| 蜜桃精品视频在线| 亚洲第一福利一区| 亚洲三级视频在线观看| 欧美激情一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 欧美日韩精品一区二区在线播放| 99久久国产综合精品女不卡| 国产精品白丝av| 国产在线不卡一区| 精品在线视频一区| 久久se这里有精品| 美女视频黄 久久| 日本欧美一区二区三区乱码| 亚洲成a人片在线不卡一二三区| 亚洲精品中文字幕在线观看| 国产精品乱人伦中文| 国产精品久久三| 成人欧美一区二区三区1314| 日韩一区欧美一区| 午夜亚洲国产au精品一区二区| 中文字幕一区二区三区在线观看 | 日韩丝袜美女视频| 日韩三区在线观看| 日韩免费性生活视频播放| 欧美一区二区女人| 欧美电视剧在线看免费| 精品国产一区二区三区av性色| 欧美v亚洲v综合ⅴ国产v| 欧美成人一级视频| 久久综合久色欧美综合狠狠| 精品国产乱码久久久久久免费| 欧美成人精品3d动漫h| 久久午夜国产精品| 中文字幕av资源一区| 亚洲欧美日韩电影| 亚洲国产综合91精品麻豆| 午夜婷婷国产麻豆精品| 男男gaygay亚洲| 国产一区二区在线免费观看| 成人午夜电影小说| 色域天天综合网| 欧美乱妇23p| 精品国产欧美一区二区| 久久久欧美精品sm网站| 《视频一区视频二区| 亚洲一区二区三区在线播放| 免费观看一级特黄欧美大片| 国内精品在线播放| 99精品欧美一区二区三区小说 | 日韩一区二区三区视频在线观看| 精品国产一区二区三区久久久蜜月 | 亚洲综合色婷婷| 美腿丝袜在线亚洲一区| 国产suv精品一区二区三区| 欧美在线免费观看视频| 1000精品久久久久久久久| 亚洲午夜久久久久中文字幕久| 久久99国产乱子伦精品免费| 国产不卡视频一区二区三区| 日本电影亚洲天堂一区| 精品国产人成亚洲区| 《视频一区视频二区| 日本91福利区| a级精品国产片在线观看| 欧洲av一区二区嗯嗯嗯啊| 久久久亚洲国产美女国产盗摄 | 欧美网站一区二区| 精品福利一区二区三区免费视频| 亚洲同性同志一二三专区| 蜜桃精品视频在线| 欧美在线观看一二区| 日本一区二区三区电影| 日日夜夜免费精品| 99久久99久久精品免费观看 | 亚洲精品一二三四区| 国产激情91久久精品导航| 欧美一区二区三区影视| 亚洲黄色免费网站| 成熟亚洲日本毛茸茸凸凹| 日韩一级片网址| 亚洲一区二区三区国产| a4yy欧美一区二区三区| 2021久久国产精品不只是精品| 天天色 色综合| 欧美一a一片一级一片| 亚洲视频小说图片| 国产成人免费视频一区| 精品国产成人在线影院 | 91在线你懂得| 国产欧美精品国产国产专区| 久久国内精品视频| 3d动漫精品啪啪| 亚洲成人777| 日韩欧美国产精品| 婷婷中文字幕综合| 欧美日韩色一区| 亚洲国产视频a| 欧美视频三区在线播放| 亚洲综合色区另类av| 色综合久久精品| 亚洲精品成人天堂一二三| www.欧美日韩| 国产精品成人一区二区艾草| 成人一区二区三区中文字幕| 欧美激情一区在线观看| 菠萝蜜视频在线观看一区| 国产精品毛片a∨一区二区三区|