新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

2015-01-01から1年間の記事一覧

PJTAG

PJTAG through EMIO gives critical warning - Community ForumsPJTAG を EMIO にだすとき、 vivado が間違ったコードを吐き出すみたい。 ##################################################​########################## # PJTAG constraints # ##########…

boards files のパス

2014.4 までは set_param project.boardPartRepoPaths で2015.1 以降は set_param board.repoPaths なめてんのか orz

EMIO にだした SDIO の CLK_FB

Vivado 推論してくれるのはいいけど、すべての外部端子を自動的に作っちゃう。SD に必要なのは SD の端子だけなんだ。(SD 用のチップというのもあるみたい) あと power とその選択もオープンにしたい。PMOD の SD スロットを使うと、power は PMOD の通常の …

むいてねー

「こんなに辛いとは思っていなかった」=>当たり前 「自由がありません」=> 当たり前 Mark Zuckerberg とか Paul Graham だしちゃだめ。別格だから 「失敗します」=> 当たり前 100戦99敗1分お金が動機 => あほです 製品や技術 =>うむむ 社会的影響力 => あほ…

SDIO を EMIO にだす。

Zynq で2つめの SD を EMIO 経由で外側に出すことにした。pmod の SD カードアダプタがあるのでそれを使う。 http://www.digilentinc.com/Products/Detail.cfm?Prod=PMOD-SD だしてみると、SD の端子以上にピンがある。 Xilinx のARに次の記述がある。 AR# …

Linux と RTOS

Linux から RTOS 読んで通信させることができるようになった。スゲー大変。ネットワークじゃないよ。共有メモリを使って2つの CPU Core の通信。

S ビット

MMU の S ビットをオフにしたら CPU0 では 1 を書きこんでいるのに CPU1 では 0 のままであることを確認した。

環境設定

etc//makerules.sysdepend を適切に作る。各 build に のディレクトリを作って Makefile もつくる。include/sys/sysdepend/type-cpu もつくって *.h も読み込まれるように更新cortex-a9 の定義がないからエラーになるけどね。include/tk/sysdepend も対象。

自分のモジュールの登録

いままでやってきたようい asdf で書いておいて、xxx.asd とかファイルを作っておく。そうして ~/quicklisp/local-projects に追加しておけばよい。いたって簡単。Quicklisp で 自前プロジェクトを ql:quickload。 - ほんとのこと知りたいだけなのに。 (ql:r…

quick lisp

windows で sbcl + quick lisp できた。 ==== quicklisp installed ==== To load a system, use: (ql:quickload "system-name") To find systems, use: (ql:system-apropos "term") To load Quicklisp every time you start Lisp, use: (ql:add-to-init-file…

VDMA のデバッグ設定

generic で定義されているもので GUI に対応していないものはここで変更が可能みたいだ。 http://fpga.blog.jp/archives/2014-01-09.html こんなの裏技過ぎてわからないだろう。

uramdisk

Uboot 用のイメージを作る方法 > mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz逆に uramdisk から 普通に ramdisk にしてマウントする方法 > dd if=uramdisk.image.gz bs=64 skip=1 of=ramdisk.image.gz > gunzip ramdisk.imag…

PL330 のアセンブラ

最初、ハンドアセンブルしていた。コンパイラを作ろうとも思ったけど、そこまでする必要もないと思い、gas のマクロでなんちゃってのをつくる。でもって、適当にはできた。 pl330_test_instr: DMAMOV sar, rbuffer DMAMOV dar, 0x7AA00004 //DMAMOV dar, wbu…

axi_rlast のタイミングを arvalid より先立てて長くしてしまって動かなくなるケースがある。1clock 遅れで 再確認した動くソースをコメントアウトして元のつくりに直しても うまく動くことを確認した。 -- if ( axi_araddr( 5 downto 2 ) = "0001" ) then -…

DMASTP<S|B>

DMASTP と DMAWFP はペアーで使う必要があった。明示的にそうは書いてないが、意味的にはそうみたい。仕様書には要求があって、ACK を返すとある。 つまり drvaild + drtype で要求。でも、DMAC 側はその要求をいつどう受けていいかわからないので、通常は D…

DMAWFP

Wait For Peripheral で 0xf8003100 が 0xc007 の状態になるのを確認。0xc が WFP と BURST を待っている(あるいは待っていた)というフラグ。7 が Waiting for peripheral 状態。drvalid と drtype を定期的に与えることで解除されて先に行くことを確認し…

PL330 勉強中

なんとなくハンドアセンブルで使えるようになった。DMAWFP は動いているように思える。davlid と datype と daready のハンドシェークの確認が必要。

PL330 のレジスタの書き込み順番(うそだった)

今ハードもソフトも動くものを sar, ccr, dar の順で書きこんだらちゃんとうまくった。問題は順番ではなくいろいろあったみたい。DMAWFP と DMSTPB の組み合わせだったり、ready や valid の応答だったり。また、いったん動かなくなると DMA が暴走している…

PL330 の勉強

DMAC の PL330 を勉強中。資料が少ない。Znyq では PL の Core と通信ができる。すごい。で使おうと思ったが、うまく動ない。Linux を動かしたうえで devmem2 で直接アクセスすると動く。 初期化のシーケンスが大事なようだ。あと、0xf8003xxx を使うようだ…

vivado の最適化

まずは使われそうにない下位ビットをはっしょった。ほんとうは先に最適化してはいけない。 +-------------------------------------------------------------+----------+-------+-----------+-------+ | Site Type | Used | Fixed | Available | Util% | +-…

諸外国におけるプログラミング教育に関する調査研究

こういうの拡散するの早いな:-)「はじめに」はお粗末。お粗末すぎる。しかし、そのあとはまぁちゃんとした報告書になっている気がするよ。それより、 撤回の仕方が情けない、、、、あとこういうので踊る人たち(私もその一人か、、、)も結構情けないぞ。な…

vivado の write_edif

たいしかことないLチカを edif 出力してみる。 (edif sw_led (edifversion 2 0 0) (edifLevel 0) (keywordmap (keywordlevel 0)) (status (written (timeStamp 2015 06 09 02 30 47) (program "Vivado" (version "2015.1")) (comment "Built on 'Mon Apr 27 …

再び verilisp

まぁどうでもいいはなしだが、Lisp でつくってるとうれしくなってマクロいっぱい作っちゃうわけですが、(もうちょい生成されるコストを考えた方がいい気がするぞ>自分)、、、、VHDL とか書いていると、またこれか、またこれか、的な似たような記述が繰り返…

Chichen Scheme で再帰的な表示を抑制したいができないのでクローじゃ使う

自己参照している List を print すると(displayでも princ でもいい)無限ループに陥る。common lisp なら (setf *print-circle* t) だけど、Chicken Scheme だとどうしたらよいかわからない。仕方がないので遅延評価的なことをさせることにした。自己参照し…

継承

継承があいまいにする構造。たとえば、コンパイラを作るときの構造。 Statement という抽象クラスを作りそれを継承して If をつくったとする。Statement はまた Tree を継承する。これは本当は Statement という構造で type の If を持つものと同じ。人間は …

Synthesijer で FORTH を作る

Synthesijer で FORTH を作る Synthesijer で FORTH を作るなんとか Retro が動いた。 Synthesijer に合わせるのが一苦労だった。でも半日仕事。問題はイメージ領域の大きさ。おおよそ 12K。それだけだとワードの登録ができないので、16K に増やす。BRAM 16K…

危ないプロジェクト

危ないプロジェクトがたどるデスマーチへの道危険な兆候 用語が一定しない、用語の使い方に誤りがある 担当者が思い入れすぎて機能を削れない いっぺんに作ろうとする 時間順があるものを同時進行させようとする テスト計画がなされていない だいたいのプロ…

coregen をバッチから使う

coregen: coregen -b makeproj.bat coregen -p . -b div32_ip.xco こんなかんじ makeproj.bat の中身は NEWPROJECT . SETPROJECT .こうすると coregen は GUI を立ち上げずにバッチモードで動くようだ。まぁもう coregen の時代じゃないのかもしれないけど。

parallella のオフセット

どうやら FPGA 側で 0x3e00 0000 を 0x8e00 0000 に見せている模様。 0x3e00 0000 から何かしらのリザーブになっているので(各コアの共通ライブラリ用)、 0x3f00 0000 から使えるみたい。で e_alloc からは 0x0100 0000 に見える。ややこしいぞ。https://par…

xtemp

parallella で xtemp を動かした。 http://www.sinby.com/backyard-report/005-Parallella/ 70度を超えるとまずいみたい。(経験値)http://www.sinby.com/backyard-report/ その他、Yocto に関しても追記した。pyfat つくったけど mtools で十分なことがわ…