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

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

?? usbf_ep_rf.v

?? usb的verilog 代碼。對(duì)理解usb的原理有很大幫助
?? V
字號(hào):
/////////////////////////////////////////////////////////////////////////                                                             ////////  Endpoint register File                                     ////////  This module contains all registers for ONE endpoint        ////////                                                             ////////  Author: Rudolf Usselmann                                   ////////          rudi@asics.ws                                      ////////                                                             ////////                                                             ////////  Downloaded from: http://www.opencores.org/cores/usb/       ////////                                                             /////////////////////////////////////////////////////////////////////////////                                                             //////// Copyright (C) 2000 Rudolf Usselmann                         ////////                    rudi@asics.ws                            ////////                                                             //////// This source file may be used and distributed without        //////// restriction provided that this copyright statement is not   //////// removed from the file and that any derivative work contains //////// the original copyright notice and the associated disclaimer.////////                                                             ////////     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     //////// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   //////// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   //////// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      //////// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         //////// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    //////// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   //////// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        //////// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  //////// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  //////// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  //////// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         //////// POSSIBILITY OF SUCH DAMAGE.                                 ////////                                                             ///////////////////////////////////////////////////////////////////////////  CVS Log////  $Id: usbf_ep_rf.v,v 1.1 2001/08/03 05:30:09 rudi Exp $////  $Date: 2001/08/03 05:30:09 $//  $Revision: 1.1 $//  $Author: rudi $//  $Locker:  $//  $State: Exp $//// Change History://               $Log: usbf_ep_rf.v,v $//               Revision 1.1  2001/08/03 05:30:09  rudi//////               1) Reorganized directory structure////               Revision 1.2  2001/03/31 13:00:51  rudi////               - Added Core configuration//               - Added handling of OUT packets less than MAX_PL_SZ in DMA mode//               - Modified WISHBONE interface and sync logic//               - Moved SSRAM outside the core (added interface)//               - Many small bug fixes ...////               Revision 1.0  2001/03/07 09:17:12  rudi//////               Changed all revisions to revision 1.0. This is because OpenCores CVS//               interface could not handle the original '0.1' revision ....////               Revision 0.1.0.1  2001/02/28 08:10:44  rudi//               Initial Release////                            `include "usbf_defines.v"// Endpoint register Filemodule usbf_ep_rf(clk, wclk, rst,		// Wishbone Interface		adr, re, we, din, dout, inta, intb,		dma_req, dma_ack,		// Internal Interface		idin,		ep_sel, ep_match,		buf0_rl, buf0_set, buf1_set,		uc_bsel_set, uc_dpd_set,		int_buf1_set, int_buf0_set, int_upid_set,		int_crc16_set, int_to_set, int_seqerr_set,		out_to_small,		csr, buf0, buf1, dma_in_buf_sz1, dma_out_buf_avail		);input		clk, wclk, rst;input	[1:0]	adr;input		re;input		we;input	[31:0]	din;output	[31:0]	dout;output		inta, intb;output		dma_req;input		dma_ack;input	[31:0]	idin;		// Data Inputinput	[3:0]	ep_sel;		// Endpoint Number Inputoutput		ep_match;	// Asserted to indicate a ep no is matchedinput		buf0_rl;	// Reload Buf 0 with original valuesinput		buf0_set;	// Write to buf 0input		buf1_set;	// Write to buf 1input		uc_bsel_set;	// Write to the uc_bsel fieldinput		uc_dpd_set;	// Write to the uc_dpd fieldinput		int_buf1_set;	// Set buf1 full/empty interruptinput		int_buf0_set;	// Set buf0 full/empty interruptinput		int_upid_set;	// Set unsupported PID interruptinput		int_crc16_set;	// Set CRC16 error interruptinput		int_to_set;	// Set time out interruptinput		int_seqerr_set;	// Set PID sequence error interruptinput		out_to_small;	// OUT packet was to small for DMA operationoutput	[31:0]	csr;		// Internal CSR Outputoutput	[31:0]	buf0;		// Internal Buf 0 Outputoutput	[31:0]	buf1;		// Internal Buf 1 Outputoutput		dma_in_buf_sz1;	// Indicates that the DMA IN buffer has 1 max_pl_sz				// packet availableoutput		dma_out_buf_avail;// Indicates that there is space for at least				// one MAX_PL_SZ packet in the buffer/////////////////////////////////////////////////////////////////////// Local Wires and Registers//reg	[31:0]	dout;// CSRreg	[12:0]	csr0;reg		ots_stop;reg	[12:0]	csr1;reg	[1:0]	uc_bsel, uc_dpd;reg	[5:0]	iena, ienb;	// Interrupt enablesreg	[6:0]	is;		// Interrupt statuswire		we0, we1, we2, we3;reg	[31:0]	buf0;reg	[31:0]	buf1;reg	[31:0]	buf0_orig;reg		inta, intb;// DMA Logic Registersreg	[11:0]	dma_out_cnt;wire		dma_out_cnt_is_zero;reg		dma_out_buf_avail;reg	[11:0]	dma_out_left;reg	[11:0]	dma_in_cnt;reg		dma_in_buf_sz1;reg		dma_req_r;wire		dma_req_d;wire		dma_req_in_d;wire		dma_req_out_d;reg		r1, r2, r4, r5;wire		r3;wire		dma_ack_i;reg		dma_req_out_hold, dma_req_in_hold ;reg	[11:0]	buf0_orig_m3;wire		dma_req_hold;reg		set_r;reg		ep_match_r; // Aliaseswire	[31:0]	csr;wire	[31:0]	int;wire		dma_en;wire	[10:0]	max_pl_sz;wire		ep_in;wire		ep_out;assign csr = {uc_bsel, uc_dpd, csr1, 1'h0, ots_stop, csr0};assign int = { 2'h0, iena, 2'h0,ienb, 9'h0, is};assign dma_en = csr[15];assign max_pl_sz = csr[10:0];assign ep_in  = csr[27:26]==2'b01;assign ep_out = csr[27:26]==2'b10;/////////////////////////////////////////////////////////////////////// WISHBONE Access//always @(adr or csr or int or buf0 or buf1)	case(adr)	// synopsys full_case parallel_case	   0: dout = csr;	   1: dout = int;	   2: dout = buf0;	   3: dout = buf1;	endcaseassign we0 = (adr==0) & we;assign we1 = (adr==1) & we;assign we2 = (adr==2) & we;assign we3 = (adr==3) & we;// Endpoint CSR Registeralways @(posedge clk)	if(!rst)	   begin		csr0 <= #1 0;		csr1 <= #1 0;		ots_stop <= #1 0;	   end	else	if(we0)	   begin		csr0 <= #1 din[12:0];		ots_stop <= #1 din[13];		csr1 <= #1 din[27:15];	   end	else	if(ots_stop & out_to_small)		csr1[8:7] <= #1 2'b01;	// Endpoint Interrupt Registeralways @(posedge clk)	if(!rst)	   begin		ienb <= #1 0;		iena <= #1 0;	   end	else	if(we1)	   begin		ienb <= #1 din[21:16];		iena <= #1 din[29:24];	   end// Endpoint Buffer Registersalways @(posedge clk)	if(!rst)			buf0 <= #1 32'hffff_ffff;	else	if(we2)				buf0 <= #1 din;	else	if(ep_match_r & buf0_rl)	buf0 <= #1 buf0_orig;	else	if(ep_match_r & buf0_set)	buf0 <= #1 idin;always @(posedge clk)	if(!rst)			buf1 <= #1 32'hffff_ffff;	else	if(we3)				buf1 <= #1 din;	else	if(ep_match_r &	(buf1_set | out_to_small))	buf1 <= #1 idin;always @(posedge clk)	if(!rst)			buf0_orig <= #1 32'hffff_ffff;	else	if(we2)				buf0_orig <= #1 din;/////////////////////////////////////////////////////////////////////// Internal Access//// Indicates that this register file matches the current// endpoint from tokenassign ep_match = (ep_sel == csr[21:18]);always @(posedge clk)	ep_match_r <= #1 ep_match;// Interrupt Sourcesalways @(posedge clk)	if(!rst)			is <= #1 0;	else	if(re & (adr == 1) )		is <= #1 0;	else	if(ep_match_r)	   begin		if(out_to_small)	is[6] <= #1 1;		if(int_seqerr_set)	is[5] <= #1 1;		if(int_buf1_set)	is[4] <= #1 1;		if(int_buf0_set)	is[3] <= #1 1;		if(int_upid_set)	is[2] <= #1 1;		if(int_crc16_set)	is[1] <= #1 1;		if(int_to_set)		is[0] <= #1 1;	   end// PID toggle track bitsalways @(posedge clk)	if(!rst)			uc_dpd <= #1 0;	else	if(ep_match_r & uc_dpd_set)	uc_dpd <= #1 idin[3:2];// Buffer toggle track bitsalways @(posedge clk)	if(!rst)			uc_bsel <= #1 0;	else	if(ep_match_r & uc_bsel_set)	uc_bsel <= #1 idin[1:0];/////////////////////////////////////////////////////////////////////// Endpoint Interrupt Generation//always @(posedge wclk)	inta <= #1	(is[0] & iena[0]) |			(is[1] & iena[1]) |			(is[2] & iena[2]) |			(is[3] & iena[3]) |			(is[4] & iena[3]) |			(is[5] & iena[4]) |			(is[6] & iena[5]);always @(posedge wclk)	intb <= #1	(is[0] & ienb[0]) |			(is[1] & ienb[1]) |			(is[2] & ienb[2]) |			(is[3] & ienb[3]) |			(is[4] & ienb[3]) |			(is[5] & ienb[4]) |			(is[6] & ienb[5]);/////////////////////////////////////////////////////////////////////// Endpoint DMA Request Logic//// DMA OUT endpoint counteralways @(posedge clk)	if(!dma_en)			dma_out_cnt <= #1 0;	else	if(dma_ack_i)			dma_out_cnt <= #1 dma_out_cnt - 1;	else	if(set_r | buf0_set | buf0_rl)	dma_out_cnt <= #1 dma_out_cnt + max_pl_sz[10:2];// If buf0_set or buf0_rl was asserted at the same time as dma_ack_i// remember it and perform the add next cycle ...always @(posedge clk)	set_r <= #1 dma_ack_i & (buf0_set | buf0_rl);// This signal is used to keep dma_req asserted when we know there is// plenty of data in the buffer.// When the buffer is "low", we do one dma_req and wait to see if there// is more data and repeat until the buffer is empty.// This is because of the sync logic - it has to propagate first// before we can determine that the buffer is really empty.always @(posedge wclk)	dma_req_out_hold <= #1 |dma_out_cnt[11:2] & ep_out;assign dma_out_cnt_is_zero = dma_out_cnt == 0;// DMA IN endpoint counteralways @(posedge clk)	if(!dma_en)			dma_in_cnt <= #1 0;	else	if(dma_ack_i)			dma_in_cnt <= #1 dma_in_cnt + 1;	else	if(set_r | buf0_set | buf0_rl)	dma_in_cnt <= #1 dma_in_cnt - max_pl_sz[10:2];// Indicates to Protocol Engine when we have gotten at least one packet in to buffer// This is for IN transfers onlyalways @(posedge clk)	dma_in_buf_sz1 <= #1	(dma_in_cnt >= {3'h0,max_pl_sz[10:2]}) &				(max_pl_sz[10:0] !=0);// Indicates to Protocol Engine that there is space for at least one MAX_PL_SZ// packet in buffer. OUT transfers only.always @(posedge clk)	dma_out_left <= #1 (buf0_orig[30:19] - dma_out_cnt);always @(posedge clk)	dma_out_buf_avail <= #1 (dma_out_left >= max_pl_sz[10:2]);// DMA Request Generationassign dma_req_d = dma_en & (dma_req_in_d | dma_req_out_d);// For OUTassign dma_req_out_d = ep_out & !dma_out_cnt_is_zero;// FOR INassign	dma_req_in_d = ep_in & (dma_in_cnt < buf0_orig[30:19]);always @(posedge wclk)	buf0_orig_m3 <= #1 buf0_orig[30:19] - 3;always @(posedge wclk)	dma_req_in_hold <= #1 ep_in & |buf0_orig[30:21] & (dma_in_cnt < buf0_orig_m3);assign dma_req_hold = ep_out ? dma_req_out_hold : dma_req_in_hold;// Generate a Sync. Requestassign dma_req = dma_req_r;always @(posedge wclk)	if(!rst)			dma_req_r <= #1 0;	else	if(r1 & !r2)			dma_req_r <= #1 1;	else	if(dma_ack & !dma_req_hold)	dma_req_r <= #1 0;always @(posedge wclk)	r1 <= #1 dma_req_d & !r2 & !r4 & !r5;always @(posedge wclk)	if(!rst)	r2 <= #1 0;	else	if(r1)		r2 <= #1 1;	else	if(r4)		r2 <= #1 0;// Synchronize ACKassign r3 = (!rst) ? 0 : dma_ack ? 1 : r4 ? 0 : r3;always @(posedge clk)	r4 <= #1 r3;always @(posedge clk)	r5 <= #1 r4;assign dma_ack_i = r5;endmodule

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜影院在线观看欧美| 亚洲va国产va欧美va观看| 欧美三级日韩三级| 国产一区二三区好的| 亚洲一区二区三区不卡国产欧美| 国产三级精品在线| 在线成人小视频| 色视频成人在线观看免| 国产尤物一区二区| 日本亚洲欧美天堂免费| ...xxx性欧美| 久久精品一二三| 日韩欧美专区在线| 婷婷一区二区三区| 国产精品久久久久三级| 精品久久一区二区三区| 欧美人动与zoxxxx乱| 91麻豆免费观看| 国产成人久久精品77777最新版本| 奇米色一区二区| 亚洲国产中文字幕在线视频综合| 国产精品久久久久桃色tv| 欧美在线免费观看亚洲| 国产乱码字幕精品高清av| 日韩av成人高清| 亚洲午夜久久久久久久久久久| 国产精品久久久久久亚洲毛片| 精品国产三级电影在线观看| 555夜色666亚洲国产免| 欧美乱熟臀69xxxxxx| 91久久人澡人人添人人爽欧美| 成人黄页在线观看| 国产不卡视频在线观看| 国产精品一区专区| 国产剧情av麻豆香蕉精品| 久久99国产精品免费| 久久国产精品第一页| 轻轻草成人在线| 看片的网站亚洲| 美国十次了思思久久精品导航| 天涯成人国产亚洲精品一区av| 亚洲国产毛片aaaaa无费看| 亚洲精品自拍动漫在线| 亚洲欧美国产高清| 综合久久一区二区三区| 1000部国产精品成人观看| 亚洲天堂免费在线观看视频| 亚洲视频综合在线| 亚洲精品欧美综合四区| 一区二区三区在线播放| 亚洲成人动漫精品| 夜夜嗨av一区二区三区中文字幕| 一区二区三区在线视频免费 | 国产精品视频在线看| 日本一区免费视频| 1024成人网色www| 亚洲国产精品一区二区久久 | 91福利在线观看| 欧美日韩国产首页在线观看| 7777精品伊人久久久大香线蕉经典版下载| 91精品国产欧美一区二区| 精品少妇一区二区三区视频免付费| 久久女同互慰一区二区三区| 中文字幕一区二区三区精华液| 亚洲在线成人精品| 麻豆精品在线播放| 成人性生交大片免费看在线播放| 91女神在线视频| 欧美高清视频在线高清观看mv色露露十八 | 亚洲精品中文在线影院| 日韩av在线发布| 盗摄精品av一区二区三区| 色综合天天综合网天天看片| 91精品久久久久久久91蜜桃 | 久久久久久久免费视频了| 国产精品国产三级国产aⅴ入口 | 不卡的av电影在线观看| 欧美在线一二三四区| 久久亚区不卡日本| 亚洲一区二区三区在线播放| 黄网站免费久久| 91成人免费在线| 久久久久久久久久美女| 一区二区久久久久| 国产高清一区日本| 欧美日韩久久一区二区| 欧美国产1区2区| 日本系列欧美系列| 色综合天天狠狠| wwwwxxxxx欧美| 亚洲综合丝袜美腿| 成人污视频在线观看| 5566中文字幕一区二区电影| 国产精品国产精品国产专区不蜜| 日本在线不卡一区| 在线中文字幕不卡| 欧美激情中文字幕一区二区| 午夜精品一区二区三区三上悠亚| 成人午夜又粗又硬又大| 日韩欧美国产综合在线一区二区三区| 亚洲欧洲精品一区二区精品久久久| 麻豆精品一区二区三区| 欧美在线不卡一区| 亚洲欧洲99久久| 国产成人午夜99999| 91精品国产91久久久久久一区二区| 亚洲天堂福利av| 国产99久久久久| 精品国产免费视频| 秋霞午夜鲁丝一区二区老狼| 欧美亚州韩日在线看免费版国语版| 日本一区二区视频在线| 国产在线播放一区二区三区| 日韩欧美亚洲国产精品字幕久久久 | 欧美精品粉嫩高潮一区二区| 亚洲欧美日韩综合aⅴ视频| 丁香六月久久综合狠狠色| 久久综合久久综合九色| 美美哒免费高清在线观看视频一区二区 | 波多野结衣中文字幕一区| 久久综合狠狠综合久久激情| 美女高潮久久久| 日韩欧美视频在线| 日本视频中文字幕一区二区三区| 日本精品裸体写真集在线观看| 国产精品对白交换视频| 成人av网在线| 日韩毛片一二三区| 99re免费视频精品全部| 国产精品久久久久久久久果冻传媒| 国产乱人伦精品一区二区在线观看| 欧美不卡在线视频| 美女看a上一区| 精品国产免费人成电影在线观看四季| 免费视频一区二区| 日韩欧美在线观看一区二区三区| 青青草97国产精品免费观看| 制服丝袜日韩国产| 青青草精品视频| 日韩一级片网址| 激情综合五月天| 国产日韩欧美不卡| gogo大胆日本视频一区| 一区二区在线观看视频在线观看| 欧洲av在线精品| 天堂久久久久va久久久久| 制服丝袜亚洲精品中文字幕| 蜜桃视频在线观看一区二区| 欧美成人a视频| 国产宾馆实践打屁股91| 国产精品三级在线观看| 99精品热视频| 午夜日韩在线观看| 精品美女一区二区三区| 国产·精品毛片| 亚洲麻豆国产自偷在线| 7777精品伊人久久久大香线蕉最新版 | 一区二区日韩av| 欧美一区二区在线看| 国内一区二区在线| 国产精品久久久99| 欧美视频一区二区在线观看| 日本成人中文字幕在线视频| 国产亚洲视频系列| 色屁屁一区二区| 另类综合日韩欧美亚洲| 国产精品久久久久久久久久免费看 | 欧美国产精品专区| 欧美日韩视频在线观看一区二区三区 | 亚洲午夜免费福利视频| 日韩视频免费直播| 成人app在线观看| 亚洲一区二区五区| 精品少妇一区二区三区免费观看 | 日韩欧美在线影院| 成人激情av网| 日韩va欧美va亚洲va久久| 欧美国产一区二区在线观看| 欧美日韩综合色| 高清成人免费视频| 日本欧美韩国一区三区| 国产精品久久久久aaaa| 日韩免费观看高清完整版在线观看| 成人免费的视频| 免费人成精品欧美精品| 亚洲丝袜美腿综合| 久久综合久久综合久久| 欧美日韩和欧美的一区二区| 国产成人在线电影| 日韩精品午夜视频| 亚洲乱码国产乱码精品精小说| 欧美成人r级一区二区三区| 91成人免费在线视频| 国产v综合v亚洲欧| 青青草国产成人av片免费| 亚洲精品乱码久久久久| 国产午夜亚洲精品理论片色戒 | 日本乱码高清不卡字幕| 国内精品久久久久影院薰衣草| 五月婷婷欧美视频|