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

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

?? usbf_pa.v

?? 完整的usb freecore
?? V
字號:
/////////////////////////////////////////////////////////////////////////                                                             ////////  Packet Assembler                                           ////////  Assembles Token and Data USB packets                       ////////                                                             ////////  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_pa.v,v 1.6 2003/10/17 02:36:57 rudi Exp $////  $Date: 2003/10/17 02:36:57 $//  $Revision: 1.6 $//  $Author: rudi $//  $Locker:  $//  $State: Exp $//// Change History://               $Log: usbf_pa.v,v $//               Revision 1.6  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.5  2001/11/04 12:22:45  rudi////               - Fixed previous fix (brocke something else ...)//               - Majore Synthesis cleanup////               Revision 1.4  2001/09/24 01:15:28  rudi////               Changed reset to be active high async.////               Revision 1.3  2001/09/19 14:38:57  rudi////               Fixed TxValid handling bug.////               Revision 1.2  2001/08/10 08:48:33  rudi////               - Changed IO names to be more clear.//               - Uniquifyed define names to be core specific.////               Revision 1.1  2001/08/03 05:30:09  rudi//////               1) Reorganized directory structure////               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:54  rudi//               Initial Release////`include "usbf_defines.v"module usbf_pa(	clk, rst,		// UTMI TX I/F		tx_data, tx_valid, tx_valid_last, tx_ready,		tx_first,		// Protocol Engine Interface		send_token, token_pid_sel,		send_data, data_pid_sel,		send_zero_length,		// IDMA Interface		tx_data_st, rd_next		);input		clk, rst;// UTMI TX Interfaceoutput	[7:0]	tx_data;output		tx_valid;output		tx_valid_last;input		tx_ready;output		tx_first;// Protocol Engine Interfaceinput		send_token;input	[1:0]	token_pid_sel;input		send_data;input	[1:0]	data_pid_sel;input		send_zero_length;// IDMA Interfaceinput	[7:0]	tx_data_st;output		rd_next;/////////////////////////////////////////////////////////////////////// Local Wires and Registers//parameter	[4:0]	// synopsys enum state		IDLE   = 5'b00001,		DATA   = 5'b00010,		CRC1   = 5'b00100,		CRC2   = 5'b01000,		WAIT   = 5'b10000;reg	[4:0]	/* synopsys enum state */ state, next_state;// synopsys state_vector statereg		last;reg		rd_next;reg	[7:0]	token_pid, data_pid;	// PIDs from selectorsreg	[7:0]	tx_data_d;reg	[7:0]	tx_data_data;reg		dsel;reg		tx_valid_d;reg		send_token_r;reg	[7:0]	tx_spec_data;reg		crc_sel1, crc_sel2;reg		tx_first_r;reg		send_data_r;wire		crc16_clr;reg	[15:0]	crc16;wire	[15:0]	crc16_next;wire	[15:0]	crc16_rev;wire		crc16_add;reg		send_data_r2;reg		tx_valid_r;reg		tx_valid_r1;reg		zero_length_r;reg		send_zero_length_r;/////////////////////////////////////////////////////////////////////// Misc Logic//always @(posedge clk)	send_zero_length_r <= send_zero_length;`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)	zero_length_r <= 1'b0;	else	if(last)	zero_length_r <= 1'b0;	else	if(crc16_clr)	zero_length_r <= send_zero_length_r;always @(posedge clk)	tx_valid_r1 <= tx_valid;always @(posedge clk)	tx_valid_r <= tx_valid_r1;`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)	send_token_r <= 1'b0;	else	if(send_token)	send_token_r <= 1'b1;	else	if(tx_ready)	send_token_r <= 1'b0;// PID Selectalways @(token_pid_sel)	case(token_pid_sel)		// synopsys full_case parallel_case	   2'd0: token_pid = {  ~`USBF_T_PID_ACK,   `USBF_T_PID_ACK};	   2'd1: token_pid = { ~`USBF_T_PID_NACK,  `USBF_T_PID_NACK};	   2'd2: token_pid = {~`USBF_T_PID_STALL, `USBF_T_PID_STALL};	   2'd3: token_pid = { ~`USBF_T_PID_NYET,  `USBF_T_PID_NYET};	endcasealways @(data_pid_sel)	case(data_pid_sel)		// synopsys full_case parallel_case	   2'd0: data_pid = { ~`USBF_T_PID_DATA0, `USBF_T_PID_DATA0};	   2'd1: data_pid = { ~`USBF_T_PID_DATA1, `USBF_T_PID_DATA1};	   2'd2: data_pid = { ~`USBF_T_PID_DATA2, `USBF_T_PID_DATA2};	   2'd3: data_pid = { ~`USBF_T_PID_MDATA, `USBF_T_PID_MDATA};	endcase// Data path Muxesalways @(send_token or send_token_r or token_pid or tx_data_data)	if(send_token || send_token_r)	tx_data_d = token_pid;	else				tx_data_d = tx_data_data;always @(dsel or tx_data_st or tx_spec_data)	if(dsel)	tx_data_data = tx_spec_data;	else		tx_data_data = tx_data_st;always @(crc_sel1 or crc_sel2 or data_pid or crc16_rev)	if(!crc_sel1 && !crc_sel2)	tx_spec_data = data_pid;	else	if(crc_sel1)			tx_spec_data = crc16_rev[15:8];	// CRC 1	else				tx_spec_data = crc16_rev[7:0];	// CRC 2assign tx_data = tx_data_d;// TX Valid assignmentassign tx_valid_last = send_token | last;assign tx_valid = tx_valid_d;always @(posedge clk)	tx_first_r <= send_token | send_data;assign tx_first = (send_token | send_data) & ! tx_first_r;// CRC Logicalways @(posedge clk)	send_data_r <= send_data;always @(posedge clk)	send_data_r2 <= send_data_r;assign crc16_clr = send_data & !send_data_r;assign crc16_add =  !zero_length_r & (send_data_r & !send_data_r2) | (rd_next & !crc_sel1); always @(posedge clk)	if(crc16_clr)		crc16 <= 16'hffff;	else	if(crc16_add)		crc16 <= crc16_next;usbf_crc16 u1(	.crc_in(	crc16		),	.din(	{tx_data_st[0], tx_data_st[1],		tx_data_st[2], tx_data_st[3],		tx_data_st[4], tx_data_st[5],		tx_data_st[6], tx_data_st[7]}	),	.crc_out(	crc16_next		) );assign crc16_rev[15] = ~crc16[8];assign crc16_rev[14] = ~crc16[9];assign crc16_rev[13] = ~crc16[10];assign crc16_rev[12] = ~crc16[11];assign crc16_rev[11] = ~crc16[12];assign crc16_rev[10] = ~crc16[13];assign crc16_rev[9]  = ~crc16[14];assign crc16_rev[8]  = ~crc16[15];assign crc16_rev[7]  = ~crc16[0];assign crc16_rev[6]  = ~crc16[1];assign crc16_rev[5]  = ~crc16[2];assign crc16_rev[4]  = ~crc16[3];assign crc16_rev[3]  = ~crc16[4];assign crc16_rev[2]  = ~crc16[5];assign crc16_rev[1]  = ~crc16[6];assign crc16_rev[0]  = ~crc16[7];/////////////////////////////////////////////////////////////////////// Transmit/Encode state machine//`ifdef USBF_ASYNC_RESETalways @(posedge clk or negedge rst)`elsealways @(posedge clk)`endif	if(!rst)	state <= IDLE;	else		state <= next_state;always @(state or send_data or tx_ready or tx_valid_r or send_zero_length_r)   begin	next_state = state;	// Default don't change current state	tx_valid_d = 1'b0;	dsel = 1'b0;	rd_next = 1'b0;	last = 1'b0;	crc_sel1 = 1'b0;	crc_sel2 = 1'b0;	case(state)		// synopsys full_case parallel_case	   IDLE:		   begin			if(send_zero_length_r && send_data)			   begin				tx_valid_d = 1'b1;				next_state = WAIT;				dsel = 1'b1;			   end			else			if(send_data)			// Send DATA packet			   begin				tx_valid_d = 1'b1;				next_state = DATA;				dsel = 1'b1;			   end		   end	   DATA:		   begin			if(tx_ready && tx_valid_r)				rd_next = 1'b1;			tx_valid_d = 1'b1;			if(!send_data && tx_ready && tx_valid_r)			   begin				dsel = 1'b1;				crc_sel1 = 1'b1;				next_state = CRC1;			   end		   end	   WAIT:		// In case of early tx_ready ...		   begin			crc_sel1 = 1'b1;			dsel = 1'b1;			tx_valid_d = 1'b1;			next_state = CRC1;		   end	   CRC1:		   begin			dsel = 1'b1;			tx_valid_d = 1'b1;			if(tx_ready)			   begin				last = 1'b1;				crc_sel2 = 1'b1;				next_state = CRC2;			   end			else			   begin				tx_valid_d = 1'b1;				crc_sel1 = 1'b1;			   end		   end	   CRC2:		   begin			dsel = 1'b1;			crc_sel2 = 1'b1;			if(tx_ready)			   begin				next_state = IDLE;			   end			else			   begin				last = 1'b1;			   end		   end	endcase   endendmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美久久久久久久久中文字幕| 国产丝袜美腿一区二区三区| 久久香蕉国产线看观看99| 成人欧美一区二区三区视频网页| 免费精品视频最新在线| 日本福利一区二区| 亚洲国产精品ⅴa在线观看| 日韩精品一二三四| 色综合av在线| 最新日韩av在线| 精品一区二区久久久| 777色狠狠一区二区三区| 亚洲人xxxx| 91天堂素人约啪| 欧美高清在线视频| 国产麻豆精品视频| 久久综合色之久久综合| 蜜臂av日日欢夜夜爽一区| 在线播放中文一区| 亚洲精品中文字幕乱码三区| 波多野结衣中文一区| 久久精品这里都是精品| 国产精品一区二区在线看| 精品国产露脸精彩对白| 日韩成人免费电影| 欧美一区二区美女| 日韩中文字幕亚洲一区二区va在线| 色诱亚洲精品久久久久久| 亚洲欧洲av另类| 99久久国产综合色|国产精品| 久久精品夜色噜噜亚洲aⅴ| 国产一区二区三区av电影 | 日韩经典中文字幕一区| 欧美亚洲国产一卡| 亚洲成人在线观看视频| 欧美日韩亚洲另类| 日本中文一区二区三区| 日韩免费视频一区| 国产一区二区美女| 久久久天堂av| 成人午夜激情在线| 亚洲精品成人在线| 精品视频1区2区| 美女一区二区三区在线观看| 日韩精品一区二区三区四区| 国产成人在线色| 亚洲欧美日韩成人高清在线一区| 在线视频欧美精品| 亚洲大片精品永久免费| 欧美大胆人体bbbb| 高清不卡一区二区| 一区二区三区中文在线| 欧美高清视频不卡网| 国内成人自拍视频| 亚洲人妖av一区二区| 欧美群妇大交群中文字幕| 蜜臀av国产精品久久久久| 国产网站一区二区| 欧美羞羞免费网站| 精东粉嫩av免费一区二区三区| 欧美极品aⅴ影院| 欧美视频自拍偷拍| 国产一区二区免费看| 亚洲在线一区二区三区| 日韩欧美区一区二| 99久久久国产精品免费蜜臀| 日韩va欧美va亚洲va久久| 欧美激情综合在线| 欧美日韩视频第一区| 国产激情一区二区三区四区| 亚洲一区在线观看免费| 日韩欧美国产高清| 一本大道综合伊人精品热热 | 亚洲综合成人在线视频| 精品欧美乱码久久久久久1区2区| 99久久久久久99| 国精产品一区一区三区mba视频| 亚洲欧美精品午睡沙发| 精品国产伦一区二区三区观看方式| 99视频在线观看一区三区| 精品一区二区免费| 亚洲成人777| 1024成人网| 国产午夜精品久久久久久久| 欧美一区二区观看视频| 色婷婷久久久综合中文字幕| 国产a精品视频| 蜜臀久久99精品久久久画质超高清| 亚洲人123区| 中文字幕亚洲综合久久菠萝蜜| 日韩午夜精品电影| 欧美久久一二三四区| 99re6这里只有精品视频在线观看| 久久99最新地址| 日韩福利视频导航| 亚洲精品免费在线| 国产精品夫妻自拍| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲男人天堂一区| 久久精品视频在线看| 久久综合av免费| 日韩精品一区二区三区中文不卡| 欧美日韩视频在线观看一区二区三区 | 91蝌蚪国产九色| 丰满白嫩尤物一区二区| 国产一区二区在线观看视频| 日本vs亚洲vs韩国一区三区| 亚洲午夜免费电影| 夜夜亚洲天天久久| 亚洲成人精品影院| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲同性同志一二三专区| 国产精品每日更新在线播放网址| 久久久久久久精| 国产亚洲欧美一级| 日本一区二区在线不卡| 欧美激情在线看| 国产精品国产三级国产普通话99| 欧美国产视频在线| 国产精品蜜臀av| 日韩毛片在线免费观看| 亚洲六月丁香色婷婷综合久久 | 美脚の诱脚舐め脚责91| 日本美女视频一区二区| eeuss影院一区二区三区| 国产精品一卡二| 北条麻妃国产九九精品视频| 91在线免费视频观看| 91在线看国产| 欧美日韩高清一区二区三区| 制服丝袜中文字幕一区| 精品国产一区久久| 亚洲国产精品成人综合色在线婷婷| 18欧美亚洲精品| 婷婷国产在线综合| 国内精品久久久久影院色| 成人听书哪个软件好| 91国在线观看| 精品久久久久一区二区国产| 久久久久久**毛片大全| 亚洲精品久久久久久国产精华液| 日韩激情在线观看| 国产成人精品午夜视频免费| 97se亚洲国产综合自在线观| 欧美精品在线观看一区二区| 精品处破学生在线二十三| 中文字幕一区二区日韩精品绯色| 亚洲一区二区视频在线| 捆绑紧缚一区二区三区视频| 成人av电影免费观看| 欧美美女网站色| 欧美激情资源网| 日韩精品一卡二卡三卡四卡无卡| 国产99精品视频| 欧美美女视频在线观看| 亚洲国产精品二十页| 婷婷一区二区三区| 风间由美一区二区av101| 欧美午夜片在线看| 久久影院电视剧免费观看| 亚洲香蕉伊在人在线观| 国产成人亚洲综合色影视| 欧美日韩一区二区三区不卡| 欧美激情一区二区在线| 天天综合色天天综合| 成人av影院在线| 精品噜噜噜噜久久久久久久久试看| 亚洲色图在线播放| 国产一区久久久| 欧美男男青年gay1069videost | 国产午夜精品在线观看| 五月婷婷综合在线| 91亚洲精品乱码久久久久久蜜桃 | 国产高清在线观看免费不卡| 欧美在线色视频| 中文字幕一区二区日韩精品绯色| 精品在线一区二区三区| 欧美群妇大交群中文字幕| 亚洲精品日日夜夜| 成人午夜av在线| 久久亚洲精华国产精华液 | 日韩一本二本av| 一区二区三区.www| 色综合网站在线| 中文字幕一区av| eeuss国产一区二区三区| 国产亚洲一区字幕| 国内成+人亚洲+欧美+综合在线| 欧美日韩不卡视频| 一区二区三区不卡在线观看| 9l国产精品久久久久麻豆| 久久精品视频一区二区三区| 精品一区二区三区视频在线观看| 在线成人免费观看| 日韩精品一区第一页| 在线综合亚洲欧美在线视频| 日本三级亚洲精品| 欧美一区二区三区色| 琪琪一区二区三区| 精品欧美一区二区久久|