FC2カウンター FPGAの部屋 2022年01月02日
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Vivado HLS, Vitis HLS で 2022 年問題発生

Microsoft Exchange Server、日付チェック問題でメール配信停止(対処中)”だそうですが、Vivado HLS, Vitis HLS も 2022 年問題で現在、Export RTL ができなくなっています。
これは、ひがしさんの下記のツィートで知りました。

これは、”Vivits HLS 2021.2 在导出IP核时报如下错误,ERROR: '2201011916' is an invalid argument. Please specify an integer value.”という中国語のアンサーに書いてあるそうです。

少なくとも Ubuntu 18.04 版の Vivado HLS 2019.2 と Vitis HLS 2021.2 と Windows の Vitis HLS 2021.1 と 2021.2 は Export RTL が正常終了しません。
Vitis HLS は

ERROR: '2201021549' is an invalid argument. Please specify an integer value.
while executing
"rdi::set_property core_revision 2201021549 {component component_1}"
invoked from within
"set_property core_revision $Revision $core"
(file "run_ippack.tcl" line 1109)


というエラーで止まってしまいます。

Ubuntu 18.04 上での Vitis HLS 2021.2 で Export RTL を実行したら上記のエラーでした。
HLS_problem_2022_1_220102.png

Ubuntu 18.04 上での Vivado HLS 2019.4 で Export RTL を実行したら同様に上記のエラーでした。
HLS_problem_2022_2_220102.png

Vivits HLS 2021.2 在导出IP核时报如下错误,ERROR: '2201011916' is an invalid argument. Please specify an integer value.”という中国語のアンサーによると solution?/impl/ip の run_ippack.tcl の

set Revision "2201021811"(年月日時分)

HLS_problem_2022_3_220102.png

 は 32 ビット integer の値を超えちゃうので、

set Revision "2001012126"

HLS_problem_2022_4_220102.png

にして、tcl スクリプトをコマンドラインから実行すれば良いということです。
そこで、 Vivado 2021.2 の settings64.sh を起動したターミナルで、
vivado -mode tcl -source run_ippack.tcl
HLS_problem_2022_5_220102.png

HLS_problem_2022_6_220102.png

Vivado% プロンプトになりますが、exit コマンドで出られます。

solution?/impl/ip に IP が生成されています。
HLS_problem_2022_7_220102.png

Windows11 上での Vitis HLS 2021.1 で Export RTL を実行したら上記のエラーでした。
HLS_problem_2022_8_220102.png

Windows11 上での Vitis HLS 2021.2 で Export RTL を実行しても上記のエラーでした。
HLS_problem_2022_8_220102.png

Windows11 では、Vivado 2021.2 Tcl Console で solution?/impl/ip の run_ippack.tcl を実行すれば良いと思います。


ひがしさんの対処法記事です。
Vitis HLSでリビジョン番号がオーバーフローしたときの対処法

その後の Xilinx のアンサーの情報を追加します。(2022/01/04)
2022 timestamp overflow: ERROR: '2201011128' is an invalid argument. Please specify an integer value
why vitis hls is not able to export ip
Vivado fails to export IPs with the error message "Bad lexical cast: source type value could not be interpreted as target"
  1. 2022年01月02日 18:32 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定する

Vitis HLS 2021.2 で AXI4-Lite インターフェースのクロックに別のクロックを指定してみよう。
今回は、Vitis HLS 2021.2 のプロジェクトを作成し、C シミュレーションを行った。

Vitis 高位合成ユーザー ガイド (UG1399)の set_directive_interface に clock オプションがある。その説明文を引用する。

-clock
デフォルトでは、AXI4-Lite インターフェイス クロックはシステム クロックと同じです。このオプションを使用すると、AXI4-Lite インターフェイスに別のクロックを指定できます。-bundle オプションを使用して複数の最上位関数引数を 1 つの AXI4-Lite インターフェイスにまとめている場合は、-clock オプションはバンドル メンバーの 1 つにのみ指定します。


-clock オプションを使ってみよう。
Vitis HLS 2021.2 で DMA Readしたデータを2乗し、DMA Writeする KV260 用 IP を作成”の DMA_pow2 プロジェクトを DMA_pow2_defclk プロジェクトとして作り直した。

ソースコードの DMA_pow2_defclk.cpp を示す。

// DMA_pow2_defclk.cpp
// 2022/01/02 by marsee
//

#include <stdint.h>

int DMA_pow2(int32_t *in, int32_t *out){
#pragma HLS INTERFACE mode=s_axilite bundle=control clock=axi4l_clk port=return
#pragma HLS INTERFACE mode=s_axilite bundle=control port=out
#pragma HLS INTERFACE mode=s_axilite bundle=control port=in
#pragma HLS INTERFACE mode=m_axi depth=10 port=out offset=slave
#pragma HLS INTERFACE mode=m_axi depth=10 port=in offset=slave
    for(int i=0; i<10; i++){
        out[i] = in[i] * in[i];
    }
    return(0);
}


テストベンチの DMA_pow2_defclk_tb.cpp を示す。

// DMA_pow2_defclk_tb.cpp
// 2021/01/02 by marsee
//

#include <iostream>
#include <stdint.h>

int DMA_pow2(int32_t *in, int32_t *out);

int main(){
    int32_t data[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int32_t result[10];

    DMA_pow2(data, result);

    for(int i=0; i<10; i++){
        std::cout << "data[" << i << "]= " << data[i] <<
                ", result[" << i << "] = " <<
                result[i] << std::endl;
    }
}


Vitis HLS 2021.2 の DMA_pow2_defclk プロジェクトを示す。
AXI4-Lite_defclk_1_220102.png

C シミュレーションを行った。
AXI4-Lite_defclk_2_220102.png
  1. 2022年01月02日 05:55 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0