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

📄 test.cc

📁 SystemC片上系统设计的源代码: 书籍介绍: SystemC是被实践证明的优秀的系统设计描述语言
💻 CC
字号:
#include "scv.h"#include "packet.h"SC_MODULE(sctop) {  SC_CTOR(sctop);};// nbcode "decl" startsctop::sctop(sc_module_name name) : sc_module(name){  //create a bag. Bags assist in the creation of different  //random distributions  scv_bag<packetT> bag("myBagOfPackets"); // nbcode "decl" end  // nbcode "init" start  //throw some packets in the bag. We will create a squared  //distribution of the elements.  scv_smart_ptr<packetT> p;   p->length.keep_only (10, 1024);   for(unsigned int i=1; i<=11; ++i) {  //put something in for each src    p->src=i-1;    p->length.next(); p->dest.next();    for(unsigned int j=0; j<p->length; ++j) {      p->payload[j].next();    }    //our distribution is i**2, so the last elements added    //have the highest probability of being fetched    bag.add(*p, i*i);  }  //there should be 11 entries in the bag: 1st entry is 1  //copy of the 1st element, 2nd entry is 4 copies of the  //2nd element, 3rd entry is 9 copies of the 3rd element,  //and so forth.  Total number of elements should be 506.  scv_out << bag.get_name() << " has "  << bag.dSize()        << " entries and " << bag.size() << " elements" << endl;  // nbcode "init" end  // nbcode "entries" start  //Let's peek into the bag. We will use the random peek,  //and go until we have looked at everything  scv_out << "Printing one element from each entry, "          << "elements with the largest src have the\n"          << "highest probability of printing first." << endl;  while ( bag.unMarkedSize() ) {    const packetT& bagElement = bag.peekRandom();     bag.mark(true);         // Mark all elements in this entry    scv_out << bagElement << endl;  }  // nbcode "entries" end  // nbcode "elements" start  //unmark all of the objects to use it again  bag.unmarkAll();   //This time let's peek into the bag 10 times without  //marking.  Those elements with the largest src field  //should appear most often.  scv_out << "\nSelecting elements randomly, "          << "elements with the largest src have the\n"          << "highest probability of printing first." << endl;  for (unsigned int i=0; i<10; ++i) {    const packetT& bagElement = bag.peekRandom();     scv_out << bagElement << endl;  }}// nbcode "elements" endint sc_main(int argc, char** argv) {  sctop top("top");  //for osci  sc_start();  return 0;}

⌨️ 快捷键说明

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