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

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

?? eth_registers.v

?? 人民郵電出版社出版的《FPGA硬件接口設計實踐》一書的代碼
?? V
?? 第 1 頁 / 共 2 頁
字號:


`include "eth_defines.v"
`include "timescale.v"


module eth_registers( DataIn, Address, Rw, Cs, Clk, Reset, DataOut, 
                      r_RecSmall, r_Pad, r_HugEn, r_CrcEn, r_DlyCrcEn, 
                      r_FullD, r_ExDfrEn, r_NoBckof, r_LoopBck, r_IFG, 
                      r_Pro, r_Iam, r_Bro, r_NoPre, r_TxEn, r_RxEn, 
                      TxB_IRQ, TxE_IRQ, RxB_IRQ, RxE_IRQ, Busy_IRQ, 
                      r_IPGT, r_IPGR1, r_IPGR2, r_MinFL, r_MaxFL, r_MaxRet, 
                      r_CollValid, r_TxFlow, r_RxFlow, r_PassAll, 
                      r_MiiNoPre, r_ClkDiv, r_WCtrlData, r_RStat, r_ScanStat, 
                      r_RGAD, r_FIAD, r_CtrlData, NValid_stat, Busy_stat, 
                      LinkFail, r_MAC, WCtrlDataStart, RStatStart,
                      UpdateMIIRX_DATAReg, Prsd, r_TxBDNum, TX_BD_NUM_Wr, int_o,
                      r_HASH0, r_HASH1, r_TxPauseTV, r_TxPauseRq, RstTxPauseRq, TxCtrlEndFrm, 
                      StartTxDone, TxClk, RxClk, SetPauseTimer
                    );

parameter Tp = 1;

input [31:0] DataIn;
input [7:0] Address;

input Rw;
input Cs;
input Clk;
input Reset;

input WCtrlDataStart;
input RStatStart;

input UpdateMIIRX_DATAReg;
input [15:0] Prsd;

output [31:0] DataOut;
reg    [31:0] DataOut;

output r_RecSmall;
output r_Pad;
output r_HugEn;
output r_CrcEn;
output r_DlyCrcEn;
output r_FullD;
output r_ExDfrEn;
output r_NoBckof;
output r_LoopBck;
output r_IFG;
output r_Pro;
output r_Iam;
output r_Bro;
output r_NoPre;
output r_TxEn;
output r_RxEn;
output [31:0] r_HASH0;
output [31:0] r_HASH1;

input TxB_IRQ;
input TxE_IRQ;
input RxB_IRQ;
input RxE_IRQ;
input Busy_IRQ;

output [6:0] r_IPGT;

output [6:0] r_IPGR1;

output [6:0] r_IPGR2;

output [15:0] r_MinFL;
output [15:0] r_MaxFL;

output [3:0] r_MaxRet;
output [5:0] r_CollValid;

output r_TxFlow;
output r_RxFlow;
output r_PassAll;

output r_MiiNoPre;
output [7:0] r_ClkDiv;

output r_WCtrlData;
output r_RStat;
output r_ScanStat;

output [4:0] r_RGAD;
output [4:0] r_FIAD;

output [15:0]r_CtrlData;


input NValid_stat;
input Busy_stat;
input LinkFail;

output [47:0]r_MAC;
output [7:0] r_TxBDNum;
output       TX_BD_NUM_Wr;
output       int_o;
output [15:0]r_TxPauseTV;
output       r_TxPauseRq;
input        RstTxPauseRq;
input        TxCtrlEndFrm;
input        StartTxDone;
input        TxClk;
input        RxClk;
input        SetPauseTimer;

reg          irq_txb;
reg          irq_txe;
reg          irq_rxb;
reg          irq_rxe;
reg          irq_busy;
reg          irq_txc;
reg          irq_rxc;

reg SetTxCIrq_txclk;
reg SetTxCIrq_sync1, SetTxCIrq_sync2, SetTxCIrq_sync3;
reg SetTxCIrq;
reg ResetTxCIrq_sync1, ResetTxCIrq_sync2;

reg SetRxCIrq_rxclk;
reg SetRxCIrq_sync1, SetRxCIrq_sync2, SetRxCIrq_sync3;
reg SetRxCIrq;
reg ResetRxCIrq_sync1;
reg ResetRxCIrq_sync2;
reg ResetRxCIrq_sync3;

wire Write = Cs &  Rw;
wire Read  = Cs & ~Rw;

wire MODER_Wr       = (Address == `ETH_MODER_ADR       )  & Write;
wire INT_SOURCE_Wr  = (Address == `ETH_INT_SOURCE_ADR  )  & Write;
wire INT_MASK_Wr    = (Address == `ETH_INT_MASK_ADR    )  & Write;
wire IPGT_Wr        = (Address == `ETH_IPGT_ADR        )  & Write;
wire IPGR1_Wr       = (Address == `ETH_IPGR1_ADR       )  & Write;
wire IPGR2_Wr       = (Address == `ETH_IPGR2_ADR       )  & Write;
wire PACKETLEN_Wr   = (Address == `ETH_PACKETLEN_ADR   )  & Write;
wire COLLCONF_Wr    = (Address == `ETH_COLLCONF_ADR    )  & Write;
     
wire CTRLMODER_Wr   = (Address == `ETH_CTRLMODER_ADR   )  & Write;
wire MIIMODER_Wr    = (Address == `ETH_MIIMODER_ADR    )  & Write;
wire MIICOMMAND_Wr  = (Address == `ETH_MIICOMMAND_ADR  )  & Write;
wire MIIADDRESS_Wr  = (Address == `ETH_MIIADDRESS_ADR  )  & Write;
wire MIITX_DATA_Wr  = (Address == `ETH_MIITX_DATA_ADR  )  & Write;
wire MIIRX_DATA_Wr  = UpdateMIIRX_DATAReg;     
wire MAC_ADDR0_Wr   = (Address == `ETH_MAC_ADDR0_ADR   )  & Write;
wire MAC_ADDR1_Wr   = (Address == `ETH_MAC_ADDR1_ADR   )  & Write;
wire HASH0_Wr       = (Address == `ETH_HASH0_ADR       )  & Write;
wire HASH1_Wr       = (Address == `ETH_HASH1_ADR       )  & Write;
wire TXCTRL_Wr      = (Address == `ETH_TX_CTRL_ADR     )  & Write;
wire RXCTRL_Wr      = (Address == `ETH_RX_CTRL_ADR     )  & Write;
assign TX_BD_NUM_Wr = (Address == `ETH_TX_BD_NUM_ADR   )  & Write;



wire [31:0] MODEROut;
wire [31:0] INT_SOURCEOut;
wire [31:0] INT_MASKOut;
wire [31:0] IPGTOut;
wire [31:0] IPGR1Out;
wire [31:0] IPGR2Out;
wire [31:0] PACKETLENOut;
wire [31:0] COLLCONFOut;
wire [31:0] CTRLMODEROut;
wire [31:0] MIIMODEROut;
wire [31:0] MIICOMMANDOut;
wire [31:0] MIIADDRESSOut;
wire [31:0] MIITX_DATAOut;
wire [31:0] MIIRX_DATAOut;
wire [31:0] MIISTATUSOut;
wire [31:0] MAC_ADDR0Out;
wire [31:0] MAC_ADDR1Out;
wire [31:0] TX_BD_NUMOut;
wire [31:0] HASH0Out;
wire [31:0] HASH1Out;
wire [31:0] TXCTRLOut;
wire [31:0] RXCTRLOut;


// MODER Register
eth_register #(`ETH_MODER_WIDTH, `ETH_MODER_DEF)        MODER
  (
   .DataIn    (DataIn[`ETH_MODER_WIDTH-1:0]),
   .DataOut   (MODEROut[`ETH_MODER_WIDTH-1:0]),
   .Write     (MODER_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign MODEROut[31:`ETH_MODER_WIDTH] = 0;

// INT_MASK Register
eth_register #(`ETH_INT_MASK_WIDTH, `ETH_INT_MASK_DEF)  INT_MASK
  (
   .DataIn    (DataIn[`ETH_INT_MASK_WIDTH-1:0]),  
   .DataOut   (INT_MASKOut[`ETH_INT_MASK_WIDTH-1:0]),
   .Write     (INT_MASK_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign INT_MASKOut[31:`ETH_INT_MASK_WIDTH] = 0;

// IPGT Register
eth_register #(`ETH_IPGT_WIDTH, `ETH_IPGT_DEF)          IPGT
  (
   .DataIn    (DataIn[`ETH_IPGT_WIDTH-1:0]),
   .DataOut   (IPGTOut[`ETH_IPGT_WIDTH-1:0]),
   .Write     (IPGT_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign IPGTOut[31:`ETH_IPGT_WIDTH] = 0;

// IPGR1 Register
eth_register #(`ETH_IPGR1_WIDTH, `ETH_IPGR1_DEF)        IPGR1
  (
   .DataIn    (DataIn[`ETH_IPGR1_WIDTH-1:0]),
   .DataOut   (IPGR1Out[`ETH_IPGR1_WIDTH-1:0]),
   .Write     (IPGR1_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign IPGR1Out[31:`ETH_IPGR1_WIDTH] = 0;

// IPGR2 Register
eth_register #(`ETH_IPGR2_WIDTH, `ETH_IPGR2_DEF)        IPGR2
  (
   .DataIn    (DataIn[`ETH_IPGR2_WIDTH-1:0]),
   .DataOut   (IPGR2Out[`ETH_IPGR2_WIDTH-1:0]),
   .Write     (IPGR2_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign IPGR2Out[31:`ETH_IPGR2_WIDTH] = 0;

// PACKETLEN Register
eth_register #(`ETH_PACKETLEN_WIDTH, `ETH_PACKETLEN_DEF) PACKETLEN
  (
   .DataIn    (DataIn),
   .DataOut   (PACKETLENOut),
   .Write     (PACKETLEN_Wr),
   .Clk       (Clk), 
   .Reset     (Reset),
   .SyncReset (1'b0)
  );

// COLLCONF Register
eth_register #(6, `ETH_COLLCONF0_DEF)                   COLLCONF0
  (
   .DataIn    (DataIn[5:0]),
   .DataOut   (COLLCONFOut[5:0]),
   .Write     (COLLCONF_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign COLLCONFOut[15:6] = 0;

eth_register #(4, `ETH_COLLCONF1_DEF)                   COLLCONF1
  (
   .DataIn    (DataIn[19:16]),
   .DataOut   (COLLCONFOut[19:16]),
   .Write     (COLLCONF_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign COLLCONFOut[31:20] = 0;

// TX_BD_NUM Register
eth_register #(`ETH_TX_BD_NUM_WIDTH, `ETH_TX_BD_NUM_DEF) TX_BD_NUM
  (
   .DataIn    (DataIn[`ETH_TX_BD_NUM_WIDTH-1:0]),
   .DataOut   (TX_BD_NUMOut[`ETH_TX_BD_NUM_WIDTH-1:0]),
   .Write     (TX_BD_NUM_Wr & (DataIn<='h80)),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign TX_BD_NUMOut[31:`ETH_TX_BD_NUM_WIDTH] = 0;

// CTRLMODER Register
eth_register #(`ETH_CTRLMODER_WIDTH, `ETH_CTRLMODER_DEF)  CTRLMODER2
  (
   .DataIn    (DataIn[`ETH_CTRLMODER_WIDTH-1:0]),
   .DataOut   (CTRLMODEROut[`ETH_CTRLMODER_WIDTH-1:0]),
   .Write     (CTRLMODER_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign CTRLMODEROut[31:`ETH_CTRLMODER_WIDTH] = 0;

// MIIMODER Register
eth_register #(`ETH_MIIMODER_WIDTH, `ETH_MIIMODER_DEF)    MIIMODER
  (
   .DataIn    (DataIn[`ETH_MIIMODER_WIDTH-1:0]),
   .DataOut   (MIIMODEROut[`ETH_MIIMODER_WIDTH-1:0]),
   .Write     (MIIMODER_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign MIIMODEROut[31:`ETH_MIIMODER_WIDTH] = 0;

// MIICOMMAND Register
eth_register #(1, 0)                                      MIICOMMAND0
  (
   .DataIn    (DataIn[0]),
   .DataOut   (MIICOMMANDOut[0]),
   .Write     (MIICOMMAND_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );

eth_register #(1, 0)                                      MIICOMMAND1
  (
   .DataIn    (DataIn[1]),
   .DataOut   (MIICOMMANDOut[1]),
   .Write     (MIICOMMAND_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (RStatStart)
  );

eth_register #(1, 0)                                      MIICOMMAND2
  (
   .DataIn    (DataIn[2]),
   .DataOut   (MIICOMMANDOut[2]),
   .Write     (MIICOMMAND_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (WCtrlDataStart)
  );
assign MIICOMMANDOut[31:3] = 29'h0;

// MIIADDRESSRegister
eth_register #(5, `ETH_MIIADDRESS0_DEF)                   MIIADDRESS0
  (
   .DataIn    (DataIn[4:0]),
   .DataOut   (MIIADDRESSOut[4:0]),
   .Write     (MIIADDRESS_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign MIIADDRESSOut[7:5] = 0;

eth_register #(5, `ETH_MIIADDRESS1_DEF)                   MIIADDRESS1
  (
   .DataIn    (DataIn[12:8]),
   .DataOut   (MIIADDRESSOut[12:8]),
   .Write     (MIIADDRESS_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign MIIADDRESSOut[31:13] = 0;

// MIITX_DATA Register
eth_register #(`ETH_MIITX_DATA_WIDTH, `ETH_MIITX_DATA_DEF) MIITX_DATA
  (
   .DataIn    (DataIn[`ETH_MIITX_DATA_WIDTH-1:0]),
   .DataOut   (MIITX_DATAOut[`ETH_MIITX_DATA_WIDTH-1:0]), 
   .Write     (MIITX_DATA_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign MIITX_DATAOut[31:`ETH_MIITX_DATA_WIDTH] = 0;

// MIIRX_DATA Register
eth_register #(`ETH_MIIRX_DATA_WIDTH, `ETH_MIIRX_DATA_DEF) MIIRX_DATA
  (
   .DataIn    (Prsd[`ETH_MIIRX_DATA_WIDTH-1:0]),
   .DataOut   (MIIRX_DATAOut[`ETH_MIIRX_DATA_WIDTH-1:0]),
   .Write     (MIIRX_DATA_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );
assign MIIRX_DATAOut[31:`ETH_MIIRX_DATA_WIDTH] = 0;

// MAC_ADDR0 Register
eth_register #(`ETH_MAC_ADDR0_WIDTH, `ETH_MAC_ADDR0_DEF)  MAC_ADDR0
  (
   .DataIn    (DataIn),
   .DataOut   (MAC_ADDR0Out),
   .Write     (MAC_ADDR0_Wr),
   .Clk       (Clk),
   .Reset     (Reset),
   .SyncReset (1'b0)
  );

// MAC_ADDR1 Register
eth_register #(`ETH_MAC_ADDR1_WIDTH, `ETH_MAC_ADDR1_DEF)  MAC_ADDR1
  (
   .DataIn    (DataIn[`ETH_MAC_ADDR1_WIDTH-1:0]),
   .DataOut   (MAC_ADDR1Out[`ETH_MAC_ADDR1_WIDTH-1:0]),

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美猛男超大videosgay| 色屁屁一区二区| 丝袜诱惑制服诱惑色一区在线观看| av综合在线播放| 丰满少妇久久久久久久| 国产精品自拍网站| 国产乱色国产精品免费视频| 国产美女精品一区二区三区| 精品无码三级在线观看视频| 日本亚洲最大的色成网站www| 椎名由奈av一区二区三区| 中文字幕在线不卡| 国产精品久久看| 亚洲欧洲日产国产综合网| 亚洲人精品一区| 亚洲一级二级在线| 午夜精品久久久久久久99樱桃| 亚洲男人电影天堂| 午夜精品久久久久久久久久久| 一区二区三区日韩欧美| 一区二区免费看| 午夜一区二区三区视频| 日韩av一区二区三区四区| 狠狠色2019综合网| 成人动漫精品一区二区| 91麻豆6部合集magnet| 欧美日韩久久一区二区| 欧美一区二区三区白人| 国产亚洲一区字幕| 有坂深雪av一区二区精品| 免费在线看一区| 成人免费观看男女羞羞视频| 欧美日韩亚洲国产综合| 精品国免费一区二区三区| 中文字幕在线一区免费| 石原莉奈一区二区三区在线观看| 蜜桃久久av一区| kk眼镜猥琐国模调教系列一区二区| 91视频在线观看免费| 日韩一区二区在线看| 国产精品久久久久7777按摩| 天天操天天综合网| 成人激情动漫在线观看| 717成人午夜免费福利电影| 国产精品久久久久久久久晋中 | 欧美日韩不卡一区| 国产日本欧美一区二区| 午夜精品福利在线| 91在线视频播放地址| 精品国产乱码久久久久久1区2区| 国产精品伦一区| 免费人成网站在线观看欧美高清| 高清成人在线观看| 在线播放/欧美激情| 日韩毛片在线免费观看| 精品亚洲国产成人av制服丝袜| 国产风韵犹存在线视精品| 欧美日韩国产三级| 一区二区三区精品视频| 不卡视频在线看| 久久精品夜夜夜夜久久| 蜜臀av一级做a爰片久久| 欧美午夜精品久久久久久超碰| www久久久久| 日韩一区欧美二区| 欧美亚洲另类激情小说| 亚洲人成在线播放网站岛国| 国产乱理伦片在线观看夜一区| 欧美日韩国产精选| 亚洲一区二区三区四区的| 99精品黄色片免费大全| 国产精品三级在线观看| 丁香桃色午夜亚洲一区二区三区| 欧美一级理论性理论a| 石原莉奈在线亚洲二区| 欧美一级一级性生活免费录像| 亚洲三级在线免费| 91女人视频在线观看| 中文字幕一区二区三区在线不卡| 国产真实乱对白精彩久久| 日韩一区二区在线看片| 精品在线你懂的| 久久久久青草大香线综合精品| 水蜜桃久久夜色精品一区的特点| 色香蕉久久蜜桃| 一级特黄大欧美久久久| 欧美日韩国产大片| 青青草原综合久久大伊人精品| 欧美日韩aaaaa| 日日夜夜精品视频天天综合网| 欧美在线一二三| 日韩vs国产vs欧美| 26uuu色噜噜精品一区二区| 国产99久久久国产精品潘金网站| www国产成人| 成人免费视频caoporn| 亚洲欧洲日韩女同| 88在线观看91蜜桃国自产| 日韩黄色免费网站| 久久久91精品国产一区二区精品| 美女视频免费一区| 国产精品美女久久久久久2018| 国产成人精品免费看| 亚洲图片另类小说| 日韩视频一区二区| 国产精品自在欧美一区| 亚洲激情综合网| 欧美一二三区在线| 99视频精品在线| 日韩av在线播放中文字幕| 中文字幕精品在线不卡| 97精品国产97久久久久久久久久久久| 久久精品亚洲一区二区三区浴池 | 欧美久久久久久久久中文字幕| 亚洲va中文字幕| 久久在线观看免费| 欧美视频一二三区| 成人午夜在线免费| 日本va欧美va瓶| 亚洲人成网站在线| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲国产美女搞黄色| 欧美va在线播放| 在线亚洲+欧美+日本专区| 久久99精品久久久久久久久久久久| 日韩欧美不卡在线观看视频| 99久久伊人久久99| 国内欧美视频一区二区| 亚洲h精品动漫在线观看| 中文字幕欧美激情| 欧美α欧美αv大片| 欧美日韩中文字幕一区| proumb性欧美在线观看| 国产一区二区三区视频在线播放 | 国产一区激情在线| 香蕉乱码成人久久天堂爱免费| 欧美mv日韩mv国产| 在线播放国产精品二区一二区四区 | 色一区在线观看| 色中色一区二区| 精品午夜久久福利影院 | 欧美专区日韩专区| 成人手机在线视频| 国产高清精品网站| 国产综合色精品一区二区三区| 亚洲一区二区三区在线播放| 中国色在线观看另类| 国产午夜亚洲精品理论片色戒| 欧美剧情电影在线观看完整版免费励志电影 | 久久婷婷综合激情| 日韩欧美一区中文| 91精品国产综合久久久蜜臀图片| 麻豆精品在线观看| 日本在线不卡一区| 日韩va欧美va亚洲va久久| 婷婷一区二区三区| 天堂成人免费av电影一区| 香蕉影视欧美成人| 日韩av电影天堂| 蜜桃精品视频在线观看| 国产一区二区在线视频| 国产麻豆精品久久一二三| 国产精品自拍三区| 国产成人一区在线| jizzjizzjizz欧美| 在线看国产一区二区| 欧美撒尿777hd撒尿| 91精品一区二区三区久久久久久| 欧美日韩国产经典色站一区二区三区| 成人小视频免费观看| 91在线精品一区二区| 欧美日韩国产系列| 精品精品国产高清a毛片牛牛| 夜夜嗨av一区二区三区网页| 亚洲视频免费观看| 亚洲sss视频在线视频| 奇米在线7777在线精品| 国内精品第一页| 91蜜桃视频在线| 91麻豆精品国产自产在线观看一区 | 美女视频黄 久久| 国产成人午夜精品影院观看视频 | 午夜欧美电影在线观看| 蜜桃传媒麻豆第一区在线观看| 毛片av中文字幕一区二区| 国产精一品亚洲二区在线视频| 国产精品一区一区三区| 色综合亚洲欧洲| 91精选在线观看| 日本一区二区三区久久久久久久久不 | 国产成人精品免费视频网站| 成人综合在线网站| 欧美人伦禁忌dvd放荡欲情| 久久综合久久鬼色中文字| 亚洲天堂2014| 国产综合色产在线精品| 在线观看www91| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美韩国日本不卡| 日韩经典中文字幕一区|