- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
@E [SYNCHK-77] 顶级函数“method_coupling”(src/method_coupling.cpp:82)没有输出。可能的原因有: (1) 输出参数是按值传递的; (2) 从未写入预期的输出(参数或全局变量); (3) 存在死循环。
当我尝试使用 vivado HLS 合成 SystemC block 时收到上述错误。不幸的是,我找不到关于此错误的任何文档,我希望有人能描述发生了什么。
我的模块如下:
#include "systemc.h"
#define NUM_REGIONS 10
SC_MODULE(method_coupling){
sc_in<bool> en;
sc_in<bool> clock;
sc_in<bool> reset;
sc_in<double> a;
sc_in<double> in_0;
sc_in<double> in_1;
sc_out<double> out[NUM_REGIONS];
sc_out<bool> done;
sc_in<bool> valid_data0;
sc_in<bool> valid_data1;
double input_0[NUM_REGIONS][NUM_REGIONS];
double input_1[NUM_REGIONS][NUM_REGIONS];
sc_fifo<double> fifo_input_0;
sc_fifo<double> fifo_input_1;
float sum;
int flag;
void init_0(){
while(true){
wait();
if(valid_data0.read() == 1) fifo_input_0.write(in_0.read());
}
}
void init_1(){
while(true){
wait();
if(valid_data1.read() == 1) fifo_input_1.write(in_1.read());
}
}
void do_coupling() {
int i;
for(i=0;i<NUM_REGIONS;i++){
out[i].write(0);
}
flag = 0;
while(flag == 0){
wait();
if(reset.read() == 1){
int i;
for(i = 0 ; i < NUM_REGIONS; i++){
out[i].write(0);
}
done.write(0);
}
else if(en.read() == 1){
int i,j;
done.write(0);
for(i=0; i<NUM_REGIONS;i++){
for(j=0; j<NUM_REGIONS;j++){
if(!(input_0[i][j] = fifo_input_0.read())) cout << "fifo0 is empty" << endl;
if(!(input_1[i][j] = fifo_input_1.read())) cout << "fifo1 is empty" << endl;
}
}
for(i = 0 ; i < NUM_REGIONS; i++){
sum = 0;
for(j = 0; j < NUM_REGIONS; j++){
sum += input_0[i][j]*input_1[i][j];
wait();
}
out[i].write(a.read()*sum);
wait();
}
done.write(1);
flag = 1;
break;
}
}
}
SC_CTOR(method_coupling): fifo_input_0 ("fifo_input_0", NUM_REGIONS*NUM_REGIONS), fifo_input_1 ("fifo_input_1", NUM_REGIONS*NUM_REGIONS) {
SC_THREAD(do_coupling){
//for(int i= 0; i<NUM_REGIONS; i++){
// sensitive << out[i];
//}
sensitive << en << reset << done << clock.pos();
}
SC_THREAD(init_0){
sensitive << valid_data0 << clock.pos();
}
SC_THREAD(init_1){
sensitive << valid_data1 << clock.pos();
}
}
};
我正在将数据读入 fifo(特别是两个 10x10 double 阵列),然后使用启用信号开始矩阵乘法运算。当 10x10 数组相乘后,我在最后发出完成信号。
我完全明白错误是如何暗示我有无限循环的,因此我现在使用 while(flag == 0) 而不是 while true 循环。
最佳答案
我认为您必须先检查您的代码。我不是 SystemC 专家,但我认为有很多东西是不可综合的。例如,您不能在 HLS 中使用 SC_THREAD
进行综合。如果您希望综合您的代码,您应该以“硬件”方式对其进行编码。
关于c++ - SystemC HLS综合错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521451/
这一次将使用pymysql来进行一次对MySQL的增删改查的全部操作,相当于对前五次的总结: 先查阅数据库: 现在编写源码进行增删改查操作,源码为: ?
我收到警告: One or more signals are missing in the sensitivity list of always block. always@(Address)begi
我正在寻找一个完整的 java 日期管理库,它可以让我理解像这样的字符串: 明天中午 => 2011-10-20 12:00 今天下午 4 点 => 2011-10-20 16:00 等... 但如果
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 7年前关闭。 Improve this questi
下学期我可能会成为我大学网络编程类(class)教学团队的一员,我想知道要给学生布置什么样的 Javascript 作业。从编程的 Angular 来看,本类(class)不是入门类(class)。
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说
我将我的 Gitlab 迁移到了新域。我想将所有 HTTP 请求从旧 URL 重定向到新 URL。两个域当前都指向同一服务器(使用 A DNS 记录)。 我使用 Gitlab Omnibus 包,并捆
只需在新配置的 CentOS 6.5 VM 上使用 omnibus 安装程序设置新的 Gitlab 安装。我有点 Linux 菜鸟,但我一直在尝试设置 Gitlab 安装,并且能够通过主机访问安装。
我试图更好地了解合成如何在没有指定其他条件的过程中工作。 我认为这不是编码方式,因为我没有考虑其他选项,但我的问题是如何解释这段代码? process(clock) begin if (clock'e
创建以下内容时: create view v (a, b) as select 1, 2 from dual; create or replace package p as type t is t
我是一名优秀的程序员,十分优秀!