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

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

?? usbf_ep_rf.v

?? 完整的usb freecore
?? V
字號:
/////////////////////////////////////////////////////////////////////////                                                             ////////  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-2003 Rudolf Usselmann                    ////////                         www.asics.ws                        ////////                         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.4 2003/10/17 02:36:57 rudi Exp $////  $Date: 2003/10/17 02:36:57 $//  $Revision: 1.4 $//  $Author: rudi $//  $Locker:  $//  $State: Exp $//// Change History://               $Log: usbf_ep_rf.v,v $//               Revision 1.4  2003/10/17 02:36:57  rudi//               - Disabling bit stuffing and NRZI encoding during speed negotiation//               - Now the core can send zero size packets//               - Fixed register addresses for some of the higher endpoints//                 (conversion between decimal/hex was wrong)//               - The core now does properly evaluate the function address to//                 determine if the packet was intended for it.//               - Various other minor bugs and typos////               Revision 1.3  2001/11/04 12:22:44  rudi////               - Fixed previous fix (brocke something else ...)//               - Majore Synthesis cleanup////               Revision 1.2  2001/11/03 03:26:22  rudi////               - Fixed several interrupt and error condition reporting bugs////               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]	int_stat;		// 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		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; reg		int_re;// 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, int_stat};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	   2'h0: dout = csr;	   2'h1: dout = int;	   2'h2: dout = buf0;	   2'h3: dout = buf1;	endcaseassign we0 = (adr==2'h0) & we;assign we1 = (adr==2'h1) & we;assign we2 = (adr==2'h2) & we;assign we3 = (adr==2'h3) & we;// Endpoint CSR Register`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)	   begin		csr0 <= 13'h0;		csr1 <= 13'h0;		ots_stop <= 1'b0;	   end	else	if(we0)	   begin		csr0 <= din[12:0];		ots_stop <= din[13];		csr1 <= din[27:15];	   end	else	if(ots_stop && out_to_small)		csr1[8:7] <= 2'b01;	// Endpoint Interrupt Register`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)	   begin		ienb <= 6'h0;		iena <= 6'h0;	   end	else	if(we1)	   begin		ienb <= din[21:16];		iena <= din[29:24];	   end// Endpoint Buffer Registers`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)			buf0 <= 32'hffff_ffff;	else	if(we2)				buf0 <= din;	else	if(ep_match_r && buf0_rl)	buf0 <= buf0_orig;	else	if(ep_match_r && buf0_set)	buf0 <= idin;`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)			buf1 <= 32'hffff_ffff;	else	if(we3)				buf1 <= din;	else	if(ep_match_r &&	(buf1_set || out_to_small))	buf1 <= idin;`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)			buf0_orig <= 32'hffff_ffff;	else	if(we2)				buf0_orig <= 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 <= ep_match;always @(posedge clk)	int_re <= re & (adr == 2'h1);// Interrupt Sources`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)			int_stat <= 7'h0;	else	if(int_re)			int_stat <= 7'h0;	else	if(ep_match_r)	   begin		if(out_to_small)	int_stat[6] <= 1'b1;		if(int_seqerr_set)	int_stat[5] <= 1'b1;		if(int_buf1_set)	int_stat[4] <= 1'b1;		if(int_buf0_set)	int_stat[3] <= 1'b1;		if(int_upid_set)	int_stat[2] <= 1'b1;		if(int_crc16_set)	int_stat[1] <= 1'b1;		if(int_to_set)		int_stat[0] <= 1'b1;	   end// PID toggle track bits`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)			uc_dpd <= 2'h0;	else	if(ep_match_r && uc_dpd_set)	uc_dpd <= idin[3:2];// Buffer toggle track bits`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)			uc_bsel <= 2'h0;	else	if(ep_match_r && uc_bsel_set)	uc_bsel <= idin[1:0];/////////////////////////////////////////////////////////////////////// Endpoint Interrupt Generation//always @(posedge wclk)	inta <=		(int_stat[0] & iena[0]) |			(int_stat[1] & iena[1]) |			(int_stat[2] & iena[2]) |			(int_stat[3] & iena[3]) |			(int_stat[4] & iena[3]) |			(int_stat[5] & iena[4]) |			(int_stat[6] & iena[5]);always @(posedge wclk)	intb <=		(int_stat[0] & ienb[0]) |			(int_stat[1] & ienb[1]) |			(int_stat[2] & ienb[2]) |			(int_stat[3] & ienb[3]) |			(int_stat[4] & ienb[3]) |			(int_stat[5] & ienb[4]) |			(int_stat[6] & ienb[5]);/////////////////////////////////////////////////////////////////////// Endpoint DMA Request Logic//// DMA OUT endpoint counteralways @(posedge clk)	if(!dma_en)		dma_out_cnt <= 12'h0;	else	if(dma_ack_i)		dma_out_cnt <= dma_out_cnt - 12'h1;	else	if(ep_match_r && (set_r || buf0_set || buf0_rl))				dma_out_cnt <= dma_out_cnt + {3'h0, 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 <= 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 <= |dma_out_cnt[11:2] & ep_out;assign dma_out_cnt_is_zero = dma_out_cnt == 12'h0;// DMA IN endpoint counteralways @(posedge clk)	if(!dma_en)		dma_in_cnt <= 12'h0;	else	if(dma_ack_i)		dma_in_cnt <= dma_in_cnt + 12'h1;	else	if(ep_match_r && (set_r || buf0_set || buf0_rl))				dma_in_cnt <= dma_in_cnt - {3'h0, 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 <=	(dma_in_cnt >= {3'h0,max_pl_sz[10:2]}) &				(max_pl_sz[10:0] != 11'h0);// 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 <= (buf0_orig[30:19] - dma_out_cnt);always @(posedge clk)	dma_out_buf_avail <= (dma_out_left >= {3'h0, 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 <= buf0_orig[30:19] - 12'h3;reg	dma_req_in_hold2;always @(posedge wclk)	dma_req_in_hold2 <= (dma_in_cnt < buf0_orig_m3);always @(posedge wclk)	dma_req_in_hold <= ep_in & |buf0_orig[30:21];assign dma_req_hold = ep_out ? dma_req_out_hold : (dma_req_in_hold & dma_req_in_hold2);// Generate a Sync. Requestassign dma_req = dma_req_r;`ifdef USBF_ASYNC_RESETalways @(posedge wclk or negedge rst)`elsealways @(posedge wclk)`endif	if(!rst)			dma_req_r <= 1'b0;	else	if(r1 && !r2)			dma_req_r <= 1'b1;	else	if(dma_ack && !dma_req_hold)	dma_req_r <= 1'b0;always @(posedge wclk)	r1 <= dma_req_d & !r2 & !r4 & !r5;`ifdef USBF_ASYNC_RESETalways @(posedge wclk or negedge rst)`elsealways @(posedge wclk)`endif	if(!rst)	r2 <= 1'b0;	else	if(r1)		r2 <= 1'b1;	else	if(r4)		r2 <= 1'b0;// Synchronize ACKreg	dma_ack_wr1;reg	dma_ack_clr1;`ifdef USBF_ASYNC_RESETalways @(posedge wclk or negedge rst)`elsealways @(posedge wclk)`endif	if(!rst)		dma_ack_wr1 <= 1'b0;	else	if(dma_ack)		dma_ack_wr1 <= 1'b1;	else	if(dma_ack_clr1)	dma_ack_wr1 <= 1'b0;always @(posedge wclk)	dma_ack_clr1 <= r4;always @(posedge clk)	r4 <= dma_ack_wr1;always @(posedge clk)	r5 <= r4;assign dma_ack_i = r5;endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线观看视频| 制服丝袜在线91| 在线精品视频免费观看| 91精品国产一区二区| 国产欧美日韩激情| 亚洲一区在线观看视频| 精品一区二区三区免费观看| 99久久综合精品| 91精品国产入口| 国产精品每日更新| 视频一区二区三区中文字幕| 国产精品1区2区| 欧美在线一二三四区| 久久综合久久久久88| 亚洲精品亚洲人成人网在线播放| 美国毛片一区二区三区| 大美女一区二区三区| 91精品久久久久久蜜臀| 国产午夜精品一区二区| 午夜日韩在线电影| 99久久99久久免费精品蜜臀| 日韩一区二区三区四区| 亚洲六月丁香色婷婷综合久久| 久久99久久99小草精品免视看| 色菇凉天天综合网| 久久久精品中文字幕麻豆发布| 亚洲高清免费在线| 成人h动漫精品一区二区| 日韩美女视频一区二区在线观看| 亚洲乱码国产乱码精品精的特点| 国产精品一区专区| 欧美一区中文字幕| 99视频在线精品| 久久综合狠狠综合久久综合88| 亚洲国产成人av网| av午夜一区麻豆| 久久久久9999亚洲精品| 奇米777欧美一区二区| 色婷婷激情久久| 国产日韩精品一区二区三区| 日韩av在线免费观看不卡| 91女厕偷拍女厕偷拍高清| 国产亚洲欧美一区在线观看| 久久国产三级精品| 欧美久久一二三四区| 亚洲精品国产视频| 99久久777色| 国产精品久久久久久亚洲毛片| 激情五月婷婷综合| 欧美一区二区三区影视| 亚洲第一成人在线| 在线免费不卡视频| 一区二区三区精品视频在线| 91欧美激情一区二区三区成人| 欧美国产欧美综合| 国产精华液一区二区三区| 精品精品国产高清一毛片一天堂| 日韩精品国产欧美| 欧美人体做爰大胆视频| 亚洲午夜羞羞片| 欧美体内she精高潮| 亚洲一区二区三区影院| 日本久久一区二区三区| 亚洲欧美国产高清| 色综合天天综合网国产成人综合天 | 欧美主播一区二区三区| 亚洲另类春色校园小说| 色综合久久久久久久久| 亚洲激情自拍视频| 欧美性色综合网| 亚洲午夜影视影院在线观看| 欧美亚洲国产一区二区三区| 亚洲福利一二三区| 欧美日韩激情一区二区| 日本午夜一区二区| 精品国产制服丝袜高跟| 韩国av一区二区三区四区| 久久色视频免费观看| 国产麻豆精品在线| 国产嫩草影院久久久久| 不卡电影免费在线播放一区| 成人欧美一区二区三区视频网页| av影院午夜一区| 亚洲综合久久久久| 91麻豆精品国产91久久久使用方法| 日本午夜精品一区二区三区电影| 秋霞国产午夜精品免费视频| 91精品国产福利| 经典三级视频一区| 欧美国产亚洲另类动漫| 99精品国产91久久久久久| 亚洲影院久久精品| 日韩一区二区三区电影在线观看| 国产专区欧美精品| 中文字幕在线不卡国产视频| 欧美午夜精品理论片a级按摩| 视频在线观看一区二区三区| 久久综合九色综合97婷婷女人| 成人午夜看片网址| 一区二区三区.www| 日韩色在线观看| 成人性视频免费网站| 亚洲午夜一区二区| 久久综合999| 91色porny| 麻豆免费精品视频| 国产精品国产自产拍高清av王其| 欧美视频一区二区三区四区| 麻豆视频观看网址久久| 国产精品嫩草99a| 欧美日韩一级大片网址| 九一久久久久久| 亚洲欧美在线另类| 欧美一区二区三区色| 成人激情电影免费在线观看| 亚洲va韩国va欧美va| 国产调教视频一区| 欧美丰满嫩嫩电影| 99在线精品观看| 麻豆91精品91久久久的内涵| 中文字幕视频一区| 91精品国产综合久久精品app| 国产成人高清视频| 午夜精品福利一区二区三区蜜桃| 国产午夜精品在线观看| 欧美丝袜丝nylons| 风间由美中文字幕在线看视频国产欧美| 洋洋成人永久网站入口| 久久久久久久久久久久久夜| 欧美性猛片xxxx免费看久爱 | 国产性天天综合网| 欧美日韩精品是欧美日韩精品| 激情综合色丁香一区二区| 亚洲激情中文1区| 国产欧美一二三区| 日韩一区二区三区观看| 91精品福利视频| 国产成人av资源| 久久国产麻豆精品| 亚洲亚洲人成综合网络| 中文字幕欧美国产| 日韩女优视频免费观看| 欧美色大人视频| 99精品视频在线观看| 国产福利精品一区| 美洲天堂一区二卡三卡四卡视频| 自拍偷拍国产精品| 国产日产欧美精品一区二区三区| 777色狠狠一区二区三区| 91麻豆免费观看| 成人午夜视频网站| 欧美一区二区视频在线观看| 日韩三级在线免费观看| 久久久99免费| 欧美高清性hdvideosex| av福利精品导航| 久久精品国产999大香线蕉| 亚洲午夜久久久久久久久电影网| 国产精品欧美经典| 久久青草国产手机看片福利盒子 | 日韩毛片精品高清免费| 欧美精品一区二区三区在线| 欧美精品 国产精品| 欧美性色黄大片手机版| 日本高清成人免费播放| 99国产一区二区三精品乱码| 成人免费视频一区| 国产精品亚洲а∨天堂免在线| 老色鬼精品视频在线观看播放| 亚洲一区二区三区在线播放| 亚洲黄色性网站| 亚洲人成网站影音先锋播放| 成人免费在线播放视频| 中文字幕精品—区二区四季| 国产人久久人人人人爽| 久久久久久久久久美女| 久久嫩草精品久久久精品一| 精品国产乱码久久久久久图片| 日韩欧美激情四射| 精品999久久久| 久久久久久久久久久久久女国产乱| 日韩精品一区二区三区蜜臀| 日韩欧美国产综合| 日韩欧美国产精品| 欧美成人精精品一区二区频| 国产精品婷婷午夜在线观看| 国产欧美久久久精品影院| 国产性做久久久久久| 欧美国产激情二区三区| 国产精品久久三| 成人精品电影在线观看| 94-欧美-setu| 一本大道久久精品懂色aⅴ| 欧美在线免费观看亚洲| 欧美高清视频不卡网| 精品免费视频.| 国产色一区二区| 1区2区3区精品视频| 一区二区三区欧美亚洲| 婷婷开心久久网|