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

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

?? tb_eth_top.v

?? 使用方法: 以太網編程,拷貝到硬盤
?? V
?? 第 1 頁 / 共 4 頁
字號:








Please use tb_ethernet.v for testbench. Testbench will soon be 
updated.













//////////////////////////////////////////////////////////////////////




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

module tb_eth_top();


parameter Tp = 1;


reg           WB_CLK_I;
reg           WB_RST_I;
reg   [31:0]  WB_DAT_I;

reg   [31:0]  WB_ADR_I;
reg    [3:0]  WB_SEL_I;
reg           WB_WE_I;
reg           WB_CYC_I;
reg           WB_STB_I;

wire  [31:0]  WB_DAT_O;
wire          WB_ACK_O;
wire          WB_ERR_O;
reg    [1:0]  WB_ACK_I;

// WISHBONE master
wire    [31:0]    m_wb_adr_o;
wire     [3:0]    m_wb_sel_o;
wire              m_wb_we_o;
reg     [31:0]    m_wb_dat_i;
wire    [31:0]    m_wb_dat_o;
wire              m_wb_cyc_o;
wire              m_wb_stb_o;
reg               m_wb_ack_i;
reg               m_wb_err_i;

reg           MTxClk;
wire   [3:0]  MTxD;
wire          MTxEn;
wire          MTxErr;

reg           MRxClk;
reg    [3:0]  MRxD;
reg           MRxDV;
reg           MRxErr;
reg           MColl;
reg           MCrs;

reg           Mdi_I;
wire          Mdo_O;
wire          Mdo_OE;
wire          Mdc_O;


reg [7:0] memory0 [0:65535];
reg [7:0] memory1 [0:65535];
reg [7:0] memory2 [0:65535];
reg [7:0] memory3 [0:65535];

reg WishboneBusy;
reg StartTB;
reg [9:0] TxBDIndex;
reg [9:0] RxBDIndex;

reg LogEnable;

  integer mcd1;
  integer mcd2;

reg [5:0] g_last_txbd;

// Connecting Ethernet top module

eth_top ethtop
(
  // WISHBONE common
  .wb_clk_i(WB_CLK_I), .wb_rst_i(WB_RST_I), .wb_dat_i(WB_DAT_I), .wb_dat_o(WB_DAT_O), 

  // WISHBONE slave
 	.wb_adr_i(WB_ADR_I[11:2]), .wb_sel_i(WB_SEL_I), .wb_we_i(WB_WE_I),   .wb_cyc_i(WB_CYC_I), 
 	.wb_stb_i(WB_STB_I),       .wb_ack_o(WB_ACK_O), .wb_err_o(WB_ERR_O), 
 	
// WISHBONE master
  .m_wb_adr_o(m_wb_adr_o), .m_wb_sel_o(m_wb_sel_o), .m_wb_we_o(m_wb_we_o), .m_wb_dat_i(m_wb_dat_i), 
  .m_wb_dat_o(m_wb_dat_o), .m_wb_cyc_o(m_wb_cyc_o), .m_wb_stb_o(m_wb_stb_o), .m_wb_ack_i(m_wb_ack_i), 
  .m_wb_err_i(m_wb_err_i), 

  //TX
  .mtx_clk_pad_i(MTxClk), .mtxd_pad_o(MTxD), .mtxen_pad_o(MTxEn), .mtxerr_pad_o(MTxErr),

  //RX
  .mrx_clk_pad_i(MRxClk), .mrxd_pad_i(MRxD), .mrxdv_pad_i(MRxDV), .mrxerr_pad_i(MRxErr), 
  .mcoll_pad_i(MColl),    .mcrs_pad_i(MCrs), 
  
  // MIIM
  .mdc_pad_o(Mdc_O), .md_pad_i(Mdi_I), .md_pad_o(Mdo_O), .md_padoe_o(Mdo_OE),
  
  .int_o()
);


bench_cop i_bench_cop
(
  // WISHBONE common
  .wb_clk_i(WB_CLK_I), .wb_rst_i(WB_RST_I), .wb_dat_i(WB_DAT_I), .wb_dat_o(WB_DAT_O), 

  // WISHBONE slave
 	.wb_adr_i(WB_ADR_I[11:2]), .wb_sel_i(WB_SEL_I), .wb_we_i(WB_WE_I),   .wb_cyc_i(WB_CYC_I), 
 	.wb_stb_i(WB_STB_I),       .wb_ack_o(WB_ACK_O), .wb_err_o(WB_ERR_O), 
 	
// WISHBONE master
  .m_wb_adr_o(m_wb_adr_o), .m_wb_sel_o(m_wb_sel_o), .m_wb_we_o(m_wb_we_o), .m_wb_dat_i(m_wb_dat_i), 
  .m_wb_dat_o(m_wb_dat_o), .m_wb_cyc_o(m_wb_cyc_o), .m_wb_stb_o(m_wb_stb_o), .m_wb_ack_i(m_wb_ack_i), 
  .m_wb_err_i(m_wb_err_i), 

  //TX
  .mtx_clk_pad_i(MTxClk), .mtxd_pad_o(MTxD), .mtxen_pad_o(MTxEn), .mtxerr_pad_o(MTxErr),

  //RX
  .mrx_clk_pad_i(MRxClk), .mrxd_pad_i(MRxD), .mrxdv_pad_i(MRxDV), .mrxerr_pad_i(MRxErr), 
  .mcoll_pad_i(MColl),    .mcrs_pad_i(MCrs), 
  
  // MIIM
  .mdc_pad_o(Mdc_O), .md_pad_i(Mdi_I), .md_pad_o(Mdo_O), .md_padoe_o(Mdo_OE),
  
  .int_o()
);







initial
begin
  WB_CLK_I  =  1'b0;
  WB_DAT_I  = 32'h0;
  WB_ADR_I  = 32'h0;
  WB_SEL_I  =  4'h0;
  WB_WE_I   =  1'b0;
  WB_CYC_I  =  1'b0;
  WB_STB_I  =  1'b0;

  m_wb_ack_i = 0;
  m_wb_err_i = 0;
  MTxClk    =  1'b0;
  MRxClk    =  1'b0;
  MRxD      =  4'h0;
  MRxDV     =  1'b0;
  MRxErr    =  1'b0;
  MColl     =  1'b0;
  MCrs      =  1'b0;
  Mdi_I     =  1'b0;

  WishboneBusy = 1'b0;
  TxBDIndex = 10'h0;
  RxBDIndex = 10'h0;
  LogEnable = 1'b1;
  g_last_txbd = 6'h0;
end


// Reset pulse
initial
begin
  mcd1 = $fopen("ethernet_tx.log");
  mcd2 = $fopen("ethernet_rx.log");
  WB_RST_I =  1'b1;
  #100 WB_RST_I =  1'b0;
  #100 StartTB  =  1'b1;
end



// Generating WB_CLK_I clock
always
begin
//  forever #2.5 WB_CLK_I = ~WB_CLK_I;  // 2*2.5 ns -> 200.0 MHz    
//  forever #5 WB_CLK_I = ~WB_CLK_I;  // 2*5 ns -> 100.0 MHz    
//  forever #10 WB_CLK_I = ~WB_CLK_I;  // 2*10 ns -> 50.0 MHz    
  forever #12.5 WB_CLK_I = ~WB_CLK_I;  // 2*12.5 ns -> 40 MHz    
//  forever #15 WB_CLK_I = ~WB_CLK_I;  // 2*10 ns -> 33.3 MHz    
//  forever #20 WB_CLK_I = ~WB_CLK_I;  // 2*20 ns -> 25 MHz    
//  forever #25 WB_CLK_I = ~WB_CLK_I;  // 2*25 ns -> 20.0 MHz
//  forever #31.25 WB_CLK_I = ~WB_CLK_I;  // 2*31.25 ns -> 16.0 MHz    
//  forever #50 WB_CLK_I = ~WB_CLK_I;  // 2*50 ns -> 10.0 MHz
//  forever #55 WB_CLK_I = ~WB_CLK_I;  // 2*55 ns ->  9.1 MHz    
end

// Generating MTxClk clock
always
begin
//  #3 forever #20 MTxClk = ~MTxClk;   // 2*20 ns -> 25 MHz
  #3 forever #200 MTxClk = ~MTxClk;   // 2*200 ns -> 2.5 MHz
end

// Generating MRxClk clock
always
begin
//  #16 forever #20 MRxClk = ~MRxClk;   // 2*20 ns -> 25 MHz
  #16 forever #200 MRxClk = ~MRxClk;   // 2*200 ns -> 2.5 MHz
//  #16 forever #62.5 MRxClk = ~MRxClk;   // 2*62.5 ns -> 8 MHz       // just for testing purposes
end


initial
begin
  wait(StartTB);  // Start of testbench
  
  // Reset eth MAC core
  WishboneWrite(32'h00000800, {26'h0, `ETH_MODER_ADR<<2});     // r_Rst = 1
  WishboneWrite(32'h00000000, {26'h0, `ETH_MODER_ADR<<2});     // r_Rst = 0

  InitializeMemory;

// Select which test you want to run:
  //  TestTxAndRx;
    TestFullDuplex;
  //  TestUnicast;
  //  TestBroadcast;
  //  TestMulticast;
end
  
task TestTxAndRx;

 integer ii, jj;
 integer data_in, bd, pointer;

 begin
  WishboneWrite(32'h00000800, {26'h0, `ETH_MODER_ADR<<2});     // r_Rst = 1
  WishboneWrite(32'h00000000, {26'h0, `ETH_MODER_ADR<<2});     // r_Rst = 0
  WishboneWrite(32'h00000080, {26'h0, `ETH_TX_BD_NUM_ADR<<2}); // r_RxBDAddress = 0x80

//  WishboneWrite(32'h0000a06b, {26'h0, `ETH_MODER_ADR<<2});     // RxEn, Txen, CrcEn, Pad en, half duplex, 
  WishboneWrite(32'h0000a46b, {26'h0, `ETH_MODER_ADR<<2});     // RxEn, Txen, CrcEn, Pad en, full duplex, 
//  WishboneWrite(32'h0001a06b, {26'h0, `ETH_MODER_ADR<<2});     // r_RecSmall, RxEn, Txen, CrcEn, Pad en, half duplex, 
                                                               // r_IPG, promisc On, reject broadcast 

  WishboneWrite(32'h00000004, {26'h0, `ETH_CTRLMODER_ADR<<2}); //r_TxFlow = 1

  WishboneWrite(32'h00000002, {26'h0, `ETH_MAC_ADDR1_ADR<<2}); // MAC = 000203040506
  WishboneWrite(32'h03040506, {26'h0, `ETH_MAC_ADDR0_ADR<<2});

/*
// Just few reads
  WishboneRead({26'h0, `ETH_MODER_ADR<<2}, data_in);       // Read from ETH_MODER register
  WishboneRead({26'h0, `ETH_TX_BD_NUM_ADR<<2}, data_in);       // Read from ETH_TX_BD_NUM_ADR register
  WishboneRead({26'h0, `ETH_MAC_ADDR1_ADR<<2}, data_in);       // Read from ETH_MAC_ADDR1_ADR register
  WishboneRead({26'h0, `ETH_MAC_ADDR0_ADR<<2}, data_in);       // Read from ETH_MAC_ADDR0_ADR register
*/




    for(jj=0; jj<8; jj=jj+4)
    begin
      WishboneWriteData(`TX_BUF_BASE + jj, 32'h11111111, 4'hf); // Initializing data to ff
    end

    for(jj=0; jj<8; jj=jj+4)
    begin
      WishboneWriteData(`RX_BUF_BASE + jj, 32'h11111111, 4'hf); // Initializing data to ff
    end

//  SendPacketX(16'h0064, 1'b0, 2'h3);
//  SendPacketX(16'h0064, 1'b0, 2'h2);
//  SendPacketX(16'h0064, 1'b0, 2'h1);
//  SendPacketX(16'h0064, 1'b0, 2'h0);
//  SendPacket(16'h0064, 1'b0);
//  SendPacket(16'h0011, 1'b0);
//  SendPacket(16'h0012, 1'b0);

fork
  begin
/*
  SendPacketX(16'h0064, 1'b0, 2'h1);
  SendPacketX(16'h0064, 1'b0, 2'h2);
  SendPacketX(16'h0064, 1'b0, 2'h3);
  SendPacketX(16'h0064, 1'b0, 2'h0);
*/
//    SendPacketX(16'h264, 1'b0, 2'h3);
//    SendPacketX(16'h64, 1'b0, 2'h3);
//    SendPacketX(16'h104, 1'b0, 2'h3);
  end
  
  begin
    ReceivePacketX(16'h0040, 1'b0, `UNICAST_XFR, 2'h0);    // Initializes RxBD and then generates traffic on the MRxD[3:0] signals.
    ReceivePacketX(16'h0041, 1'b0, `UNICAST_XFR, 2'h0);    // Initializes RxBD and then generates traffic on the MRxD[3:0] signals.
    ReceivePacketX(16'h0042, 1'b0, `UNICAST_XFR, 2'h0);    // Initializes RxBD and then generates traffic on the MRxD[3:0] signals.
    ReceivePacketX(16'h0043, 1'b0, `UNICAST_XFR, 2'h0);    // Initializes RxBD and then generates traffic on the MRxD[3:0] signals.
    ReceivePacketX(16'h0044, 1'b0, `UNICAST_XFR, 2'h0);    // Initializes RxBD and then generates traffic on the MRxD[3:0] signals.
  end

//  begin
//    for(ii=0; ii<10000; ii=ii+1)
//      begin
//        WishboneRead({22'h01, 10'b0}, data_in);  // read back
//        #100;
//      end
//  end
//join

//fork
/*
  begin
    repeat(4)
      begin
        wait(tb_eth_top.ethtop.wishbone.TxStatusWrite);   // wait until tx status is written
        @ (posedge WB_CLK_I)
        #1;
      end
  end
*/  
  begin
    wait(tb_eth_top.ethtop.wishbone.RxStatusWrite);   // wait until rx status is written
  end

join


/*
  SendPacket(16'h0013, 1'b0);
  SendPacket(16'h0014, 1'b0);

  SendPacket(16'h0030, 1'b0);
  SendPacket(16'h0031, 1'b0);
  SendPacket(16'h0032, 1'b0);
  SendPacket(16'h0033, 1'b0);
  SendPacket(16'h0025, 1'b0);
  SendPacket(16'h0045, 1'b0); 
  SendPacket(16'h0025, 1'b0);
  SendPacket(16'h0017, 1'b0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜三级在线| 欧美日精品一区视频| 色婷婷激情综合| av亚洲精华国产精华| 欧美一区二区精美| 亚洲综合久久av| 国产精品99久久久久久久女警| 同产精品九九九| caoporen国产精品视频| 欧美不卡一二三| 偷拍与自拍一区| 色悠悠久久综合| 国产精品乱人伦中文| 激情综合网av| 日韩欧美专区在线| 亚洲成av人片www| 欧洲激情一区二区| 亚洲精品久久久蜜桃| www.亚洲色图| 国产精品久久久久久久久搜平片 | 91网站视频在线观看| 欧美一级在线免费| 午夜成人免费电影| 欧美日韩中文字幕一区二区| 亚洲欧美经典视频| 99热这里都是精品| 国产精品入口麻豆九色| 另类小说色综合网站| 懂色av中文字幕一区二区三区 | 成人高清免费观看| 久久久av毛片精品| 久久99久国产精品黄毛片色诱| 在线看不卡av| **网站欧美大片在线观看| 懂色av中文一区二区三区| 久久久久国产精品麻豆| 国产一区二区免费视频| 久久一夜天堂av一区二区三区 | 欧美色中文字幕| 欧美精品一区二区在线观看| 中文久久乱码一区二区| 国产成人在线视频免费播放| 久久综合网色—综合色88| 国产麻豆精品在线观看| 久久久久久99久久久精品网站| 亚洲一区在线视频| 国产成人精品一区二| 一区视频在线播放| 麻豆精品久久精品色综合| 日韩免费视频一区二区| 国产做a爰片久久毛片 | 亚洲成a天堂v人片| 91精品视频网| 国产综合色产在线精品| 91在线观看一区二区| 中文字幕日韩av资源站| 欧美日韩一区二区三区高清| 日本亚洲免费观看| 久久精品亚洲精品国产欧美kt∨| 亚洲综合色在线| 日韩免费视频一区二区| av中文字幕亚洲| 天天综合网天天综合色| 日本国产一区二区| 国产精品久久久久影院| 一本高清dvd不卡在线观看| 天堂资源在线中文精品| 久久九九久久九九| 欧美日韩国产首页在线观看| 国产精品一二一区| 久久在线观看免费| 一本一道综合狠狠老| 成人免费在线播放视频| 大白屁股一区二区视频| 亚洲一区二区av电影| 亚洲精品一区二区三区福利| 成人av动漫网站| 久久激情五月婷婷| 亚洲国产日韩a在线播放性色| 色婷婷久久久久swag精品 | 午夜影视日本亚洲欧洲精品| 日本高清无吗v一区| 精品在线播放午夜| 亚洲一区二区三区不卡国产欧美 | 国产成a人亚洲| 亚洲高清久久久| 成人免费在线播放视频| 91久久免费观看| 国产九九视频一区二区三区| 午夜视频一区在线观看| 国产精品久久久久久久久久久免费看| 国产精品资源网站| 日韩二区在线观看| 亚洲精品你懂的| 中文字幕中文字幕在线一区 | 亚洲精品欧美专区| 久久久久成人黄色影片| 国产福利91精品一区二区三区| 国产性色一区二区| av日韩在线网站| 国产精品中文字幕日韩精品| 日韩电影在线一区二区| 亚洲一区二区av在线| ...xxx性欧美| 欧美日韩国产精选| 欧美综合一区二区| 91免费视频观看| 99久久亚洲一区二区三区青草| 一区二区三区美女| 亚洲日本韩国一区| 亚洲免费观看视频| 亚洲摸摸操操av| 悠悠色在线精品| 亚洲精品欧美综合四区| 亚洲精品大片www| 一区二区三区91| 亚洲香肠在线观看| 日本欧美一区二区三区| 蜜臀av性久久久久蜜臀av麻豆| 国产网红主播福利一区二区| 久久精品亚洲麻豆av一区二区 | 亚洲丰满少妇videoshd| 精品国产欧美一区二区| 日韩亚洲欧美在线| 欧美成人vr18sexvr| 日韩欧美一区在线观看| 亚洲精品一区二区在线观看| 久久精品欧美一区二区三区不卡| 色哟哟日韩精品| 91国偷自产一区二区开放时间| 日本三级亚洲精品| 精品影视av免费| 国产乱码精品一区二区三区av| 亚洲一区二区三区精品在线| 久久久久国产精品免费免费搜索| 欧美色图片你懂的| 欧美一区二区日韩| 欧美在线观看一二区| 欧美日韩免费视频| 精品国产伦一区二区三区观看方式 | 中文字幕av一区二区三区免费看 | 婷婷六月综合亚洲| 久久av老司机精品网站导航| 国产美女在线精品| 青青草97国产精品免费观看无弹窗版| 国产精品视频免费| 亚洲成人激情av| 国内精品免费在线观看| 91无套直看片红桃| 日韩精品一区在线| 自拍偷拍国产亚洲| 美女视频黄久久| 成年人网站91| 日韩一二三四区| 亚洲欧美日韩国产一区二区三区| 日本一区二区动态图| 久久久久久久久久久电影| **欧美大码日韩| 国产一区视频网站| 欧美综合一区二区三区| 国产欧美一区二区精品仙草咪| 久久影院午夜片一区| 亚洲综合免费观看高清完整版| 一区二区在线电影| 国内成人自拍视频| 欧美二区在线观看| 91麻豆精品国产自产在线观看一区| 91激情五月电影| 久久久久久一二三区| 亚洲成人激情综合网| www.亚洲色图| 国产婷婷色一区二区三区在线| 国产亚洲精品超碰| 中文字幕永久在线不卡| 狠狠色狠狠色综合系列| 5566中文字幕一区二区电影| 国产精品天美传媒| 精品在线一区二区| 欧美一级一级性生活免费录像| 精品三级在线观看| 婷婷六月综合亚洲| 欧美日韩一区三区四区| 亚洲免费在线视频一区 二区| 亚洲午夜视频在线观看| 成人免费毛片片v| 久久午夜老司机| 精品一二线国产| 日韩欧美一级在线播放| 日本特黄久久久高潮| 777午夜精品免费视频| 亚洲在线成人精品| 极品少妇xxxx偷拍精品少妇| 国产不卡在线一区| 国产色爱av资源综合区| 国产精品一二三区在线| 久久久精品黄色| 成人免费看黄yyy456| 欧美三区免费完整视频在线观看| 日韩美女在线视频| 久久超碰97中文字幕|