FC2カウンター FPGAの部屋 高位合成言語+ツールのKaruta を使ってみる1(Karuta をインストール)
FC2ブログ

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

FPGAの部屋

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

高位合成言語+ツールのKaruta を使ってみる1(Karuta をインストール)

高位合成言語+ツールのKaruta を使ってみようと思う。
Karuta の記事としては、次のものがある。
FPGA向け論理回路設計のためのプログラミング言語処理系 Karuta の紹介
Karuta言語でLチカ(LED点滅)を書いてみる

Karuta のGitHub が nlsynth/karuta にある。

まずは、私のパソコンのOS はUbutnu 18.04 なので、GitHub で紹介されている様にインストールする。
sudo snap install karuta
karuta_1_191021.png

インストールはとても簡単だ。

Karuta のソースコードや生成物を置くために Karuta_work を作った。
mkdir Karuta_work
cd Karuta_work


Karuta_work に”FPGA向け論理回路設計のためのプログラミング言語処理系 Karuta の紹介”からコードを引用する。まずは、hello.karuta を引用する。コードをコピー&ペーストした。
karuta_2_191021.png

func main() {
  print(“Hello, world!”)
}
main()


ターミナルで、次のコマンドを実行した。
karuta hello.karuta
karuta_3_191021.png

シンタックスエラーだった。
え〜。なんで? print 文だけにしてやってみた。
karuta_4_191021.png

print(“Hello, world!”)


やはりシンタックスエラーだった。
karuta_5_191021.png

ソースコードを見ているうちに、”がおかしいことに気がついた。あ〜、”が全角だ。。。すかさず半角に修正した。
karuta_6_191021.png

もう一度
karuta hello.karuta
を実行すると、”Hello, world!”が表示された。やはり、”が全角なのが問題のようだ。
karuta_7_191021.png

func main() {
    print("Hello, world!")
}
main()

も、”を全角から半角に変更したら、”Hello, world!”が表示された。

FPGA向け論理回路設計のためのプログラミング言語処理系 Karuta の紹介”の次の演算のチュートリアルをやってみよう。
calc.karuta とファイル名を付けた。ソースコードを引用する。
karuta_8_191021.png

shared x int[4]

func main() {
  var t int = 0
  for (var i int = 0; i < 2; ++i) {
    t += x[i] * x[i]
  }
  x[2] = t
}
x[0] = 3
x[1] = 4
main()
print(x[2])


karuta calc.karuta
を実行した。5行目でエラーになった。今度は何でエラーになるのだろう?
karuta_9_191021.png

(2019/10/22:追記)
Karuta の開発者の @neonlightdev さんに教えてもらったのですが、( ) が要らないそうです。

shared x int[4]

func main() {
  var t int = 0
  for var i int = 0; i < 2; ++i {
    t += x[i] * x[i]
  }
  x[2] = t
}
x[0] = 3
x[1] = 4
main()
print(x[2])


これで
karuta calc.karuta
すると、 25 という結果がでました。
karuta_10_191022.png
  1. 2019年10月21日 05:21 |
  2. Karuta
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4679-5560355b
この記事にトラックバックする(FC2ブログユーザー)