如何寫一個加法器? (C/C++) (SystemC) (IC Design)

Abstract
寫一個硬體的加法器,幾乎就跟軟體的HelloWorld一樣,是最基本的程式,此範例Demo如何用SystemC寫一個加法器。

Introduction
Adder.h

 1 #include  " SystemC.h "
 2
 3 SC_MODULE(Adder)  // Declare Adder Module
 4  sc_in<int> a,b;  // Declare in port
 5  sc_out<int> sum; // Declare out port
 6
 7  void doAdd();
 8
 9  SC_CTOR(Adder) {
10      SC_METHOD(doAdd);    // Register doAdd process
11      sensitive << a << b; // specify sensitivity
12  }

13}
;


Adder.cpp

1 #include  " systemc.h "
2 #include  " Adder.h "
3
4 void  Adder::doAdd()  {
5  sum = a + b;
6}


AdderTest.cpp (TestBench)

 1 #include  < iostream >
 2 #include  " systemc.h "
 3 #include  " Adder.h "
 4
 5 using   namespace  std;
 6
 7 int  sc_main( int  argc,  char *  argv[])  {
 8  // Create instance of Adder
 9  Adder adder("adder");  
10  // Declare singal in testbench
11  sc_signal<int> a,b,sum;
12
13  // Initialize adder port by constructor
14  adder.a(a); 
15  adder.b(b);
16  adder.sum(sum);
17
18  a = 1;
19  b = 2;
20
21  // Start simulation
22  sc_start(1);
23  cout << sum << endl;
24  
25  return 0;
26}


執行結果

1
2              SystemC  2.1 .v1 --- Oct  18   2006   02 : 34 : 01
3         Copyright (c)  1996 - 2005  by all Contributors
4                     ALL RIGHTS RESERVED
5 3
6 Press any key to continue

你可能感兴趣的:(System)