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

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

?? ss_smii_tomii.vhd

?? SMII 到 MII 轉換的VHDL代碼
?? VHD
?? 第 1 頁 / 共 2 頁
字號:
------------------------------------------------------------------------------
--                                                  						--               
-- 					   SMII To MII Module Design							--
--                                                              			--
-- 				Copyright (C) Level One Communications						--
--							  an intel company								--
------------------------------------------------------------------------------

------------------------------------------------------------------------------
--																			--
-- FILE NAME   : SMII_TOMII.VHD												--
-- FUNCTION    : THIS MODULE CONVERTS MII TO SMII & SMII TO MII				--	
-- AUTHOR      : PETE RAMOS													--
-- DATE		   : May 2000														--
------------------------------------------------------------------------------		
-- Notes:																	
--
-- 1. For this module to work properly the SMII_SYNC and the MII_CLK
--	  rising edge must be in phase with each other.
--
--
--
Library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

ENTITY SS_SMII_TOMII IS
	PORT(
--
--	BOARD RESET & STATUS LED'S
--
		 nRESET				:in		std_logic;						-- ACTIVE LOW
		 SYNC_FPGA_A		:out	std_logic;	
		 SYNC_FPGA_B		:in		std_logic;	
		 PORT_STATUS		:out	std_logic_vector(6 downto 0);
--		 7='1'	
--       6=FALSE CARRIER DETECT, 
--       5=UPPER NIBBLE VALID(0=INVALID, 1=VALID), 
--       4=JABBER(0=OK, 1=ERROR),
-- 		 3=LINK(0=DOWN, 1=UP),
-- 		 2=DUPLEX(0=HALF, 1=FULL),
-- 		 1=SPEED(0=10Mbps, 1=100Mbps),
-- 		 0=RX_ER FROM PREVIOUS FRAME
--
		 SW_OVERRIDE		:in		std_logic_vector(2 downto 0);
--		 2=DUPLEX(HALF('0'), FULL('1'))
--		 1=SPEED(10('0'), 100(1)
--		 0=AUTO('0')/MANUAL OVERRIDE('1')
--
--	SMII SIGNALS
--
--	DEBUG SIGNALS

--		 SMII_SYCNT		:out	std_logic_vector(3 downto 0);	
--		 SMII_RXCNT		:out	std_logic_vector(3 downto 0);	
--		 SMII_CRS		:out	std_logic_vector(3 downto 0);	
--		 SMII_DV			:out	std_logic_vector(3 downto 0);	
--		 FALSECRS			:out	std_logic_vector(2 downto 0);	
--		 UPNIBVAL			:out	std_logic_vector(2 downto 0);	
--		 SPEED				:out    std_logic;
--		 RMII_DV			:out	std_logic_vector(3 downto 0);	
--		 RMII_CRS			:out	std_logic_vector(3 downto 0);	
--		 RMII_CNT0			:out	std_logic_vector(1 downto 0);			
--		 RMII_CNT1			:out	std_logic_vector(3 downto 0);			
--		 DIBIT_CNT			:out	std_logic_vector(1 downto 0);			
--		
		 SMII_REFCLK0		:in		std_logic;						-- 125 MHz CLOCK
		 SMII_REFCLK1		:in		std_logic;						-- 125 MHz CLOCK
		 SMII_SYNC			:out	std_logic;						
--	(RX)
		 SMII_RXD			:in		std_logic;						
--	(TX)
		 SMII_TXD			:out	std_logic;						
--
--	MII SIGNALS
--
		 MII_CRS			:out    std_logic;
		 MII_COL			:out    std_logic;
--	(RX)
		 MII_RXCLK			:out	std_logic;						-- mii clock which is also provided to the MII port
		 MII_RXER			:out    std_logic;
		 MII_RXDV			:out    std_logic;
		 MII_RXD0			:out	std_logic;
		 MII_RXD1			:out	std_logic;
		 MII_RXD2			:out	std_logic;
		 MII_RXD3			:out	std_logic;
--	(TX)
		 MII_TXCLK			:out	std_logic;						-- mii clock which is also provided to the MII port
		 MII_TXER			:in     std_logic;
		 MII_TXEN			:in     std_logic;
		 MII_TXD0			:in		std_logic;
		 MII_TXD1			:in		std_logic;
		 MII_TXD2			:in		std_logic;		
		 MII_TXD3			:in		std_logic);

END SS_SMII_TOMII;												

ARCHITECTURE SS_SMII_LOGIC Of SS_SMII_TOMII IS

type 	 STATE_TYPE1 		is(st0, st1, st2, st3);
signal   SYNC_STATE			:state_type1; 
signal   NEXT_STATE			:state_type1; 
signal   iSTART_TXSYNC		:std_logic;

-- IF SPEED=1 THEN 100Mbps ELSE 10Mbps
signal	 iSPEED				:std_logic;			
signal	 iSPEED_0			:std_logic;			
signal	 iSPEED_1			:std_logic;			

-- IF DUPLEX=1 THEN 100Mbps ELSE 10Mbps
signal	 iDUPLEX			:std_logic;			
signal	 iDUPLEX_0			:std_logic;			
signal	 iDUPLEX_1			:std_logic;			

-- USED TO DIVIDE SS_SMII_RXCLK TO MII_RXCLK
signal	 iSYNC_RXCLK		:std_logic_vector(1 downto 0);			
signal	 iDIV_RX100CLK		:std_logic_vector(2 downto 0);
signal	 iMII_RX100CLK		:std_logic;
signal	 iDIV_RX10CLK		:std_logic_vector(3 downto 0);
signal	 iMII_RX10CLK		:std_logic;
signal	 iMII_RXCLK			:std_logic;

-- USED TO DIVIDE SMII_REFCLK TO MII TXCLK & RXCLK
signal	 iSYNC_TXCLK		:std_logic_vector(1 downto 0);			
signal	 iDIV_TX100CLK		:std_logic_vector(2 downto 0);
signal	 iMII_TX100CLK		:std_logic;
signal	 iDIV_TX10CLK		:std_logic_vector(3 downto 0);
signal	 iMII_TX10CLK		:std_logic;
signal	 iMII_TXCLK			:std_logic;

--
-- MII
--

--
-- RX
signal	 iMII_CNT0				:std_logic;			
signal	 iMII_RXDV				:std_logic_vector(1 downto 0);								
signal	 iMII_RXDV_0			:std_logic;								
signal	 iMII_RXCRS				:std_logic_vector(1 downto 0);								
signal	 iMII_RXCRS_0			:std_logic;								
signal	 iMII_RXER				:std_logic_vector(1 downto 0);								
signal	 iMII_RXD0				:std_logic_vector(1 downto 0);			
signal	 iMII_RXD1				:std_logic_vector(1 downto 0);			
signal	 iMII_RXD2				:std_logic_vector(1 downto 0);			
signal	 iMII_RXD3				:std_logic_vector(1 downto 0);			
signal	 iMII_RXCNT				:std_logic_vector(1 downto 0);			
signal	 iMII_LSTFRM_FALSECRS	:std_logic;
signal	 iMII_LSTFRM_UPNIBVAL	:std_logic;
signal	 iMII_LSTFRM_RXER		:std_logic;

--
-- TX 
signal   iNEW_MIITX				:std_logic;			
signal	 iMII_TXCNT				:std_logic;			
signal	 iMII_TXD				:std_logic_vector(7 downto 0);			
signal	 iMII_TXD_0				:std_logic_vector(9 downto 0);			
signal	 iMII_TXEN				:std_logic;			
signal	 iMII_TXEN_0			:std_logic;			
signal	 iMII_TXER				:std_logic;			
signal	 iMII_TXER_0			:std_logic;
			
--
-- SMII
--

--
-- RX
signal	 SHFTLSTDAT_CNT		:std_logic_vector(2 downto 0);
signal	 iSMII_SYCNT		:std_logic_vector(3 downto 0);
signal	 iSMII_CNTH			:std_logic_vector(3 downto 0);
signal	 iSMII_RXD			:std_logic_vector(7 downto 0);
signal	 iSMII_RXD_0		:std_logic_vector(7 downto 0);
signal	 iSMII_RXD_1		:std_logic_vector(7 downto 0);
signal	 iSMII_RXD_2		:std_logic_vector(7 downto 0);
signal	 iSMII_RXCRS		:std_logic;
signal	 iSMII_RXCRS_0		:std_logic_vector(3 downto 0);
signal	 iSMII_RXDV			:std_logic;
signal	 iSMII_RXDV0		:std_logic;
signal	 iSMII_RXDV_0		:std_logic_vector(3 downto 0);
signal	 iSMII_RXCNT		:std_logic_vector(3 downto 0);
-- last RX frame or upper nible status bits
signal   iLSTFRM_FALSECRS	:std_logic;
signal   iLSTFRM_FALSECRS_0	:std_logic_vector(2 downto 0);
signal	 iLSTFRM_RXER		:std_logic;
signal	 iLSTFRM_RXER_0		:std_logic_vector(1 downto 0);
signal	 iLSTFRM_UPNIBVAL	:std_logic;
signal	 iLSTFRM_UPNIBVAL_0	:std_logic_vector(2 downto 0);

--
-- TX
signal   iSYNC_FPGA_A		:std_logic;								
signal	 iSYNC_FPGA_CNT0	:std_logic_vector(2 downto 0);						
signal	 iSYNC_CNT			:std_logic_vector(3 downto 0);			
signal	 iSMII_SYNC			:std_logic;								
signal	 iSMII_TXD			:std_logic_vector(9 downto 0);

BEGIN
	Process(SW_OVERRIDE)	
	Begin
		case SW_OVERRIDE(0) is
		when '0'=>
			iSPEED_1<=iSPEED_0;
			iDUPLEX_1<=iDUPLEX_0;
		when '1'=>		
			iSPEED_1<=SW_OVERRIDE(1);
			iDUPLEX_1<=SW_OVERRIDE(2);
		when others=>
		end case;
	End Process;
--
--  creates mii rxclk for 25(100 Mbps) & 5(10 Mbps) MHz
--
	Process(SMII_REFCLK1)	
	Begin
		if(SMII_REFCLK1'EVENT and SMII_REFCLK1='1')then
			if(iSMII_RXCNT="1001" and iSYNC_RXCLK/="11")then			
				iSYNC_RXCLK<=iSYNC_RXCLK+1;
			elsif(iSYNC_RXCLK="11")then			
				if(iDIV_RX100CLK="100")then
					iDIV_RX100CLK<="000";
				else
					iDIV_RX100CLK<=iDIV_RX100CLK+1;
				end if;
				if(iDIV_RX100CLK<"011")then
					iMII_RX100CLK<='0';
				else
					iMII_RX100CLK<='1';
				end if;
			end if;
		end if;
	End Process;
	Process(iMII_RX100CLK)	
	Begin
		if(iMII_RX100CLK'EVENT and iMII_RX100CLK='1')then
			if(iDIV_RX10CLK="1001")then
				iDIV_RX10CLK<="0000";
			else
				iDIV_RX10CLK<=iDIV_RX10CLK+1;
			end if;
			if(iDIV_RX10CLK<"0101")then
				iMII_RX10CLK<='0';
			else
				iMII_RX10CLK<='1';
			end if;
		end if;
	End Process;		
--
--  creates mii txclk for 25(100 Mbps) & 5(10 Mbps) MHz
--
	Process(SMII_REFCLK0)	
	Begin
		if(SMII_REFCLK0'EVENT and SMII_REFCLK0='1')then
			if(iSYNC_CNT="1000" and iSYNC_TXCLK/="11")then			
				iSYNC_TXCLK<=iSYNC_TXCLK+1;
			elsif(iSYNC_TXCLK="11")then			
				if(iDIV_TX100CLK="100")then
					iDIV_TX100CLK<="000";
				else
					iDIV_TX100CLK<=iDIV_TX100CLK+1;
				end if;
				if(iDIV_TX100CLK<"011")then
					iMII_TX100CLK<='0';
				else
					iMII_TX100CLK<='1';
				end if;
			end if;
		end if;
	End Process;
	Process(iMII_TX100CLK)	
	Begin
		if(iMII_TX100CLK'EVENT and iMII_TX100CLK='1')then
			if(iDIV_TX10CLK="1001")then
				iDIV_TX10CLK<="0000";
			else
				iDIV_TX10CLK<=iDIV_TX10CLK+1;
			end if;
			if(iDIV_TX10CLK<"0101")then
				iMII_TX10CLK<='0';
			else
				iMII_TX10CLK<='1';
			end if;
		end if;
	End Process;

	Process(iSPEED_1)	
	Begin
		case iSPEED_1 is
		when '0'=>
			iMII_RXCLK<=iMII_RX10CLK;
			MII_RXCLK<=iMII_RX10CLK;
			iMII_TXCLK<=iMII_TX10CLK;
			MII_TXCLK<=iMII_TX10CLK;
		when '1'=>
			iMII_RXCLK<=iMII_RX100CLK;
			MII_RXCLK<=iMII_RX100CLK;
			iMII_TXCLK<=iMII_TX100CLK;
			MII_TXCLK<=iMII_TX100CLK;
		when others=>
		end case;
	End Process;

-------------------------------------------------------------------------
--																		-
--								MII 									-
--																		-
-------------------------------------------------------------------------
--
--	COMMON RX & TX MII SIGNALS
--
--  collission detect only when in half duplex
	Process(iDUPLEX_1)	
	Begin
		case iDUPLEX_1 is
		when '1'=>
			MII_COL<='0';
			MII_CRS<='0';
		when '0'=>
			MII_CRS<=iSMII_RXCRS or MII_TXEN;
			if(MII_TXEN='1' and iMII_RXDV_0='1')then
				MII_COL<='1';
			else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜久久福利影院| 国产日韩av一区| 99视频一区二区| 国产在线精品一区二区夜色| 亚洲午夜电影在线| 亚洲成人动漫在线免费观看| 亚洲韩国一区二区三区| 亚洲午夜av在线| 日本在线播放一区二区三区| 热久久久久久久| 日本成人在线一区| 久久er99精品| 国产99精品在线观看| 粉嫩在线一区二区三区视频| 成人妖精视频yjsp地址| 国产 日韩 欧美大片| 成人黄色综合网站| 91美女片黄在线观看91美女| 欧美自拍丝袜亚洲| 欧美二区在线观看| 精品久久久久久久久久久久久久久久久| 91精品一区二区三区在线观看| 555www色欧美视频| 精品久久久久一区二区国产| 国产精品三级在线观看| 蜜臀精品一区二区三区在线观看| 日韩av在线发布| 国产在线视视频有精品| 成人国产精品免费观看视频| 91色.com| 欧美电影免费提供在线观看| 国产精品美日韩| 亚洲一区二区精品视频| 毛片av一区二区| 成人午夜电影久久影院| 欧美调教femdomvk| 久久影院视频免费| 亚洲免费观看高清完整版在线观看熊 | 亚洲va国产va欧美va观看| 天堂一区二区在线免费观看| 狠狠色狠狠色综合| 一本大道久久a久久精品综合| 91麻豆精品国产91久久久使用方法 | 亚洲愉拍自拍另类高清精品| 久久精品国产免费| 懂色av噜噜一区二区三区av| 欧美剧在线免费观看网站| 久久久国产精品麻豆 | 91免费视频网址| 国产精品久久久久毛片软件| 日本不卡1234视频| 99久久99久久综合| 26uuu久久综合| 亚洲不卡av一区二区三区| 粉嫩av一区二区三区| 777亚洲妇女| 亚洲综合自拍偷拍| 成人av网站在线| 久久香蕉国产线看观看99| 亚洲国产精品麻豆| 99久久久久久99| 国产女人aaa级久久久级| 日韩精品乱码av一区二区| 91黄色免费看| 国产精品国产三级国产aⅴ原创 | 丝袜美腿亚洲色图| 99久久国产综合精品麻豆| 久久久综合视频| 免费人成黄页网站在线一区二区| 一本久久a久久精品亚洲| 国产欧美一区二区精品性| 国产在线视频精品一区| 日韩免费观看高清完整版在线观看| 亚洲精品国产精品乱码不99| 99精品热视频| 最新中文字幕一区二区三区 | 国产精品久久久久久久岛一牛影视| 麻豆成人免费电影| 日韩三级.com| 精品午夜久久福利影院| 精品sm捆绑视频| 国产伦精品一区二区三区免费| 久久亚洲捆绑美女| 国产在线观看一区二区| 久久久久久一级片| 国产一区 二区| 国产精品久久久久影视| 99国产精品久久久久| 亚洲黄一区二区三区| 在线观看国产91| 午夜久久久久久久久| 日韩视频在线永久播放| 国产麻豆精品theporn| 国产清纯在线一区二区www| 成人av先锋影音| 亚洲精品乱码久久久久久| 在线观看国产精品网站| 日韩精品电影在线| 精品国产乱码久久久久久图片| 国产精品一区一区| 国产精品初高中害羞小美女文| 91久久精品网| 蜜臀久久99精品久久久画质超高清| 26uuu国产在线精品一区二区| 成人污视频在线观看| 亚洲精品中文字幕在线观看| 欧美狂野另类xxxxoooo| 精品一区二区精品| 亚洲欧美一区二区久久 | 日韩国产在线一| 久久综合色之久久综合| 色婷婷精品久久二区二区蜜臂av | 日韩国产欧美一区二区三区| 精品国产乱码久久久久久1区2区| 丁香婷婷综合网| 亚洲成人免费视| 日本一二三不卡| 制服丝袜在线91| 99re在线视频这里只有精品| 青青国产91久久久久久| 国产精品国产三级国产三级人妇| 69堂国产成人免费视频| 97se亚洲国产综合自在线| 日本不卡在线视频| 亚洲美女视频一区| 26uuu亚洲婷婷狠狠天堂| 欧美亚洲愉拍一区二区| 丁香激情综合五月| 日本欧美在线观看| 夜夜精品视频一区二区| 国产精品午夜电影| 精品国内片67194| 欧美精品在线观看播放| 91看片淫黄大片一级在线观看| 狠狠色狠狠色综合系列| 奇米色777欧美一区二区| 亚洲激情欧美激情| 一区二区中文视频| 中文字幕精品一区二区精品绿巨人 | 91精品国产综合久久福利软件 | 国产成人无遮挡在线视频| 日韩制服丝袜av| 亚洲精品老司机| 最新国产成人在线观看| 国产欧美日韩另类视频免费观看| 这里只有精品免费| 欧美日韩mp4| 91蝌蚪porny九色| 99久久er热在这里只有精品15| 国产成人午夜99999| 国产呦精品一区二区三区网站| 久久成人免费电影| 久久国产精品72免费观看| 蜜桃视频在线观看一区| 日本欧美一区二区| 国产a级毛片一区| 国产毛片精品国产一区二区三区| 美女精品自拍一二三四| 免费在线看一区| 免费成人性网站| 黄一区二区三区| 国产麻豆精品一区二区| 国产酒店精品激情| 国产99精品国产| 99在线热播精品免费| 99re视频这里只有精品| 91亚洲国产成人精品一区二三| 91免费看视频| 欧美性感一类影片在线播放| 欧美久久免费观看| 日韩精品自拍偷拍| 国产亚洲美州欧州综合国| 国产欧美日韩综合精品一区二区 | 亚洲色图在线看| 一区二区三区日韩| 日韩精品一级二级| 久久成人18免费观看| 成人的网站免费观看| 色婷婷综合久久久中文一区二区| 欧美日韩色综合| 欧美一区二区三区不卡| 久久免费视频一区| 亚洲视频每日更新| 日韩av一区二区三区四区| 国产一区二区三区综合| 91原创在线视频| 日韩一级精品视频在线观看| 欧美激情在线看| 亚洲午夜视频在线观看| 国产美女视频91| 欧美亚洲图片小说| 精品国产成人在线影院| 亚洲日本欧美天堂| 久久精品av麻豆的观看方式| 99免费精品视频| 精品国内二区三区| 亚洲午夜在线视频| 成人av网站大全| 欧美tickle裸体挠脚心vk| 一个色综合网站|