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

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

?? tb_ethernet.v

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



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

module tb_ethernet();


reg           wb_clk;
reg           wb_rst;
wire          wb_int;

wire          mtx_clk;  // This goes to PHY
wire          mrx_clk;  // This goes to PHY

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

wire   [3:0]  MRxD;     // This goes to PHY
wire          MRxDV;    // This goes to PHY
wire          MRxErr;   // This goes to PHY
wire          MColl;    // This goes to PHY
wire          MCrs;     // This goes to PHY

wire          Mdi_I;
wire          Mdo_O;
wire          Mdo_OE;
tri           Mdio_IO;
wire          Mdc_O;


parameter Tp = 1;


// Ethernet Slave Interface signals
wire [31:0] eth_sl_wb_adr;
wire [31:0] eth_sl_wb_adr_i, eth_sl_wb_dat_o, eth_sl_wb_dat_i;
wire  [3:0] eth_sl_wb_sel_i;
wire        eth_sl_wb_we_i, eth_sl_wb_cyc_i, eth_sl_wb_stb_i, eth_sl_wb_ack_o, eth_sl_wb_err_o;

// Ethernet Master Interface signals
wire [31:0] eth_ma_wb_adr_o, eth_ma_wb_dat_i, eth_ma_wb_dat_o;
wire  [3:0] eth_ma_wb_sel_o;
wire        eth_ma_wb_we_o, eth_ma_wb_cyc_o, eth_ma_wb_stb_o, eth_ma_wb_ack_i, eth_ma_wb_err_i;




// Connecting Ethernet top module
eth_top eth_top
(
  // WISHBONE common
  .wb_clk_i(wb_clk),              .wb_rst_i(wb_rst), 

  // WISHBONE slave
  .wb_adr_i(eth_sl_wb_adr_i[11:2]), .wb_sel_i(eth_sl_wb_sel_i),   .wb_we_i(eth_sl_wb_we_i), 
  .wb_cyc_i(eth_sl_wb_cyc_i),       .wb_stb_i(eth_sl_wb_stb_i),   .wb_ack_o(eth_sl_wb_ack_o), 
  .wb_err_o(eth_sl_wb_err_o),       .wb_dat_i(eth_sl_wb_dat_i),   .wb_dat_o(eth_sl_wb_dat_o), 
 	
  // WISHBONE master
  .m_wb_adr_o(eth_ma_wb_adr_o),     .m_wb_sel_o(eth_ma_wb_sel_o), .m_wb_we_o(eth_ma_wb_we_o), 
  .m_wb_dat_i(eth_ma_wb_dat_i),     .m_wb_dat_o(eth_ma_wb_dat_o), .m_wb_cyc_o(eth_ma_wb_cyc_o), 
  .m_wb_stb_o(eth_ma_wb_stb_o),     .m_wb_ack_i(eth_ma_wb_ack_i), .m_wb_err_i(eth_ma_wb_err_i), 

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

  //RX
  .mrx_clk_pad_i(mrx_clk), .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(wb_int)

  // Bist
`ifdef ETH_BIST
  ,
  .scanb_rst      (1'b0),
  .scanb_clk      (1'b0),
  .scanb_si       (1'b0),
  .scanb_so       (),
  .scanb_en       (1'b0)
`endif
);



// Connecting Ethernet PHY Module
assign Mdio_IO = Mdo_OE ? Mdo_O : 1'bz ;
assign Mdi_I   = Mdio_IO;
integer phy_log_file_desc;

eth_phy eth_phy
(
  // WISHBONE reset
  .m_rst_n_i(!wb_rst),

  // MAC TX
  .mtx_clk_o(mtx_clk),    .mtxd_i(MTxD),    .mtxen_i(MTxEn),    .mtxerr_i(MTxErr),

  // MAC RX
  .mrx_clk_o(mrx_clk),    .mrxd_o(MRxD),    .mrxdv_o(MRxDV),    .mrxerr_o(MRxErr),
  .mcoll_o(MColl),        .mcrs_o(MCrs),

  // MIIM
  .mdc_i(Mdc_O),          .md_io(Mdio_IO),

  // SYSTEM
  .phy_log(phy_log_file_desc)
);



// Connecting WB Master as Host Interface
integer host_log_file_desc;

WB_MASTER_BEHAVIORAL wb_master
(
    .CLK_I(wb_clk),
    .RST_I(wb_rst),
    .TAG_I({`WB_TAG_WIDTH{1'b0}}),
    .TAG_O(),
    .ACK_I(eth_sl_wb_ack_o),
    .ADR_O(eth_sl_wb_adr), // only eth_sl_wb_adr_i[11:2] used
    .CYC_O(eth_sl_wb_cyc_i),
    .DAT_I(eth_sl_wb_dat_o),
    .DAT_O(eth_sl_wb_dat_i),
    .ERR_I(eth_sl_wb_err_o),
    .RTY_I(1'b0),  // inactive (1'b0)
    .SEL_O(eth_sl_wb_sel_i),
    .STB_O(eth_sl_wb_stb_i),
    .WE_O (eth_sl_wb_we_i),
    .CAB_O()       // NOT USED for now!
);

assign eth_sl_wb_adr_i = {20'h0, eth_sl_wb_adr[11:2], 2'h0};



// Connecting WB Slave as Memory Interface Module
integer memory_log_file_desc;

WB_SLAVE_BEHAVIORAL wb_slave
(
    .CLK_I(wb_clk),
    .RST_I(wb_rst),
    .ACK_O(eth_ma_wb_ack_i),
    .ADR_I(eth_ma_wb_adr_o),
    .CYC_I(eth_ma_wb_cyc_o),
    .DAT_O(eth_ma_wb_dat_i),
    .DAT_I(eth_ma_wb_dat_o),
    .ERR_O(eth_ma_wb_err_i),
    .RTY_O(),      // NOT USED for now!
    .SEL_I(eth_ma_wb_sel_o),
    .STB_I(eth_ma_wb_stb_o),
    .WE_I (eth_ma_wb_we_o),
    .CAB_I(1'b0)   // inactive (1'b0)
);



// Connecting WISHBONE Bus Monitors to ethernet master and slave interfaces
integer wb_s_mon_log_file_desc ;
integer wb_m_mon_log_file_desc ;

WB_BUS_MON wb_eth_slave_bus_mon
(
  // WISHBONE common
  .CLK_I(wb_clk),
  .RST_I(wb_rst),

  // WISHBONE slave
  .ACK_I(eth_sl_wb_ack_o),
  .ADDR_O({20'h0, eth_sl_wb_adr_i[11:2], 2'b0}),
  .CYC_O(eth_sl_wb_cyc_i),
  .DAT_I(eth_sl_wb_dat_o),
  .DAT_O(eth_sl_wb_dat_i),
  .ERR_I(eth_sl_wb_err_o),
  .RTY_I(1'b0),
  .SEL_O(eth_sl_wb_sel_i),
  .STB_O(eth_sl_wb_stb_i),
  .WE_O (eth_sl_wb_we_i),
  .TAG_I({`WB_TAG_WIDTH{1'b0}}),
  .TAG_O(),
  .CAB_O(1'b0),
  .log_file_desc (wb_s_mon_log_file_desc)
);

WB_BUS_MON wb_eth_master_bus_mon
(
  // WISHBONE common
  .CLK_I(wb_clk),
  .RST_I(wb_rst),

  // WISHBONE master
  .ACK_I(eth_ma_wb_ack_i),
  .ADDR_O(eth_ma_wb_adr_o),
  .CYC_O(eth_ma_wb_cyc_o),
  .DAT_I(eth_ma_wb_dat_i),
  .DAT_O(eth_ma_wb_dat_o),
  .ERR_I(eth_ma_wb_err_i),
  .RTY_I(1'b0),
  .SEL_O(eth_ma_wb_sel_o),
  .STB_O(eth_ma_wb_stb_o),
  .WE_O (eth_ma_wb_we_o),
  .TAG_I({`WB_TAG_WIDTH{1'b0}}),
  .TAG_O(),
  .CAB_O(1'b0),
  .log_file_desc(wb_m_mon_log_file_desc)
);



reg         StartTB;
integer     tb_log_file;

initial
begin
  tb_log_file = $fopen("../log/eth_tb.log");
  if (tb_log_file < 2)
  begin
    $display("*E Could not open/create testbench log file in ../log/ directory!");
    $finish;
  end
  $fdisplay(tb_log_file, "========================== ETHERNET IP Core Testbench results ===========================");
  $fdisplay(tb_log_file, " ");

  phy_log_file_desc = $fopen("../log/eth_tb_phy.log");
  if (phy_log_file_desc < 2)
  begin
    $fdisplay(tb_log_file, "*E Could not open/create eth_tb_phy.log file in ../log/ directory!");
    $finish;
  end
  $fdisplay(phy_log_file_desc, "================ PHY Module  Testbench access log ================");
  $fdisplay(phy_log_file_desc, " ");

  memory_log_file_desc = $fopen("../log/eth_tb_memory.log");
  if (memory_log_file_desc < 2)
  begin
    $fdisplay(tb_log_file, "*E Could not open/create eth_tb_memory.log file in ../log/ directory!");
    $finish;
  end
  $fdisplay(memory_log_file_desc, "=============== MEMORY Module Testbench access log ===============");
  $fdisplay(memory_log_file_desc, " ");

  host_log_file_desc = $fopen("../log/eth_tb_host.log");
  if (host_log_file_desc < 2)
  begin
    $fdisplay(tb_log_file, "*E Could not open/create eth_tb_host.log file in ../log/ directory!");
    $finish;
  end
  $fdisplay(host_log_file_desc, "================ HOST Module Testbench access log ================");
  $fdisplay(host_log_file_desc, " ");

  wb_s_mon_log_file_desc = $fopen("../log/eth_tb_wb_s_mon.log");
  if (wb_s_mon_log_file_desc < 2)
  begin
    $fdisplay(tb_log_file, "*E Could not open/create eth_tb_wb_s_mon.log file in ../log/ directory!");
    $finish;
  end
  $fdisplay(wb_s_mon_log_file_desc, "============== WISHBONE Slave Bus Monitor error log ==============");
  $fdisplay(wb_s_mon_log_file_desc, " ");
  $fdisplay(wb_s_mon_log_file_desc, "   Only ERRONEOUS conditions are logged !");
  $fdisplay(wb_s_mon_log_file_desc, " ");

  wb_m_mon_log_file_desc = $fopen("../log/eth_tb_wb_m_mon.log");
  if (wb_m_mon_log_file_desc < 2)
  begin
    $fdisplay(tb_log_file, "*E Could not open/create eth_tb_wb_m_mon.log file in ../log/ directory!");
    $finish;
  end
  $fdisplay(wb_m_mon_log_file_desc, "============= WISHBONE Master Bus Monitor  error log =============");
  $fdisplay(wb_m_mon_log_file_desc, " ");
  $fdisplay(wb_m_mon_log_file_desc, "   Only ERRONEOUS conditions are logged !");
  $fdisplay(wb_m_mon_log_file_desc, " ");

  // Reset pulse
  wb_rst =  1'b1;
  #423 wb_rst =  1'b0;

  // Clear memories
  clear_memories;
  clear_buffer_descriptors;

  #423 StartTB  =  1'b1;
end



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



integer      tests_successfull;
integer      tests_failed;
reg [799:0]  test_name; // used for tb_log_file

reg   [3:0]  wbm_init_waits; // initial wait cycles between CYC_O and STB_O of WB Master
reg   [3:0]  wbm_subseq_waits; // subsequent wait cycles between STB_Os of WB Master
reg   [2:0]  wbs_waits; // wait cycles befor WB Slave responds
reg   [7:0]  wbs_retries; // if RTY response, then this is the number of retries before ACK

reg          wbm_working; // tasks wbm_write and wbm_read set signal when working and reset it when stop working


initial
begin
  wait(StartTB);  // Start of testbench

  // Initial global values
  tests_successfull = 0;
  tests_failed = 0;
  
  wbm_working = 0;

  wbm_init_waits = 4'h1;
  wbm_subseq_waits = 4'h3;
  wbs_waits = 4'h1;
  wbs_retries = 8'h2; 
  wb_slave.cycle_response(`ACK_RESPONSE, wbs_waits, wbs_retries);

  // set DIFFERENT mrx_clk to mtx_clk!
//  eth_phy.set_mrx_equal_mtx = 1'b0;

  //  Call tests
  //  ----------
//    test_access_to_mac_reg(0, 0);           // 0 - 3

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频网站在线观看| 麻豆精品久久精品色综合| www国产精品av| 欧美日韩黄色一区二区| 欧美综合欧美视频| 在线免费精品视频| 色狠狠综合天天综合综合| 99re66热这里只有精品3直播 | 欧美日韩亚洲综合在线 | 亚洲国产乱码最新视频| 一区二区视频在线| 亚洲国产成人91porn| 午夜a成v人精品| 性感美女久久精品| 日本成人在线一区| 国产资源在线一区| 国产又黄又大久久| 亚洲国产毛片aaaaa无费看| 中文字幕制服丝袜一区二区三区 | 一区二区三区在线影院| 一区二区三区欧美日韩| 一区二区三区久久久| 香蕉成人伊视频在线观看| 日韩黄色免费网站| 国内一区二区在线| 成人的网站免费观看| 色综合久久中文字幕| 4438x成人网最大色成网站| 精品99一区二区三区| 国产精品午夜电影| 性做久久久久久久久| 日本久久一区二区| 国产69精品久久久久毛片| av综合在线播放| 精品视频1区2区| 久久久美女艺术照精彩视频福利播放| 中文一区二区在线观看| 婷婷夜色潮精品综合在线| 国产一区二区91| 欧美自拍偷拍午夜视频| 久久久久国色av免费看影院| 亚洲国产欧美另类丝袜| 国产福利一区在线| 欧美日韩国产首页| 国产精品免费看片| 精品一区二区三区久久| 色哟哟日韩精品| 国产欧美日韩在线| 日日夜夜精品免费视频| 波多野结衣91| 欧美精品一区二区三区蜜臀 | 一本到不卡精品视频在线观看| 欧美三级电影在线看| 久久久久99精品国产片| 午夜精品123| 91网站最新地址| 久久久久久久久久久久电影| 日日夜夜免费精品| 精品视频全国免费看| 亚洲欧美日本在线| 岛国一区二区在线观看| 337p日本欧洲亚洲大胆精品| 亚洲h精品动漫在线观看| av不卡在线播放| 国产精品网站导航| 国产麻豆日韩欧美久久| 欧美mv日韩mv国产网站app| 丝瓜av网站精品一区二区| 在线观看日韩精品| 亚洲黄色免费网站| 色呦呦国产精品| 综合色天天鬼久久鬼色| 91影视在线播放| 一区在线中文字幕| 成人午夜私人影院| 国产精品色呦呦| 岛国一区二区三区| 国产精品成人午夜| 91网址在线看| 亚洲精品成人悠悠色影视| 91视频.com| 亚洲精品成人天堂一二三| 在线亚洲一区二区| 亚洲一区在线观看网站| 欧美日韩一区二区三区在线看| 欧美最新大片在线看| 欧美一区二区三区白人| 亚洲国产精品久久久男人的天堂| 欧美性猛片aaaaaaa做受| 亚洲国产wwwccc36天堂| 欧美三级电影在线观看| 日本成人在线网站| 欧美mv日韩mv国产| 成人免费视频视频| 中文字幕五月欧美| 欧美日韩在线播放三区| 婷婷成人综合网| 日韩久久精品一区| 国产高清精品久久久久| 亚洲欧美日韩在线| 9191久久久久久久久久久| 蜜桃视频在线观看一区| 久久久蜜臀国产一区二区| av影院午夜一区| 天堂精品中文字幕在线| 亚洲精品在线电影| 亚洲天堂成人网| 丁香六月久久综合狠狠色| 国产欧美一区二区精品性色超碰| 国产成人精品三级麻豆| 一区二区三区日韩精品| 91精品国产91久久综合桃花| 国产一区二区0| 亚洲激情五月婷婷| 日韩欧美国产麻豆| 91色婷婷久久久久合中文| 偷窥少妇高潮呻吟av久久免费| 久久久一区二区三区捆绑**| 日本韩国欧美一区| 国产一区中文字幕| 香蕉加勒比综合久久| 国产欧美一区二区三区网站| 91在线小视频| 久久精品国产久精国产| 亚洲一区二区综合| 国产精品免费av| 这里只有精品视频在线观看| av激情成人网| 欧美一级在线视频| 蜜桃视频免费观看一区| 一区视频在线播放| 欧美一区二区久久久| 成人免费高清在线观看| 寂寞少妇一区二区三区| 亚洲成av人片| 中文字幕视频一区二区三区久| 亚洲精品在线电影| 91精品国产综合久久精品图片 | 国产一区在线观看视频| 天堂久久一区二区三区| 亚洲一区二区3| 中文字幕综合网| 欧美国产激情二区三区| 国产日韩欧美一区二区三区乱码| 制服丝袜亚洲精品中文字幕| 欧美亚洲国产一区二区三区va| 91原创在线视频| 99re6这里只有精品视频在线观看| 国产风韵犹存在线视精品| 久久99久久99| 美女免费视频一区二区| 国产成人综合自拍| 欧美日韩一区二区三区在线看| 国产精品77777竹菊影视小说| 午夜视频在线观看一区二区三区| 亚洲欧美激情小说另类| 中文字幕国产一区二区| 欧美国产精品中文字幕| 久久久久久久久久美女| 国产亚洲一本大道中文在线| 日韩免费福利电影在线观看| 欧美丰满一区二区免费视频| 欧美日韩国产区一| 欧美精品aⅴ在线视频| 欧美一区二区人人喊爽| 日韩视频免费观看高清完整版在线观看 | 久久―日本道色综合久久| 欧美va亚洲va香蕉在线 | 狠狠色丁香婷婷综合| 国产高清不卡一区二区| av一二三不卡影片| 精品一区二区三区日韩| 精品在线观看免费| 国产电影精品久久禁18| 国产成人免费视频一区| 色天使色偷偷av一区二区| 欧美日韩精品综合在线| 精品卡一卡二卡三卡四在线| 久久嫩草精品久久久精品| 中文字幕在线一区二区三区| 亚洲精品免费在线| 日韩电影免费一区| 国产激情视频一区二区三区欧美 | 欧美一区二区精品在线| 欧美精品一区男女天堂| 国产欧美日韩一区二区三区在线观看| 最新中文字幕一区二区三区 | 日韩一本二本av| 国产视频视频一区| 一区二区三区国产精品| 在线欧美日韩精品| 99国产欧美另类久久久精品| 欧美视频一区在线观看| 日韩精品一区在线观看| 日韩成人一区二区| 成人福利视频网站| 在线成人免费观看| 国产精品妹子av| 蜜桃精品视频在线| 在线中文字幕一区二区|