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

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

?? eth_rxethmac.v

?? FPGA數(shù)字電子系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)實(shí)例導(dǎo)航(源程序)
?? V
字號(hào):

//
//
//

`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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久久久久院品网| 精品久久久久久久人人人人传媒 | 99久久99久久久精品齐齐| 亚洲美女一区二区三区| 日韩欧美国产1| 在线免费精品视频| 国产一区欧美日韩| 亚洲国产成人va在线观看天堂| 精品国产人成亚洲区| 欧美在线视频你懂得| 丁香桃色午夜亚洲一区二区三区| 亚洲电影第三页| 国产精品嫩草影院av蜜臀| 日韩欧美在线综合网| 欧美无乱码久久久免费午夜一区 | 国产精选一区二区三区| 亚洲国产精品久久艾草纯爱| 自拍偷拍亚洲综合| 国产亚洲制服色| 日韩一级片网站| 欧美群妇大交群的观看方式| 91小宝寻花一区二区三区| 国产一区二区不卡在线| 奇米影视一区二区三区| 午夜精品在线看| 亚洲免费观看在线视频| 国产精品成人网| 国产性色一区二区| 2021中文字幕一区亚洲| 欧美日韩精品三区| 在线影视一区二区三区| 91无套直看片红桃| 不卡的看片网站| 国产成人8x视频一区二区| 国产一区二区三区不卡在线观看| 久久99久久99| 紧缚奴在线一区二区三区| 免费看欧美美女黄的网站| 香蕉成人伊视频在线观看| 亚洲一区二区精品3399| 亚洲伊人伊色伊影伊综合网| 一区二区在线观看免费视频播放| 国产精品麻豆99久久久久久| 国产精品无遮挡| 国产精品美女久久久久av爽李琼| 欧美激情综合五月色丁香小说| 国产日产精品1区| 日本一区二区三区国色天香| 国产欧美一区二区精品性色超碰| 欧美—级在线免费片| 欧美国产激情二区三区| 亚洲国产精品黑人久久久| 国产精品毛片高清在线完整版| 亚洲天堂网中文字| 亚洲欧美激情在线| 一二三区精品视频| 一区二区三区国产精品| 午夜精品久久久久久| 日韩成人av影视| 国产尤物一区二区在线| 成人免费不卡视频| 在线看日本不卡| 欧美肥胖老妇做爰| 精品国精品自拍自在线| 亚洲精品一线二线三线无人区| 国产午夜亚洲精品理论片色戒| 国产精品国产三级国产三级人妇 | 美女视频黄频大全不卡视频在线播放| 蜜乳av一区二区三区| 国产精品综合在线视频| 91网上在线视频| 欧美三级韩国三级日本三斤| 精品福利av导航| 国产精品国产三级国产a| 亚洲精品水蜜桃| 毛片一区二区三区| 成人免费看的视频| 精品视频一区二区不卡| 精品国产污污免费网站入口 | 日韩成人精品在线观看| 国产精品一级片| 91国模大尺度私拍在线视频| 日韩欧美三级在线| 国产精品高清亚洲| 日韩电影在线看| 成人污污视频在线观看| 在线观看成人小视频| 久久噜噜亚洲综合| 亚洲综合一区二区| 国产一区不卡在线| 在线亚洲高清视频| 久久久久亚洲蜜桃| 亚洲图片欧美色图| 国产成人免费视频网站高清观看视频 | 国产自产视频一区二区三区| 91麻豆swag| 久久网这里都是精品| 亚洲午夜精品在线| 粉嫩aⅴ一区二区三区四区五区| 精品视频1区2区| 中文字幕在线不卡一区| 麻豆91在线播放免费| 色综合天天视频在线观看| 777午夜精品视频在线播放| www国产精品av| 天天影视网天天综合色在线播放| 久久福利视频一区二区| av不卡免费电影| 精品国产一区二区三区久久影院| 亚洲人成亚洲人成在线观看图片| 国产一区二区三区免费播放| 日本久久一区二区| 精品剧情v国产在线观看在线| 亚洲色图第一区| 美国十次综合导航| 91麻豆视频网站| 26uuu另类欧美| 亚洲国产成人av好男人在线观看| 国产剧情一区在线| 欧美人xxxx| 亚洲综合视频在线观看| 美腿丝袜亚洲色图| 3d动漫精品啪啪| 综合色天天鬼久久鬼色| 久久99精品久久久| 在线一区二区三区四区五区| 国产精品欧美久久久久无广告 | 欧美日韩一级黄| 国产日韩欧美综合一区| 亚洲免费观看高清完整版在线观看 | 手机精品视频在线观看| 韩国视频一区二区| 欧美一区二区高清| 一区二区三区精密机械公司| 国产成人在线视频免费播放| 日韩一区二区三区在线视频| 一区二区三区四区国产精品| 99国产精品久久久久| 2021国产精品久久精品| 国产一区二区伦理| 日韩精品中文字幕一区| 天天综合网 天天综合色| 欧美午夜在线一二页| 亚洲免费视频成人| 国产老肥熟一区二区三区| 久久久电影一区二区三区| 久久精品久久精品| 欧美大胆一级视频| 琪琪一区二区三区| 欧美精品久久一区| 日韩成人精品视频| 欧美肥妇bbw| 免费视频一区二区| 欧美一区二区私人影院日本| 亚洲大尺度视频在线观看| 欧美日韩1区2区| 午夜精品福利视频网站| 欧美日韩国产乱码电影| 亚洲成人av电影在线| 欧美日韩1234| 亚洲va欧美va人人爽午夜| 日韩丝袜美女视频| 麻豆视频观看网址久久| 精品美女被调教视频大全网站| 理论片日本一区| 欧美成人a∨高清免费观看| 成人综合婷婷国产精品久久蜜臀| 中文字幕精品在线不卡| 99精品在线观看视频| 亚洲一区二区精品久久av| 久久综合久色欧美综合狠狠| 国产精品亚洲成人| 欧美激情中文不卡| 色欧美乱欧美15图片| 亚洲视频在线观看三级| 欧美精品在线一区二区三区| 美女一区二区三区| 久久精品亚洲麻豆av一区二区| 国产69精品久久777的优势| 国产精品伦理在线| 欧美挠脚心视频网站| 蜜臀av一区二区在线免费观看 | 国产高清无密码一区二区三区| 综合网在线视频| 欧美日韩mp4| 国产精品 欧美精品| 国产精品大尺度| 欧美午夜一区二区三区| 国产精品夜夜嗨| 亚洲国产日日夜夜| xnxx国产精品| 日本韩国欧美在线| 国模套图日韩精品一区二区| 国产精品免费免费| 欧美高清视频不卡网| 国产精品自在在线| 亚洲天堂免费在线观看视频| 久久先锋影音av鲁色资源网| 色综合久久综合中文综合网| 蜜桃一区二区三区在线观看|