⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcie_phy_packet.vri

📁 FEATURES &#8226 16 bit PIPE Spec PCI Express Testbench &#8226 Link training &#8226 Initial Flo
💻 VRI
字号:
// ===========================================================================// File    : pcie_phy_packet.vri// Author  : cmagleby// Date    : Mon Dec 3 11:03:46 MST 2007// Project : TI PHY design//// Copyright (c) notice// This code adheres to the GNU public license//// ===========================================================================//// $Id: pcie_phy_packet.vri,v 1.1.1.1 2007-12-05 18:37:07 cmagleby Exp $//// ===========================================================================//// $Log: not supported by cvs2svn $//// ===========================================================================// Function : This file is a class of pcie packet can be used for all Phy// packet types.//// ===========================================================================// ===========================================================================#include <vera_defines.vrh>class pcie_phy_packet {  bit [7:0] com;  bit [7:0] link;  bit [7:0] lane;  bit [7:0] n_fts;  bit [7:0] rateid;  bit [7:0] train_cntrl;  bit [7:0] ts_id;  bit [7:0] idle;  bit [7:0] skp;  bit [7:0] fts;  integer   length;       bit [17:0] temp_packet[];    //methods  task new(    bit [7:0] ic_link = 8'hf7,    bit [7:0] ic_lane = 8'hf7,    bit [7:0] ic_nfts = 8'hff,    bit [7:0] ic_rateid = 8'h2,    bit [7:0] ic_train_cntrl = 8'h0,    bit [7:0] ic_ts_id = 8'h4a) {        link        = ic_link;    lane        = ic_lane;    n_fts       = ic_nfts;    rateid      = ic_rateid;    train_cntrl = ic_train_cntrl;    ts_id       = ic_ts_id;    com         = 8'hbc;    idle        = 8'h7c;    skp         = 8'h1c;    fts         = 8'h3c;  }    task build_packet (string pkt_type = "ts") {    if (pkt_type == "ts") {      length = 8;      if (link == 8'hf7) temp_packet[0]  = {2'b11,link,com};      else temp_packet[0]  = {2'b01,link,com};      if (lane == 8'hf7) temp_packet[1]  = {2'b1,n_fts,lane};      else temp_packet[1]  = {2'b0,n_fts,lane};      temp_packet[2]  = {2'b0,train_cntrl,rateid};      temp_packet[3]  = {2'b0,ts_id,ts_id};      temp_packet[4]  = {2'b0,ts_id,ts_id};      temp_packet[5]  = {2'b0,ts_id,ts_id};      temp_packet[6]  = {2'b0,ts_id,ts_id};      temp_packet[7] = {2'b0,ts_id,ts_id};      printf ("building training set packet (%0h)\n",              {temp_packet[7][15:0],temp_packet[6][15:0],               temp_packet[5][15:0],temp_packet[4][15:0],               temp_packet[3][15:0],temp_packet[2][15:0],               temp_packet[1][15:0],temp_packet[0][15:0]});    }    else if (pkt_type == "eidle") {      length = 2;      temp_packet[0] = {2'b11,idle,com};      temp_packet[1] = {2'b11,idle,idle};      printf ("building eidle packet (%0h)\n",{temp_packet[1][15:0],temp_packet[0][15:0]});    }    else if (pkt_type == "skip"){      length = 2;      temp_packet[0] = {2'b11,skp,com};      temp_packet[1] = {2'b11,skp,skp};      printf ("building skip packet (%0h)\n",{temp_packet[1][15:0],temp_packet[0][15:0]});    }    else if (pkt_type == "fast_ts"){      length = 2;      temp_packet[0] = {2'b11,fts,com};      temp_packet[1] = {2'b11,fts,fts};      printf ("building fts packet (%0h)\n",{temp_packet[1][15:0],temp_packet[0][15:0]});    }      }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -