首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vcd文件systemc中的错误

vcd文件systemc中的错误
EN

Stack Overflow用户
提问于 2018-01-11 17:43:00
回答 1查看 192关注 0票数 1

我编写了一个代码,并试图在systemc中生成vcd文件,但是我有一个错误,我无法修复。

代码语言:javascript
复制
// File : pe_main.cpp
#include "driver.h"
#include "monitor.h"
#include "pe.h"
#include "systemc.h"

int sc_main(int argc , char *argv[] )
{

    sc_signal< int > t_data,t_weight;
    sc_signal< int > t_inputpsum,t_outdata;     
    sc_signal <bool> b1,b2;
    pe pe1("pe");
    pe1.data(t_data);
    pe1.weight(t_weight);
    pe1.inputpsum(t_inputpsum);
    pe1.outdata(t_outdata);
    pe1.accinpsum(b1);
    pe1.resacc(b2);

    driver d1("GenerateWaveforms");
    d1.d_data(t_data);
    d1.d_weight(t_weight) ;
    d1.d_inputpsum(t_inputpsum);


   monitor m1("MonitorWaveforms");
   m1.m_data(t_data);
   m1.m_weight(t_weight);
   m1.m_inputpsum(t_inputpsum);
   m1.m_outdata(t_outdata);

  sc_trace_file *tf=sc_create_vcd_trace_file("PE");
  sc_trace(tf, t_data, "InputData");
  sc_trace(tf, t_weight, "InputWeight");
  sc_trace(tf, t_inputpsum, "InputPsum");
  sc_trace(tf, t_outdata, "OutData");

  sc_start(100, SC_NS);


   return 0;
  }

代码没有错误,但是对于vcd文件,我得到以下错误:

错误:(E115) sc_signal文件中不能有多个驱动程序:信号'signal_2‘(sc_signal)第一个驱动程序'MonitorWaveforms.port_3’(sc_inout)第二个驱动程序'GenerateWaveforms.port_2‘(sc_inout):C:\users\asus\桌面\systemc\system-

EN

回答 1

Stack Overflow用户

发布于 2018-01-12 05:17:53

我认为这个错误本身就说明了问题:不能将多个sc_outsc_inout端口绑定到sc_signal

以下是您的问题的一个小型复制者:

代码语言:javascript
复制
#include <systemc.h>

SC_MODULE(top) {

    sc_signal<int> sig{"sig"};
    sc_out<int> port_0{"port_0"};
    sc_out<int> port_1{"port_1"};

    SC_CTOR(top) {
        port_0(sig);
        port_1(sig);
    }
};

int sc_main (int argc, char **argv) {
    top t{"t"};
    sc_start();
}

错误:

代码语言:javascript
复制
Error: (E115) sc_signal<T> cannot have more than one driver: 
 signal `t.sig' (sc_signal)
 first driver `t.port_1' (sc_out)
 second driver `t.port_0' (sc_out)

根据您的设计意图,您可以做多件事:

  1. 重写代码,以便每个信号都有一个驱动端口。
  2. 将信号写入策略更改为SC_MANY_WRITERS sc_signal<int, SC_MANY_WRITERS> sig{"sig"};
  3. 如果您使用三状态驱动程序对单写总线进行建模,请使用sc_signal_resolved
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48213004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档