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

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

?? userio.v

?? Verilog, c and asm source codes of the Minimig system, a fpga implementation of the Amiga computer.
?? V
?? 第 1 頁 / 共 2 頁
字號(hào):
// Copyright 2006, 2007 Dennis van Weeren//// This file is part of Minimig//// Minimig is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 3 of the License, or// (at your option) any later version.//// Minimig is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program.  If not, see <http://www.gnu.org/licenses/>.//////// This is the user IO module// joystick signals are _joy[5:0]=[fire2,fire,up,down,left,right];//// 16-10-2005		-started coding// 17-10-2005		-added proper reset for mouse buttons/counters//				-improved mouse startup timing// 22-11-2005		-added joystick 1// 05-02-2006		-unused buttons of joystick port 2 are now high// 06-02-2006		-cleaned up code//				-added user output// 27-12-2006		-added joystick port 1 and automatic joystick/mouse switch//				-started coding osd display// 28-12-2006		-more osd display work done// 29-12-2006		-fixed some bugs in osd module// 30-12-2006		-cleaned up osd module, added osdctrl input//-----------------------------------------------------------------------------//JB:// 2008-06-17	- added osd control by joy2//				- spi8 rewritten to use spi clock//				- added highlight (inversion) of selected osd line//				- added user reset and reset to bootloader//				- added memory and interpolation filters configuration
// 2008-07-28	- added JOYTEST register to make it compatible with ALPHA1/SIRIAX intro/trainermodule userio(	input 	clk,		    		//bus clock	input 	reset,			   		//reset 	input	sol,					//start of video line	input	sof,					//start of video frame 	input 	[8:1] regaddress,		//register adress inputs	input	[15:0]datain,			//bus data in	output	reg [15:0]dataout,	//bus data out	inout	ps2mdat,				//mouse PS/2 data	inout	ps2mclk,				//mouse PS/2 clk	output	_fire0,					//joystick 0 fire output (to CIA)	output	_fire1,					//joystick 1 fire output (to CIA)	output	[2:0]user,			//user menu control [fire,up,down] (to Paula)	input	[5:0]_joy1,			//joystick 1 in (default mouse port)	input	[5:0]_joy2,			//joystick 2 in (default joystick port)	input	[3:0]osdctrl,			//OSD control (minimig->host, [menu,select,down,up])	input	_den,					//SPI enable	input	din,		  			//SPI data in	output	dout,	 				//SPI data out	input	dclk,	  				//SPI clock	output	osdblank,				//osd overlay, normal video blank output	output	osdpixel,				//osd video pixel	output	[1:0]lr_filter,	output	[1:0]hr_filter,	output	[1:0]memcfg,	output	usrrst,					//user reset from osd module	output	bootrst					//user reset to bootloader);//local signals	reg		[5:0]_sjoy1;				//synchronized joystick 1 signalsreg		[5:0]_xjoy2;				//synchronized joystick 2 signalswire	[5:0]_sjoy2;				//synchronized joystick 2 signalswire	[15:0]mouse0dat;			//mouse counterswire	_mleft,_mthird,_mright;	//mouse buttonsreg		joy1enable;					//joystick 1 enable (mouse/joy switch)reg		joy2enable;					//joystick 2 enable when no osdwire	osdenable;					//osd enablewire	[3:0]xosdctrl;			//JB: osd control lineswire	test_load;					//load test value to mouse counter wire	[15:0]test_data;			//mouse counter test value//register names and adresses		parameter JOY0DAT=9'h00a;parameter JOY1DAT=9'h00c;parameter POTINP=9'h016;parameter JOYTEST=9'h036;//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------											   //input synchronization of external signalsalways @(posedge clk)	_sjoy1[5:0]<=_joy1[5:0];	always @(posedge clk)	_xjoy2[5:0]<=_joy2[5:0];	//port 2 joystick disable in osdalways @(posedge clk)	if (osdenable)		joy2enable <= 0;	else if (_xjoy2[5:0] == 6'b11_1111)		joy2enable <= 1;assign _sjoy2[5:0] = joy2enable ? _xjoy2[5:0] : 6'b11_1111;assign xosdctrl[3] = osdctrl[3] | (~_xjoy2[2] & ~_xjoy2[3]);assign xosdctrl[2] = osdctrl[2] | (~_xjoy2[4] & ~joy2enable);assign xosdctrl[1] = osdctrl[1] | (~_xjoy2[2] & _xjoy2[3] & ~joy2enable);assign xosdctrl[0] = osdctrl[0] | (~_xjoy2[3] & _xjoy2[2] & ~joy2enable);//port 1 automatic mouse/joystick switchalways @(posedge clk)	if(!_mleft || reset)//when left mouse button pushed, switch to mouse (default)		joy1enable=0;	else if(!_sjoy1[4])//when joystick 1 fire pushed, switch to joystick		joy1enable=1;//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//data output multiplexeralways @(regaddress or joy1enable or _sjoy1 or mouse0dat or _sjoy2 or _mright or _mthird)	if((regaddress[8:1]==JOY0DAT[8:1]) && joy1enable)//read port 1 joystick		dataout[15:0]={6'b000000,~_sjoy1[1],_sjoy1[3]^_sjoy1[1],6'b000000,~_sjoy1[0],_sjoy1[2]^_sjoy1[0]};	else if(regaddress[8:1]==JOY0DAT[8:1])//read port 1 mouse		dataout[15:0]=mouse0dat[15:0];	else if(regaddress[8:1]==JOY1DAT[8:1])//read port 2 joystick		dataout[15:0]={6'b000000,~_sjoy2[1],_sjoy2[3]^_sjoy2[1],6'b000000,~_sjoy2[0],_sjoy2[2]^_sjoy2[0]};	else if(regaddress[8:1]==POTINP[8:1])//read mouse and joysticks extra buttons		dataout[15:0]={1'b0,_sjoy2[5],3'b010,_mright&_sjoy1[5],1'b0,_mthird,8'b00000000};	else		dataout[15:0]=16'h0000;//assign fire outputs to cia Aassign _fire1=_sjoy2[4];assign _fire0=_sjoy1[4]&_mleft;//assign user interface control signalsassign user[2:0]=~_sjoy2[4:2];//JB: some trainers writes to JOYTEST register to reset current mouse counterassign test_load = regaddress[8:1]==JOYTEST[8:1] ? 1 : 0;assign test_data = datain[15:0];//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//instantiate mouse controllerps2mouse pm1(	.clk(clk),	.reset(reset),	.ps2mdat(ps2mdat),	.ps2mclk(ps2mclk),	.ycount(mouse0dat[15:8]),	.xcount(mouse0dat[7:0]),	._mleft(_mleft),	._mthird(_mthird),	._mright(_mright),	.test_load(test_load),	.test_data(test_data));//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//instantiate osd controllerosd	osd1(	.clk(clk),	.reset(reset),	.sol(sol),	.sof(sof),	.osdctrl(xosdctrl),	._den(_den),	.din(din),	.dout(dout),	.dclk(dclk),	.osdblank(osdblank),	.osdpixel(osdpixel),	.osdenable(osdenable),	.lr_filter(lr_filter),	.hr_filter(hr_filter),	.memcfg(memcfg),	.usrrst(usrrst),	.bootrst(bootrst));//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------endmodule//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//on screen display controllermodule osd(	input 	clk,		    	//pixel clock	input	reset,				//reset	input	sol,				//start of video line	input	sof,				//start of video frame 	input	[3:0]osdctrl,		//OSD control (minimig->host, [menu,select,down,up])	input	_den,				//SPI enable	input	din,		  		//SPI data in	output	dout,	 			//SPI data out	input	dclk,	  			//SPI clock	output	osdblank,			//osd overlay, normal video blank output	output	osdpixel,			//osd video pixel	output	osdenable,			//osd enable	output	reg [1:0]lr_filter,	output	reg [1:0]hr_filter,	output	reg [1:0]memcfg,	output	usrrst,	output	bootrst);//local signalsreg		[8:0]horbeam;			//horizontal beamcounterreg		[8:0]verbeam;			//vertical beamcounterreg		[7:0]osdbuf[1023:0];	//osd video bufferwire	osdframe;				//true if beamcounters within osd framereg		[7:0]bufout;			//osd buffer read datareg 	osdenable1;				//osd display enable 1reg 	osdenable2;				//osd display enable 2 (synchronized to start of frame)reg 	[9:0]wraddr;			//osd buffer write addresswire	[7:0]wrdat;			//osd buffer write datawire	wren;					//osd buffer write enablereg		[3:0]highlight;		//highlighted line numberreg		invert;					//invertion of highlighted line//--------------------------------------------------------------------------------------//OSD video generator//--------------------------------------------------------------------------------------//osd local horizontal beamcounteralways @(posedge clk)	if (sol)		horbeam <= 0;	else		horbeam <= horbeam + 1;//osd local vertical beamcounteralways @(posedge clk)	if (sof)		verbeam<=0;	else if (sol)		verbeam <= verbeam + 1;//--------------------------------------------------------------------------------------//generate osd video framereg	hframe,vframe;//horizontal part..always @(posedge clk)	if (horbeam[8])		hframe <= 0;	else if (horbeam[7])		hframe <= 1;//vertical part..always @(posedge clk)	if (verbeam[7] && ~verbeam[6])		vframe <= 1;	else if (verbeam[0])		vframe <= 0;//combine..assign osdframe = vframe & hframe & osdenable2;always @(posedge clk)	if (~highlight[3] && verbeam[5:3]==highlight[2:0] && ~verbeam[6])		invert <= 1;	else if (verbeam[0])		invert <= 0;//--------------------------------------------------------------------------------------//assign osd blank and pixel outputsassign osdpixel = invert ^ bufout[verbeam[2:0]];assign osdblank = osdframe;//--------------------------------------------------------------------------------------//video buffer//--------------------------------------------------------------------------------------//dual ported osd video buffer//video buffer is 1024*8//this buffer should be a single blockramalways @(posedge clk)//input part	if (wren)		osdbuf[wraddr[9:0]] <= wrdat[7:0];		always @(posedge clk)//output part	bufout[7:0] <= osdbuf[{verbeam[5:3],horbeam[6:0]}];//--------------------------------------------------------------------------------------//interface to host//--------------------------------------------------------------------------------------wire	rx;wire	cmd;reg 	[2:0]spicmd;		//spi command//instantiate spi interfacespi8 spi0(	.clk(clk),	.scs(~_den),	.sdi(din),	.sdo(dout),	.sck(dclk),	.in({4'b0000,osdctrl[3:0]}),	.out(wrdat[7:0]),	.rx(rx),	.cmd(cmd));//command latch// commands are://// 8'b00000000 	nop// 8'b00100NNN 	write data to osd buffer line <NNN>// 8'b01000000	disable displaying of osd// 8'b01100000	enable displaying of osd// 8'b10000000	reset Minimig// 8'b10100000	read osdctrl (controls for osd)// 8'b1110HHLL	set interpolation filter status// 8'b111100MM	set memory configurationalways @(posedge clk)	if (rx && cmd)		spicmd <= wrdat[7:5];//filter configurationalways @(posedge clk)	if (rx && cmd && wrdat[7:4]==4'b1110)		{hr_filter[1:0],lr_filter[1:0]} <= wrdat[3:0];//memory configurationalways @(posedge clk)	if (rx && cmd && wrdat[7:4]==4'b1111)		memcfg[1:0] <= wrdat[1:0];//address counter and buffer write control (write line <NNN> command)always @(posedge clk)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜激情网站| 精品国产乱码久久久久久久久| 激情亚洲综合在线| 99免费精品在线观看| 精品乱码亚洲一区二区不卡| 亚洲综合成人在线视频| 在线观看亚洲精品| 欧美日韩免费观看一区二区三区| 欧美色大人视频| 欧美日韩一区 二区 三区 久久精品| 日韩精品一区在线| 亚洲第一福利一区| 一本色道**综合亚洲精品蜜桃冫| 久久婷婷国产综合精品青草| 亚洲自拍偷拍九九九| 91在线你懂得| 国产精品久久久爽爽爽麻豆色哟哟| 日日摸夜夜添夜夜添亚洲女人| a亚洲天堂av| 欧美精品一区二区三区视频| 天天色图综合网| 色狠狠一区二区| 亚洲美女淫视频| 欧美在线综合视频| 国产精品一级二级三级| 午夜精品久久久久久久99水蜜桃 | 精品三级在线看| 美女高潮久久久| 中文字幕视频一区| 日韩一级在线观看| 波多野结衣在线一区| 五月天激情综合网| 一区二区三区四区五区视频在线观看| 91精品国产高清一区二区三区 | 国产婷婷色一区二区三区 | 欧美挠脚心视频网站| aaa亚洲精品| 欧美日韩国产精选| 偷拍自拍另类欧美| 欧美日韩一区二区在线观看视频 | 日本一区二区三区国色天香| 国产精品18久久久久久久久久久久| 91精品麻豆日日躁夜夜躁| 成人午夜视频在线| 麻豆久久久久久久| 极品美女销魂一区二区三区免费| 日韩av电影免费观看高清完整版在线观看 | 丁香婷婷综合网| 日本视频一区二区三区| 国产91丝袜在线播放| 亚洲欧洲精品天堂一级| 成人性生交大片免费看中文| 国产日产精品1区| 成人国产电影网| 亚洲一区在线视频| 91精品国产综合久久福利| 五月天久久比比资源色| 精品欧美一区二区三区精品久久| 午夜av电影一区| 成人av网站免费观看| 国产精品美女久久久久av爽李琼| 不卡一二三区首页| 婷婷综合另类小说色区| 日韩精品资源二区在线| 成人黄色国产精品网站大全在线免费观看| 亚洲欧美在线视频| 欧美日韩国产免费一区二区| 久久精品免费观看| 亚洲少妇30p| 日韩欧美国产综合| 色呦呦国产精品| 免费成人av在线| 综合亚洲深深色噜噜狠狠网站| 欧美日韩国产成人在线91| 国产在线一区观看| 亚洲风情在线资源站| 国产欧美日产一区| 91精品综合久久久久久| 国产成人亚洲综合色影视| 亚洲国产精品天堂| 亚洲国产高清aⅴ视频| 欧美一区二区三区四区视频| www.日韩精品| 韩国三级中文字幕hd久久精品| 亚洲日本免费电影| 国产视频一区不卡| 日韩一区二区三区免费看 | 国产精品久久久久久福利一牛影视 | 亚洲综合图片区| 亚洲国产电影在线观看| 亚洲欧美一区二区三区极速播放 | 亚洲激情校园春色| 久久精品视频一区| 91精品国产综合久久婷婷香蕉 | av高清不卡在线| 国产欧美日韩在线观看| 国产成人小视频| 国产精品水嫩水嫩| 欧美性猛片aaaaaaa做受| 亚洲蜜桃精久久久久久久| 欧美午夜理伦三级在线观看| 亚洲第一综合色| 日韩你懂的电影在线观看| 欧美精彩视频一区二区三区| 久久不见久久见中文字幕免费| 777a∨成人精品桃花网| 国产一区二区美女诱惑| 欧美电影影音先锋| 国产精品福利一区二区| 激情小说亚洲一区| 中文字幕在线不卡一区二区三区| 欧洲一区在线电影| 在线欧美日韩精品| 久久久久亚洲综合| 1区2区3区欧美| 91在线免费视频观看| 波多野结衣中文字幕一区| 国产v日产∨综合v精品视频| 国产成人综合网站| 成人黄色av网站在线| 国产精品香蕉一区二区三区| 国产精品18久久久| 不卡一区中文字幕| 在线观看一区日韩| 欧美日韩美女一区二区| 日韩一级片在线观看| 日韩欧美国产wwwww| 国产亚洲精品aa午夜观看| 国产精品剧情在线亚洲| 亚洲欧美电影院| 亚洲第一搞黄网站| 狠狠色伊人亚洲综合成人| 国产精品亚洲专一区二区三区| 成人福利在线看| 在线精品观看国产| 欧美大尺度电影在线| 国产三级一区二区三区| 亚洲免费观看高清完整版在线| 一区二区三区精品视频在线| 国产美女精品在线| 国产精品1区2区| 99久久精品国产观看| 91久久精品网| 日韩午夜在线播放| 国产精品乱码妇女bbbb| 美日韩一区二区| 国产精品一区二区在线观看不卡| 不卡av电影在线播放| 欧美日韩高清一区二区不卡| 久久久久久久久久久久电影 | 国产sm精品调教视频网站| 99久久精品国产一区二区三区 | 色哟哟日韩精品| 欧美电影免费观看高清完整版在 | 99久久精品免费看| 91精品国产综合久久香蕉的特点| 欧美国产丝袜视频| 日韩在线播放一区二区| 9人人澡人人爽人人精品| 欧美一区二区久久久| 亚洲男同性恋视频| 国内久久精品视频| 欧美丰满少妇xxxxx高潮对白 | 天堂一区二区在线免费观看| 高清视频一区二区| 91精品在线一区二区| 亚洲视频每日更新| 激情图区综合网| 91精品视频网| 日韩美女久久久| 国产suv精品一区二区6| 日韩欧美一区二区不卡| 亚洲综合成人网| 91一区二区三区在线观看| 精品99999| 欧美a一区二区| 欧美性色黄大片| 成人免费小视频| 成人激情免费视频| 久久免费美女视频| 免费成人在线网站| 欧美三级欧美一级| 亚洲欧美国产三级| 99re这里都是精品| 国产精品视频免费| 国产精品欧美一区二区三区| 91精品国产高清一区二区三区| 7777女厕盗摄久久久| 一区二区激情视频| 91麻豆123| 中文字幕一区日韩精品欧美| 国产成人免费在线观看不卡| 日韩欧美一区在线| 婷婷夜色潮精品综合在线| 欧美性受xxxx黑人xyx性爽| 亚洲精品久久久久久国产精华液 | 成人av在线观| 中文字幕一区二区三区视频 | 7777精品伊人久久久大香线蕉超级流畅| 亚洲柠檬福利资源导航|