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

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

?? eth_transmitcontrol.v

?? 使用方法: 以太網編程,拷貝到硬盤
?? V
字號:



`include "timescale.v"


module eth_transmitcontrol (MTxClk, TxReset, TxUsedDataIn, TxUsedDataOut, TxDoneIn, TxAbortIn, 
                            TxStartFrmIn, TPauseRq, TxUsedDataOutDetected, TxFlow, DlyCrcEn, 
                            TxPauseTV, MAC, TxCtrlStartFrm, TxCtrlEndFrm, SendingCtrlFrm, CtrlMux, 
                            ControlData, WillSendControlFrame, BlockTxDone
                           );

parameter Tp = 1;


input         MTxClk;
input         TxReset;
input         TxUsedDataIn;
input         TxUsedDataOut;
input         TxDoneIn;
input         TxAbortIn;
input         TxStartFrmIn;
input         TPauseRq;
input         TxUsedDataOutDetected;
input         TxFlow;
input         DlyCrcEn;
input  [15:0] TxPauseTV;
input  [47:0] MAC;

output        TxCtrlStartFrm;
output        TxCtrlEndFrm;
output        SendingCtrlFrm;
output        CtrlMux;
output [7:0]  ControlData;
output        WillSendControlFrame;
output        BlockTxDone;

reg           SendingCtrlFrm;
reg           CtrlMux;
reg           WillSendControlFrame;
reg    [3:0]  DlyCrcCnt;
reg    [5:0]  ByteCnt;
reg           ControlEnd_q;
reg    [7:0]  MuxedCtrlData;
reg           TxCtrlStartFrm;
reg           TxCtrlStartFrm_q;
reg           TxCtrlEndFrm;
reg    [7:0]  ControlData;
reg           TxUsedDataIn_q;
reg           BlockTxDone;

wire          IncrementDlyCrcCnt;
wire          ResetByteCnt;
wire          IncrementByteCnt;
wire          ControlEnd;
wire          IncrementByteCntBy2;
wire          EnableCnt;


// A command for Sending the control frame is active (latched)
always @ (posedge MTxClk or posedge TxReset)
begin
  if(TxReset)
    WillSendControlFrame <= #Tp 1'b0;
  else
  if(TxCtrlEndFrm & CtrlMux)
    WillSendControlFrame <= #Tp 1'b0;
  else
  if(TPauseRq & TxFlow)
    WillSendControlFrame <= #Tp 1'b1;
end


// Generation of the transmit control packet start frame
always @ (posedge MTxClk or posedge TxReset)
begin
  if(TxReset)
    TxCtrlStartFrm <= #Tp 1'b0;
  else
  if(TxUsedDataIn_q & CtrlMux)
    TxCtrlStartFrm <= #Tp 1'b0;
  else
  if(WillSendControlFrame & ~TxUsedDataOut & (TxDoneIn | TxAbortIn | TxStartFrmIn | (~TxUsedDataOutDetected)))
    TxCtrlStartFrm <= #Tp 1'b1;
end



// Generation of the transmit control packet end frame
always @ (posedge MTxClk or posedge TxReset)
begin
  if(TxReset)
    TxCtrlEndFrm <= #Tp 1'b0;
  else
  if(ControlEnd | ControlEnd_q)
    TxCtrlEndFrm <= #Tp 1'b1;
  else
    TxCtrlEndFrm <= #Tp 1'b0;
end


// Generation of the multiplexer signal (controls muxes for switching between
// normal and control packets)
always @ (posedge MTxClk or posedge TxReset)
begin
  if(TxReset)
    CtrlMux <= #Tp 1'b0;
  else
  if(WillSendControlFrame & ~TxUsedDataOut)
    CtrlMux <= #Tp 1'b1;
  else
  if(TxDoneIn)
    CtrlMux <= #Tp 1'b0;
end



// Generation of the Sending Control Frame signal (enables padding and CRC)
always @ (posedge MTxClk or posedge TxReset)
begin
  if(TxReset)
    SendingCtrlFrm <= #Tp 1'b0;
  else
  if(WillSendControlFrame & TxCtrlStartFrm)
    SendingCtrlFrm <= #Tp 1'b1;
  else
  if(TxDoneIn)
    SendingCtrlFrm <= #Tp 1'b0;
end


always @ (posedge MTxClk or posedge TxReset)
begin
  if(TxReset)
    TxUsedDataIn_q <= #Tp 1'b0;
  else
    TxUsedDataIn_q <= #Tp TxUsedDataIn;
end



// Generation of the signal that will block sending the Done signal to the eth_wishbone module
// While sending the control frame
always @ (posedge MTxClk or posedge TxReset)
begin
  if(TxReset)
    BlockTxDone <= #Tp 1'b0;
  else
  if(TxCtrlStartFrm)
    BlockTxDone <= #Tp 1'b1;
  else
  if(TxStartFrmIn)
    BlockTxDone <= #Tp 1'b0;
end


always @ (posedge MTxClk)
begin
  ControlEnd_q     <= #Tp ControlEnd;
  TxCtrlStartFrm_q <= #Tp TxCtrlStartFrm;
end


assign IncrementDlyCrcCnt = CtrlMux & TxUsedDataIn &  ~DlyCrcCnt[2];


// Delayed CRC counter
always @ (posedge MTxClk or posedge TxReset)
begin
  if(TxReset)
    DlyCrcCnt <= #Tp 4'h0;
  else
  if(ResetByteCnt)
    DlyCrcCnt <= #Tp 4'h0;
  else
  if(IncrementDlyCrcCnt)
    DlyCrcCnt <= #Tp DlyCrcCnt + 1'b1;
end

             
assign ResetByteCnt = TxReset | (~TxCtrlStartFrm & (TxDoneIn | TxAbortIn));
assign IncrementByteCnt = CtrlMux & (TxCtrlStartFrm & ~TxCtrlStartFrm_q & ~TxUsedDataIn | TxUsedDataIn & ~ControlEnd);
assign IncrementByteCntBy2 = CtrlMux & TxCtrlStartFrm & (~TxCtrlStartFrm_q) & TxUsedDataIn;     // When TxUsedDataIn and CtrlMux are set at the same time

assign EnableCnt = (~DlyCrcEn | DlyCrcEn & (&DlyCrcCnt[1:0]));
// Byte counter
always @ (posedge MTxClk or posedge TxReset)
begin
  if(TxReset)
    ByteCnt <= #Tp 6'h0;
  else
  if(ResetByteCnt)
    ByteCnt <= #Tp 6'h0;
  else
  if(IncrementByteCntBy2 & EnableCnt)
    ByteCnt <= #Tp (ByteCnt[5:0] ) + 2'h2;
  else
  if(IncrementByteCnt & EnableCnt)
    ByteCnt <= #Tp (ByteCnt[5:0] ) + 1'b1;
end


assign ControlEnd = ByteCnt[5:0] == 6'h22;


// Control data generation (goes to the TxEthMAC module)
always @ (ByteCnt or DlyCrcEn or MAC or TxPauseTV or DlyCrcCnt)
begin
  case(ByteCnt)
    6'h0:    if(~DlyCrcEn | DlyCrcEn & (&DlyCrcCnt[1:0]))
               MuxedCtrlData[7:0] = 8'h01;                   // Reserved Multicast Address
             else
						 	 MuxedCtrlData[7:0] = 8'h0;
    6'h2:      MuxedCtrlData[7:0] = 8'h80;
    6'h4:      MuxedCtrlData[7:0] = 8'hC2;
    6'h6:      MuxedCtrlData[7:0] = 8'h00;
    6'h8:      MuxedCtrlData[7:0] = 8'h00;
    6'hA:      MuxedCtrlData[7:0] = 8'h01;
    6'hC:      MuxedCtrlData[7:0] = MAC[47:40];
    6'hE:      MuxedCtrlData[7:0] = MAC[39:32];
    6'h10:     MuxedCtrlData[7:0] = MAC[31:24];
    6'h12:     MuxedCtrlData[7:0] = MAC[23:16];
    6'h14:     MuxedCtrlData[7:0] = MAC[15:8];
    6'h16:     MuxedCtrlData[7:0] = MAC[7:0];
    6'h18:     MuxedCtrlData[7:0] = 8'h88;                   // Type/Length
    6'h1A:     MuxedCtrlData[7:0] = 8'h08;
    6'h1C:     MuxedCtrlData[7:0] = 8'h00;                   // Opcode
    6'h1E:     MuxedCtrlData[7:0] = 8'h01;
    6'h20:     MuxedCtrlData[7:0] = TxPauseTV[15:8];         // Pause timer value
    6'h22:     MuxedCtrlData[7:0] = TxPauseTV[7:0];
    default:   MuxedCtrlData[7:0] = 8'h0;
  endcase
end


// Latched Control data
always @ (posedge MTxClk or posedge TxReset)
begin
  if(TxReset)
    ControlData[7:0] <= #Tp 8'h0;
  else
  if(~ByteCnt[0])
    ControlData[7:0] <= #Tp MuxedCtrlData[7:0];
end



endmodule

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品乱子久久久久| 亚洲一区二区综合| 欧美人动与zoxxxx乱| 国产一区二区三区免费观看| 亚洲成人1区2区| 国产精品网站一区| 欧美xfplay| 欧美片在线播放| 91亚洲国产成人精品一区二区三 | 奇米亚洲午夜久久精品| 国产精品美女久久久久久久网站| 欧美色图天堂网| 一本在线高清不卡dvd| 国产成人av电影在线| 精品一区二区三区蜜桃| 午夜免费久久看| 一区二区三区在线视频观看 | 69久久99精品久久久久婷婷 | 国产凹凸在线观看一区二区| 美女网站色91| 水野朝阳av一区二区三区| 亚洲欧美一区二区三区国产精品| 久久久久国产精品麻豆ai换脸| 欧美一区二区日韩| 欧美日本国产一区| 欧美日韩综合在线| 在线精品视频免费播放| 99精品1区2区| av激情综合网| www.色综合.com| 不卡视频在线观看| 成人免费看的视频| aaa国产一区| 91在线精品一区二区| 91在线免费看| 91麻豆swag| 在线观看日韩国产| 欧美日韩国产另类一区| 欧美日韩另类一区| 欧美高清性hdvideosex| 欧美精品视频www在线观看| 欧美日韩高清影院| 欧美人牲a欧美精品| 日韩视频免费观看高清在线视频| 欧美一区二区三区人| 精品国产髙清在线看国产毛片| 精品久久久久av影院| 国产视频在线观看一区二区三区 | 久久草av在线| 国产一区二区在线视频| 国产精品123| 成人一区二区三区| 91免费小视频| 精品视频在线看| 欧美mv日韩mv国产| 中文一区在线播放| 一区二区三区四区在线播放| 午夜欧美在线一二页| 精品影院一区二区久久久| 国产不卡高清在线观看视频| 色婷婷精品大在线视频| 欧美一二三在线| 国产日韩成人精品| 亚洲尤物在线视频观看| 麻豆精品视频在线观看| 成人中文字幕电影| 在线亚洲+欧美+日本专区| 91麻豆精品国产91| 国产亚洲精品bt天堂精选| 亚洲欧美日韩一区二区| 婷婷久久综合九色综合绿巨人| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产九九视频一区二区三区| 一本久久综合亚洲鲁鲁五月天 | 午夜国产精品一区| 国产美女久久久久| 色系网站成人免费| 精品剧情v国产在线观看在线| 国产精品久久一级| 石原莉奈一区二区三区在线观看| 国产精品白丝jk黑袜喷水| 91成人免费电影| 26uuu色噜噜精品一区二区| 中文字幕一区二区三区在线不卡 | 一区二区三区中文免费| 久久99精品久久久久久国产越南| 99热99精品| 精品福利一区二区三区免费视频| 综合色天天鬼久久鬼色| 久久精品国产一区二区三| 色女孩综合影院| 国产偷v国产偷v亚洲高清| 午夜视频一区二区| 99vv1com这只有精品| 精品黑人一区二区三区久久| 樱桃视频在线观看一区| 国产综合久久久久影院| 欧美日韩国产首页在线观看| 国产精品盗摄一区二区三区| 蜜臂av日日欢夜夜爽一区| 91福利在线看| 国产精品久久久久久久久免费桃花| 日韩成人精品视频| 91美女视频网站| 国产人妖乱国产精品人妖| 久久激情五月激情| 欧美综合天天夜夜久久| 国产精品女人毛片| 精品一区二区在线看| 在线不卡中文字幕| 亚洲一本大道在线| 在线区一区二视频| 亚洲另类在线一区| 97国产精品videossex| 国产欧美1区2区3区| 久久99精品久久久久久动态图 | 国产精品免费视频观看| 国产一区二区三区在线看麻豆| 日韩一区二区三区在线视频| 亚洲大尺度视频在线观看| 一本大道av伊人久久综合| 国产精品丝袜在线| 国产大陆a不卡| 久久久久久免费网| 国产精品一区二区免费不卡| 精品国产乱码久久久久久老虎| 日韩国产精品大片| 日韩亚洲欧美高清| 麻豆freexxxx性91精品| 日韩亚洲电影在线| 麻豆国产精品视频| 久久伊人中文字幕| 国产在线播放一区三区四| 久久精品一区四区| 国产成人免费视频一区| 中文一区二区在线观看| 99久久婷婷国产综合精品| 亚洲婷婷综合色高清在线| 91免费看片在线观看| 亚洲精品免费视频| 欧美熟乱第一页| 日韩av不卡一区二区| 日韩一级免费观看| 国产福利一区在线| 自拍视频在线观看一区二区| 色中色一区二区| 亚洲成人av免费| 日韩欧美成人一区二区| 国产激情视频一区二区在线观看| 中文字幕av一区二区三区高| 99久久国产综合精品麻豆| 亚洲已满18点击进入久久| 欧美一区二区三区视频免费播放 | 丝袜a∨在线一区二区三区不卡 | 亚洲色欲色欲www| 在线观看精品一区| 免费成人深夜小野草| 久久人人97超碰com| 成人99免费视频| 亚洲一区在线看| 欧美成人艳星乳罩| 国产91富婆露脸刺激对白| 伊人色综合久久天天| 日韩欧美国产三级电影视频| 国产91精品一区二区麻豆亚洲| 一区二区三区.www| 欧美一卡二卡三卡| 成人av在线播放网站| 依依成人精品视频| 精品成人a区在线观看| 一本色道综合亚洲| 精品一区二区三区免费| 亚洲三级久久久| 日韩精品一区二区三区在线播放| 成人丝袜高跟foot| 亚洲bt欧美bt精品| 国产欧美精品一区二区色综合| 欧美日韩视频在线观看一区二区三区 | 国产亚洲精品资源在线26u| 色婷婷av一区| 国产精品一区三区| 一卡二卡三卡日韩欧美| 久久久久久麻豆| 欧美剧情片在线观看| 高清不卡一区二区在线| 日韩高清一区二区| 亚洲欧美日韩国产综合在线| 精品理论电影在线| 欧美日韩一区二区不卡| 成人高清免费在线播放| 日本在线观看不卡视频| 国产精品不卡在线| 精品动漫一区二区三区在线观看| 在线观看日产精品| 成人黄色777网| 国产乱码精品一区二区三区忘忧草| 一级中文字幕一区二区| 国产精品乱人伦一区二区| 久久午夜羞羞影院免费观看| 欧美久久一二区|