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

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

?? blitter.v

?? Verilog, c and asm source codes of the Minimig system, a fpga implementation of the Amiga computer.
?? V
?? 第 1 頁 / 共 3 頁
字號:
				chs=CHB;				if(bltcon0[9])					bltnext=BLT_NB_3;				else					bltnext=BLT_NB_4;				end		BLT_NB_3://normal blitter operation cycle 3 (always dma, skipped otherwise)			begin				acn={2'b10,lwt,1'b1};				scn=5'b00001;				chs=CHC;				bltnext=BLT_NB_4;				end		BLT_NB_4://normal blitter operation cycle 4			begin				if(bltcon0[8] && bbusyd)//DMA (only if not first cycle)					acn={2'b10,lwtd,1'b1};				else//internal					acn=4'b0x00;				scn={3'b000,~bbusyd,1'b1};//if first (dummy) cycle, set blitter zero flag					chs=CHD;				bltnext=BLT_NB_1;				end		default://unknown state, go back to reset state			begin				//-----IDRZB				scn=5'bxxxx1;				//-----RBMA				acn=4'b0xxx;				chs=2'bxx;				bltnext=BLT_DONE;			end	endcase			end//--------------------------------------------------------------------------------------endmodule//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//Blitter barrel shifter//This module can shift 0-15 positions/bits to the right (normal mode) or to the left//(descending mode). Inputs are two words, <new> and <old>.//For example, when shifting <new> to the right,//the bits to the left are filled with <old>. The bits of <new> that //are shifted out are discarded.  module bltshift(	input	desc,				//select descending mode (shift to the left)	input	[3:0]sh,			//shift value (0 to 15)	input 	[15:0]new,		//barrel shifter data in	input 	[15:0]old,		//barrel shifter data in	output	reg [15:0]out		//barrel shifter data out);//local signalswire		[30:0]bshiftin;		//barrel shifter inputwire		[3:0]bsh;				//barrel shift value//cross multiplexer feeding barrelshifterassign bshiftin[30:0]=(desc)?{new[15:0],old[15:1]}:{old[14:0],new[15:0]};//shift value generator for barrel shifterassign bsh[3:0]=(desc)?(~sh[3:0]):sh[3:0];//actual barrel shifteralways @(bsh or bshiftin)	case(bsh[3:0])		0:	out[15:0]=bshiftin[15:0];		1:	out[15:0]=bshiftin[16:1];		2:	out[15:0]=bshiftin[17:2];		3:	out[15:0]=bshiftin[18:3];		4:	out[15:0]=bshiftin[19:4];		5:	out[15:0]=bshiftin[20:5];		6:	out[15:0]=bshiftin[21:6];		7:	out[15:0]=bshiftin[22:7];		8:	out[15:0]=bshiftin[23:8];		9:	out[15:0]=bshiftin[24:9];		10:	out[15:0]=bshiftin[25:10];		11:	out[15:0]=bshiftin[26:11];		12:	out[15:0]=bshiftin[27:12];		13:	out[15:0]=bshiftin[28:13];		14:	out[15:0]=bshiftin[29:14];		15:	out[15:0]=bshiftin[30:15]; 	endcaseendmodule//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//Blitter minterm function generator//The minterm function generator takes <ain>,<bin> and <cin> //and checks every logic combination against the LF control byte.//If a combination is marked as 1 in the LF byte, the ouput will//also be 1, else the output is 0.module bltminterm(	input	[7:0]lf,			//LF control byte	input	[15:0]ain,		//A channel in	input	[15:0]bin,		//B channel in	input	[15:0]cin,		//C channel in	output	[15:0]out			//function generator output);reg		[15:0]mt0;			//minterm 0reg		[15:0]mt1;			//minterm 1reg		[15:0]mt2;			//minterm 2reg		[15:0]mt3;			//minterm 3reg		[15:0]mt4;			//minterm 4reg		[15:0]mt5;			//minterm 5reg		[15:0]mt6;			//minterm 6reg		[15:0]mt7;			//minterm 7//Minterm generator for each bit. The code inside the loop //describes one bit. The loop is 'unrolled' by the //synthesizer to cover all 16 bits in the word.integer j;always @(ain or bin or cin or lf)	for(j=15;j>=0;j=j-1)	begin		mt0[j]=(~ain[j])&(~bin[j])&(~cin[j])&lf[0];		mt1[j]=(~ain[j])&(~bin[j])&( cin[j])&lf[1];		mt2[j]=(~ain[j])&( bin[j])&(~cin[j])&lf[2];		mt3[j]=(~ain[j])&( bin[j])&( cin[j])&lf[3];		mt4[j]=( ain[j])&(~bin[j])&(~cin[j])&lf[4];		mt5[j]=( ain[j])&(~bin[j])&( cin[j])&lf[5];		mt6[j]=( ain[j])&( bin[j])&(~cin[j])&lf[6];		mt7[j]=( ain[j])&( bin[j])&( cin[j])&lf[7];	end//Generate function generator output by or-ing all//minterms together.assign out=mt0|mt1|mt2|mt3|mt4|mt5|mt6|mt7;endmodule		//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//Blitter fill logic//The fill logic module has 2 modes, inclusive fill and exclusive fill.//Both share the same xor operation but in inclusive fill mode,//the output of the xor-filler is or-ed with the input data.	module bltfill(	input	ife,					//inclusive fill enable	input	efe,					//exclusive fill enable	input	fci,					//fill carry input	output	fco,					//fill carry output	input	[15:0]in,				//data in	output	reg [15:0]out			//data out);//local signalsreg		[15:0]carry;//generate all fill carry'sinteger j;always @(fci or in[0])//least significant bit	carry[0]=fci^in[0];		always @(in or carry)//rest of bits	for(j=1;j<=15;j=j+1)		carry[j]=carry[j-1]^in[j];//fill carry outputassign fco=carry[15];//fill data outputalways @(ife or efe or carry or in)	if(efe)//exclusive fill		out[15:0]=carry[15:0];	else if(ife)//inclusive fill		out[15:0]=carry[15:0]|in[15:0];	else//bypass, no filling		out[15:0]=in[15:0];endmodule//--------------------------------------------------------------------------------------//--------------------------------------------------------------------------------------//Blitter address generator//This module generates the addresses for blitter DMA//It has 4 21bit pointer registers, 4 16bit modulo //registers and an ALU that can add and subtract//alu function codes bits [3:2]://00 = bypass (no operation)//01 = bypass (no operation)//10 = add modulo //11 = subtract modulo //alu function codes bits [1:0]://00 = bypass (no operation)//01 = bypass (no operation)//10 = add 2 (next word)//11 = subtract 2 (previous word)////when modb=1, address pointer selection remains unchanged but modulo selection is as follows://chs[1:0]	modb=0	modb=1//2'b00		A		B//2'b01		B		B//2'b10 	C		C//2'b11 	D		Cmodule bltaddress(	input	clk,					//bus clock	input	reset,					//reset	input	enable,					//cycle enable input	input	modb,					//always select modulo B or C (dependening of chs[1])	input	[1:0]chs,				//channel select	input	[3:0]alu,				//ALU function select	output	signout,				//sign output (used for line mode)	input	[15:0]datain,			//bus data in	input	[8:1]regaddressin,	//register address input	output	reg [20:1]addressout	//generated address out);//register names and addressesparameter BLTAMOD=9'h064;parameter BLTBMOD=9'h062;parameter BLTCMOD=9'h060;parameter BLTDMOD=9'h066;parameter BLTAPTH=9'h050;parameter BLTAPTL=9'h052;parameter BLTBPTH=9'h04c;parameter BLTBPTL=9'h04e;parameter BLTCPTH=9'h048;parameter BLTCPTL=9'h04a;parameter BLTDPTH=9'h054;parameter BLTDPTL=9'h056;//local signalsreg		[15:1]bltamod;		//blitter modulo for source Areg		[15:1]bltbmod;		//blitter modulo for source Breg		[15:1]bltcmod;		//blitter modulo for source Creg		[15:1]bltdmod;		//blitter modulo for destination Dreg		[20:1]bltapt;			//blitter pointer Areg		[20:1]bltbpt;			//blitter pointer Breg		[20:1]bltcpt;			//blitter pointer Creg		[20:1]bltdpt;			//blitter pointer Dreg		[20:1]newpt;			//new pointer				reg		[15:1]modulo;			//modulo//--------------------------------------------------------------------------------------//writing of bltamod from busalways @(posedge clk)	if(reset)		bltamod[15:1]<=0;	else if (regaddressin[8:1]==BLTAMOD[8:1])		bltamod[15:1]<=datain[15:1];//writing of bltbmod from busalways @(posedge clk)	if(reset)		bltbmod[15:1]<=0;	else if (regaddressin[8:1]==BLTBMOD[8:1])		bltbmod[15:1]<=datain[15:1];//writing of bltcmod from busalways @(posedge clk)	if(reset)		bltcmod[15:1]<=0;	else if (regaddressin[8:1]==BLTCMOD[8:1])		bltcmod[15:1]<=datain[15:1];//writing of bltdmod from busalways @(posedge clk)	if(reset)		bltdmod[15:1]<=0;	else if (regaddressin[8:1]==BLTDMOD[8:1])		bltdmod[15:1]<=datain[15:1];//--------------------------------------------------------------------------------------//pointer bank input multiplexerwire	[20:1]ptin;assign ptin[20:1]=(enable)?newpt[20:1]:{datain[4:0],datain[15:1]};//writing of blitter pointer Aalways @(posedge clk)	if((enable && (chs[1:0]==2'b00)) || (regaddressin[8:1]==BLTAPTH[8:1]))		bltapt[20:16]<=ptin[20:16];always @(posedge clk)	if((enable && (chs[1:0]==2'b00)) || (regaddressin[8:1]==BLTAPTL[8:1]))		bltapt[15:1]<=ptin[15:1];//writing of blitter pointer Balways @(posedge clk)	if((enable && (chs[1:0]==2'b01)) || (regaddressin[8:1]==BLTBPTH[8:1]))		bltbpt[20:16]<=ptin[20:16];always @(posedge clk)	if((enable && (chs[1:0]==2'b01)) || (regaddressin[8:1]==BLTBPTL[8:1]))		bltbpt[15:1]<=ptin[15:1];//writing of blitter pointer Calways @(posedge clk)	if((enable && (chs[1:0]==2'b10)) || (regaddressin[8:1]==BLTCPTH[8:1]))		bltcpt[20:16]<=ptin[20:16];always @(posedge clk)	if((enable && (chs[1:0]==2'b10)) || (regaddressin[8:1]==BLTCPTL[8:1]))		bltcpt[15:1]<=ptin[15:1];//writing of blitter pointer Dalways @(posedge clk)	if((enable && (chs[1:0]==2'b11)) || (regaddressin[8:1]==BLTDPTH[8:1]))		bltdpt[20:16]<=ptin[20:16];always @(posedge clk)	if((enable && (chs[1:0]==2'b11)) || (regaddressin[8:1]==BLTDPTL[8:1]))		bltdpt[15:1]<=ptin[15:1];//--------------------------------------------------------------------------------------//address output multiplexeralways @(chs or bltapt or bltbpt or bltcpt or bltdpt)	case(chs[1:0])		2'b00://channel A			addressout[20:1]=bltapt;		2'b01://channel B			addressout[20:1]=bltbpt;		2'b10://channel C			addressout[20:1]=bltcpt;		2'b11://channel D			addressout[20:1]=bltdpt;	endcase	    //--------------------------------------------------------------------------------------//modulo multiplexerwire [1:0]msel;assign msel[1:0]=(modb)?{chs[1],~chs[1]}:chs[1:0];always @(msel or bltamod or bltbmod or bltcmod or bltdmod)	case(msel[1:0])		2'b00://channel A			modulo[15:1]=bltamod[15:1];		2'b01://channel B			modulo[15:1]=bltbmod[15:1];		2'b10://channel C			modulo[15:1]=bltcmod[15:1];		2'b11://channel D			modulo[15:1]=bltdmod[15:1];	endcase//--------------------------------------------------------------------------------------//ALU//The ALU calculates a new address pointer based on the value of modulo//and the selected ALU operationreg [20:1]npt;//first adder/subtracteralways @(alu or addressout)	case(alu[1:0])		2'b10:	npt[20:1]=addressout[20:1]+20'h1;	// + 1		2'b11:	npt[20:1]=addressout[20:1]-20'h1;	// - 1 		default:	npt[20:1]=addressout[20:1];		// bypass 		endcase//second adder/subtracteralways @(alu or npt or modulo)	case(alu[3:2])		2'b10:	newpt[20:1]=npt[20:1]+{modulo[15],modulo[15],modulo[15],modulo[15],modulo[15],modulo[15:1]};	// + modulo		2'b11:	newpt[20:1]=npt[20:1]-{modulo[15],modulo[15],modulo[15],modulo[15],modulo[15],modulo[15:1]};	// - modulo 		default:	newpt[20:1]=npt[20:1];			// bypass 		endcase//sign outputassign signout=newpt[15];endmodule	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线综合视频| 亚洲综合清纯丝袜自拍| 综合激情网...| 处破女av一区二区| 日韩精品一区二区三区四区视频| 亚洲国产精品人人做人人爽| 欧美一区二区三区白人| 国产成人精品免费在线| 亚洲国产视频a| 亚洲高清在线精品| 亚洲在线中文字幕| 亚洲一区二区三区视频在线播放| 亚洲欧美乱综合| 精品国产一区二区三区忘忧草 | 欧美日韩三级视频| 九九精品视频在线看| 亚洲同性gay激情无套| 亚洲精品欧美综合四区| 国产日韩欧美一区二区三区乱码| 色婷婷亚洲精品| 国产在线视频一区二区三区| 亚洲蜜臀av乱码久久精品 | 色综合咪咪久久| 欧美日韩一区二区欧美激情| 欧美一区二区三区在线电影| 久久综合久久久久88| 欧美二区乱c少妇| 99re这里只有精品视频首页| 美腿丝袜一区二区三区| 亚洲女人小视频在线观看| 亚洲国产乱码最新视频| 国产在线播精品第三| 日本va欧美va瓶| 亚洲一区二区高清| 久久99国产精品久久| 不卡欧美aaaaa| 成人精品一区二区三区四区| 精品视频1区2区| 国产午夜精品一区二区三区嫩草| 日韩一区国产二区欧美三区| 欧美卡1卡2卡| 中文字幕的久久| 国产无人区一区二区三区| 亚洲精品你懂的| 国产精品资源在线看| 韩国女主播一区| 欧美综合亚洲图片综合区| 337p粉嫩大胆噜噜噜噜噜91av| 夜夜揉揉日日人人青青一国产精品 | 久久成人免费网站| 免费在线观看一区二区三区| 不卡高清视频专区| 久久综合九色综合久久久精品综合| 亚洲精品高清在线| www.日韩在线| 色天天综合久久久久综合片| 久久久久久久久久久99999| 国产午夜精品一区二区三区嫩草 | 国产麻豆精品久久一二三| 欧美另类高清zo欧美| 亚洲丝袜自拍清纯另类| 国产成人精品三级| 欧美精品一区二区久久婷婷| 日本亚洲天堂网| 国产精品中文字幕欧美| 日韩欧美一区二区在线视频| 亚洲高清免费观看| 欧美色区777第一页| 亚洲六月丁香色婷婷综合久久| 国产福利一区二区三区在线视频| 精品国免费一区二区三区| 久久精品国产一区二区三| 制服丝袜国产精品| 国产精品无人区| 一区二区高清在线| 91国偷自产一区二区开放时间| 在线综合+亚洲+欧美中文字幕| 亚洲一区二区三区四区不卡| 色综合久久中文综合久久97| 中文在线一区二区| www.亚洲国产| 一区二区三区鲁丝不卡| 欧美午夜精品久久久久久孕妇| 精品免费99久久| 一区av在线播放| 欧美日韩一区精品| 日韩国产在线观看| 精品福利在线导航| 国产成人三级在线观看| 国产精品九色蝌蚪自拍| 日韩精品一卡二卡三卡四卡无卡| 国产一区 二区 三区一级| 久久久91精品国产一区二区三区| 粉嫩aⅴ一区二区三区四区 | 91精品久久久久久蜜臀| 蜜臀精品久久久久久蜜臀 | 亚洲一级二级三级在线免费观看| 欧美日本在线一区| 中文字幕一区二区三区在线播放| 麻豆精品蜜桃视频网站| 久久综合给合久久狠狠狠97色69| 福利电影一区二区| 亚洲午夜三级在线| 欧美大度的电影原声| 粉嫩一区二区三区在线看| 一区二区三区高清不卡| 欧美一级黄色大片| 成人av在线电影| 偷拍亚洲欧洲综合| 色综合天天性综合| 久久先锋影音av鲁色资源| 成人一道本在线| 一区二区三区中文字幕电影| 日韩精品一区国产麻豆| 99久久久国产精品免费蜜臀| 视频一区在线播放| 亚洲欧洲av色图| 日韩欧美高清在线| 欧美中文字幕一区二区三区| 看电视剧不卡顿的网站| 一区二区三区欧美日| 日韩精品一区二区三区swag| 色先锋资源久久综合| 久久66热re国产| 午夜精品久久久久久久| 国产精品美女一区二区三区 | 中文字幕+乱码+中文字幕一区| 欧美视频一区二区在线观看| 国产精品主播直播| 亚洲电影一级片| 欧美日韩免费在线视频| 成人一级黄色片| 国产高清视频一区| 久久狠狠亚洲综合| 亚洲高清免费观看 | 国产一区三区三区| 日本在线播放一区二区三区| 亚洲亚洲精品在线观看| 欧美激情综合五月色丁香| 日韩欧美一区二区不卡| 欧美久久久影院| 欧美唯美清纯偷拍| 欧美色涩在线第一页| 99热这里都是精品| 99久久er热在这里只有精品15| 国产精品亚洲专一区二区三区 | 国产成人亚洲综合色影视| 久久99精品久久久久久动态图| 亚洲成人av中文| 亚洲成人7777| 偷窥少妇高潮呻吟av久久免费| 亚洲一区二区黄色| 日韩主播视频在线| 免费欧美在线视频| 久久精品国产99| 国产一区二区三区综合| 韩国女主播一区二区三区| 国内精品久久久久影院色| 国产精品影视天天线| 国产精品一区一区三区| 国产91精品一区二区麻豆网站| 国产精品综合av一区二区国产馆| 国产一区二区h| 不卡视频免费播放| 在线精品国精品国产尤物884a| 精品污污网站免费看| 欧美剧情片在线观看| 亚洲精品一区二区三区蜜桃下载| 精品对白一区国产伦| 中文字幕不卡在线| 亚洲精品午夜久久久| 婷婷夜色潮精品综合在线| 麻豆久久一区二区| 国产大片一区二区| 在线观看国产一区二区| 91精品国产福利在线观看| 26uuu久久天堂性欧美| 国产精品理论在线观看| 亚洲一级在线观看| 激情综合色播激情啊| 99国产精品一区| 69p69国产精品| 亚洲国产岛国毛片在线| 亚洲一二三四久久| 国产一区二区影院| 欧美影院精品一区| 久久久久久久久一| 亚洲激情自拍视频| 国精品**一区二区三区在线蜜桃| 不卡影院免费观看| 日韩你懂的电影在线观看| 日韩毛片在线免费观看| 久久精品国产精品亚洲红杏 | 亚洲一区二区三区在线播放| 美脚の诱脚舐め脚责91 | 国精产品一区一区三区mba视频 | 国产老肥熟一区二区三区| 日本精品视频一区二区三区| 日韩精品一区二| 亚洲国产综合视频在线观看|