質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

426閲覧

VivadoHLSを用いた高位合成をしたいのだが。。。

hello_whats_up

総合スコア57

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Verilog

Verilogは、デジタル回路設計用の論理シミュレータ。また、ハードウェアの電子回路設計の際に用いるハードウェア記述言語を指すこともあります。両者を見分けるために、言語を「Verilog-HDL」と呼ぶ場合もあります。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2019/01/19 12:51

編集2019/01/19 13:05

VivadoHLSを用いて高位合成を行いたいのですが,実行すると以下のようなエラーコードが表示されます.VivadoHSLを使い始めたばかりでエラーの意味がよくわかりません。解決策についてお分かりの方は教えていただけないでしょうか.

ERROR: [XFORM 203-733] An internal stream 'list[0].V' (main.cpp:220) with default size is used in a non-dataflow region, which may result in deadlock. Please consider to resize the stream using the directive 'set_directive_stream' or the 'HLS stream' pragma.

C

1void Count_top(hls::stream<int>& in,hls::stream<int>& out) 2{ 3 hls::stream<int> list[CON_NUM + 1]; 4 5 int tri[CON_NUM], squ[CON_NUM]; 6 7 int tri_sum = 0, squ_sum = 0; 8 9 streamControl(in,list[0]); 10 11 Count_top_label3:for(int i = 0; i < CON_NUM-1; i++) 12 { 13 triangleCount(i, list[i], list[i+1], tri[i], squ[i]); 14 } 15 triangleCountFinal(CON_NUM - 1, list[CON_NUM-1], tri[CON_NUM-1], squ[CON_NUM-1]); 16 17 for(int i = 0; i < CON_NUM; i++) 18 { 19 tri_sum += tri[i]; 20 squ_sum += squ[i]; 21 } 22 23 out.write(tri_sum); 24 out.write(squ_sum); 25}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2019/01/19 12:59 編集

コードください hdlの知識はありますか?
hello_whats_up

2019/01/19 13:06

コードを追加しました。 HDLの知識はほんの少ししかありません。
ozwk

2019/01/19 13:12 編集

何をしようとしているコードなのか簡単でいいので説明していただけますか? 特にlistがストリームの配列になっているのが意図通りなのか気になります
hello_whats_up

2019/01/19 13:15

グラフ中に含まれる三角形と四角形の数をカウントするプログラムです。 接続されているノード同士をリストにしたものをストリームして各ノードごとにカウントの処理をするアルゴリズムです。
ozwk

2019/01/19 13:22 編集

高位合成でコケていると思いますが そもそもc++のテストコードは通りますか?
ozwk

2019/01/19 14:14

まあエラーの内容は「今の合成パラメータ(ディレクティブ)ではハードウェアに変換したときデッドロックが起こるぞ。ディレクティブ見直したほうがいいんじゃね?」ってことで 多分、 streamControlでlist0にデータ詰め終わりを待たずにtriangleCountに移れるような合成指示にすればいいはずです
hello_whats_up

2019/01/19 14:22

ありがとうございます。やってみます。
ozwk

2019/01/19 14:30

処理内容全くピンと来てないんで、当てずっぽうなんですが、 Count_top関数にDATAFLOWディレクティブでどうでしょう
guest

回答1

0

自己解決

@ozwk さん
解決できました。ありがとうございました

投稿2019/01/23 07:15

hello_whats_up

総合スコア57

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2019/01/23 08:48

何をしたんですか?
hello_whats_up

2019/01/23 11:31

count_top関数中のfor文でUNROLLディレクティブを設定すると通りました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問