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

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

?? tb_eth_top.v

?? USB_I2C_MAC_FPGA_Code.rar
?? V
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):








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);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频一区二区| 日本一区二区高清| 成人免费福利片| 视频一区二区不卡| 国产精品天美传媒| 欧美大胆人体bbbb| 一本大道久久精品懂色aⅴ| 久久99这里只有精品| 亚洲精品国产第一综合99久久| 精品国产一区二区在线观看| 欧美三级中文字幕| 成人sese在线| 狠狠色综合色综合网络| 日日欢夜夜爽一区| 亚洲精品免费在线观看| 欧美国产日产图区| 精品福利视频一区二区三区| 欧美影院一区二区| 97久久精品人人爽人人爽蜜臀| 黑人精品欧美一区二区蜜桃| 日韩精品一二三区| 亚洲一区在线观看网站| 国产精品高潮呻吟| 日本一区二区三区在线观看| 亚洲精品在线电影| 欧美一卡2卡3卡4卡| 欧美亚洲动漫精品| 日本二三区不卡| 99久久99久久久精品齐齐| 国产成人在线免费| 国产精品一色哟哟哟| 久久国产精品99久久久久久老狼 | 精品乱人伦小说| 欧美一区二区私人影院日本| 欧美视频在线不卡| 精品久久国产老人久久综合| 日韩丝袜情趣美女图片| 欧美丰满少妇xxxbbb| 欧美日韩免费一区二区三区| 欧美性大战久久久久久久蜜臀| 色综合久久综合网欧美综合网 | 亚洲五码中文字幕| 尤物视频一区二区| 亚洲精品中文在线| 亚洲免费在线观看视频| 亚洲欧美另类久久久精品| 1000精品久久久久久久久| 成人免费在线视频观看| 亚洲私人黄色宅男| 亚洲精品国产a久久久久久| 一区二区三区四区在线免费观看| 亚洲激情第一区| 亚洲国产成人av网| 日韩中文字幕1| 精品一区二区三区蜜桃| 国产乱子轮精品视频| 国v精品久久久网| 99在线精品一区二区三区| 一本一道久久a久久精品| 欧美性做爰猛烈叫床潮| 日韩亚洲欧美在线观看| 久久久美女毛片| 亚洲日本在线天堂| 性欧美疯狂xxxxbbbb| 久久激情综合网| 国产精品亚洲а∨天堂免在线| 成人av电影在线播放| 欧美亚洲高清一区| 欧美精品一区二区三| 国产精品不卡在线| 天使萌一区二区三区免费观看| 久久不见久久见免费视频1| 丰满少妇在线播放bd日韩电影| 99精品国产视频| 欧美一区二区三区视频免费| 久久久91精品国产一区二区三区| 亚洲天堂2014| 卡一卡二国产精品| 99久久免费国产| 91精品国产黑色紧身裤美女| 欧美韩日一区二区三区四区| 亚洲一级二级在线| 国产一区二区三区在线看麻豆| 99九九99九九九视频精品| 欧美一卡2卡3卡4卡| 亚洲欧洲另类国产综合| 男人的天堂亚洲一区| 成人sese在线| 日韩欧美专区在线| 亚洲人成精品久久久久久| 免费看欧美美女黄的网站| 97久久超碰精品国产| 久久综合五月天婷婷伊人| 亚洲国产日韩一区二区| 国产精品香蕉一区二区三区| 欧美三级欧美一级| 国产精品久久久久久久久动漫| 日韩精品一二区| 一本久久a久久精品亚洲| 久久综合久久综合久久综合| 午夜欧美在线一二页| 成人av在线影院| 精品国产1区二区| 午夜欧美大尺度福利影院在线看 | 国产精品99久久久久久似苏梦涵 | 欧美一区二区三区在线观看| 国产精品久久99| 国内外成人在线视频| 欧美男男青年gay1069videost| 国产精品久久久久久久久免费丝袜| 蜜臀av亚洲一区中文字幕| 欧美做爰猛烈大尺度电影无法无天| 欧美激情一区二区三区全黄| 精品一区二区三区免费观看 | 在线精品视频一区二区三四| 国产精品天美传媒沈樵| 韩国理伦片一区二区三区在线播放 | 国产日韩v精品一区二区| 欧美a一区二区| 9191久久久久久久久久久| 一区二区三区日本| 99这里都是精品| 国产精品入口麻豆九色| 国产精品亚洲午夜一区二区三区 | 国产日本欧美一区二区| 精品一区二区三区不卡| 欧美精品aⅴ在线视频| 国产高清亚洲一区| 精品日韩在线观看| 麻豆精品一区二区三区| 欧美一区二区视频在线观看| 日韩av在线发布| 欧美伦理视频网站| 日日摸夜夜添夜夜添国产精品 | 国产精品一区二区不卡| 精品久久人人做人人爰| 九色porny丨国产精品| 精品欧美乱码久久久久久 | 国产精品中文欧美| 久久综合狠狠综合| 国产剧情在线观看一区二区| 久久亚洲免费视频| 国产suv精品一区二区883| 国产校园另类小说区| 成人午夜又粗又硬又大| 亚洲国产精品t66y| 91视频免费观看| 一区二区三区中文字幕| 欧美午夜精品理论片a级按摩| 亚洲国产精品久久久久婷婷884 | 国产乱码精品一区二区三区忘忧草| 久久久综合网站| 成人免费视频播放| 亚洲视频狠狠干| 欧美偷拍一区二区| 免费一级片91| 久久精品一区二区| 97国产一区二区| 午夜婷婷国产麻豆精品| 日韩精品一区二区三区老鸭窝 | 亚洲电影一区二区| 91精品久久久久久久久99蜜臂| 麻豆国产一区二区| 欧美国产激情一区二区三区蜜月| 91在线国产福利| 午夜精品一区二区三区三上悠亚| 日韩欧美国产综合在线一区二区三区| 狠狠色狠狠色综合| 亚洲欧美激情视频在线观看一区二区三区| 一本大道久久a久久综合| 日本不卡不码高清免费观看| 久久久久久久久岛国免费| 91啪亚洲精品| 另类成人小视频在线| 国产精品每日更新在线播放网址| 欧美丝袜丝交足nylons| 久久精品国产澳门| 亚洲美女区一区| 欧美电视剧在线看免费| 91视视频在线观看入口直接观看www| 亚洲成人精品一区| 久久久99精品免费观看不卡| 欧美三片在线视频观看| 国产高清一区日本| 日韩精品久久理论片| 国产精品天美传媒| 在线不卡的av| 97久久超碰国产精品| 精品一区二区三区在线观看国产 | 日韩国产精品久久久| 国产精品区一区二区三| 91精品国产品国语在线不卡| 不卡的av电影在线观看| 青青草97国产精品免费观看 | 欧美韩国日本不卡| 91精品国产综合久久精品图片| 成人免费观看视频| 精品在线播放午夜| 亚洲一区二区三区四区五区黄| 国产午夜精品一区二区三区嫩草|