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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? memorycontroller.v

?? 若干VHDL語言的源代碼
?? V
字號:
//////////////////////////////////////////////////////////////////////////
//		memory controller					//
//									//
//author:ShengYu Shen from national unversity of defense echnology	//
//create time:2001 3 17							//
//////////////////////////////////////////////////////////////////////////


`include "Def_SimulationParameter.v"
`include "Def_StructureParameter.v"
`include "Def_MemoryController.v"

module MemoryController(DataBus,	//data bus ,bidirection
			nWAIT,		//wait for valid value,this signal can not be used directly by external device other than cpu,because after the CPU send out memory request ,the memory can disable this signal only after 1 cycle
			AddressBus,	//address bus
			nRW,		//0 is read,1 is write
			nBW,		//0 is read byte,1 is read word ,not support
			nMREQ,		//0 is memory request,1 is for other device(coprocessor)
			SEQ,		//1 is sequential access mode ,
			MCLK,		//main clock
			nRESET
			);
inout [`DataBusWidth-1:0] DataBus;
//bidir internal DATA buffer
reg   [`DataBusWidth-1:0] D_IN;

output nWAIT;
wire nWAIT;

input [`AddressBusWidth-1:0] AddressBus;
input nRW,nBW,nMREQ,SEQ,MCLK,nRESET;


//memory
reg [`MemoryElementWidth-1:0]	Memory	[`MemorySize-1:0];


//memory access status
reg   [`MemoryAccessStageWidth-1:0] MemoryAccessStage;
reg   nRWOutStand;
reg   SEQOutStand;
reg   [`AddressBusWidth-1:0] AddressBusOutStand;
reg   [`DataBusWidth-1:0]	DataBusOutStand;

//just for test
wire	[`WordWidth-1:0]	M00,M04,M08,M0C;

integer ssycnt;

//just for test
assign	M00={Memory[32'h00000003],Memory[32'h00000002],Memory[32'h00000001],Memory[32'h00000000]};
assign	M04={Memory[32'h00000007],Memory[32'h00000006],Memory[32'h00000005],Memory[32'h00000004]};
assign	M08={Memory[32'h0000000b],Memory[32'h0000000a],Memory[32'h00000009],Memory[32'h00000008]};
assign	M0C={Memory[32'h0000000f],Memory[32'h0000000e],Memory[32'h0000000d],Memory[32'h0000000c]};

assign nWAIT=((MemoryAccessStage==`MemoryAccessStage0 && nMREQ==1'b1) || MemoryAccessStage==`MemoryAccessStage6)?1'b1:1'b0;
assign DataBus=(nRESET==1'b1 && nRWOutStand==1'b0 && (SEQOutStand==1'b0 && MemoryAccessStage==`MemoryAccessStage6 || SEQOutStand==1'b1 && MemoryAccessStage==`MemoryAccessStage2))?D_IN:`DataBusZ;


always @(posedge MCLK or negedge nRESET)
begin
	if(nRESET==1'b0)
	begin
		//memory access stage
		MemoryAccessStage=`MemoryAccessStage0;
		nRWOutStand=1'b0;
		SEQOutStand=1'b0;
		AddressBusOutStand=`AddressBusZero;
		DataBusOutStand=`DataBusZero;

		D_IN=`DataBusZero;
	end
	else if(MemoryAccessStage==`MemoryAccessStage0)  //no outstand access now
	begin
	   if(nMREQ==1'b0)	//a new acess
	   begin
		MemoryAccessStage=MemoryAccessStage+1;
		nRWOutStand=nRW;
		SEQOutStand=SEQ;
		AddressBusOutStand=AddressBus;
		DataBusOutStand=DataBus;
	   end
	   else	//no access
	   begin
		nRWOutStand=1'bz;
		SEQOutStand=1'bz;
		AddressBusOutStand=`AddressBusZ;
		DataBusOutStand=`DataBusZ;

		MemoryAccessStage=`MemoryAccessStage0;
	   end
	end
	else	//there is one outstand access now
	begin
	   MemoryAccessStage=MemoryAccessStage+1;
	   if(SEQOutStand==1'b0)	//non sequential
	   begin
		if(MemoryAccessStage==`MemoryAccessStage6)
		begin
			//the nonsequential access is done,keep data stable for 1 cycle
			if(nRWOutStand==1'b0)	//read
			begin
				D_IN[7:0]=Memory[AddressBusOutStand];
				D_IN[15:8]=Memory[AddressBusOutStand+1];
				D_IN[23:16]=Memory[AddressBusOutStand+2];
				D_IN[31:24]=Memory[AddressBusOutStand+3];
		
				//$display("1 read value %h at address %h",D_IN,AddressBusOutStand);
			end
			else 	//write
			begin
				Memory[AddressBusOutStand]=DataBusOutStand[7:0];
				Memory[AddressBusOutStand+1]=DataBusOutStand[15:8];
				Memory[AddressBusOutStand+2]=DataBusOutStand[23:16];
				Memory[AddressBusOutStand+3]=DataBusOutStand[31:24];
		
				//$display("1 write value %h at address %h ",DataBusOutStand,AddressBusOutStand);
			end
		end
		else if(MemoryAccessStage==`MemoryNonSequentialDelay+1)
		begin
			//access end,data have been output at previous cycle
			MemoryAccessStage=`MemoryAccessStage0;
		end
		else
		begin
			//non sequential no end yet
		end
	   end
	   else//sequential access
	   begin
		if(MemoryAccessStage==`MemorySequentialDelay)
		begin
			//the sequential access is done,keep data stable for 1 cycle
			if(nRWOutStand==1'b0)	//read
			begin
				D_IN[7:0]=Memory[AddressBusOutStand];
				D_IN[15:8]=Memory[AddressBusOutStand+1];
				D_IN[23:16]=Memory[AddressBusOutStand+2];
				D_IN[31:24]=Memory[AddressBusOutStand+3];
		
				//$display("2 read value %h at address %h",D_IN,AddressBusOutStand);
			end
			else 	//write
			begin
				Memory[AddressBusOutStand]=DataBusOutStand[7:0];
				Memory[AddressBusOutStand+1]=DataBusOutStand[15:8];
				Memory[AddressBusOutStand+2]=DataBusOutStand[23:16];
				Memory[AddressBusOutStand+3]=DataBusOutStand[31:24];
		
				//$display("2 write value %h at address %h ",DataBusOutStand,AddressBusOutStand);
			end
		end
		else if(MemoryAccessStage==`MemorySequentialDelay+1)
		begin
			//access end,data have been output at previous cycle
			MemoryAccessStage=`MemoryAccessStage0;
		end
		else
		begin
			//sequential no end yet
		end
	   end
	end//end of one outstanding access

end//end of always
endmodule

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类小说欧美激情| 精品粉嫩aⅴ一区二区三区四区| 在线不卡一区二区| 国产女同性恋一区二区| 亚洲va中文字幕| 一本一道久久a久久精品 | 91麻豆国产在线观看| 精品久久久久久久久久久院品网| 亚洲欧美另类小说视频| 国产真实乱偷精品视频免| 欧美精品在线观看一区二区| 亚洲裸体xxx| 成人午夜又粗又硬又大| 精品国产网站在线观看| 日韩综合小视频| 欧美自拍丝袜亚洲| 中文字幕字幕中文在线中不卡视频| 极品少妇一区二区| 日韩欧美高清一区| 免费久久99精品国产| 69久久99精品久久久久婷婷| 依依成人精品视频| 91久久精品一区二区三区| 国产精品国产自产拍高清av王其| 激情六月婷婷久久| 精品久久久久香蕉网| 狠狠色综合播放一区二区| 日韩限制级电影在线观看| 免费高清在线一区| 精品少妇一区二区三区日产乱码 | 欧美三级中文字| 亚洲国产成人精品视频| 在线观看www91| 一区二区三区蜜桃| 欧美久久久久久蜜桃| 日韩不卡免费视频| 日韩美女视频在线| 麻豆精品国产传媒mv男同| 日韩三级免费观看| 国产综合色在线视频区| 久久久噜噜噜久久中文字幕色伊伊| 久久成人综合网| 亚洲国产成人一区二区三区| jlzzjlzz亚洲日本少妇| 一区二区三区资源| 日韩一区二区电影| 国产成人av在线影院| 国产精品女人毛片| 色狠狠一区二区三区香蕉| 午夜精品福利一区二区三区av| 日韩一卡二卡三卡国产欧美| 国产乱人伦精品一区二区在线观看| 中文字幕不卡的av| 在线观看视频一区二区| 麻豆国产精品官网| 国产精品免费丝袜| 欧美精品一卡二卡| 国产精品一区久久久久| 亚洲综合视频在线| 日韩视频在线你懂得| 成人av免费在线观看| 亚洲国产成人porn| 久久久久久**毛片大全| 在线亚洲人成电影网站色www| 日韩精品欧美成人高清一区二区| 久久精品在线观看| 欧美午夜精品久久久| 国产毛片精品视频| 天堂va蜜桃一区二区三区 | 成人av电影在线观看| 亚洲国产成人av好男人在线观看| 久久免费的精品国产v∧| 欧美系列一区二区| 国产成人av一区二区三区在线| 亚洲一区二区三区国产| 国产欧美视频一区二区| 欧美精品日韩一区| 91老司机福利 在线| 黄色日韩网站视频| 日韩电影在线免费观看| 1000精品久久久久久久久| 欧美一级艳片视频免费观看| 99久久综合国产精品| 久久99精品一区二区三区| 亚洲第一搞黄网站| 国产精品激情偷乱一区二区∴| 欧美一区二区精品在线| 欧美在线免费播放| av网站一区二区三区| 国产真实乱子伦精品视频| 日韩精品欧美成人高清一区二区| 日韩一区有码在线| 国产精品伦理一区二区| 久久久精品国产99久久精品芒果| 69久久夜色精品国产69蝌蚪网| 欧美在线你懂的| 91亚洲精品一区二区乱码| 国产精品一区二区在线看| 久久99深爱久久99精品| 日本aⅴ免费视频一区二区三区 | 激情久久久久久久久久久久久久久久| 亚洲欧美激情在线| 中文字幕一区二区三区色视频| 精品国产乱码久久久久久1区2区| 欧美精品乱人伦久久久久久| 91女人视频在线观看| www.欧美日韩国产在线| 成人国产精品免费观看动漫| 国产一区视频在线看| 狠狠色丁香婷综合久久| 精品亚洲欧美一区| 毛片av一区二区| 麻豆国产欧美一区二区三区| 免费看日韩精品| 激情综合色播五月| 国产成人亚洲精品青草天美 | 美女一区二区三区在线观看| 丝袜诱惑制服诱惑色一区在线观看| 亚洲午夜激情网站| 日本不卡一区二区三区| 美女国产一区二区三区| 久久99深爱久久99精品| 国产毛片一区二区| av不卡一区二区三区| 91日韩一区二区三区| 欧美日韩免费在线视频| 欧美一区二区在线看| 精品日韩欧美在线| 国产蜜臀av在线一区二区三区| 欧美国产日韩亚洲一区| 亚洲精品乱码久久久久久久久| 亚洲v日本v欧美v久久精品| 蜜臂av日日欢夜夜爽一区| 国产精品99久久久久久久vr| 成人avav在线| 欧美三日本三级三级在线播放| 欧美一区二区三区视频在线观看| 久久婷婷综合激情| 中文字幕日韩一区| 五月激情综合婷婷| 国产aⅴ综合色| 色婷婷国产精品| 精品剧情在线观看| 亚洲丝袜制服诱惑| 美女视频黄免费的久久| 成人午夜视频福利| 欧美日韩国产欧美日美国产精品| 日韩精品一区二区三区在线观看| 国产欧美一区二区精品秋霞影院 | 亚洲欧美日韩一区二区三区在线观看| 亚洲品质自拍视频| 奇米一区二区三区| 成+人+亚洲+综合天堂| 91精品久久久久久久久99蜜臂| 国产视频一区在线播放| 亚洲一区二区四区蜜桃| 国产一二精品视频| 欧美四级电影在线观看| 国产香蕉久久精品综合网| 亚洲已满18点击进入久久| 国产成人在线色| 欧美二区乱c少妇| 国产精品国产精品国产专区不片| 五月综合激情婷婷六月色窝| 国产69精品一区二区亚洲孕妇| 欧美日韩在线观看一区二区 | 日本亚洲三级在线| 91亚洲精品一区二区乱码| 精品国产乱码久久久久久久久| 亚洲成人免费av| 99久久婷婷国产| 国产欧美一区二区精品忘忧草| 免费视频一区二区| 欧美日韩一区精品| 日韩毛片视频在线看| 国产成人综合精品三级| 精品国产区一区| 蜜臀久久99精品久久久久久9| 在线精品国精品国产尤物884a| 国产欧美日韩另类一区| 国产一区二区三区最好精华液| 欧美裸体一区二区三区| 亚洲综合视频在线观看| 91麻豆精东视频| 亚洲免费在线看| 97久久精品人人爽人人爽蜜臀| 国产日韩欧美高清在线| 国产精品一区二区视频| 久久综合久久综合亚洲| 美女一区二区视频| 精品免费视频一区二区| 蜜臂av日日欢夜夜爽一区| 69久久99精品久久久久婷婷| 午夜在线成人av| 欧美日韩专区在线| 亚洲国产成人av好男人在线观看| 91官网在线观看| 亚洲综合视频网| 欧美日韩国产小视频| 日韩av一区二区三区四区|