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

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

?? cia8520.v

?? Verilog, c and asm source codes of the Minimig system, a fpga implementation of the Amiga computer.
?? V
?? 第 1 頁 / 共 2 頁
字號:
);//----------------------------------------------------------------------------------//instantiate timer A//----------------------------------------------------------------------------------timera tmra(	.clk(clk),	.wr(wr),	.reset(reset),	.tlo(talo),	.thi(tahi),	.tcr(cra),	.datain(datain),	.dataout(tmraout),	.eclk(e),	.tmra_ovf(tmra_ovf),	.irq(ta) );//----------------------------------------------------------------------------------//instantiate timer B//----------------------------------------------------------------------------------timerb tmrb(	.clk(clk),	.wr(wr),	.reset(reset),	.tlo(tblo),	.thi(tbhi),	.tcr(crb),	.datain(datain),	.dataout(tmrbout),	.eclk(e),	.tmra_ovf(tmra_ovf),	.irq(tb));//----------------------------------------------------------------------------------//instantiate timer D//----------------------------------------------------------------------------------timerd tmrd (	.clk(clk),	.wr(wr),	.reset(reset),	.tlo(tdlo),	.tme(tdme),	.thi(tdhi),	.tcr(crb),	.datain(datain),	.dataout(tmrdout),	.count(tick),	.irq(alrm)); endmodule//----------------------------------------------------------------------------------//----------------------------------------------------------------------------------//interrupt control//----------------------------------------------------------------------------------//----------------------------------------------------------------------------------module ciaint(	input 	clk,	  			//clock	input	wr,					//write enable	input 	reset, 				//reset	input 	icrs,				//intterupt control register select	input	ta,					//ta (set TA bit in ICR register)	input	tb,				    //tb (set TB bit in ICR register)	input	alrm,	 			//alrm (set ALRM bit ICR register)	input 	flag, 				//flag (set FLG bit in ICR register)	input 	ser,				//ser (set SP bit in ICR register)	input 	[7:0]datain,		//bus data in	output 	reg [7:0]dataout,	//bus data out	output	irq					//intterupt out);	reg		[4:0]icr;				//interrupt register	reg		[4:0]icrmask;			//interrupt mask register//reading of interrupt data register always @(wr or irq or icrs or icr)	if(icrs && !wr)		dataout[7:0] = {irq,2'b0,icr[4:0]};	else		dataout[7:0] = 0;//writing of interrupt mask registeralways @(posedge clk)	if(reset)		icrmask[4:0] <= 0;	else if(icrs && wr)	begin		if(datain[7])			icrmask[4:0] <= icrmask[4:0] | datain[4:0];		else			icrmask[4:0] <= icrmask[4:0] & (~datain[4:0]);	end//register new interrupts and/or changes by user readsalways @(posedge clk)	if(reset)//synchronous reset			icr[4:0] <= 0;	else	if (icrs && !wr)	begin//clear latched intterupts on read		icr[0] <= ta;				//timer a		icr[1] <= tb;				//timer b		icr[2] <= alrm;   		//timer tod		icr[3] <= ser;	 		//external ser input		icr[4] <= flag;			//external flag input	end	else	begin//keep latched intterupts		icr[0] <= icr[0]|ta;		//timer a		icr[1] <= icr[1]|tb;		//timer b		icr[2] <= icr[2]|alrm;	//timer tod		icr[3] <= icr[3]|ser;	//external ser input		icr[4] <= icr[4]|flag;	//external flag input	end//generate irq output (interrupt request)assign irq 	= (icrmask[0]&icr[0]) 			| (icrmask[1]&icr[1])			| (icrmask[2]&icr[2])			| (icrmask[3]&icr[3])			| (icrmask[4]&icr[4]);endmodule//----------------------------------------------------------------------------------//timer A/B//----------------------------------------------------------------------------------module timera(	input 	clk,	  				//clock	input	wr,						//write enable	input 	reset, 					//reset	input 	tlo,					//timer low byte select	input	thi,		 			//timer high byte select	input	tcr,					//timer control register	input 	[7:0]datain,			//bus data in	output 	[7:0]dataout,			//bus data out	input	eclk,	  				//count enable	output	tmra_ovf,				//timer A underflow	output	spmode,					//serial port mode	output	start,					//timer start (enable)	output	irq						//intterupt out);	reg		[15:0]tmr;			//timer 	reg		[7:0]tmlh;			//timer latch high byte	reg		[7:0]tmll;			//timer latch low byte	reg		[6:0]tmcr;			//timer control register	reg		forceload;				//force load strobe	wire	oneshot;				//oneshot mode	//wire	start;					//timer start (enable)	reg		oneshot_load;    		//load tmr after writing thi in one-shot mode	wire	reload;					//reload timer counter	wire	zero;					//timer counter is zero	wire	underflow;				//timer is going to underflow	wire	count;					//count enable signal	//count enable signal	assign count = eclk;	//writing timer control registeralways @(posedge clk)	if(reset)	//synchronous reset		tmcr[6:0] <= 0;	else if (tcr && wr)	//load control register, bit 4(strobe) is always 0		tmcr[6:0] <= {datain[6:5],1'b0,datain[3:0]};	else if (oneshot_load)	//start timer if thi is written in one-shot mode		tmcr[0] <= 1;	else if (underflow && oneshot) //stop timer in one-shot mode		tmcr[0] <= 0;always @(posedge clk)	forceload <= tcr & wr & datain[4];	//force load strobe 	assign oneshot = tmcr[3];		//oneshot aliasassign start = tmcr[0];		//start aliasassign spmode = tmcr[6];		//serial port mode (0-input, 1-output)//timer A latches for high and low bytealways @(posedge clk)	if (reset)		tmll[7:0] <= 8'b11111111;	else if (tlo && wr)		tmll[7:0] <= datain[7:0];		always @(posedge clk)	if (reset)		tmlh[7:0] <= 8'b11111111;	else if (thi && wr)		tmlh[7:0] <= datain[7:0];//thi is written in one-shot mode so tmr must be reloadedalways @(posedge clk)	oneshot_load <= thi & wr & oneshot;//timer counter reload signalassign reload = oneshot_load | forceload | underflow;//timer counter	always @(posedge clk)	if (reset)		tmr[15:0] <= 0;	else if (reload)		tmr[15:0] <= {tmlh[7:0],tmll[7:0]};	else if (start && count)		tmr[15:0] <= tmr[15:0] - 1;//timer counter equals zero		assign zero = ~|tmr;		//timer counter is going to underflowassign underflow = zero & start & count;//Timer A underflow signal for Timer Bassign tmra_ovf = underflow;//timer underflow interrupt requestassign irq = underflow;//data outputassign dataout[7:0] = ({8{~wr&tlo}} & tmr[7:0]) 					  | ({8{~wr&thi}} & tmr[15:8])					  | ({8{~wr&tcr}} & {1'b0,tmcr[6:0]});						endmodulemodule timerb(	input 	clk,	  				//clock	input	wr,						//write enable	input 	reset, 					//reset	input 	tlo,					//timer low byte select	input	thi,		 			//timer high byte select	input	tcr,					//timer control register	input 	[7:0]datain,			//bus data in	output 	[7:0]dataout,			//bus data out	input	eclk,	  				//count enable	input	tmra_ovf,			//timer A underflow	output	irq						//intterupt out);	reg		[15:0]tmr;			//timer 	reg		[7:0]tmlh;			//timer latch high byte	reg		[7:0]tmll;			//timer latch low byte	reg		[6:0]tmcr;			//timer control register	reg		forceload;				//force load strobe	wire	oneshot;				//oneshot mode	wire	start;					//timer start (enable)	reg		oneshot_load; 			//load tmr after writing thi in one-shot mode	wire	reload;					//reload timer counter	wire	zero;					//timer counter is zero	wire	underflow;				//timer is going to underflow	wire	count;					//count enable signal//Timer B count signal sourceassign count = tmcr[6] ? tmra_ovf : eclk;//writing timer control registeralways @(posedge clk)	if(reset)	//synchronous reset		tmcr[6:0] <= 0;	else if (tcr && wr)	//load control register, bit 4(strobe) is always 0		tmcr[6:0] <= {datain[6:5],1'b0,datain[3:0]};	else if (oneshot_load)	//start timer if thi is written in one-shot mode		tmcr[0] <= 1;	else if (underflow && oneshot) //stop timer in one-shot mode		tmcr[0] <= 0;always @(posedge clk)	forceload <= tcr & wr & datain[4];	//force load strobe 	assign oneshot = tmcr[3];					//oneshot aliasassign start = tmcr[0];					//start alias//timer B latches for high and low bytealways @(posedge clk)	if (reset)		tmll[7:0] <= 8'b11111111;	else if (tlo && wr)		tmll[7:0] <= datain[7:0];		always @(posedge clk)	if (reset)		tmlh[7:0] <= 8'b11111111;	else if (thi && wr)		tmlh[7:0] <= datain[7:0];//thi is written in one-shot mode so tmr must be reloadedalways @(posedge clk)	oneshot_load <= thi & wr & oneshot;//timer counter reload signalassign reload = oneshot_load | forceload | underflow;//timer counter	always @(posedge clk)	if (reset)		tmr[15:0] <= 0;	else if (reload)		tmr[15:0] <= {tmlh[7:0],tmll[7:0]};	else if (start && count)		tmr[15:0] <= tmr[15:0] - 1;//timer counter equals zero		assign zero = ~|tmr;		//timer counter is going to underflowassign underflow = zero & start & count;//timer underflow interrupt requestassign irq = underflow;//data outputassign dataout[7:0] = ({8{~wr&tlo}} & tmr[7:0]) 				| ({8{~wr&thi}} & tmr[15:8])				| ({8{~wr&tcr}} & {1'b0,tmcr[6:0]});						endmodule//----------------------------------------------------------------------------------//----------------------------------------------------------------------------------//timer D//----------------------------------------------------------------------------------//----------------------------------------------------------------------------------module timerd(	input 	clk,	  				//clock	input	wr,						//write enable	input 	reset, 					//reset	input 	tlo,					//timer low byte select	input 	tme,					//timer mid byte select	input	thi,		 			//timer high byte select	input	tcr,					//timer control register	input 	[7:0]datain,			//bus data in	output 	reg [7:0]dataout,		//bus data out	input	count,	  				//count enable	output	reg irq					//intterupt out);	reg		le;						//timer d output latch enable	reg 	ce;						//timer d count enable	reg		crb7;					//bit 7 of control register B	reg		[23:0]tod;			//timer d	reg		[23:0]alarm;			//alarm	reg		[15:0]todl;			//timer d latch//timer D output latch controlalways @(posedge clk)	if(reset)		le <= 1;	else if(!wr)	begin		if(thi)//if MSB read, hold data for subsequent reads			le <= 0;		else if (tlo)//if LSB read, update data every clock			le <= 1;	endalways @(posedge clk)	if(le)		todl[15:0] <= tod[15:0];//timer D and crb7 read always @(wr or tlo or tme or thi or tcr or tod or todl or crb7)	if (!wr)	begin		if(thi)//high byte of timer D			dataout[7:0] = tod[23:16];		else if (tme)//medium byte of timer D (latched)			dataout[7:0] = todl[15:8];		else if (tlo)//low byte of timer D (latched)			dataout[7:0] = todl[7:0];		else if (tcr)//bit 7 of crb			dataout[7:0] = {crb7,7'b0000000};		else			dataout[7:0] = 0;	end	else		dataout[7:0] = 0;  //timer D count enable controlalways @(posedge clk)	if(reset)		ce <= 1;	else if(wr && !crb7)//crb7==0 enables writing to TOD counter	begin		if(thi || tme)//stop counting			ce <= 0;		else if(tlo)//write to LSB starts counting again			ce <= 1;				end//timer D counteralways @(posedge clk)	if(reset)//synchronous reset	begin		tod[7:0] <= 0;		tod[15:8] <= 0;		tod[23:16] <= 0;	end	else if(wr && !crb7)//crb7==0 enables writing to TOD counter	begin		if(tlo)			tod[7:0] <= datain[7:0];		if(tme)			tod[15:8] <= datain[7:0];		if(thi)			tod[23:16] <= datain[7:0];	end	else if(ce && count)		tod[23:0] <= tod[23:0]+1;//alarm writealways @(posedge clk)	if(reset)//synchronous (p)reset	begin		alarm[7:0] <= 8'b11111111;		alarm[15:8] <= 8'b11111111;		alarm[23:16] <= 8'b11111111;	end	else if(wr && crb7)//crb7==1 enables writing to ALARM	begin		if(tlo)			alarm[7:0] <= datain[7:0];		if(tme)			alarm[15:8] <= datain[7:0];		if(thi)			alarm[23:16] <= datain[7:0];	end//crb7 writealways @(posedge clk)	if (reset)		crb7 <= 0;	else if(wr && tcr)		crb7 <= datain[7];//alarm interruptalways @(tod or alarm or count)	if( (tod[23:0]==alarm[23:0]) && count)		irq = 1;	else 		irq = 0;endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服丝袜亚洲色图| 中文字幕在线一区| 亚洲视频一区二区在线观看| 性做久久久久久免费观看| 国产成人免费在线观看| 3atv一区二区三区| 伊人婷婷欧美激情| 国产麻豆精品视频| 日韩欧美一卡二卡| 亚洲成在人线免费| 91在线一区二区| 久久九九影视网| 免费欧美日韩国产三级电影| 在线观看一区二区视频| 国产精品九色蝌蚪自拍| 国产一区二区日韩精品| 欧美不卡123| 青青草成人在线观看| 欧美日韩在线不卡| 夜夜揉揉日日人人青青一国产精品 | 成人永久看片免费视频天堂| 日韩欧美精品三级| 调教+趴+乳夹+国产+精品| 色婷婷激情综合| 国产精品成人一区二区艾草 | 日韩免费电影网站| 天天影视色香欲综合网老头| 精品视频一区三区九区| 亚洲精品国久久99热| 91片在线免费观看| 中文字幕视频一区二区三区久| 国产成人精品一区二区三区网站观看| 日韩一区二区麻豆国产| 麻豆成人在线观看| 2021国产精品久久精品| 精品一区二区三区免费观看| 精品国产一区二区三区不卡 | www.欧美日韩| 国产精品视频观看| 97se亚洲国产综合在线| 亚洲综合小说图片| 欧美美女一区二区| 裸体一区二区三区| 亚洲精品一区二区三区四区高清| 久久精品99久久久| 国产亚洲欧洲一区高清在线观看| 国产成人综合在线观看| 亚洲日本一区二区| 欧美日韩一区精品| 蜜桃av噜噜一区| 国产丝袜欧美中文另类| jlzzjlzz亚洲女人18| 亚洲免费毛片网站| 欧美一二三四在线| 成人精品鲁一区一区二区| 亚洲乱码精品一二三四区日韩在线 | 亚洲欧美日韩国产综合在线 | 欧美变态凌虐bdsm| 成人免费va视频| 亚洲第一福利视频在线| 精品久久久久av影院| 99国产精品国产精品久久| 亚洲最新在线观看| 亚洲精品一区二区三区香蕉| 色综合天天狠狠| 狠狠色狠狠色综合系列| 国产精品成人在线观看| 日韩视频免费观看高清完整版| 国产91精品久久久久久久网曝门| 亚洲国产一区视频| 国产人妖乱国产精品人妖| 欧洲亚洲精品在线| 国产另类ts人妖一区二区| 亚洲综合网站在线观看| 国产婷婷色一区二区三区| 欧美午夜免费电影| 国产乱码精品1区2区3区| 亚洲一区二区三区四区在线观看| 日韩精品最新网址| 欧美性猛片xxxx免费看久爱| 国产精品自在欧美一区| 亚洲乱码国产乱码精品精小说 | 国产精品成人免费| 日韩精品一区二区三区中文不卡 | 自拍偷拍国产精品| 久久亚洲捆绑美女| 欧美精品一级二级| 91蜜桃网址入口| 国内精品伊人久久久久av影院| 亚洲综合色丁香婷婷六月图片| 精品国产乱码久久久久久影片| 在线观看亚洲a| 高清av一区二区| 麻豆91在线观看| 亚洲综合一区二区三区| 国产精品色哟哟网站| 精品理论电影在线| 69堂精品视频| 欧美日韩黄色影视| 99精品视频一区二区| 国产91在线观看丝袜| 黄色精品一二区| 麻豆国产精品一区二区三区| 日本怡春院一区二区| 丝袜脚交一区二区| 亚洲电影第三页| 亚洲最新视频在线观看| 亚洲精品自拍动漫在线| 亚洲美女视频在线观看| 日韩理论片一区二区| 国产欧美精品一区二区色综合朱莉 | 国产精品午夜在线观看| 26uuu精品一区二区在线观看| 91精品欧美福利在线观看| 欧美日韩午夜在线| 欧美性生活大片视频| 欧美自拍偷拍一区| 在线观看欧美精品| 欧美日韩中字一区| 5858s免费视频成人| 91精品国产色综合久久ai换脸| 欧美日韩一卡二卡| 欧美一二三区在线| 26uuu欧美| 亚洲欧洲av另类| 亚洲一区二区三区中文字幕在线 | 欧美精品色一区二区三区| 制服丝袜在线91| 国产亚洲综合色| 国产精品私人影院| 一区二区三区免费| 日本免费在线视频不卡一不卡二| 久久99久久99小草精品免视看| 韩国精品主播一区二区在线观看| 国产最新精品精品你懂的| 福利电影一区二区| 色悠悠久久综合| 欧美日韩精品综合在线| 精品国产99国产精品| 国产精品午夜免费| 亚洲欧美乱综合| 日韩精品1区2区3区| 国内成人精品2018免费看| eeuss鲁一区二区三区| 欧美日韩小视频| 久久综合九色综合97婷婷女人 | 91丨porny丨蝌蚪视频| 91黄视频在线观看| 日韩精品一区二区三区视频播放| 欧美国产日韩亚洲一区| 亚洲精品久久嫩草网站秘色| 三级在线观看一区二区| 成人黄色小视频| 精品视频一区二区不卡| 久久香蕉国产线看观看99| 日韩伦理电影网| 狠狠色综合播放一区二区| 色94色欧美sute亚洲13| 精品成a人在线观看| 亚洲欧美日韩精品久久久久| 久久99精品国产.久久久久 | 中文字幕在线不卡视频| 日本中文字幕不卡| 91丨九色丨蝌蚪丨老版| 久久婷婷久久一区二区三区| 亚洲精品五月天| 国产黑丝在线一区二区三区| 欧美日韩一二三区| 亚洲一区二区三区激情| 激情综合亚洲精品| 欧美亚洲综合久久| 国产精品乱码一区二三区小蝌蚪| 日本成人中文字幕在线视频| 91麻豆免费视频| 国产婷婷色一区二区三区| 免费在线看一区| 欧美午夜一区二区三区免费大片| 欧美激情一区在线观看| 寂寞少妇一区二区三区| 在线成人午夜影院| 亚洲一级在线观看| 91成人在线观看喷潮| 中文字幕制服丝袜成人av| 国产91精品一区二区麻豆亚洲| 精品成人a区在线观看| 免费成人性网站| 欧美一区二区三区公司| 天天综合色天天综合色h| 精品视频在线免费看| 亚洲一区在线观看视频| 色噜噜狠狠色综合中国| 亚洲欧美国产毛片在线| 99精品久久久久久| 中文字幕第一区二区| 国产成人一级电影| 国产精品久久久久毛片软件| 高清免费成人av| 国产精品不卡视频| 99久久综合狠狠综合久久| 中文字幕国产精品一区二区|