To content | To menu | To search

Tag - Arduino

Entries feed - Comments feed

Monday, September 26 2016

FPGArduino をさわってみる(3)

とりあえず動いた

Continue reading...

Thursday, September 22 2016

FPGArduino をさわってみる(2)

昨日の続き

Continue reading...

Wednesday, September 21 2016

FPGArduino をさわってみる(1)

幸い Xilinx Spartan 3A/3AN Starter Kit を自由に使える環境があるので、まずはバイナリで動かしてみた。
シリアルポートが、まだ USB-UART が無くて、D-SUB 9pin の PS/2 側を使わないといけなかったのはハマったけれど、とりあえず動いた。

けど f32c\rtl\proj\xilinx\s3a_700_bram\s3a_700_bram.xise をそのまま ISE 14.7 で通そうとしてもエラーになる。

 ERROR:HDLParsers:3375 - "f32c/rtl/generic/bram.vhd" Line 81. Choices for an array aggregate (result of operator) must be locally static unless there is only one choice. (LRM 7.3.2.2)

だそうで。
Makefile 使わないとだめなんだろうか。
でもこれ長くて読むのつらい。

元々、これまた自由に使える ML605 に移植しようと思ったけれど、どこから手をつけていいのか分からない。
なので素直に f32c\rtl\generic\glue_bram.vhd から手をつけていきますか。

基本的には、http://www.nxlab.fer.hr/fpgarduino/ のページの My board isn't listed above, is there any hope? の手順のはずなんだけど。

と、generic で Synthesize 走らせたら通った。失敗したときはパッケージ系のファイルが入っていなかっただけかもしれない。
C_clk_freq に MHz で数字を設定したら通った。
読み込んだファイルは

f32c/rtl/generic/glue_bram.vhd
f32c/rtl/generic/bram.vhd
f32c/rtl/cpu/pipeline.vhd
f32c/rtl/cpu/alu.vhd
f32c/rtl/cpu/debug.vhd
f32c/rtl/cpu/defs_f32c.vhd
f32c/rtl/cpu/defs_mi32.vhd
f32c/rtl/cpu/defs_rv32.vhd
f32c/rtl/cpu/idecode_mi32.vhd
f32c/rtl/cpu/idecode_rv32.vhd
f32c/rtl/cpu/loadalign.vhd
f32c/rtl/cpu/mul_dsp.vhd
f32c/rtl/cpu/mul_iter.vhd
f32c/rtl/cpu/shift.vhd
f32c/rtl/generic/bptrace.vhd
f32c/rtl/generic/reg1w2r.vhd
f32c/rtl/generic/bootloader/boot_rom_mi32el.vhd
f32c/rtl/generic/bootloader/boot_sio_mi32eb.vhd
f32c/rtl/generic/bootloader/boot_sio_mi32el.vhd
f32c/rtl/generic/bootloader/boot_sio_rv32el.vhd
f32c/rtl/generic/bootloader/defs_bootblock.vhd
f32c/rtl/soc/gpio.vhd
f32c/rtl/soc/sio.vhd
f32c/rtl/soc/spi.vhd
f32c/rtl/soc/timer.vhd

そしてこれをラッピングして ML605 につながるようにして bit ファイル作ったら、とりあえず Arduino IDE と通信はできた。
動作クロックは 150MHz を指定。というか C_clk_freq は integer といってるし、166.6 はどうやって指定するんだろうな。

ただ、LED のアサインが違っているようで、blink は動いてくれなかった。その他も、まだこれからかな。