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

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

?? eth_rxethmac.v

?? USB_I2C_MAC_FPGA_Code.rar
?? V
字號:

//
//
//

`include "timescale.v"


module eth_rxethmac (MRxClk, MRxDV, MRxD, Reset, Transmitting, MaxFL, r_IFG, HugEn, DlyCrcEn, 
                     RxData, RxValid, RxStartFrm, RxEndFrm, ByteCnt, ByteCntEq0, ByteCntGreat2, 
                     ByteCntMaxFrame, CrcError, StateIdle, StatePreamble, StateSFD, StateData,
                     MAC, r_Pro, r_Bro,r_HASH0, r_HASH1, RxAbort, AddressMiss, PassAll, ControlFrmAddressOK
                    );

parameter Tp = 1;



input         MRxClk;
input         MRxDV;
input   [3:0] MRxD;
input         Transmitting;
input         HugEn;
input         DlyCrcEn;
input  [15:0] MaxFL;
input         r_IFG;
input         Reset;
input  [47:0] MAC;     //  Station Address  
input         r_Bro;   //  broadcast disable
input         r_Pro;   //  promiscuous enable 
input [31:0]  r_HASH0; //  lower 4 bytes Hash Table
input [31:0]  r_HASH1; //  upper 4 bytes Hash Table
input         PassAll;
input         ControlFrmAddressOK;

output  [7:0] RxData;
output        RxValid;
output        RxStartFrm;
output        RxEndFrm;
output [15:0] ByteCnt;
output        ByteCntEq0;
output        ByteCntGreat2;
output        ByteCntMaxFrame;
output        CrcError;
output        StateIdle;
output        StatePreamble;
output        StateSFD;
output  [1:0] StateData;
output        RxAbort;
output        AddressMiss;

reg     [7:0] RxData;
reg           RxValid;
reg           RxStartFrm;
reg           RxEndFrm;
reg           Broadcast;
reg           Multicast;
reg     [8:0] CrcHash;
reg           CrcHashGood;
reg           DelayData;
reg     [3:0] LatchedNibble;
reg     [7:0] LatchedByte;
reg     [7:0] RxData_d;
reg           RxValid_d;
reg           RxStartFrm_d;
reg           RxEndFrm_d;

wire          MRxDEqD;
wire          MRxDEq5;
wire          StateDrop;
wire          ByteCntEq1;
wire          ByteCntEq2;
wire          ByteCntEq3;
wire          ByteCntEq4;
wire          ByteCntEq5;
wire          ByteCntEq6;
wire          ByteCntEq7;
wire          ByteCntSmall7;
wire   [31:0] Crc;
wire          Enable_Crc;
wire          Initialize_Crc;
wire    [3:0] Data_Crc;
wire          GenerateRxValid;
wire          GenerateRxStartFrm;
wire          GenerateRxEndFrm;
wire          DribbleRxEndFrm;
wire    [3:0] DlyCrcCnt;


assign MRxDEqD = MRxD == 4'hd;
assign MRxDEq5 = MRxD == 4'h5;


// Rx State Machine module
eth_rxstatem rxstatem1 (.MRxClk(MRxClk), .Reset(Reset), .MRxDV(MRxDV), .ByteCntEq0(ByteCntEq0), 
                        .ByteCntGreat2(ByteCntGreat2), .Transmitting(Transmitting), .MRxDEq5(MRxDEq5), 
                        .MRxDEqD(MRxDEqD), .IFGCounterEq24(IFGCounterEq24), .ByteCntMaxFrame(ByteCntMaxFrame), 
                        .StateData(StateData), .StateIdle(StateIdle), .StatePreamble(StatePreamble), 
                        .StateSFD(StateSFD), .StateDrop(StateDrop)
                       );


// Rx Counters module
eth_rxcounters rxcounters1 (.MRxClk(MRxClk), .Reset(Reset), .MRxDV(MRxDV), .StateIdle(StateIdle), 
                            .StateSFD(StateSFD), .StateData(StateData), .StateDrop(StateDrop), 
                            .StatePreamble(StatePreamble), .MRxDEqD(MRxDEqD), .DlyCrcEn(DlyCrcEn), 
                            .DlyCrcCnt(DlyCrcCnt), .Transmitting(Transmitting), .MaxFL(MaxFL), .r_IFG(r_IFG), 
                            .HugEn(HugEn), .IFGCounterEq24(IFGCounterEq24), .ByteCntEq0(ByteCntEq0), 
                            .ByteCntEq1(ByteCntEq1), .ByteCntEq2(ByteCntEq2), .ByteCntEq3(ByteCntEq3), 
                            .ByteCntEq4(ByteCntEq4), .ByteCntEq5(ByteCntEq5), .ByteCntEq6(ByteCntEq6), 
                            .ByteCntEq7(ByteCntEq7), .ByteCntGreat2(ByteCntGreat2), 
                            .ByteCntSmall7(ByteCntSmall7), .ByteCntMaxFrame(ByteCntMaxFrame), 
                            .ByteCnt(ByteCnt)
                           );

// Rx Address Check

eth_rxaddrcheck rxaddrcheck1
              (.MRxClk(MRxClk),         .Reset( Reset),             .RxData(RxData), 
               .Broadcast (Broadcast),  .r_Bro (r_Bro),             .r_Pro(r_Pro),
               .ByteCntEq6(ByteCntEq6), .ByteCntEq7(ByteCntEq7),    .ByteCntEq2(ByteCntEq2), 
               .ByteCntEq3(ByteCntEq3), .ByteCntEq4(ByteCntEq4),    .ByteCntEq5(ByteCntEq5), 
               .HASH0(r_HASH0),         .HASH1(r_HASH1),           
               .CrcHash(CrcHash[5:0]),  .CrcHashGood(CrcHashGood),  .StateData(StateData),
               .Multicast(Multicast),   .MAC(MAC),                  .RxAbort(RxAbort),
               .RxEndFrm(RxEndFrm),     .AddressMiss(AddressMiss),  .PassAll(PassAll),
               .ControlFrmAddressOK(ControlFrmAddressOK)
              );


assign Enable_Crc = MRxDV & (|StateData & ~ByteCntMaxFrame);
assign Initialize_Crc = StateSFD | DlyCrcEn & (|DlyCrcCnt[3:0]) & DlyCrcCnt[3:0] < 4'h9;

assign Data_Crc[0] = MRxD[3];
assign Data_Crc[1] = MRxD[2];
assign Data_Crc[2] = MRxD[1];
assign Data_Crc[3] = MRxD[0];


// Connecting module Crc
eth_crc crcrx (.Clk(MRxClk), .Reset(Reset), .Data(Data_Crc), .Enable(Enable_Crc), .Initialize(Initialize_Crc), 
               .Crc(Crc), .CrcError(CrcError)
              );



// Latching CRC for use in the hash table

always @ (posedge MRxClk)
begin
  CrcHashGood <= #Tp StateData[0] & ByteCntEq6;
end

always @ (posedge MRxClk)
begin
  if(Reset | StateIdle)
    CrcHash[8:0] <= #Tp 9'h0;
  else
  if(StateData[0] & ByteCntEq6)
    CrcHash[8:0] <= #Tp Crc[31:23];
end


// Output byte stream
always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    begin
      RxData_d[7:0]      <= #Tp 8'h0;
      DelayData          <= #Tp 1'b0;
      LatchedNibble[3:0] <= #Tp 4'h0;
      LatchedByte[7:0]   <= #Tp 8'h0;
      RxData[7:0]        <= #Tp 8'h0;
    end
  else
    begin
      LatchedNibble[3:0] <= #Tp MRxD[3:0];                        // Latched nibble
      LatchedByte[7:0]   <= #Tp {MRxD[3:0], LatchedNibble[3:0]};  // Latched byte
      DelayData          <= #Tp StateData[0];

      if(GenerateRxValid)
        RxData_d[7:0] <= #Tp LatchedByte[7:0] & {8{|StateData}};  // Data goes through only in data state 
      else
      if(~DelayData)
        RxData_d[7:0] <= #Tp 8'h0;                                // Delaying data to be valid for two cycles. Zero when not active.

      RxData[7:0] <= #Tp RxData_d[7:0];                           // Output data byte
    end
end

    

always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    Broadcast <= #Tp 1'b0;
  else
    begin      
      if(StateData[0] & ~(&LatchedByte[7:0]) & ByteCntSmall7)
        Broadcast <= #Tp 1'b0;
      else
      if(StateData[0] & (&LatchedByte[7:0]) & ByteCntEq1)
        Broadcast <= #Tp 1'b1;
      else
      if(RxAbort | RxEndFrm)
        Broadcast <= #Tp 1'b0;
    end
end


always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    Multicast <= #Tp 1'b0;
  else
    begin      
      if(Reset)
        Multicast <= #Tp 1'b0;
      else
      if(StateData[0] & ByteCntEq1 & LatchedByte == 8'h01)
        Multicast <= #Tp 1'b1;
    else if(RxAbort | RxEndFrm)
      Multicast <= #Tp 1'b0;
    end
end


assign GenerateRxValid = StateData[0] & (~ByteCntEq0 | DlyCrcCnt >= 4'h3);

always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    begin
      RxValid_d <= #Tp 1'b0;
      RxValid   <= #Tp 1'b0;
    end
  else
    begin
      RxValid_d <= #Tp GenerateRxValid;
      RxValid   <= #Tp RxValid_d;
    end
end


assign GenerateRxStartFrm = StateData[0] & (ByteCntEq1 & ~DlyCrcEn | DlyCrcCnt == 4'h3 & DlyCrcEn);

always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    begin
      RxStartFrm_d <= #Tp 1'b0;
      RxStartFrm   <= #Tp 1'b0;
    end
  else
    begin
      RxStartFrm_d <= #Tp GenerateRxStartFrm;
      RxStartFrm   <= #Tp RxStartFrm_d;
    end
end


assign GenerateRxEndFrm = StateData[0] & (~MRxDV & ByteCntGreat2 | ByteCntMaxFrame);
assign DribbleRxEndFrm  = StateData[1] &  ~MRxDV & ByteCntGreat2;


always @ (posedge MRxClk or posedge Reset)
begin
  if(Reset)
    begin
      RxEndFrm_d <= #Tp 1'b0;
      RxEndFrm   <= #Tp 1'b0;
    end
  else
    begin
      RxEndFrm_d <= #Tp GenerateRxEndFrm;
      RxEndFrm   <= #Tp RxEndFrm_d | DribbleRxEndFrm;
    end
end


endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久精品人人做人人爽50路| 欧美视频一区二区在线观看| 91国产丝袜在线播放| 日韩欧美一二三四区| 亚洲日本在线a| 国产最新精品精品你懂的| 在线观看av不卡| 国产精品网站在线播放| 久久精品久久久精品美女| 欧美专区日韩专区| 亚洲国产岛国毛片在线| 久久不见久久见免费视频1| 欧美吞精做爰啪啪高潮| 中文字幕一区二区三区四区不卡| 国产自产高清不卡| 日韩一级免费观看| 日韩av在线免费观看不卡| 欧美自拍偷拍一区| 亚洲人123区| 不卡视频一二三四| 国产女同互慰高潮91漫画| 国内精品嫩模私拍在线| 日韩欧美一区二区久久婷婷| 亚洲国产成人av好男人在线观看| 91免费视频网址| 1000精品久久久久久久久| 成人免费高清在线观看| 国产人成一区二区三区影院| 精品一二线国产| 日韩女优制服丝袜电影| 免费在线成人网| 日韩一级在线观看| 激情五月播播久久久精品| 日韩欧美你懂的| 26uuu国产一区二区三区| 91久久精品一区二区三区| 欧美日韩国产中文| 午夜成人在线视频| 91精品国产综合久久精品图片| 天堂精品中文字幕在线| 日韩一区国产二区欧美三区| 另类调教123区 | 北岛玲一区二区三区四区| 国产亚洲欧美一级| 99久久亚洲一区二区三区青草 | 欧美久久久久久久久中文字幕| 亚洲国产欧美在线| 欧美一级日韩一级| 国产又粗又猛又爽又黄91精品| 欧美激情一区二区三区在线| 99久久综合狠狠综合久久| 亚洲一卡二卡三卡四卡五卡| 9191精品国产综合久久久久久 | 国产精品一区二区91| 中文字幕第一页久久| 色综合久久久久网| 亚洲一区二区在线免费观看视频| 欧美久久久影院| 激情偷乱视频一区二区三区| 中文字幕二三区不卡| 91成人免费电影| 麻豆精品精品国产自在97香蕉| 国产午夜精品一区二区三区视频| a在线欧美一区| 亚洲国产中文字幕在线视频综合| 欧美va亚洲va| 色婷婷久久久综合中文字幕| 人人精品人人爱| 中文字幕亚洲一区二区va在线| 欧美日韩一区 二区 三区 久久精品| 蜜臀av国产精品久久久久 | 久久奇米777| 一本到不卡免费一区二区| 免费成人av资源网| 亚洲精品第1页| 久久久久久久久岛国免费| 在线观看日韩精品| 成人精品一区二区三区中文字幕| 亚洲成av人片在线观看| 中文字幕乱码日本亚洲一区二区 | 久久免费午夜影院| 欧美日韩一区在线观看| 成人永久aaa| 久久99精品久久久| 亚洲午夜日本在线观看| 国产精品天干天干在线综合| 欧美一区二区三区在线视频| 色综合天天做天天爱| 国产精品伊人色| 美女网站一区二区| 亚洲成人激情综合网| 综合欧美亚洲日本| 国产欧美视频一区二区| 欧美一级高清片| 欧美色区777第一页| 99久久久国产精品免费蜜臀| 精品亚洲国内自在自线福利| 石原莉奈在线亚洲三区| 一区二区三区加勒比av| 中文字幕在线观看不卡视频| 久久久噜噜噜久久中文字幕色伊伊| 精品视频全国免费看| 91蝌蚪国产九色| 成人国产免费视频| 成人夜色视频网站在线观看| 韩国三级在线一区| 狠狠色综合日日| 另类的小说在线视频另类成人小视频在线| 亚洲永久免费av| 亚洲愉拍自拍另类高清精品| 亚洲精品伦理在线| 亚洲欧美日韩久久| 亚洲欧美一区二区久久| 伊人婷婷欧美激情| 亚洲精品国产精华液| 亚洲精品久久7777| 亚洲国产欧美在线| 奇米影视在线99精品| 日本特黄久久久高潮| 免费一级欧美片在线观看| 久久精品999| 韩国三级在线一区| 成人午夜又粗又硬又大| 成人高清在线视频| 91蜜桃网址入口| 在线视频国内自拍亚洲视频| 欧美丝袜丝交足nylons图片| 欧美日韩精品一区二区三区蜜桃 | 午夜伊人狠狠久久| 免费欧美高清视频| 国产大片一区二区| 99久久精品国产一区二区三区| 91色在线porny| 欧美日韩国产精品成人| 91精品久久久久久久99蜜桃| 精品欧美久久久| 国产精品麻豆久久久| 一区二区三区自拍| 蜜桃精品在线观看| 国产·精品毛片| 欧美亚洲日本国产| 日韩美女一区二区三区四区| 中文子幕无线码一区tr| 亚洲激情自拍偷拍| 美女一区二区久久| 成人小视频在线观看| 欧美色网站导航| www国产精品av| 日韩理论片中文av| 久久99久久精品| 91麻豆swag| 久久亚洲影视婷婷| 亚洲一区在线播放| 国产福利不卡视频| 欧美久久一区二区| 国产精品久久久久永久免费观看| 亚洲成a人v欧美综合天堂下载| 精品一区二区三区蜜桃| 日本福利一区二区| 久久久久国产精品麻豆ai换脸| 伊人一区二区三区| 国产91丝袜在线观看| 欧美电影影音先锋| 亚洲男人的天堂在线aⅴ视频| 男人操女人的视频在线观看欧美| 成人精品高清在线| 日韩一区二区精品| 亚洲一区日韩精品中文字幕| 国产成人免费视频网站| 欧美人牲a欧美精品| 国产精品久久久99| 97久久精品人人澡人人爽| 日韩欧美高清dvd碟片| 亚洲 欧美综合在线网络| www.日韩大片| 精品电影一区二区| 三级成人在线视频| 在线日韩一区二区| √…a在线天堂一区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲摸摸操操av| 福利一区二区在线| 欧美成人一区二区| 奇米综合一区二区三区精品视频| 欧美影院一区二区三区| 自拍偷拍国产亚洲| 成人动漫中文字幕| 国产精品欧美综合在线| 国产成人在线视频网址| 欧美电影免费观看完整版| 日本亚洲视频在线| 欧美一区二区三区在线看| 午夜亚洲国产au精品一区二区| 一本一道综合狠狠老| 亚洲欧美日韩一区| 在线亚洲+欧美+日本专区| 洋洋成人永久网站入口| 欧美性猛交一区二区三区精品| 亚洲蜜臀av乱码久久精品蜜桃| 91小视频在线观看|