Forum: FPGA, VHDL & Co. SystemC Struktur


von Sandy (Gast)


Lesenswert?

Liebe Kollegen!

Ich versuche mich gerade in SystemC.

Leider funktioniert das nicht so wie es im Buch steht.
Ich bekomme folgenden Fehler:
 error: member reference type 'BIT_ADDER *' is a pointer; maybe you 
meant to use '->'?
  *add_0.a(a);
   ~~~~~^
        ->

Software: Xilinx Vivado HLS

adder.h:
1
#include "systemc.h"
2
3
4
SC_MODULE (BIT_ADDER)
5
      {
6
        sc_in<sc_logic> a,b,cin;
7
        sc_out<sc_logic> sum,cout;
8
9
void process_1()
10
    {
11
12
     sc_logic aANDb,aXORb,cinANDaXORb;
13
       aANDb = a.read() & b.read();
14
       aXORb = a.read() ^ b.read();
15
       cinANDaXORb = cin.read() & aXORb;
16
17
       sum = aXORb ^ cin.read();
18
       cout = aANDb | cinANDaXORb;
19
     }
20
21
SC_CTOR (BIT_ADDER)
22
  {
23
       SC_METHOD (process_1);
24
            sensitive << a << b << cin;
25
         }
26
27
28
29
30
       };

adder_top.cpp
1
#include "E:\SystemC\test\test2\adder.h"
2
#include <systemc.h>
3
4
5
6
SC_MODULE(adder_test) {
7
8
sc_in<sc_logic> a,b,cin;
9
10
sc_out<sc_logic> sum,cout;
11
12
BIT_ADDER *add_0;
13
14
SC_CTOR(adder_test){
15
16
add_0 = new BIT_ADDER("add_0");
17
add_0 -> a(a);
18
add_0 -> b(b);
19
add_0 -> cin(cin);
20
add_0 -> cout(cout);
21
add_0 -> sum(sum);
22
23
}
24
25
};

Kann mir jemand sagen was falsch ist!?

DANKE
Bussi
Sandy

von Erwin (Gast)


Lesenswert?

Nachdem der Begriff "*add_0.a(a);" nicht in deinem geposteten Code 
vorkommt würde ich darauf tippen, dass du evtl. nicht aktuelle Sourcen 
verwendest.

Btw. wenn du mit new ein Objekt erzeugst, musst du es im Destrutor, 
welcher zusätzlich erstellt werden muss, wieder mittels delete 
freigeben.

von Sandy (Gast)


Lesenswert?

Ich habe  "*add_0.a(a);"  nicht verwendet.

Zur Sicherheit habe ich gerade das Projekt neu gemacht.
Immer noch der selbe Fehler.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.