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

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

?? eth_macstatus.v

?? FPGA數字電子系統設計與開發實例導航光盤內附源碼
?? V
字號:

//

`include "timescale.v"


module eth_macstatus(
                      MRxClk, Reset, ReceivedLengthOK, ReceiveEnd, ReceivedPacketGood, RxCrcError, 
                      MRxErr, MRxDV, RxStateSFD, RxStateData, RxStatePreamble, RxStateIdle, Transmitting, 
                      RxByteCnt, RxByteCntEq0, RxByteCntGreat2, RxByteCntMaxFrame, 
                      InvalidSymbol, MRxD, LatchedCrcError, Collision, CollValid, RxLateCollision,
                      r_RecSmall, r_MinFL, r_MaxFL, ShortFrame, DribbleNibble, ReceivedPacketTooBig, r_HugEn,
                      LoadRxStatus, StartTxDone, StartTxAbort, RetryCnt, RetryCntLatched, MTxClk, MaxCollisionOccured, 
                      RetryLimit, LateCollision, LateCollLatched, DeferIndication, DeferLatched, TxStartFrm,
                      StatePreamble, StateData, CarrierSense, CarrierSenseLost, TxUsedData, LatchedMRxErr, Loopback, 
                      r_FullD
                    );



parameter Tp = 1;


input         MRxClk;
input         Reset;
input         RxCrcError;
input         MRxErr;
input         MRxDV;

input         RxStateSFD;
input   [1:0] RxStateData;
input         RxStatePreamble;
input         RxStateIdle;
input         Transmitting;
input  [15:0] RxByteCnt;
input         RxByteCntEq0;
input         RxByteCntGreat2;
input         RxByteCntMaxFrame;
input   [3:0] MRxD;
input         Collision;
input   [5:0] CollValid;
input         r_RecSmall;
input  [15:0] r_MinFL;
input  [15:0] r_MaxFL;
input         r_HugEn;
input         StartTxDone;
input         StartTxAbort;
input   [3:0] RetryCnt;
input         MTxClk;
input         MaxCollisionOccured;
input         LateCollision;
input         DeferIndication;
input         TxStartFrm;
input         StatePreamble;
input   [1:0] StateData;
input         CarrierSense;
input         TxUsedData;
input         Loopback;
input         r_FullD;


output        ReceivedLengthOK;
output        ReceiveEnd;
output        ReceivedPacketGood;
output        InvalidSymbol;
output        LatchedCrcError;
output        RxLateCollision;
output        ShortFrame;
output        DribbleNibble;
output        ReceivedPacketTooBig;
output        LoadRxStatus;
output  [3:0] RetryCntLatched;
output        RetryLimit;
output        LateCollLatched;
output        DeferLatched;
output        CarrierSenseLost;
output        LatchedMRxErr;


reg           ReceiveEnd;

reg           LatchedCrcError;
reg           LatchedMRxErr;
reg           LoadRxStatus;
reg           InvalidSymbol;
reg     [3:0] RetryCntLatched;
reg           RetryLimit;
reg           LateCollLatched;
reg           DeferLatched;
reg           CarrierSenseLost;

wire          TakeSample;
wire          SetInvalidSymbol; // Invalid symbol was received during reception in 100Mbps 

// Crc error
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    LatchedCrcError <=#Tp 1'b0;
  else
  if(RxStateSFD)
    LatchedCrcError <=#Tp 1'b0;
  else
  if(RxStateData[0])
    LatchedCrcError <=#Tp RxCrcError & ~RxByteCntEq0;
end


// LatchedMRxErr
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    LatchedMRxErr <=#Tp 1'b0;
  else
  if(MRxErr & MRxDV & (RxStatePreamble | RxStateSFD | (|RxStateData) | RxStateIdle & ~Transmitting))
    LatchedMRxErr <=#Tp 1'b1;
  else
    LatchedMRxErr <=#Tp 1'b0;
end


// ReceivedPacketGood
assign ReceivedPacketGood = ~LatchedCrcError;


// ReceivedLengthOK
assign ReceivedLengthOK = RxByteCnt[15:0] >= r_MinFL[15:0] & RxByteCnt[15:0] <= r_MaxFL[15:0];





// Time to take a sample
//assign TakeSample = |RxStateData     & ~MRxDV & RxByteCntGreat2  |
assign TakeSample = (|RxStateData)   & (~MRxDV)                    |
                      RxStateData[0] &   MRxDV & RxByteCntMaxFrame;


// LoadRxStatus
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    LoadRxStatus <=#Tp 1'b0;
  else
    LoadRxStatus <=#Tp TakeSample;
end



// ReceiveEnd
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    ReceiveEnd  <=#Tp 1'b0;
  else
    ReceiveEnd  <=#Tp LoadRxStatus;                     
end


// Invalid Symbol received during 100Mbps mode
assign SetInvalidSymbol = MRxDV & MRxErr & MRxD[3:0] == 4'he;


// InvalidSymbol
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    InvalidSymbol <=#Tp 1'b0;
  else
  if(LoadRxStatus & ~SetInvalidSymbol)
    InvalidSymbol <=#Tp 1'b0;
  else
  if(SetInvalidSymbol)
    InvalidSymbol <=#Tp 1'b1;
end


// Late Collision

reg RxLateCollision;
reg RxColWindow;
// Collision Window
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    RxLateCollision <=#Tp 1'b0;
  else
  if(LoadRxStatus)
    RxLateCollision <=#Tp 1'b0;
  else
  if(Collision & (~r_FullD) & (~RxColWindow | r_RecSmall))
    RxLateCollision <=#Tp 1'b1;
end

// Collision Window
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    RxColWindow <=#Tp 1'b1;
  else
  if(~Collision & RxByteCnt[5:0] == CollValid[5:0] & RxStateData[1])
    RxColWindow <=#Tp 1'b0;
  else
  if(RxStateIdle)
    RxColWindow <=#Tp 1'b1;
end


// ShortFrame
reg ShortFrame;
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    ShortFrame <=#Tp 1'b0;
  else
  if(LoadRxStatus)
    ShortFrame <=#Tp 1'b0;
  else
  if(TakeSample)
    ShortFrame <=#Tp RxByteCnt[15:0] < r_MinFL[15:0];
end


// DribbleNibble
reg DribbleNibble;
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    DribbleNibble <=#Tp 1'b0;
  else
  if(RxStateSFD)
    DribbleNibble <=#Tp 1'b0;
  else
  if(~MRxDV & RxStateData[1])
    DribbleNibble <=#Tp 1'b1;
end


reg ReceivedPacketTooBig;
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    ReceivedPacketTooBig <=#Tp 1'b0;
  else
  if(LoadRxStatus)
    ReceivedPacketTooBig <=#Tp 1'b0;
  else
  if(TakeSample)
    ReceivedPacketTooBig <=#Tp ~r_HugEn & RxByteCnt[15:0] > r_MaxFL[15:0];
end



// Latched Retry counter for tx status
always @ (posedge MTxClk or posedge Reset)
begin
  if(Reset)
    RetryCntLatched <=#Tp 4'h0;
  else
  if(StartTxDone | StartTxAbort)
    RetryCntLatched <=#Tp RetryCnt;
end


// Latched Retransmission limit
always @ (posedge MTxClk or posedge Reset)
begin
  if(Reset)
    RetryLimit <=#Tp 4'h0;
  else
  if(StartTxDone | StartTxAbort)
    RetryLimit <=#Tp MaxCollisionOccured;
end


// Latched Late Collision
always @ (posedge MTxClk or posedge Reset)
begin
  if(Reset)
    LateCollLatched <=#Tp 1'b0;
  else
  if(StartTxDone | StartTxAbort)
    LateCollLatched <=#Tp LateCollision;
end



// Latched Defer state
always @ (posedge MTxClk or posedge Reset)
begin
  if(Reset)
    DeferLatched <=#Tp 1'b0;
  else
  if(DeferIndication & TxUsedData)
    DeferLatched <=#Tp 1'b1;
  else
  if(TxStartFrm)
    DeferLatched <=#Tp 1'b0;
end


// CarrierSenseLost
always @ (posedge MTxClk or posedge Reset)
begin
  if(Reset)
    CarrierSenseLost <=#Tp 1'b0;
  else
  if((StatePreamble | (|StateData)) & ~CarrierSense & ~Loopback & ~Collision & ~r_FullD)
    CarrierSenseLost <=#Tp 1'b1;
  else
  if(TxStartFrm)
    CarrierSenseLost <=#Tp 1'b0;
end


endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久女同精品一区二区| 欧美一级夜夜爽| 国产老肥熟一区二区三区| 青草国产精品久久久久久| 亚洲二区视频在线| 亚洲国产欧美另类丝袜| 亚洲一区欧美一区| 午夜视频在线观看一区二区| 亚洲成人免费观看| 日韩电影一二三区| 蜜臀久久99精品久久久画质超高清 | 日本不卡一区二区三区高清视频| 亚洲综合一区在线| 日本欧美在线看| 精品一区二区三区香蕉蜜桃 | 国产一区欧美一区| 国产东北露脸精品视频| gogogo免费视频观看亚洲一| 成人免费毛片高清视频| 色综合久久久久久久久久久| 欧美日韩视频在线第一区| 日韩欧美第一区| 国产欧美一区二区在线| 亚洲日本在线视频观看| 亚洲成人免费观看| 精品一区免费av| av中文字幕不卡| 欧美日韩成人高清| 久久久久久久国产精品影院| 亚洲欧美偷拍另类a∨色屁股| 亚洲第一电影网| 久久99精品国产| 91免费视频网址| 日韩三级中文字幕| 1区2区3区欧美| 天天色天天操综合| 成人激情校园春色| 欧美一级一区二区| 伊人性伊人情综合网| 麻豆传媒一区二区三区| 97久久久精品综合88久久| 91精品国产综合久久福利| 一区视频在线播放| 狠狠色2019综合网| 欧美无乱码久久久免费午夜一区| 久久久久久亚洲综合影院红桃| 亚洲女性喷水在线观看一区| 激情深爱一区二区| 欧美三级电影精品| 中文字幕亚洲精品在线观看| 免费高清在线视频一区·| 色综合天天综合在线视频| 精品国产一区久久| 天天免费综合色| 色综合久久久久综合体| 国产精品乱码一区二区三区软件| 日本免费新一区视频| 一本大道久久a久久精品综合| 久久久亚洲国产美女国产盗摄 | www.一区二区| 精品国产伦一区二区三区观看方式| 亚洲专区一二三| 成人av小说网| 亚洲国产成人在线| 韩国精品主播一区二区在线观看 | 国产欧美精品区一区二区三区 | 美女视频网站黄色亚洲| 欧美日本一区二区在线观看| 自拍偷自拍亚洲精品播放| 国产成人啪午夜精品网站男同| 日韩三级在线观看| 日本不卡在线视频| 日韩亚洲欧美在线观看| 全国精品久久少妇| 欧美一区二区啪啪| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美日韩精品系列| 日本在线不卡视频一二三区| 在线播放日韩导航| 日韩二区三区四区| 91精品啪在线观看国产60岁| 亚洲va韩国va欧美va| 欧美日韩国产天堂| 日本欧洲一区二区| 精品国产一区二区三区不卡| 国产一区免费电影| 视频一区二区国产| 欧美精品视频www在线观看| 午夜精品久久久久久久99水蜜桃| 在线电影院国产精品| 理论片日本一区| 久久久久久久久99精品| 成人激情电影免费在线观看| 自拍偷拍国产亚洲| 欧美巨大另类极品videosbest| 日本怡春院一区二区| 亚洲精品一区二区精华| 成人av在线电影| 亚洲第一福利视频在线| 日韩免费性生活视频播放| 国产成人午夜精品影院观看视频 | 欧美午夜一区二区| 青草国产精品久久久久久| 国产日韩欧美精品综合| eeuss鲁片一区二区三区在线看| 亚洲精品第1页| 91精品国产色综合久久不卡电影 | 色乱码一区二区三区88| 日韩在线观看一区二区| 国产清纯美女被跳蛋高潮一区二区久久w | 色综合久久天天| 日本欧美一区二区在线观看| 久久精品一区四区| 欧美色手机在线观看| 国产一区二区日韩精品| 一区二区日韩av| 欧美电影免费观看高清完整版在线 | 日韩欧美国产系列| 91丨porny丨在线| 裸体一区二区三区| 一区二区三区**美女毛片| 久久久综合激的五月天| 欧美精品电影在线播放| 成人永久免费视频| 麻豆高清免费国产一区| 亚洲一区二区三区小说| 日本一区二区在线不卡| 欧美一区二区三区在线电影| 色综合久久久久综合| 国产 日韩 欧美大片| 麻豆精品一区二区av白丝在线| 亚洲天堂福利av| 国产欧美va欧美不卡在线| 51精品视频一区二区三区| 99r精品视频| 国产成人免费视频精品含羞草妖精| 从欧美一区二区三区| 日本91福利区| 性感美女极品91精品| 亚洲美女视频一区| 国产精品婷婷午夜在线观看| 久久综合色天天久久综合图片| 欧美日韩国产综合视频在线观看| 91婷婷韩国欧美一区二区| 懂色一区二区三区免费观看| 国产精品一区二区三区乱码| 精品在线观看免费| 久久成人精品无人区| 免费日韩伦理电影| 蜜桃视频在线一区| 蓝色福利精品导航| 免费观看在线色综合| 奇米影视一区二区三区| 天堂影院一区二区| 日韩影院精彩在线| 美女尤物国产一区| 蜜臀av亚洲一区中文字幕| 蜜臀av性久久久久蜜臀av麻豆| 日本不卡中文字幕| 精品亚洲成a人| 久久成人免费网| 国产一区二区不卡老阿姨| 国产精品亚洲成人| 成人性视频免费网站| av不卡在线观看| 91啪在线观看| 欧美日韩激情一区二区三区| 欧美美女一区二区在线观看| 欧美一区二区日韩一区二区| 精品国产一区久久| 国产精品久久夜| 伊人夜夜躁av伊人久久| 日韩电影免费一区| 国产精品 欧美精品| av色综合久久天堂av综合| 欧美午夜一区二区三区免费大片| 69堂精品视频| 久久精品视频一区| 亚洲激情第一区| 老司机免费视频一区二区| 国产一二精品视频| 日本高清不卡视频| 日韩欧美国产综合在线一区二区三区| 亚洲精品在线一区二区| 1024成人网| 青青草国产精品97视觉盛宴| 成人一区二区三区| 欧美日韩一区二区三区在线看 | 国产精品美女久久久久久久| 亚洲午夜影视影院在线观看| 麻豆freexxxx性91精品| 99久久免费国产| 日韩欧美在线不卡| 亚洲欧洲精品成人久久奇米网| 日日摸夜夜添夜夜添国产精品| 91麻豆精品国产91久久久使用方法 | 国产女同性恋一区二区| 亚洲成人一区二区| 白白色 亚洲乱淫| xnxx国产精品|