カテゴリ:PCとか( 107 )

Verilator と OpenMP

Verilator の特徴を考えると、演算器とかの単純な回路の網羅検証が向いているのかと勝手に決めつけています。がしかし、シミュレータはシングルスレッドで動くのですよね。もったいないので、OpenMP を使った並列化の方法を考え中。
誰かいい方法知ってたら教えて下さい。うまくできたらまた報告します。

[PR]
by tom01h | 2017-05-22 20:52 | PCとか | Trackback | Comments(0)

Insider Preview 16184

ネットワークドライブがマウントできるようになったとの事で、Inspiron でもう一度 Insider Preview を使うことにしました。まず Fast で登録して、すぐに Slow に切り替えました。また何か使いたい機能があった時に Fast にするかもしれませんが…


[PR]
by tom01h | 2017-05-02 22:22 | PCとか | Trackback | Comments(0)

Petalinux for Arty Z7

Petalinux とやらをブートしてみる。これに従って pre-build を試しただけですが…
ちなみに、ちょうど良い MicroSD を持っていなかったので、小さい USB メモリを破壊して取り出しました。噂通りに MicroSD と下の基盤が入っていました。
f0054075_14534190.png

[PR]
by tom01h | 2017-05-01 18:21 | PCとか | Trackback | Comments(0)

モバイルモニター

ドスパラのモバイルモニターを買いました。タブレットの画面だけを切り売りしている感じの物です。なんか発色が悪いですねぇ。音もいかにもモバイルって感じです。
別に外でデモをしようなんて事はないと思うんですけどね。無くなる前に買っておきました。
f0054075_22512771.jpg

[PR]
by tom01h | 2017-04-30 22:54 | PCとか | Trackback | Comments(0)

Insider Preview 16176

Creators Update に合わせて Insider Preview を使うのはやめていたのですが、うれしい事にまた使う理由ができたみたいです。ファイルシステムが強化されて、ネットワークドライブがマウントできるようになったみたいです。Inspiron はもう一度 Insider Preview にするか。
[PR]
by tom01h | 2017-04-28 21:49 | PCとか | Trackback | Comments(0)

Arty Z7-20 Hdmi Out

Arty Z7 の HDMI 出力サンプルを試してみたいと思います。説明は ここ にあります。
まずは ここ からソースを取ってきます。TMDS がどうのこうの言ってコンパイルが通りません。ブロックダイアルラムを見ると、RGB to DVI Video Encoder なるモジュールの出力が浮いています。
このままでは良く分からないので、今度は ここ からとってきます。なぜか同じようなものが2個あるのですが、こっちは Xilinx のモジュールを TCL スクリプトから生成する(取って来るだけ?)、前の奴はすでに生成済みのを使う違いがあるみたいです。
f0054075_22234112.jpg
ブロックダイアグラムはこんな感じ。小さくて見えないでしょうが、右上にあるのが問題の TMDS 端子のようです。ちゃんと繋がっています。
f0054075_22274295.png
これに対して TMDS の繋がっていない方はこんな感じです。何が悪くて切れちゃっているのかは解析できず…
f0054075_22325894.png

[PR]
by tom01h | 2017-04-23 23:19 | PCとか | Trackback | Comments(0)

ARTY Z7 買った

当然ながら、欲しいのを我慢することはできません。欲しかったので買いました。使い方はこれから考えます。買うばっかじゃなく、ちゃんと使えよって話もありますが…
ARTY Z7 はちょっと長いかと思っていたのですが、 ARTY と同じ大きさでした。そして相変わらず小さな箱に、ボードが1枚だけ入っています。マイクロSDもついてません。ケーブルもなければ説明書もない。ネットを使えない人を切り捨てていく姿勢は素晴らしいと思います。
ちゃんと 20 が届きましたよ。
f0054075_22404855.jpgf0054075_22404944.jpg
[PR]
by tom01h | 2017-04-18 22:42 | PCとか | Trackback | Comments(0)

ARTY Z7

秋月電子で ARTY Z7扱いが始まった みたいです。
Zynq って言う、ARM をハードマクロで混載した FPGA を乗っけています。これがあれば、理屈的には Rocket-chip で Linux を動かしたりできるはず。まぁ、変更なしで動く環境は配ってないけど。
これあると、何か新しい遊びできるかな?とりあえず買ってみるか?その前に、V-scale chip 直せって言われそうですが…

[PR]
by tom01h | 2017-04-16 23:39 | PCとか | Trackback | Comments(0)
コンパイル後にいろいろと変更するのは格好悪いので…
--- a/bsp/env/freedom-e300-hifive1/link.lds
+++ b/bsp/env/freedom-e300-hifive1/link.lds
@@ -4,6 +4,7 @@ ENTRY( _start )
MEMORY
{
+ spi (rxai!w) : ORIGIN = 0x00400000, LENGTH = 512M
flash (rxai!w) : ORIGIN = 0x20400000, LENGTH = 512M
ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = 16K
}
@@ -22,7 +23,7 @@ SECTIONS
.init :
{
KEEP (*(SORT_NONE(.init)))
- } >flash AT>flash :flash
+ } >flash AT>spi :flash
以下同様に AT> を変更。最後の1行を取っ払うのはこうかっ。
--- a/bsp/env/common.mk
+++ b/bsp/env/common.mk
@@ -25,11 +25,12 @@ INCLUDES += -I$(PLATFORM_DIR)
TOOL_DIR = $(BSP_BASE)/../toolchain/bin
-CC := $(TOOL_DIR)/riscv32-unknown-elf-gcc
-AR := $(TOOL_DIR)/riscv32-unknown-elf-ar
+CC := riscv32-unknown-elf-gcc
+AR := riscv32-unknown-elf-ar
LDFLAGS += -T $(LINKER_SCRIPT) -nostartfiles
LDFLAGS += -L$(ENV_DIR)
+LDFLAGS += -e 0 ← これ


[PR]
by tom01h | 2017-04-11 00:13 | PCとか | Trackback | Comments(0)
ソフトは論理のリポジトリには含まれてないんじゃないかと疑い始めました。ソフト用のリポジトリ が別にあるようです。
git clone --recursive https://github.com/sifive/freedom-e-sdk.git
またしても gnu-tools を取りに行くので途中で止めます。自前のコンパイラを使わないで済ますためのオマジナイ。
--- a/bsp/env/common.mk
+++ b/bsp/env/common.mk
@@ -25,8 +25,8 @@ INCLUDES += -I$(PLATFORM_DIR)
TOOL_DIR = $(BSP_BASE)/../toolchain/bin
-CC := $(TOOL_DIR)/riscv32-unknown-elf-gcc
-AR := $(TOOL_DIR)/riscv32-unknown-elf-ar
+CC := riscv32-unknown-elf-gcc
+AR := riscv32-unknown-elf-ar
V-scale 用に作ったコンパイラは rv32im なので、a 拡張付きで作り直します。
./configure --prefix=/opt/riscv --with-arch=rv32ima --with-abi=ilp32
sudo make
a を付けるだけなら vscale-chip と共存できると信じてます。
make して software/demo_gpio に移って Intel Hex に変換します。
make software PROGRAM=demo_gpio BOARD=freedom-e300-arty
cd software/demo_gpio
riscv32-unknown-elf-objcopy -O ihex demo_gpio demo_gpio.ihex
これを mcs ファイルの後ろにくっつけるのですが、”:00000001FF” はファイル終了マークなので削除してから連結します。で書き込んでみると… 動かん。ちょっと変更してみると動きました。00400000 が QSPI のローカルアドレスで、 20400000 がシステムから見たアドレスになるのだと思います。最後の1行は必要なさそうなので取っちゃいました。
1c1
< :020000040040BA
---
> :0200000420409A
4098c4098
< :020000040041B9
---
> :02000004204199
5834a5835
> :040000052040000097
[追記 この手変更は 明日の記事 で解決します]
ビルド済みの mcs とは、少しだけ動きが違うようです。
f0054075_22025507.png
同じ要領で dhrystone を試してみたのですが、残念ながら、キー入力を待たないようです。で、デフォルトのループ回数は大きすぎるようなので変更しました。
--- a/software/dhrystone/dhry_stubs.c
+++ b/software/dhrystone/dhry_stubs.c
@@ -11,5 +11,6 @@ long time(void)
// set the number of dhrystone iterations
void __wrap_scanf(const char* fmt, int* n)
{
- *n = 100000000;
+//*n = 100000000;
+ *n = 100000;
}
流してみると…
Dhrystone Benchmark, Version 2.1 (Language: C)
Program compiled without 'register' attribute
Please give the number of runs through the benchmark: ← ここで入力を待ってくれない
Execution starts, 100000 runs through Dhrystone
Execution ends
Final values of the variables used in the benchmark:

Microseconds for one run through Dhrystone: 40.0
Dhrystones per Second: 25000.0

Progam has exited with code:0x00000000
[追記
ちなみにビルド済みの mcs を編集して自前プログラムを走らすには、ビルド済みの mcs から プログラム部分を削除する必要があります。

まずは、mcs (Intel HEX フォーマット) ファイルの解析。
mcs は巨大すぎるので、データの行を取っ払って見通しをよくします。

grep -v ":10" freedom-e310-arty-1-0-2.mcs | less

:020(正確には:02000004)で始まるのがベースアドレスを指定する行

で、:020000040040BA 以降がプログラム部分で、それ以前が回路部分です。
プログラム部分を自前のプログラムと差し替えます。

ちなみにこれはブートアドレスが20400000の場合で、QSPIのベースアドレスを引いたアドレスが00400000で、この指定が:020000040040BAです。]

[PR]
by tom01h | 2017-04-10 00:47 | PCとか | Trackback | Comments(0)