| Last change
                  on this file since 34 was
                  18,
                  checked in by buchmann, 17 years ago | 
        
          | 
Fix:
 Disable checkings about the SOCVIEW environment variable. SOCVIEW is
optional.
Add missing system header includes
Add some potential signal order and signal graph to the testbench 29032005
Add a new testbench : 15042009
Check sc_uint operators with size = 36 (> 32)
 | 
        | File size:
            1.4 KB | 
      
      
        
  | Rev | Line |  | 
|---|
| [1] | 1 | #include "systemc.h" | 
|---|
|  | 2 | #include <iostream> | 
|---|
|  | 3 | #include <fstream> | 
|---|
|  | 4 | #include <vector> | 
|---|
| [18] | 5 | #include <cstring> //strcmp | 
|---|
| [1] | 6 |  | 
|---|
|  | 7 | #define ASSERT(x) { if (!(x)) { \ | 
|---|
|  | 8 | cerr << "ASSERT : " #x \ | 
|---|
|  | 9 | << " in function '" << __FUNCTION__  \ | 
|---|
|  | 10 | << "'\n"; exit (-1); \ | 
|---|
|  | 11 | } \ | 
|---|
|  | 12 | } | 
|---|
|  | 13 |  | 
|---|
|  | 14 |  | 
|---|
|  | 15 | using namespace std; | 
|---|
|  | 16 |  | 
|---|
|  | 17 | struct D : sc_module | 
|---|
|  | 18 | { | 
|---|
|  | 19 | D (sc_module_name n) | 
|---|
|  | 20 | { | 
|---|
|  | 21 | } | 
|---|
|  | 22 | }; | 
|---|
|  | 23 |  | 
|---|
|  | 24 | struct C : sc_module | 
|---|
|  | 25 | { | 
|---|
|  | 26 | C (sc_module_name n) | 
|---|
|  | 27 | { | 
|---|
|  | 28 | } | 
|---|
|  | 29 | }; | 
|---|
|  | 30 |  | 
|---|
|  | 31 | struct B : sc_module | 
|---|
|  | 32 | { | 
|---|
|  | 33 | D d1; | 
|---|
|  | 34 | D d2; | 
|---|
|  | 35 | C c; | 
|---|
|  | 36 | B (sc_module_name n) : d1("d1"), d2("d2"), c("c") | 
|---|
|  | 37 | { | 
|---|
|  | 38 | } | 
|---|
|  | 39 | }; | 
|---|
|  | 40 |  | 
|---|
|  | 41 | struct A : sc_module | 
|---|
|  | 42 | { | 
|---|
|  | 43 | B b; | 
|---|
|  | 44 | C c; | 
|---|
|  | 45 | A (sc_module_name n) : b("b"), c("c") | 
|---|
|  | 46 | { | 
|---|
|  | 47 | } | 
|---|
|  | 48 | }; | 
|---|
|  | 49 |  | 
|---|
|  | 50 | struct top_level1 : sc_module | 
|---|
|  | 51 | { | 
|---|
|  | 52 | A a; | 
|---|
|  | 53 | D d; | 
|---|
|  | 54 | top_level1(sc_module_name insname) : sc_module (insname), a("a"), d("d") | 
|---|
|  | 55 | { | 
|---|
|  | 56 | ASSERT(strcmp ((const char*)insname,"top1") == 0); | 
|---|
|  | 57 | } | 
|---|
|  | 58 | }; | 
|---|
|  | 59 |  | 
|---|
|  | 60 | struct top_level2 : sc_module | 
|---|
|  | 61 | { | 
|---|
|  | 62 | B b1; | 
|---|
|  | 63 | B b2; | 
|---|
|  | 64 | C c; | 
|---|
|  | 65 | top_level2(sc_module_name insname) : b1("b1"), b2("b2"), c("c") | 
|---|
|  | 66 | { | 
|---|
|  | 67 | ASSERT(strcmp ((const char*)insname,"top2") == 0); | 
|---|
|  | 68 | ofstream o; | 
|---|
|  | 69 | o.open ("results.txt"); | 
|---|
|  | 70 | o << (const char*)insname << endl; | 
|---|
|  | 71 | o << insname << endl; | 
|---|
|  | 72 | o.close (); | 
|---|
|  | 73 | } | 
|---|
|  | 74 | }; | 
|---|
|  | 75 |  | 
|---|
|  | 76 | int | 
|---|
|  | 77 | sc_main (int argc, char ** argv) | 
|---|
|  | 78 | { | 
|---|
|  | 79 | if (argc < 1) | 
|---|
|  | 80 | { | 
|---|
|  | 81 | cerr << "Usage : " << argv[0] << "\n"; | 
|---|
|  | 82 | exit (-1); | 
|---|
|  | 83 | } | 
|---|
|  | 84 |  | 
|---|
|  | 85 | sc_clock   clk("clock"); | 
|---|
|  | 86 | top_level1 top1("top1"); | 
|---|
|  | 87 | top_level2 top2("top2"); | 
|---|
|  | 88 |  | 
|---|
|  | 89 | sc_start(0); | 
|---|
|  | 90 |  | 
|---|
|  | 91 | return 0; | 
|---|
|  | 92 | } | 
|---|
|  | 93 |  | 
|---|
       
      
      Note: See 
TracBrowser
        for help on using the repository browser.