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

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

?? tb_ethernet.v

?? 使用方法: 以太網(wǎng)編程,拷貝到硬盤
?? V
?? 第 1 頁 / 共 5 頁
字號:
//    test_mii(0, 17);                        // 0 - 17
  test_note("PHY generates ideal Carrier sense and Collision signals for following tests");
  eth_phy.carrier_sense_real_delay(0);
    test_mac_full_duplex_transmit(0, 21);    // 0 - (21)
    test_mac_full_duplex_receive(0, 13);     // 0 - 13
    test_mac_full_duplex_flow_control(0, 4);  // 0 - 4
                                              // 4 is executed, everything is OK
//    test_mac_half_duplex_flow(0, 0);

  test_note("PHY generates 'real delayed' Carrier sense and Collision signals for following tests");
  eth_phy.carrier_sense_real_delay(1);


  // Finish test's logs
  test_summary;
  $display("\n\n END of SIMULATION");
  $fclose(tb_log_file | phy_log_file_desc | memory_log_file_desc | host_log_file_desc);
  $fclose(wb_s_mon_log_file_desc | wb_m_mon_log_file_desc);

  $stop;
end
  


//////////////////////////////////////////////////////////////
// Test tasks
//////////////////////////////////////////////////////////////

task test_access_to_mac_reg;
  input  [31:0]  start_task;
  input  [31:0]  end_task;
  integer        bit_start_1;
  integer        bit_end_1;
  integer        bit_start_2;
  integer        bit_end_2;
  integer        num_of_reg;
  integer        i_addr;
  integer        i_data;
  integer        i_length;
  integer        tmp_data;
  reg    [31:0]  tx_bd_num;
  reg    [((`MAX_BLK_SIZE * 32) - 1):0] burst_data;
  reg    [((`MAX_BLK_SIZE * 32) - 1):0] burst_tmp_data;
  integer        i;
  integer        i1;
  integer        i2;
  integer        i3;
  integer        fail;
  integer        test_num;
  reg    [31:0]  addr;
  reg    [31:0]  data;
  reg    [31:0]  data_max;
begin
// ACCESS TO MAC REGISTERS TEST
test_heading("ACCESS TO MAC REGISTERS TEST");
$display(" ");
$display("ACCESS TO MAC REGISTERS TEST");
fail = 0;

// reset MAC registers
hard_reset;
// reset MAC and MII LOGIC with soft reset
//reset_mac;
//reset_mii;


//////////////////////////////////////////////////////////////////////
////                                                              ////
////  test_access_to_mac_reg:                                     ////
////                                                              ////
////  0: Walking 1 with single cycles across MAC regs.            ////
////  1: Walking 1 with single cycles across MAC buffer descript. ////
////  2: Test max reg. values and reg. values after writing       ////
////     inverse reset values and hard reset of the MAC           ////
////  3: Test buffer desc. RAM preserving values after hard reset ////
////     of the MAC and resetting the logic                       ////
////                                                              ////
//////////////////////////////////////////////////////////////////////
for (test_num = start_task; test_num <= end_task; test_num = test_num + 1)
begin

  ////////////////////////////////////////////////////////////////////
  ////                                                            ////
  ////  Walking 1 with single cycles across MAC regs.             ////
  ////                                                            ////
  ////////////////////////////////////////////////////////////////////
  if (test_num == 0) // Walking 1 with single cycles across MAC regs.
  begin
    // TEST 0: 'WALKING ONE' WITH SINGLE CYCLES ACROSS MAC REGISTERS ( VARIOUS BUS DELAYS )
    test_name   = "TEST 0: 'WALKING ONE' WITH SINGLE CYCLES ACROSS MAC REGISTERS ( VARIOUS BUS DELAYS )";
    `TIME; $display("  TEST 0: 'WALKING ONE' WITH SINGLE CYCLES ACROSS MAC REGISTERS ( VARIOUS BUS DELAYS )");
    
    data = 0;
    for (i = 0; i <= 4; i = i + 1) // for initial wait cycles on WB bus
      begin
        wbm_init_waits = i;
        wbm_subseq_waits = {$random} % 5; // it is not important for single accesses
        for (i_addr = 0; i_addr <= 32'h4C; i_addr = i_addr + 4) // register address
          begin
            addr = `ETH_BASE + i_addr;
            // set ranges of R/W bits
            case (addr)
              `ETH_MODER:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 16;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_INT: // READONLY - tested within INT test
                begin
                  bit_start_1 = 32; // not used
                  bit_end_1   = 32; // not used
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_INT_MASK:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 6;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_IPGT:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 6;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_IPGR1:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 6;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_IPGR2:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 6;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_PACKETLEN:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 31;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_COLLCONF:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 5;
                  bit_start_2 = 16; 
                  bit_end_2   = 19; 
                end
              `ETH_TX_BD_NUM: 
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 7;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_CTRLMODER:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 2;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_MIIMODER:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 9;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_MIICOMMAND: // "WRITEONLY" - tested within MIIM test - 3 LSBits are not written here!!!
                begin
                  bit_start_1 = 32; // not used
                  bit_end_1   = 32; // not used
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_MIIADDRESS:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 4;
                  bit_start_2 = 8; 
                  bit_end_2   = 12;
                end
              `ETH_MIITX_DATA:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 15;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_MIIRX_DATA: // READONLY - tested within MIIM test
                begin
                  bit_start_1 = 32; // not used
                  bit_end_1   = 32; // not used
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_MIISTATUS: // READONLY - tested within MIIM test
                begin
                  bit_start_1 = 32; // not used
                  bit_end_1   = 32; // not used
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_MAC_ADDR0:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 31;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                  end
              `ETH_MAC_ADDR1:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 15;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              `ETH_HASH_ADDR0:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 31;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
              default: // `ETH_HASH_ADDR1:
                begin
                  bit_start_1 = 0;
                  bit_end_1   = 31;
                  bit_start_2 = 32; // not used
                  bit_end_2   = 32; // not used
                end
            endcase
            
            for (i_data = 0; i_data <= 31; i_data = i_data + 1) // the position of walking one
              begin
                data = 1'b1 << i_data;
                if ( (addr == `ETH_MIICOMMAND) && (i_data <= 2) ) // DO NOT WRITE to 3 LSBits of MIICOMMAND !!!
                  ;
                else
                  begin
                    wbm_write(addr, data, 4'hF, 1, wbm_init_waits, wbm_subseq_waits);
                    wait (wbm_working == 0);
                    wbm_read(addr, tmp_data, 4'hF, 1, wbm_init_waits, wbm_subseq_waits);
                    if ( ((i_data >= bit_start_1) && (i_data <= bit_end_1)) ||
                         ((i_data >= bit_start_2) && (i_data <= bit_end_2)) ) // data should be equal to tmp_data
                      begin
                        if (tmp_data !== data)
                        begin
                          fail = fail + 1;
                          test_fail("RW bit of the MAC register was not written or not read");
                          `TIME;
                          $display("wbm_init_waits %d, addr %h, data %h, tmp_data %h", 
                                    wbm_init_waits, addr, data, tmp_data);
                        end
                      end
                    else // data should not be equal to tmp_data
                      begin
                        if (tmp_data === data)
                          begin
                            fail = fail + 1;
                            test_fail("NON RW bit of the MAC register was written, but it shouldn't be");
                            `TIME;
                            $display("wbm_init_waits %d, addr %h, data %h, tmp_data %h",
                                      wbm_init_waits, addr, data, tmp_data);
                          end
                      end
                  end
              end
          end
      end
    // INTERMEDIATE DISPLAYS (The only one)
    $display("    ->buffer descriptors tested with 0, 1, 2, 3 and 4 bus delay cycles");
    if(fail == 0)
      test_ok;
    else
      fail = 0;    // Errors were reported previously
  end
        
        
  ////////////////////////////////////////////////////////////////////
  ////                                                            ////
  ////  Walking 1 with single cycles across MAC buffer descript.  ////
  ////                                                            ////
  ////////////////////////////////////////////////////////////////////
  if (test_num == 1) // Start Walking 1 with single cycles across MAC buffer descript.
  begin
    // TEST 1: 'WALKING ONE' WITH SINGLE CYCLES ACROSS MAC BUFFER DESC. ( VARIOUS BUS DELAYS )
    test_name   = "TEST 1: 'WALKING ONE' WITH SINGLE CYCLES ACROSS MAC BUFFER DESC. ( VARIOUS BUS DELAYS )";
    `TIME; $display("  TEST 1: 'WALKING ONE' WITH SINGLE CYCLES ACROSS MAC BUFFER DESC. ( VARIOUS BUS DELAYS )");
        
    data = 0;
    // set TX and RX buffer descriptors
    tx_bd_num = 32'h40;
    wbm_write(`ETH_TX_BD_NUM, tx_bd_num, 4'hF, 1, 0, 0);
    for (i = 0; i <= 4; i = i + 1) // for initial wait cycles on WB bus
    begin
      wbm_init_waits = i;
      wbm_subseq_waits = {$random} % 5; // it is not important for single accesses
      for (i_addr = 32'h400; i_addr <= 32'h7FC; i_addr = i_addr + 4) // buffer descriptor address
      begin
        addr = `ETH_BASE + i_addr;
        if (i_addr < (32'h400 + (tx_bd_num << 3))) // TX buffer descriptors
        begin
          // set ranges of R/W bits
          case (addr[3])
            1'b0: // buffer control bits
            begin
              bit_start_1 = 0;
              bit_end_1   = 31; // 8;
              bit_start_2 = 11;
              bit_end_2   = 31;
            end
            default: // 1'b1: // buffer pointer
            begin
              bit_start_1 = 0;
              bit_end_1   = 31;
              bit_start_2 = 32; // not used
              bit_end_2   = 32; // not used
            end
          endcase
        end
        else // RX buffer descriptors
        begin
          // set ranges of R/W bits
          case (addr[3])
            1'b0: // buffer control bits
            begin
              bit_start_1 = 0;
              bit_end_1   = 31; // 7;
              bit_start_2 = 13;
              bit_end_2   = 31;
            end
            default: // 1'b1: // buffer pointer
            begin
              bit_start_1 = 0;
              bit_end_1   = 31;
              bit_start_2 = 32; // not used

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情国产一区二区| 色综合视频一区二区三区高清| 久久影院视频免费| 成人18精品视频| 亚洲一区二区视频在线观看| 日韩三级精品电影久久久 | 中文在线免费一区三区高中清不卡| 懂色av中文一区二区三区| 亚洲视频 欧洲视频| 欧美一区二区国产| 高清在线观看日韩| 亚洲成人黄色影院| 国产丝袜欧美中文另类| 欧美在线小视频| 国产**成人网毛片九色 | www.亚洲人| 天天操天天综合网| 国产精品久久久久久久裸模| 在线影院国内精品| 东方欧美亚洲色图在线| 亚洲国产你懂的| 国产精品美女久久久久久久网站| 欧美视频在线观看一区二区| 国产一区二区在线看| 亚洲专区一二三| 久久综合色8888| 99免费精品在线| 极品美女销魂一区二区三区| 亚洲精品水蜜桃| 国产女同互慰高潮91漫画| 欧美日韩亚洲丝袜制服| 韩国欧美国产1区| 日本伊人精品一区二区三区观看方式| 亚洲国产高清在线观看视频| 欧美一区二区在线免费观看| 国产成人精品免费网站| 美女视频第一区二区三区免费观看网站 | 日韩一区二区三区电影在线观看| 91丨porny丨国产| 麻豆成人av在线| 无码av免费一区二区三区试看 | 欧美在线观看视频一区二区 | 日韩**一区毛片| 亚洲欧美综合色| 国产欧美日韩激情| 亚洲精品一线二线三线| 日韩视频一区在线观看| 欧美视频你懂的| 欧洲在线/亚洲| 色拍拍在线精品视频8848| 99久久久精品免费观看国产蜜| 久久精品国产一区二区| 蜜桃av噜噜一区二区三区小说| 亚洲在线中文字幕| 一区二区三区丝袜| 中文字幕中文字幕一区二区| 久久久精品国产免费观看同学| 日韩一区二区视频| 日韩一级片在线播放| 欧美精品电影在线播放| 色婷婷精品大视频在线蜜桃视频 | 日本韩国一区二区三区视频| 成人动漫一区二区在线| 成人免费毛片片v| 91一区二区三区在线观看| 国产成人啪午夜精品网站男同| 国产精品资源在线看| 国产成人亚洲精品青草天美| 国产一区日韩二区欧美三区| 国产大片一区二区| 成人激情av网| 在线日韩一区二区| 色菇凉天天综合网| 欧美日韩国产一区| 制服丝袜亚洲精品中文字幕| 日韩一级欧美一级| 久久亚洲一区二区三区四区| 国产婷婷一区二区| 亚洲免费电影在线| 亚洲乱码国产乱码精品精小说| 一区二区三区国产精华| 亚洲午夜激情av| 麻豆成人91精品二区三区| 韩国三级电影一区二区| www.欧美色图| 日韩女优电影在线观看| 亚洲欧美成人一区二区三区| 轻轻草成人在线| www.欧美亚洲| 精品国产乱码久久| 亚洲影视在线观看| 国产在线播精品第三| 欧美性色aⅴ视频一区日韩精品| 亚洲精品在线网站| 亚洲国产中文字幕在线视频综合| 紧缚奴在线一区二区三区| 色偷偷88欧美精品久久久| 欧美变态tickling挠脚心| 亚洲乱码中文字幕综合| 国产一区二区三区国产| 欧美日韩综合在线免费观看| 欧美激情中文不卡| 青青草成人在线观看| 色域天天综合网| 欧美激情一区二区三区不卡| 视频在线观看一区| 色综合久久中文字幕综合网| 久久久综合视频| 日韩成人免费电影| 欧美性做爰猛烈叫床潮| 日本一区二区成人在线| 极品美女销魂一区二区三区| 欧美视频三区在线播放| 17c精品麻豆一区二区免费| 国产一区二区三区电影在线观看 | 国产亚洲一区二区三区四区| 日日夜夜精品视频天天综合网| av电影一区二区| 欧美韩国日本综合| 国产乱人伦偷精品视频免下载| 91麻豆精品国产无毒不卡在线观看| 亚洲欧美视频一区| 99精品桃花视频在线观看| 欧美激情综合在线| 国产毛片精品一区| xnxx国产精品| 黄色小说综合网站| 欧美精品一区二区三区视频| 蜜臀91精品一区二区三区| 欧美精品久久99久久在免费线| 亚洲欧洲制服丝袜| 91视频www| 亚洲精品视频在线观看网站| 97久久超碰国产精品电影| 中文字幕亚洲在| 99re热这里只有精品视频| 亚洲欧洲韩国日本视频 | 91精品久久久久久久久99蜜臂| 一区二区三区电影在线播| 欧美亚洲免费在线一区| 亚洲一区二区三区四区在线 | 在线亚洲一区观看| 亚洲欧美偷拍卡通变态| 色婷婷综合久久久久中文| 亚洲午夜影视影院在线观看| 欧美体内she精视频| 亚洲第一二三四区| 欧美一区二区三区电影| 免费高清不卡av| 精品国产乱码久久久久久久久 | 午夜精品久久久久久久久久久| 欧美制服丝袜第一页| 偷拍一区二区三区| 精品久久久久一区| 国产不卡一区视频| 一区在线观看视频| 欧美日韩一区不卡| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美刺激午夜性久久久久久久| 国产精品资源在线| 亚洲男同性恋视频| 7777精品久久久大香线蕉 | av资源网一区| 一区二区高清视频在线观看| 欧美日韩成人高清| 国内成人精品2018免费看| 中文字幕一区二区三区在线观看| 色狠狠桃花综合| 热久久免费视频| 欧美韩日一区二区三区| 欧美自拍偷拍一区| 麻豆精品久久久| 国产精品第五页| 91麻豆精品国产自产在线观看一区| 精品一区二区精品| 亚洲精品午夜久久久| 日韩一区二区三区四区| 成人免费看黄yyy456| 亚洲综合色噜噜狠狠| 欧美大白屁股肥臀xxxxxx| 成人高清视频免费观看| 日韩福利视频导航| 日本一区二区三区高清不卡| 欧美日韩视频专区在线播放| 国产一区二区三区综合| 一区二区三区免费| 久久嫩草精品久久久精品| 在线一区二区观看| 夫妻av一区二区| 日韩精品国产精品| 国产精品麻豆久久久| 欧美一个色资源| 色综合天天综合网天天狠天天| 蜜桃视频在线观看一区| 最近中文字幕一区二区三区| 日韩午夜激情免费电影| 色综合久久久久久久久久久| 老司机一区二区| 亚洲成人自拍偷拍| 中文字幕永久在线不卡|