SystemC犯错:键入不匹配成员分配
SystemC Make Errors: Type Mismatch Member Assignment
您好,我在尝试制作基本Systemc项目时看到了一些错误。它看起来像是略微不匹配的类型,但我对Systemc库中的类型还不够熟悉,无法真正知道问题是什么。我或多或少直接从本教程中获取了代码。
https://www.youtube.com/watch?v=ddsg4pmoucx4
目前,我的makefile看起来像
CXX=g++
OBJ= main.o fir_filter.o test_bench.o
INC=- -I /home/epi/jfrye_xilinx/SystemC/systemc-2.3.2/include -I /home/epi/jfrye_xilinx/SystemC/lib/fir_filter/src
LFLAGS=-L/home/epi/jfrye_xilinx/SystemC/systemc-2.3.2/lib-linux64
LIBS=-lsystemc
EXEC=test_fir
all: $(OBJ)
$(CXX) $(OBJS) -o $(EXEC)
main.o: main.cpp
$(CXX) $(INC) $(LFLAGS) $(LIBS) main.cpp
fir_filter.o: fir_filter.cpp fir_filter.h
$(CXX) $(INC) $(LFLAGS) $(LIBS) fir_filter.cpp
test_bench.o: test_bench.cpp test_bench.h
$(CXX) $(INC) $(LFLAGS) $(LIBS) test_bench.cpp
我在运行时看到这些错误
main.cpp:28:19:错误:无匹配的电话
(sc_core::sc_in<sc_dt::sc_uint<16> >) (sc_core::sc_signal<sc_dt::sc_int<16> >&)
fir-> inp(inp_sig);
main.cpp:29:21:错误:无匹配的电话
(sc_core::sc_out<sc_dt::sc_uint<16> >) (sc_core::sc_signal<sc_dt::sc_int<16> >&)
fir-> outp(Outp_sig);
这是main.cpp
#include <systemc.h>
#include "fir_filter.h"
#include "test_bench.h"
SC_MODULE(SYSTEM)
{
test_bench *tb;
fir_filter *fir;
sc_signal<bool> rst_sig;
sc_signal< sc_int<16> > inp_sig;
sc_signal< sc_int<16> > outp_sig;
sc_clock clk_sig;
SC_CTOR(SYSTEM)
: clk_sig("clk_sig", 10, SC_NS)
{
tb = new test_bench("tb");
tb->clk(clk_sig);
tb->rst(rst_sig);
tb->inp(inp_sig);
tb->outp(outp_sig);
fir = new fir_filter("fir");
fir->clk(clk_sig);
fir->rst(rst_sig);
fir->inp(inp_sig);
fir->outp(outp_sig);
}
~SYSTEM()
{
delete tb;
delete fir;
}
};
SYSTEM *top = NULL;
int sc_main(int argc, char *argv[])
{
top = new SYSTEM("top");
sc_start();
return 0;
}
最后,fir_filter.h
#include <systemc.h>
SC_MODULE( fir_filter )
{
sc_in<bool> clk;
sc_in<bool> rst;
sc_in< sc_uint<16> > inp;
sc_out< sc_uint<16> > outp;
void fir_main();
SC_CTOR( fir_filter )
{
SC_CTHREAD( fir_main, clk.pos());
reset_signal_is( rst, true);
}
};
更新:
感谢提供的答案,我能够更改两个模块,以确保类型匹配,无论是签名还是未签名。
然而,制作仍然给我这个错误。我最初没有包括它,因为我没有意识到它会破坏汇编。
g :错误:-e或-x在输入是从标准输入制造中所需的: *** [main.o]错误1
在您的系统模块中,它不应该是:
sc_signal< sc_int<16> > inp_sig;
sc_signal< sc_int<16> > outp_sig;
但是:
sc_signal< sc_uint<16> > inp_sig;
sc_signal< sc_uint<16> > outp_sig;
在FIR滤波器模块中AS inp
是sc_in< sc_uint<16> >
。
相关文章:
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- Qt SQLite没有查询或参数计数不匹配
- 模板参数推导失败,函数参数/参数不匹配
- 在使用累加时,C++中的运算符+不匹配
- C++ 与操作员不匹配<<
- 在 Arduino 上使用 sscanf 会导致与 const char * 不匹配,并且返回值始终相同,尽管输入值不同
- 与'operator='不匹配(操作数类型'String'且"void")
- C++模板/别名 - 模板参数列表中参数 1 处的类型/值不匹配
- C4018:类内有符号、无符号不匹配
- 我在 .h 中有一个枚举类,并且在.cpp错误中有一个运算符重载:与"运算符<<不匹配
- 为什么我收到错误:"运算符<<不匹配?
- 对std::函数对象的调用不匹配,该对象是指向成员函数的指针
- SystemC犯错:键入不匹配成员分配
- C++模板类的成员函数中的类型/值不匹配
- 模板类的特化成员-不匹配-数组
- 类中数据成员的大小不匹配
- 模板成员函数错误:clang 与任何成员函数都不匹配
- 将成员函数指针传递给带有可变参数的MFP的函数时,类型不匹配
- c++嵌套映射不匹配成员函数const成员
- 解决关于初始化列表顺序与成员顺序不匹配的警告