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

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-30 08:00   29   0

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

Introduction
Adder.h

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

13ExpandedBlockEnd.gif}
;


Adder.cpp

1 None.gif #include " systemc.h "
2 None.gif#include " Adder.h "
3 None.gif
4 ExpandedBlockStart.gifContractedBlock.gif void Adder::doAdd() dot.gif {
5InBlock.gif sum = a + b;
6ExpandedBlockEnd.gif}


AdderTest.cpp (TestBench)

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


執行結果

1 None.gif
2 None.gif SystemC 2.1 .v1 --- Oct 18 2006 02 : 34 : 01
3 None.gif Copyright (c) 1996 - 2005 by all Contributors
4 None.gif ALL RIGHTS RESERVED
5 None.gif 3
6 None.gifPress any key to continue
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP