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

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

?? usbtstpak.vhd

?? the vhdl model of usb. it is very helpful.
?? VHD
?? 第 1 頁 / 共 2 頁
字號(hào):
--------------------------------------------------------------------------------
-- Copyright (c) 2000 by Trenz Electronic.
-- Duenner Kirchweg 77, 32257 Buende, Germany, www.trenz-electronic.de
--     
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2 of the License, or
-- (at your option) any later version.
--     
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
--     
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
--------------------------------------------------------------------------------
-- Project:      Full-Speed USB 1.1 Function Controller
-- File:         usbTSTPAK.vhd
-- Description:  USB testbench package.
-- Version:      FB, 2000jun06
--------------------------------------------------------------------------------

library IEEE;
use IEEE.STD_LOGIC_1164.all;

package usbTSTPAK is
	--------------------
	component usbTSTctrl
		port(
			signal sim:     in    STD_LOGIC;  -- TRUE while simulating
			signal stim:    in    STD_LOGIC;  -- TRUE to stimulate UUT
			--
			signal clk48:   out   STD_LOGIC;  -- 48MHz clock
			signal rst:     out   STD_LOGIC;  -- async reset
			--
			signal uut_rxd: out   STD_LOGIC;  -- UUT rxd pin
			signal uut_rx0: out   STD_LOGIC;  -- UUT rx0 pin
			signal uut_txd: in    STD_LOGIC;  -- UUT txd pin
			signal uut_tx0: in    STD_LOGIC;  -- UUT tx0 pin
			--
			signal tb_xd:   in    STD_LOGIC;  -- testbench xd signal
			signal tb_x0:   in    STD_LOGIC;  -- testbench x0 signal
			signal tb_clk:  out   STD_LOGIC   -- testbench clock
			);
	end component;
	
	--------------------
	subtype packetCHR is STD_LOGIC_VECTOR(7 downto 0);
	type    packetBUF is array (POSITIVE range <>) of packetCHR;
	
	procedure packetOUT(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC;
	addr:        in    STD_LOGIC_VECTOR(6 downto 0);
	ep:          in    STD_LOGIC_VECTOR(3 downto 0));
	
	procedure packetIN(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC;
	addr:        in    STD_LOGIC_VECTOR(6 downto 0);
	ep:          in    STD_LOGIC_VECTOR(3 downto 0));
	
	procedure packetSOF(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC;
	frame:       in    STD_LOGIC_VECTOR(10 downto 0));
	
	procedure packetSETUP(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC;
	addr:        in    STD_LOGIC_VECTOR(6 downto 0);
	ep:          in    STD_LOGIC_VECTOR(3 downto 0));
	
	procedure packetDATA0(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC;
	data:        in    packetBUF);
	
	procedure packetDATA0(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC;
	data:        in    packetCHR);
	
	procedure packetDATA0(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC);
	
	procedure packetDATA1(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC;
	data:        in    packetBUF);
	
	procedure packetDATA1(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC;
	data:        in    packetCHR);
	
	procedure packetDATA1(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC);
	
	procedure packetACK(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC);
	
	procedure packetNAK(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC);
	
	procedure packetSTALL(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC);
	
	procedure packetIDLE(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC;
	cycles:      in    INTEGER);
	
	procedure packetRESET(
	signal clk:  in    STD_LOGIC;
	signal xd:   out   STD_LOGIC;
	signal x0:   out   STD_LOGIC);
	
end usbTSTPAK;

--------------------------------------------------------------------------------
package body usbTSTPAK is
	-- token PIDs
	constant fieldOUTpid:   STD_LOGIC_VECTOR(7 downto 0):= "11100001";
	constant fieldINpid:    STD_LOGIC_VECTOR(7 downto 0):= "01101001";
	constant fieldSOFpid:   STD_LOGIC_VECTOR(7 downto 0):= "10100101";
	constant fieldSETUPpid: STD_LOGIC_VECTOR(7 downto 0):= "00101101";
	-- data PIDs
	constant fieldDATA0pid: STD_LOGIC_VECTOR(7 downto 0):= "11000011";
	constant fieldDATA1pid: STD_LOGIC_VECTOR(7 downto 0):= "01001011";
	-- handshake PIDs
	constant fieldACKpid:   STD_LOGIC_VECTOR(7 downto 0):= "11010010";
	constant fieldNAKpid:   STD_LOGIC_VECTOR(7 downto 0):= "01011010";
	constant fieldSTALLpid: STD_LOGIC_VECTOR(7 downto 0):= "00011110";
	-- special PIDs
	constant fieldPREpid:   STD_LOGIC_VECTOR(7 downto 0):= "00111100";
	-- CRC fields	
	constant fieldCRC5polynomial:  STD_LOGIC_VECTOR(4 downto 0):= "00101";
	constant fieldCRC5residual:    STD_LOGIC_VECTOR(4 downto 0):= "01100";
	constant fieldCRC16polynomial: STD_LOGIC_VECTOR(15 downto 0):= "1000000000000101";
	constant fieldCRC16residual:   STD_LOGIC_VECTOR(15 downto 0):= "1000000000001101";
	
	-- internal variables
	shared variable nrzi_x: STD_LOGIC;
	shared variable nrzi_n: integer;
	shared variable crc5:   STD_LOGIC_VECTOR(4 downto 0);
	shared variable crc16:  STD_LOGIC_VECTOR(15 downto 0);
	
	----------------------------------------
	-- part #1: levels
	procedure levelJ(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC) is
	begin
		wait until rising_edge(clk);
		xd<= '1';
		x0<= '0';
	end procedure;
	
	--------------------
	procedure levelK(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC) is
	begin
		wait until rising_edge(clk);
		xd<= '0';
		x0<= '0';
	end procedure;
	
	--------------------
	procedure levelSE0(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC) is
	begin
		wait until rising_edge(clk);
		xd<= '-';
		x0<= '1';
	end procedure;
	
	--------------------
	procedure levelD01(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC;
		d: in STD_LOGIC) is
	begin
		wait until rising_edge(clk);
		xd<= d;
		x0<= '0';
	end procedure;
	
	----------------------------------------
	-- part #2: bits
	procedure bitJ(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC) is
	begin
		levelJ(clk, xd, x0);
		nrzi_x:= '1';
		nrzi_n:= 0;
	end procedure;
	
	--------------------
	procedure bitK(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC) is
	begin
		levelK(clk, xd, x0);
		nrzi_x:= '0';
		nrzi_n:= 0;
	end procedure;
	
	--------------------
	procedure bitSE0(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC) is
	begin
		levelSE0(clk, xd, x0);
		nrzi_x:= 'X';
		nrzi_n:= 0;
	end procedure;
	
	--------------------
	procedure bit01(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC;
		d: in STD_LOGIC) is
	begin
		if d= '0' then
			levelD01(clk, xd, x0, not(nrzi_x));  -- zero: toggle
			nrzi_x:= not(nrzi_x);
			nrzi_n:= 0;
		elsif d= '1' then
			levelD01(clk, xd, x0, nrzi_x); -- one: keep value
			nrzi_n:= nrzi_n + 1;
			
			if nrzi_n= 6 then
				levelD01(clk, xd, x0, not(nrzi_x)); -- bitstuff: toggle
				nrzi_x:= not(nrzi_x);
				nrzi_n:= 0;
			end if;
		else
			levelD01(clk, xd, x0, 'X'); -- undefined
			nrzi_x:= 'X';
			nrzi_n:= 0;
		end if;
	end procedure;
	
	----------------------------------------
	-- part #3: fields
	procedure fieldComputeCRC5(d: in STD_LOGIC) is
		variable q: STD_LOGIC;
	begin
		--	For CRC generation and checking, the shift registers in the 
		--	generator and checker are seeded with an all-ones pattern. 
		--	For each data bit sent or received, the high order bit of 
		--	the current remainder is XORed with the data bit and then 
		--	the remainder is shifted left one bit and the low-order bit 
		--	set to zero. If the result of that XOR is one, then the 
		--	remainder is XORed with the generator polynomial.
		q:= crc5(crc5'left) xor d;
		crc5:= crc5(crc5'left-1 downto 0) & '0';
		if q= '1' then
			crc5:= crc5 xor fieldCRC5polynomial;
		end if;
	end procedure;
	
	--------------------
	procedure fieldComputeCRC16(d: in STD_LOGIC) is
		variable q: STD_LOGIC;
	begin
		q:= crc16(crc16'left) xor d;
		crc16:= crc16(crc16'left-1 downto 0) & '0';
		if q= '1' then
			crc16:= crc16 xor fieldCRC16polynomial;
		end if;
	end procedure;
	
	--------------------
	procedure fieldSYNC(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC) is
	begin
		bitK(clk, xd, x0);
		bitJ(clk, xd, x0);
		bitK(clk, xd, x0);
		bitJ(clk, xd, x0);
		bitK(clk, xd, x0);
		bitJ(clk, xd, x0);
		bitK(clk, xd, x0);
		bitK(clk, xd, x0);
	end procedure;
	
	--------------------
	procedure fieldEOP(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC) is
	begin
		bitSE0(clk, xd, x0);
		bitSE0(clk, xd, x0);
		bitJ  (clk, xd, x0);
	end procedure;
	
	--------------------
	procedure fieldIDLE(	
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC) is
	begin
		bitJ  (clk, xd, x0);
	end procedure;
	
	--------------------
	procedure fieldSE0(
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC) is
	begin
		bitSE0(clk, xd, x0);
	end procedure;
	
	--------------------
	procedure fieldADDR(
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC;
		addr:        in    STD_LOGIC_VECTOR(6 downto 0)) is
	begin
		bit01(clk, xd, x0, addr(0)); fieldComputeCRC5(addr(0));
		bit01(clk, xd, x0, addr(1)); fieldComputeCRC5(addr(1));
		bit01(clk, xd, x0, addr(2)); fieldComputeCRC5(addr(2));
		bit01(clk, xd, x0, addr(3)); fieldComputeCRC5(addr(3));
		bit01(clk, xd, x0, addr(4)); fieldComputeCRC5(addr(4));
		bit01(clk, xd, x0, addr(5)); fieldComputeCRC5(addr(5));
		bit01(clk, xd, x0, addr(6)); fieldComputeCRC5(addr(6));
	end procedure;
	
	--------------------
	procedure fieldEP(
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC;
		ep:          in    STD_LOGIC_VECTOR(3 downto 0)) is
	begin
		bit01(clk, xd, x0, ep(0)); fieldComputeCRC5(ep(0));
		bit01(clk, xd, x0, ep(1)); fieldComputeCRC5(ep(1));
		bit01(clk, xd, x0, ep(2)); fieldComputeCRC5(ep(2));
		bit01(clk, xd, x0, ep(3)); fieldComputeCRC5(ep(3));
	end procedure;
	
	--------------------
	procedure fieldFRAME(
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC;
		frame:       in    STD_LOGIC_VECTOR(10 downto 0)) is
	begin
		bit01(clk, xd, x0, frame(0));  fieldComputeCRC5(frame(0));
		bit01(clk, xd, x0, frame(1));  fieldComputeCRC5(frame(1));
		bit01(clk, xd, x0, frame(2));  fieldComputeCRC5(frame(2));
		bit01(clk, xd, x0, frame(3));  fieldComputeCRC5(frame(3));
		bit01(clk, xd, x0, frame(4));  fieldComputeCRC5(frame(4));
		bit01(clk, xd, x0, frame(5));  fieldComputeCRC5(frame(5));
		bit01(clk, xd, x0, frame(6));  fieldComputeCRC5(frame(6));
		bit01(clk, xd, x0, frame(7));  fieldComputeCRC5(frame(7));
		bit01(clk, xd, x0, frame(8));  fieldComputeCRC5(frame(8));
		bit01(clk, xd, x0, frame(9));  fieldComputeCRC5(frame(9));
		bit01(clk, xd, x0, frame(10)); fieldComputeCRC5(frame(10));
	end procedure;
	
	--------------------
	procedure fieldPID(
		signal clk:  in    STD_LOGIC;
		signal xd:   out   STD_LOGIC;
		signal x0:   out   STD_LOGIC;
		data:        in    STD_LOGIC_VECTOR(7 downto 0)) is
	begin
		bit01(clk, xd, x0, data(0));
		bit01(clk, xd, x0, data(1));
		bit01(clk, xd, x0, data(2));
		bit01(clk, xd, x0, data(3));
		bit01(clk, xd, x0, data(4));
		bit01(clk, xd, x0, data(5));
		bit01(clk, xd, x0, data(6));
		bit01(clk, xd, x0, data(7));
		crc5:=  (others=> '1');
		crc16:= (others=> '1');
	end procedure;
	
	--------------------
	procedure fieldBYTE(
		signal clk:  in    STD_LOGIC;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丰满亚洲少妇av| www.色精品| 亚洲欧美综合色| 日韩免费高清av| 色八戒一区二区三区| 国产一区二区影院| 亚洲成人在线免费| 国产精品你懂的在线欣赏| 欧美一级精品大片| 欧美亚洲免费在线一区| 99久久er热在这里只有精品15 | 欧美日韩成人综合天天影院| 国产剧情一区在线| 久久爱www久久做| 亚洲福利一区二区| 一区二区三区欧美视频| 国产欧美一区二区三区网站 | 制服.丝袜.亚洲.中文.综合| 91影视在线播放| 成人综合在线观看| 国产一区二区三区日韩| 欧美96一区二区免费视频| 亚洲国产成人av网| 亚洲在线观看免费视频| 一级女性全黄久久生活片免费| 国产精品国产三级国产a| 欧美高清一级片在线观看| 精品国产乱码久久久久久1区2区| 在线不卡一区二区| 在线不卡欧美精品一区二区三区| 日本国产一区二区| 色综合久久久久| 99久久国产免费看| 97国产一区二区| 日本精品免费观看高清观看| 91在线国产观看| 色综合夜色一区| 91偷拍与自偷拍精品| 91久久精品一区二区三区| 99久久精品免费看国产| 色婷婷亚洲婷婷| 在线观看免费视频综合| 欧洲精品视频在线观看| 欧美性色欧美a在线播放| 欧洲视频一区二区| 欧美日韩国产精选| 91精品国产色综合久久久蜜香臀| 制服丝袜日韩国产| 日韩亚洲欧美在线| 久久综合久色欧美综合狠狠| 久久嫩草精品久久久精品一| 国产日韩在线不卡| 中文字幕制服丝袜一区二区三区| 中文字幕一区二区三| 一区二区三区加勒比av| 天天综合天天综合色| 精品一区二区三区在线视频| 国产精品88888| 99国产欧美久久久精品| 久久久91精品国产一区二区三区| 久久久久久久久一| 亚洲欧洲精品一区二区三区 | 依依成人精品视频| 日本在线观看不卡视频| 国产美女主播视频一区| 99re这里只有精品视频首页| 欧美色爱综合网| 久久综合久久99| 亚洲欧洲三级电影| 日本免费新一区视频| 国产精品一级片| 色88888久久久久久影院按摩| 欧美一区二区三区喷汁尤物| 欧美国产一区二区| 亚洲福利视频导航| 国产69精品久久久久777| 色狠狠色狠狠综合| 精品国产乱码91久久久久久网站| 国产精品你懂的在线欣赏| 偷拍日韩校园综合在线| 国产成人在线视频免费播放| 欧美丝袜第三区| 久久网站热最新地址| 亚洲激情av在线| 麻豆精品精品国产自在97香蕉| 不卡的电影网站| 欧美一区三区二区| 中文字幕在线观看不卡视频| 日韩高清在线不卡| 一本高清dvd不卡在线观看| 日韩精品在线网站| 一级日本不卡的影视| 国产酒店精品激情| 91精品国产免费| 亚洲免费av高清| 国产一二三精品| 91精品国产全国免费观看| 最好看的中文字幕久久| 狠狠v欧美v日韩v亚洲ⅴ| 欧美体内she精高潮| 国产精品久久影院| 久久精品国产久精国产| 欧美区一区二区三区| 亚洲视频在线观看一区| 高清国产一区二区三区| 日韩精品中午字幕| 亚瑟在线精品视频| 91国偷自产一区二区使用方法| 久久久久久久免费视频了| 日韩成人伦理电影在线观看| 色婷婷av一区二区三区之一色屋| 国产日产欧美精品一区二区三区| 日本视频一区二区三区| 欧美日韩不卡视频| 亚洲国产精品影院| 在线亚洲高清视频| 亚洲视频一区在线观看| 国产91综合网| 久久人人97超碰com| 美国av一区二区| 欧美一级欧美三级| 五月婷婷色综合| 欧美日韩精品一二三区| 亚洲在线视频免费观看| 日本韩国欧美一区二区三区| 亚洲精品一二三| 91麻豆视频网站| 一区二区三区四区视频精品免费| aaa国产一区| 亚洲日本免费电影| 色视频一区二区| 亚洲精品视频免费看| 在线精品亚洲一区二区不卡| 一区二区理论电影在线观看| 91久久精品午夜一区二区| 亚洲五月六月丁香激情| 欧美精品一卡二卡| 日韩精品免费视频人成| 日韩一级黄色大片| 国产一区二区三区蝌蚪| 国产色91在线| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 欧美放荡的少妇| 日产国产欧美视频一区精品| 欧美一区二区三区不卡| 蜜臀av一区二区在线观看| 欧美成人精品1314www| 国产在线视频不卡二| 中文字幕欧美国产| 99re8在线精品视频免费播放| 一区二区在线免费| 欧美一区二区高清| 国产河南妇女毛片精品久久久| 国产精品视频免费看| 91亚洲永久精品| 日韩激情视频在线观看| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产色综合一区| 91色综合久久久久婷婷| 亚洲自拍都市欧美小说| 欧美精品视频www在线观看| 麻豆精品一二三| 欧美激情综合在线| 日本精品视频一区二区| 美女诱惑一区二区| 国产亚洲精久久久久久| 欧美做爰猛烈大尺度电影无法无天| 亚洲第一av色| 国产亚洲美州欧州综合国| 色哟哟亚洲精品| 免费成人在线观看| 国产精品美女久久久久av爽李琼| 日本韩国一区二区三区| 狠狠色综合色综合网络| 一区二区三区中文字幕电影| 日韩一级欧美一级| 91麻豆国产福利精品| 老司机精品视频在线| 亚洲欧美日韩一区二区 | 91免费观看国产| 久久精品国产99久久6| 自拍av一区二区三区| 日韩一二三区不卡| 色天天综合久久久久综合片| 免播放器亚洲一区| 亚洲一区二区三区国产| 国产亚洲综合在线| 777午夜精品免费视频| 成人国产精品免费观看动漫| 日本中文一区二区三区| 亚洲人成小说网站色在线| 精品国产乱码久久久久久影片| 日本久久电影网| 粉嫩久久99精品久久久久久夜| 蜜桃av噜噜一区二区三区小说| 一区二区三区在线免费视频| 国产丝袜在线精品| 日韩欧美一级二级三级久久久| 91久久奴性调教| av高清不卡在线|