取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
Highlighted
Observer
Observer
572 次查看
注册日期: ‎12-18-2018

SDSOC报错 [DMAnalysis83-4420] INOUT direction for y......is not supported for non_AXIMM port!

跳至解决方案

如下图,conv这个函数,设置到PL端编译就出现下面这个错,请问是什么原因?

微信图片_20181218151836.png微信图片_20181218151844.png

0 项奖励
1 解答

已接受的解答
Highlighted
Moderator
Moderator
561 次查看
注册日期: ‎05-23-2018

Hi, @nila

在sdsoc中,向量y不支持设置为inout端口,只能设置为input或output端口。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------

在原帖中查看解决方案

0 项奖励
3 回复数
Highlighted
Moderator
Moderator
562 次查看
注册日期: ‎05-23-2018

Hi, @nila

在sdsoc中,向量y不支持设置为inout端口,只能设置为input或output端口。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------

在原帖中查看解决方案

0 项奖励
Highlighted
Observer
Observer
552 次查看
注册日期: ‎12-18-2018

谢谢@weiyil

我刚刚开始弄SDSOC,还不是很熟悉,不是很理解怎么改为output端口,可以帮忙改一下作为参考吗?谢谢!

void conv(din_t x[M], din_t h[N], dout_t y[M+N-1])
{
    loop_outer:
    for(int i = 0; i < M+N-1; i++)
    {
        loop_inner:
        for(int j = 0; j < N; j++)
        {
            if(((i-j) >= 0) && ((i-j) < M))
        {
            y[i] += x[i-j] * h[j];
        }
    }
}
}

0 项奖励
Observer
Observer
502 次查看
注册日期: ‎12-18-2018

修改如下,可以跑

图片2.png

0 项奖励