FC2カウンター FPGAの部屋 Vivado HLS 勉強会1(基礎編)を公開しました

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

FPGAの部屋

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

Vivado HLS 勉強会1(基礎編)を公開しました

Vivado HLS 勉強会資料の 1 番目の”Vivado HLS 勉強会1(基礎編)”を公開しました。

歌い文句は次の通りです。

Vivado HLS勉強会資料の最初です。
掛け算回路をC言語で書いてVivado HLSでIPにします。そのIPをVivadoでZYBO用にインプリメントして、スイッチとLEDを使って動作させます。
Vivado HLSを使う時の初めの1歩として、いかがでしょうか?


Vivado HLS 勉強会資料は、5つあります。タイトルを下に示します。
  1. Vivado HLS 勉強会1 (基礎編)
  2. Vivado HLS 勉強会2 (レジスタの挿入とPIPELINEディレクティブ)
  3. Vivado HLS 勉強会3 (AXI4-Lite Slave)
  4. Vivado HLS 勉強会4 (AXI4 Master)
  5. Vivado HLS 勉強会5 (AXI4 Stream)
全部で650枚位の分量があります。Vivado HLSの入門としては結構良いのではないでしょうか?

製作に数ヶ月かかった資料を無料で公開するのは、Vivado HLS を無料で公開してくれたXilinx社に敬意を表するとともに、私も普及に少しでもお手伝いできないか?と考えたのと、Vivado HLSを皆で使うことになれば、いろいろな情報が出てきて、私も恩恵を預かれるのでは?という思惑があります。皆さん、Vivado HLSによる制作物の公開をよろしくお願いします。それに、日本のFPGA産業の発展に少しでも貢献したいです。。。

いろいろなコメントも待っています。この記事のコメントとしてお願いします。

なお、後の 4 つのVivado HLS 勉強会資料も完成しているのですが、Vivado HLS 2014.4 用なので、Vivado HLS 2015.4 に変換してから公開いたします。資料が膨大なので、修正するのが大変です。修正でき次第公開しますので、気長にお待ちください。

それでは、Vivado HLS 勉強会1 (基礎編)で使用しているファイルをこのブログに貼っておきますので、使用してください。
最初に、multi_apuint.cpp から貼っておきます。

// multi_apuint.cpp

#include <ap_int.h>

void multi_apuint(ap_uint<8> multi_in0, ap_uint<8> multi_in1,
        ap_uint<16> *multi_out){
    *multi_out = multi_in0 * multi_in1;
}


次に、multi_apuint_tb.cpp です。

// multi_apuint_tb.c

#include <stdio.h>
#include <string.h>
#include <ap_int.h>

int multi_apuint(ap_uint<8> multi_in0, ap_uint<8> multi_in1, ap_uint<16> *multi_out);

int main(){
    using namespace std;

    ap_uint<8> multi_in0;
    ap_uint<8> multi_in1;
    ap_uint<16> multi_out;

    multi_in0 = 10;
    multi_in1 = 10;
    multi_apuint(multi_in0, multi_in1, &multi_out);
    cout << "multi_out = " << multi_out << endl;

    if (multi_out == (multi_in0*multi_in1))
        return(0);
    else
        return(1);
}


multi_bd_wrapper.xdc を貼っておきます。

# multi_bd_wrapper.xdc
# 2015/07/02 by marsee
#

##Switches
##IO_L19N_T3_VREF_35 sw0
set_property PACKAGE_PIN G15 [get_ports {In0_1[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {In0_1[0]}]

##IO_L24P_T3_34 sw1
set_property PACKAGE_PIN P15 [get_ports {In0_1[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {In0_1[1]}]

##IO_L4N_T0_34 sw2
set_property PACKAGE_PIN W13 [get_ports {In0[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {In0[0]}]

##IO_L9P_T1_DQS_34 sw3
set_property PACKAGE_PIN T16 [get_ports {In0[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {In0[1]}]

##LEDs
##IO_L23P_T3_35 Dout[0]
set_property PACKAGE_PIN M14 [get_ports {Dout[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Dout[0]}]

##IO_L23N_T3_35 Dout[1]
set_property PACKAGE_PIN M15 [get_ports {Dout[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Dout[1]}]

##IO_0_35 Dout[2]
set_property PACKAGE_PIN G14 [get_ports {Dout[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Dout[2]}]

##IO_L3N_T0_DQS_AD1N_35 Dout[3]
set_property PACKAGE_PIN D18 [get_ports {Dout[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {Dout[3]}]

set_switching_activity -signal_rate 1 -static_probability .99 [get_ports]

  1. 2015年12月11日 04:57 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3329-6a8b21e1
この記事にトラックバックする(FC2ブログユーザー)