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

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

?? vga_curproc.v

?? vga接口的源碼測(cè)試程序、Verilog語(yǔ)言編寫(xiě)
?? V
字號(hào):

//synopsys translate_off
`include "timescale.v"
//synopsys translate_on

module vga_curproc (clk, rst_i, Thgate, Tvgate, idat, idat_wreq, 
	cursor_xy, cursor_en, cursor_res, 
	cursor_wadr, cursor_wdat, cursor_we,
	cc_adr_o, cc_dat_i,
	rgb_fifo_wreq, rgb);

	//
	// inputs & outputs
	//

	// wishbone signals
	input         clk;           // master clock input
	input         rst_i;         // synchronous active high reset

	// image size
	input [15:0] Thgate, Tvgate; // horizontal/vertical gate
	// image data
	input [23:0] idat;           // image data input
	input        idat_wreq;      // image data write request

	// cursor data
	input [31:0] cursor_xy;      // cursor (x,y)
	input        cursor_en;      // cursor enable (on/off)
	input        cursor_res;     // cursor resolution (32x32 or 64x64 pixels)
	input [ 8:0] cursor_wadr;    // cursor buffer write address
	input [31:0] cursor_wdat;    // cursor buffer write data
	input        cursor_we;      // cursor buffer write enable

	// color registers interface
	output [ 3:0] cc_adr_o;      // cursor color registers address
	reg  [ 3:0] cc_adr_o;    
	input  [15:0] cc_dat_i;      // cursor color registers data

	// rgb-fifo connections
	output        rgb_fifo_wreq; // rgb-out write request
	reg        rgb_fifo_wreq;
	output [23:0] rgb;           // rgb data output
	reg [23:0] rgb;

	//
	// variable declarations
	//
	reg         dcursor_en, ddcursor_en, dddcursor_en;
	reg  [15:0] xcnt, ycnt;
	wire        xdone, ydone;
	wire [15:0] cursor_x, cursor_y;
	wire        cursor_isalpha;
	reg  [15:0] cdat, dcdat;
	wire [ 7:0] cursor_r, cursor_g, cursor_b, cursor_alpha;
	reg         inbox_x, inbox_y;
	wire        inbox;
	reg         dinbox, ddinbox, dddinbox;

	reg  [23:0] didat, ddidat, dddidat;
	reg         didat_wreq, ddidat_wreq;
	wire [31:0] cbuf_q;
	reg  [11:0] cbuf_ra;
	reg  [ 2:0] dcbuf_ra;
	wire [ 8:0] cbuf_a;

	reg         store1, store2;

	//
	// module body
	//

	//
	// generate x-y counters
	always@(posedge clk)
		if(rst_i || xdone)
			xcnt <= #1 16'h0;
		else if (idat_wreq)
			xcnt <= #1 xcnt + 16'h1;

	assign xdone = (xcnt == Thgate) && idat_wreq;

	always@(posedge clk)
		if(rst_i || ydone)
			ycnt <= #1 16'h0;
		else if (xdone)
			ycnt <= #1 ycnt + 16'h1;

	assign ydone = (ycnt == Tvgate) && xdone;


	// decode cursor (x,y)
	assign cursor_x = cursor_xy[15: 0];
	assign cursor_y = cursor_xy[31:16];

	//
	// generate inbox signals
	always@(posedge clk)
		begin
			inbox_x <= #1 (xcnt >= cursor_x) && (xcnt < (cursor_x + (cursor_res ? 16'h7f : 16'h1f) ));
			inbox_y <= #1 (ycnt >= cursor_y) && (ycnt < (cursor_y + (cursor_res ? 16'h7f : 16'h1f) ));
		end

	assign inbox = inbox_x && inbox_y;

	always@(posedge clk)
		dinbox <= #1 inbox;

	always@(posedge clk)
		if (didat_wreq)
			ddinbox <= #1 dinbox;

	always@(posedge clk)
		dddinbox <= #1 ddinbox;

	//
	// generate cursor buffer address counter
	always@(posedge clk)
		if (!cursor_en || ydone)
			cbuf_ra <= #1 12'h0;
		else if (inbox && idat_wreq)
			cbuf_ra <= #1 cbuf_ra +12'h1;

	always@(posedge clk)
		dcbuf_ra <= #1 cbuf_ra[2:0];

	assign cbuf_a = cursor_we ? cursor_wadr : cursor_res ? cbuf_ra[11:3] : cbuf_ra[9:1];

	// hookup local cursor memory (generic synchronous single port memory)
	// cursor memory should never be written to/read from at the same time
	generic_spram #(9, 32) cbuf(
		.clk(clk),
		.rst(1'b0),       // no reset
		.ce(1'b1),        // always enable memory
		.we(cursor_we),
		.oe(1'b1),        // always output data
		.addr(cbuf_a),
		.di(cursor_wdat),
		.do(cbuf_q)
	);

	//
	// decode cursor data for 32x32x16bpp mode
	always@(posedge clk)
		if (didat_wreq)
			cdat <= #1 dcbuf_ra[0] ? cbuf_q[31:16] : cbuf_q[15:0];

	always@(posedge clk)
		dcdat <= #1 cdat;

	//
	// decode cursor data for 64x64x4bpp mode

	// generate cursor-color address
	always@(posedge clk)
		if (didat_wreq)
			case (dcbuf_ra)
				3'b000: cc_adr_o <= cbuf_q[ 3: 0];
				3'b001: cc_adr_o <= cbuf_q[ 7: 4];
				3'b010: cc_adr_o <= cbuf_q[11: 8];
				3'b011: cc_adr_o <= cbuf_q[15:12];
				3'b100: cc_adr_o <= cbuf_q[19:16];
				3'b101: cc_adr_o <= cbuf_q[23:20];
				3'b110: cc_adr_o <= cbuf_q[27:24];
				3'b111: cc_adr_o <= cbuf_q[31:28];
			endcase

	//
	// generate cursor colors
	assign cursor_isalpha =  cursor_res ? cc_dat_i[15]    : dcdat[15];
	assign cursor_alpha   =  cursor_res ? cc_dat_i[7:0]   : dcdat[7:0];
	assign cursor_r       = {cursor_res ? cc_dat_i[14:10] : dcdat[14:10], 3'h0};
	assign cursor_g       = {cursor_res ? cc_dat_i[ 9: 5] : dcdat[ 9: 5], 3'h0};
	assign cursor_b       = {cursor_res ? cc_dat_i[ 4: 0] : dcdat[ 4: 0], 3'h0};

	//
	// delay image data
	always@(posedge clk)
		didat <= #1 idat;

	always@(posedge clk)
		if (didat_wreq)
			ddidat <= #1 didat;

	always@(posedge clk)
		dddidat <= #1 ddidat;

	always@(posedge clk)
		begin
			didat_wreq  <= #1 idat_wreq;
			ddidat_wreq <= #1 didat_wreq;
		end

	//
	// generate selection unit
	always@(posedge clk)
		dcursor_en <= #1 cursor_en;

	always@(posedge clk)
		if (didat_wreq)
			ddcursor_en <= #1 dcursor_en;

	always@(posedge clk)
		dddcursor_en <= #1 ddcursor_en;

	// Alpha blending:
	// rgb = (rgb1 * alhpa1) + (rgb2 * alpha2)
	// We generate an alpha mixer (alpha1 + alpha2 = 1)
	// rgb = (alpha1)(rgb1) + (1-alpha1)(rgb2)
	// We always mix to black (rgb2 = 0)
	// rgb = (alpha1)(rgb1)
	always@(posedge clk)
		if (ddidat_wreq)
			if (!dddcursor_en || !dddinbox)
				rgb <= #1 dddidat;
			else if (cursor_isalpha)
				`ifdef VGA_HWC_3D
					rgb <= #1 dddidat * cursor_alpha;
				`else
					rgb <= #1 dddidat;
				`endif
			else
				rgb <= #1 {cursor_r, cursor_g, cursor_b};

	//
	// generate write request signal
	always@(posedge clk)
		if (rst_i)
		begin
			store1 <= #1 1'b0;
			store2 <= #1 1'b0;
		end
		else
		begin
			store1 <= #1  didat_wreq           | store1;
			store2 <= #1 (didat_wreq & store1) | store2;
		end

	// skip 2 idat_wreq signal, to keep in pace with rgb_fifo_full signal
	always@(posedge clk)
		rgb_fifo_wreq <= #1 ddidat_wreq & store2;

endmodule

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久9999吃药| 在线精品亚洲一区二区不卡| 国产精品久久久久久久久久免费看 | 激情综合五月婷婷| 国产精品国产精品国产专区不蜜| 欧美久久免费观看| 99国产麻豆精品| 久久国产福利国产秒拍| 亚洲精品国产一区二区精华液| 日韩精品一区二区三区中文不卡| 日本精品一区二区三区高清 | 国内精品自线一区二区三区视频| 亚洲精品视频在线| 国产女人18毛片水真多成人如厕| 欧美日韩在线播| 精品少妇一区二区三区在线播放 | 国产丶欧美丶日本不卡视频| 国产午夜精品在线观看| 在线国产电影不卡| 粉嫩嫩av羞羞动漫久久久 | 日韩一区二区三区电影在线观看| 99久久久精品| 国产suv精品一区二区6| 精品系列免费在线观看| 五月天中文字幕一区二区| 亚洲色图视频网| 国产精品三级久久久久三级| 国产亚洲欧洲997久久综合| 欧美电影免费提供在线观看| 精品第一国产综合精品aⅴ| 538prom精品视频线放| 97久久超碰国产精品| 色婷婷久久久亚洲一区二区三区 | 国产麻豆午夜三级精品| 亚洲自拍都市欧美小说| 最新日韩av在线| 国产亚洲va综合人人澡精品 | 欧美日韩三级在线| 在线这里只有精品| 色老汉一区二区三区| 91网站在线观看视频| 91在线免费视频观看| 国产mv日韩mv欧美| 懂色av一区二区三区免费观看| 国产精品亚洲第一区在线暖暖韩国| 美美哒免费高清在线观看视频一区二区 | 亚洲国产欧美一区二区三区丁香婷| 亚洲特黄一级片| 亚洲女人小视频在线观看| 午夜精品一区二区三区免费视频| 成人av在线一区二区三区| 91精品国产综合久久久久久 | 亚洲欧美日韩在线| 激情综合一区二区三区| 韩国毛片一区二区三区| 国产乱人伦偷精品视频不卡| 国产成人自拍在线| 成人av免费观看| 色综合一个色综合亚洲| 欧美视频在线播放| 日韩视频免费观看高清完整版在线观看| 91精品国产综合久久小美女| 日韩欧美一级二级三级久久久| 精品国产乱码久久久久久闺蜜| 久久久久久久久久久久久女国产乱| 国产人成一区二区三区影院| 国产精品久久久久桃色tv| 亚洲欧美一区二区久久| 性做久久久久久免费观看| 开心九九激情九九欧美日韩精美视频电影| 捆绑调教一区二区三区| 成人免费视频一区| 中文av字幕一区| 日韩视频一区二区三区在线播放| 国产成人免费视频一区| 亚洲影院在线观看| 亚洲一区日韩精品中文字幕| 五月天中文字幕一区二区| 韩国精品在线观看| 91在线观看高清| 欧美日韩精品电影| 久久精品亚洲精品国产欧美kt∨| 亚洲日本欧美天堂| 日韩福利电影在线| 成人aaaa免费全部观看| 欧美日韩国产高清一区二区三区 | 99久久综合狠狠综合久久| 在线观看亚洲专区| 精品国产乱码久久久久久蜜臀| 国产精品美女久久久久久| 亚洲成a人v欧美综合天堂下载| 日韩精品91亚洲二区在线观看 | 久久 天天综合| 岛国精品一区二区| 欧美午夜电影网| 久久噜噜亚洲综合| 亚洲成人在线观看视频| 国产福利91精品| 91精品国产综合久久婷婷香蕉| 亚洲国产精品成人综合色在线婷婷| 亚洲第一电影网| 成人av一区二区三区| 884aa四虎影成人精品一区| 亚洲国产电影在线观看| 免费观看久久久4p| 日本精品视频一区二区| 国产无一区二区| 免费的成人av| 欧美性猛片xxxx免费看久爱| 欧美国产综合一区二区| 久久97超碰国产精品超碰| 欧美制服丝袜第一页| 国产精品美女www爽爽爽| 老司机精品视频一区二区三区| 精品视频一区 二区 三区| 中文字幕永久在线不卡| 欧美国产视频在线| 成人精品一区二区三区四区| 欧美三级韩国三级日本三斤| 欧美私模裸体表演在线观看| 精品精品欲导航| 亚洲综合免费观看高清在线观看| 大胆亚洲人体视频| 久久午夜免费电影| 看电视剧不卡顿的网站| 777午夜精品免费视频| 亚洲高清一区二区三区| 91一区在线观看| 国产精品乱人伦一区二区| 国产久卡久卡久卡久卡视频精品| 日韩欧美精品三级| 日本三级韩国三级欧美三级| 欧美日韩国产三级| 亚洲成va人在线观看| 欧美优质美女网站| 一区二区三区在线影院| 色婷婷国产精品| 亚洲欧美一区二区三区极速播放| 成人黄色国产精品网站大全在线免费观看| www成人在线观看| 久久国产福利国产秒拍| 日韩三级伦理片妻子的秘密按摩| 日韩和欧美一区二区| 日韩欧美国产系列| 久久精品国产一区二区三区免费看| 欧美亚洲精品一区| 欧美一区二区二区| 一本到不卡免费一区二区| 美脚の诱脚舐め脚责91| 国产欧美综合色| 欧美成人性战久久| 中文字幕一区在线观看视频| thepron国产精品| 亚洲欧美一区二区三区极速播放| 91视频观看免费| 依依成人综合视频| 欧美日韩一区国产| 免费成人美女在线观看.| 欧美白人最猛性xxxxx69交| 国内精品不卡在线| 国产精品久线观看视频| 色综合久久久久久久久| 调教+趴+乳夹+国产+精品| 日韩精品一区二区三区视频| 国产精品一区二区你懂的| 国产精品久久99| 欧美三级中文字| 久久www免费人成看片高清| 国产日韩成人精品| 91豆麻精品91久久久久久| 日韩精品视频网| 国产午夜精品福利| 欧美三区在线观看| 韩国v欧美v亚洲v日本v| 中文字幕一区二区三区乱码在线| 免费在线观看不卡| 在线影院国内精品| 日本一区二区三区在线不卡| 成人福利视频在线| 亚洲一区二区三区影院| 精品国产一区二区三区四区四 | 午夜欧美电影在线观看| 精品日韩99亚洲| 色综合一个色综合| 另类综合日韩欧美亚洲| 日韩理论片一区二区| 在线综合视频播放| 99麻豆久久久国产精品免费| 日韩电影一区二区三区四区| 国产欧美日产一区| 欧美日韩高清一区二区| 成人一区二区三区在线观看| 天天色综合成人网| 国产精品女主播av| 日韩午夜中文字幕| 欧美在线一二三| 国产精一品亚洲二区在线视频| 亚洲一区电影777| 亚洲国产精品黑人久久久| 91精品国产色综合久久不卡蜜臀 |