亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久久久久一二三区| 91无套直看片红桃| 偷拍亚洲欧洲综合| 婷婷中文字幕综合| 午夜精品久久久久久久久久| 一区二区不卡在线播放 | 国产精品久久久久久福利一牛影视 | 国产精品二区一区二区aⅴ污介绍| 久久奇米777| 欧美激情一区二区三区不卡| 亚洲国产高清在线观看视频| 中文久久乱码一区二区| 国产精品福利在线播放| 亚洲欧美日韩一区二区| 亚洲一区二区四区蜜桃| 日本中文字幕一区二区视频| 久久99九九99精品| 国产 日韩 欧美大片| 成人午夜伦理影院| 91麻豆国产精品久久| 欧美在线999| 日韩一区二区三区观看| 亚洲国产电影在线观看| 亚洲自拍偷拍图区| 日本中文字幕一区| 北条麻妃一区二区三区| 欧美日韩一级二级三级| 久久中文字幕电影| 亚洲美女区一区| 美国一区二区三区在线播放| 成人动漫一区二区| 制服丝袜亚洲色图| 中文乱码免费一区二区| 日韩高清不卡一区| jlzzjlzz亚洲女人18| 欧美日韩国产影片| 日本一区二区电影| 日韩成人伦理电影在线观看| 国产精品一区二区91| 欧美日韩午夜在线| 国产精品久久久爽爽爽麻豆色哟哟| 一区二区三区在线视频播放 | 国产午夜精品一区二区 | 欧美一区二区三区四区在线观看 | 欧美成va人片在线观看| 亚洲天堂中文字幕| 精彩视频一区二区三区| 欧美日韩一级视频| 亚洲精品成人在线| 粉嫩av亚洲一区二区图片| 91精品久久久久久久99蜜桃 | 欧美日韩一区中文字幕| 国产精品电影一区二区| 国产精品中文欧美| 欧美电影免费观看高清完整版在线 | 17c精品麻豆一区二区免费| 日韩国产高清影视| 欧美午夜精品免费| 136国产福利精品导航| 丰满放荡岳乱妇91ww| 精品88久久久久88久久久| 香蕉加勒比综合久久| 欧洲视频一区二区| 亚洲欧美一区二区久久| 成人免费电影视频| 国产三区在线成人av| 激情六月婷婷久久| 精品少妇一区二区三区日产乱码 | 成人黄色网址在线观看| 精品入口麻豆88视频| 日韩国产一二三区| 欧美一级久久久| 人人超碰91尤物精品国产| 欧美日韩国产首页| 日韩黄色一级片| 5858s免费视频成人| 日本伊人午夜精品| 欧美一区二区三区视频免费播放| 五月激情丁香一区二区三区| 欧美在线观看18| 亚洲香蕉伊在人在线观| 欧美日本一区二区三区四区| 亚洲成人资源在线| 欧美一卡在线观看| 美国三级日本三级久久99| 精品国产免费一区二区三区四区| 久久成人免费日本黄色| 久久久国产精品麻豆| 成人精品免费视频| 亚洲一区二区三区四区中文字幕| 精品视频在线免费看| 日韩主播视频在线| 日韩亚洲欧美综合| 国产iv一区二区三区| 国产精品久久久久桃色tv| 91蜜桃视频在线| 午夜精品福利一区二区三区av| 8x8x8国产精品| 精品一区二区三区在线播放| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲一区影音先锋| 在线91免费看| 国产精品小仙女| 亚洲成av人影院| 久久久久国产精品麻豆ai换脸 | 国产精品资源网| 18成人在线观看| 日韩西西人体444www| 成人黄色软件下载| 日韩av中文在线观看| 欧美国产一区二区| 欧美日韩精品专区| 国产精品996| 三级欧美韩日大片在线看| 久久久久久一级片| 制服丝袜av成人在线看| 国产麻豆精品95视频| 亚洲午夜av在线| 国产精品婷婷午夜在线观看| 欧美色图一区二区三区| 高清在线不卡av| 日韩va亚洲va欧美va久久| 自拍偷拍欧美激情| 精品日韩99亚洲| 欧美日韩国产一级| 91网站黄www| 国产成人在线观看免费网站| 日韩精品一二三| 亚洲人吸女人奶水| 国产人成亚洲第一网站在线播放| 欧美日韩1234| 欧美性猛片xxxx免费看久爱| 成人性色生活片| 久草在线在线精品观看| 三级一区在线视频先锋| 亚洲精品福利视频网站| 中文字幕在线观看一区二区| 2020国产精品自拍| 91精品国产乱| 91精品婷婷国产综合久久性色 | 欧美三级日韩三级国产三级| 成人免费视频caoporn| 国产98色在线|日韩| 久久成人18免费观看| 蜜桃视频在线观看一区二区| 一区二区三区91| 亚洲最大成人网4388xx| 亚洲欧美乱综合| 亚洲青青青在线视频| 国产精品久久影院| 中文字幕一区二区三区乱码在线| 久久久亚洲高清| 久久天堂av综合合色蜜桃网| 欧美xxxxxxxxx| 精品国产伦一区二区三区观看体验| 欧美巨大另类极品videosbest | 亚洲国产成人一区二区三区| 久久老女人爱爱| 亚洲国产精品精华液2区45| 中文字幕乱码亚洲精品一区| 久久免费视频一区| 欧美经典一区二区| 国产精品免费免费| 亚洲欧美激情在线| 亚洲不卡在线观看| 日韩精品电影在线观看| 久久99精品国产91久久来源| 久久国产尿小便嘘嘘| 国产福利一区二区三区视频| 成人国产精品免费网站| 91麻豆高清视频| 911精品国产一区二区在线| 精品久久一二三区| 久久久av毛片精品| 亚洲欧美日韩国产中文在线| 亚洲欧美在线aaa| 成人在线综合网站| 日韩欧美国产一二三区| 91片在线免费观看| 欧美午夜影院一区| 欧美精品一区二区不卡| 夜夜精品视频一区二区| 亚洲v日本v欧美v久久精品| 精品影院一区二区久久久| caoporen国产精品视频| 欧美日韩日日摸| 国产欧美一区二区三区沐欲| 亚洲色图视频网站| 麻豆精品视频在线观看免费| 懂色av中文字幕一区二区三区 | 首页综合国产亚洲丝袜| 国产一区二区91| 欧美色图一区二区三区| 久久久精品影视| 亚洲h精品动漫在线观看| 国产精品资源在线| 91麻豆精品国产91久久久久久| 精品国产一区二区亚洲人成毛片| 18欧美乱大交hd1984| 国产一区二区在线观看免费|