Recent Posts

RasPiめも

Satellite CCRMA

・8GBのMicroUSBでは足りない
・Python2系と全てが紐付いているので3を使うのは厳しい.複数のバージョンが入っているがpyenv等は入っていないので気持ちになる.
・x転送の調子が悪い.がんばると動く.
・pdが入っているので便利.しかしgem(動画を扱えるパッケージ)は入っていない.

https://ccrma.stanford.edu/~eberdahl/Satellite/

複数のPythonバージョン

ここの情報が新しいと感じた.しかしanacondaはRasPiには入らない.
http://qiita.com/y__sama/items/5b62d31cb7e6ed50f02c

 

音を鳴らす

pygletはAPIが貧弱なので使いづらいと感じた.
pygameは以前扱ったことのあるOpenALに似た使い方ができるので嬉しいが,メンテナンスされていない印象.
(Mercurialのリポジトリは存在してるんだけど,Python3ではpipで入らないしビルドもコケる.)
2ではあっさり動く.2はpipを入れるのが面倒だったりするけどpython-pygameとかがapt-getで落とせるのでそれでお茶を濁せる.

また,mp3を鳴らすのが厳しい.物によって落ちるのでおとなしくwavにするのが良い.

 

USB DACから鳴らす

http://qiita.com/yuyakato/items/76a3d46d1bf57c6a4da6
https://wiki.archlinuxjp.org/index.php/Advanced_Linux_Sound_Architecture#.E3.83.87.E3.83.95.E3.82.A9.E3.83.AB.E3.83.88.E3.82.B5.E3.82.A6.E3.83.B3.E3.83.89.E3.82.AB.E3.83.BC.E3.83.89.E3.81.AE.E8.A8.AD.E5.AE.9A

mast新入生のためのTips

mast1年次だとUnix環境で課題をせよみたいなのがそこそこあると思いますが,毎回機室に行って作業するのは(とくに自宅通学の方とかは)大変ですよね.
自分の環境で課題ができる環境を整えておくと,機室にいかなくても作業ができるようになるのでおすすめです.

このTipsでは,出てくる単語や,詳しいやり方については説明しません.
もしわからない単語や言葉がでてきたら,ぜひGoogleで検索してみてください.やり方を案内するページがたくさんでてきます.

このTipsはそういった検索の足がかりとしてもらうことを想定して書いています.ぜひ検索エンジンを使いこなして一人前のエンジニアになってくださいヾ(๑╹◡╹)ノ"

環境構築編

エディタ

emacs,vim,いろいろありますが,よくわからないならSublime Text 3を入れておけばよいでしょう.ただしShift_JISを扱えないのでプラグインの導入は必須です.
→ここで,「sublime text 3 インストール」「sublime text 3 導入」「sublime text 3 日本語」などで検索をかけてみてください.今後も同様です!
→「Shift-JIS」「文字コード」についても調べてみましょう.

シェル

windowsの人はいくつか選択肢があると思います.個人的には「MobaXterm」というソフトウェアをおすすめします.win10であればUbuntuを入れるのもいいかもですね.
Macの人はシェルが最初から入っているので,頑張って使いこなしましょう.
シェルとは:https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%A7%E3%83%AB

Latex

環境構築が大変ですが,一度組んでしまえば楽です.OSごとに,ググるとネット上に環境構築方法が乗っています.参考にしてみてください.

数式処理言語

線形や解析のレポート課題で検算をするのに役立ちます.
→「数式処理言語」「数式処理システム」で調べてみましょう.
おそらく学生であればMathematicaがフリーで使えると思いますが,かなり容量がでかいのでラップトップ(=ノートパソコン)に入れるのは少し大変かもしれません.
僕はMaximaというOSS(フリー)の数式処理言語を使っています.

 

SSH編

SSHってご存じですか? SSHというのは安全に遠隔地にあるコンピュータと通信するための仕組みです.
リモートでパソコンを操作する方法としてはリモートデスクトップなどが一般的ですが,画面を転送するので場合によっては不便なことがあります.
SSHは今後もよく使っていくことになるので,ある程度使えるようになくと今後楽です.
自分のマシンのシェルで,次のように打ち込むとSSHで接続できます.SSH接続の方法はACCCにも乗っています.
重要な幾つかのコマンド・キーワードについて紹介します.

ssh

安全にリモートマシンにログインするコマンドです.
たとえば学籍番号がs1000100の人は,
ssh s1000100@ubuntu.u.tsukuba.ac.jp:~
で接続できます.なお,sshは実は画面転送もできます.X11転送といいます.興味があれば「SSH X11転送」で調べてみましょう.
ちなみに,学情の先生に「sshでリモートログインしたいんですけど~」みたいなメールを打つと意外と教えてもらえます.僕はX転送をこの時教えていただきました.

公開鍵認証

sshでログインする方法には二種類があります.
ひとつはパスワード認証で,単にログイン時にパスワードを入力するもの.
もう一つは公開鍵認証で,これは少し概念が複雑なので説明します.
公開鍵認証は,使うだけならとても簡単です.
1.ローカルマシンで,鍵と錠前(鍵穴)のセットを作成します.ssh-keygenのコマンドで行います.
2.安全な方法で,錠前(鍵穴)をリモートマシンに転送し,設定を行います.
3.自分の作った鍵を使って,リモートマシンの錠前をあけることができるようになります.

上の例での鍵を「秘密鍵」,錠前を「公開鍵」と呼びます.具体的な方法については次のページが参考になるでしょう.
わかりづらければ他のページを検索してみてください.いろいろごちゃごちゃ書いてありますが,

1.ssh-keygen –t rsaで鍵と錠前のペアを作成
2.scpで錠前をリモートに転送
3.catで錠前(id_honyarara.pub)を錠前リスト(.ssh/authorized_keys)に登録

これだけです.パスワード認証拒否の作業は必要ないでしょう.
http://www.server-memo.net/server-setting/ssh/ssh-key.html

scp

sshと同様の仕組みを用いて,ローカル(自分のマシン)からリモートへ,もしくはリモートからローカルへファイルを転送するコマンドです.

scp [転送元] [転送先]
が基本的な構文です.
→ここで「scp コマンド」で検索してみてください.今後も同様です!
例えば,次のような使い方になるでしょう:
1.sshでリモートにログインし,機室の環境でしかできない作業をします.
2.ログアウトしてscpで必要なファイルをローカルに転送します.
3.ローカルで作業を行い,レポートを完成させます →manabaで提出!

rsync

フォルダやファイルをローカル – リモート間で同期するコマンドです.
rsyncはオプションも多く少し使い方が難しいですが,(間違えると作業したファイルをふっ飛ばしてしまうかもしれません),とても便利なコマンドです.
学部時代はよくお世話になっていました.調べてみてください.

 

ほか,要望があれば追記する予定です.
今はほとんどの情報をネットで手に入れることができるので,ぜひ検索力を鍛えてください.ぐっどらっく!✌(‘ω’)

System Verilog Array of Interfaces

System Verilogの新機能としては,

  • Interface
  • 多次元配列
  • Struct

あたりがVerilogからの移行ユーザーとしては嬉しいポイントだと思います.
が,細かいところまで行くと結構情報が曖昧です.記法や一部の機能がシミュレーターや論理合成ツールによってサポートされていないこともあります.シミュレーションでは使えるが論理合成はできないもの,そもそもコンパイルが通らない記法,等様々です.

この記事では,上の機能の詳細について自分の環境:Vivado 2015.2で動作したものをまとめます.また,論理合成可能なものを扱います.

機能に関しての基本的な説明は他の文献に譲ります.「System VerilogによるLSI設計」が日本語の資料としてはわかりやすいと思います.(VerilogからSV(System Verilog)に移行するユーザー向けに書かれています.)

 

Interface vs Struct

InterfaceとStructは複数の信号線を束ねて扱えるという点で似ており,どちらもModuleの入出力ポート宣言に使うことができます.両者の何が違うのか,どう使い分けるのか,という点が疑問になります.Interfaceをそもそも使わないで良いのではという議論もあるでしょう.
両者の決定的な違いは,Interfaceが別々の方向の信号を束ねて扱えるのに対して,Structはそれができない点です.

・そもそも,信号の方向が重要となるのはモジュール接続時のみであることに注意します.
・Interfaceは外部との接続用で,Structは汎用的に信号をまとめることのできる機能として使い分けます.
・Structを使ってモジュール間の接続をすることもできます.ただし,束ねられるのは同じ方向の信号同士のみです.FIFOインターフェース等では無理が出てきます.
・inoutでStructを接続すれば,Interfaceと同等のことが行えそうですが,inoutは両側がネット型(wire)でないといけないという制約がある(参考)ため,内部論理の記述に影響します.

方向の違う信号を束ねたい場合は,Interfaceを使うのが良いようです.逆に,そうでなければStructを使わない理由はないでしょう.ただし,Interfaceは配列が扱えない(?)という話があります.結論から言うと扱えるのですが,後述します.

参考:

Connecting hierarchical modules: struct vs interface in SystemVerilog

 

Interface with modport and parameter

Interfaceはmodportという機能を使って,信号の方向を定義することができます.moduleと同様の記法でparameterを使うこともできます.例えば宣言は次のようになります:

interface IF_FIFO # (parameter N = 32);
    logic empty;
    logic [N-1:0] rd_data;
    logic rd_en;
    logic full;
    logic [N-1:0] wr_data;
    logic wr_en;
    logic valid;
    modport master(
        input empty,rd_data,full,valid,
        output rd_en, wr_data, wr_en
    );
endinterface

interfaceの利用ケースはいくつかあり,それぞれで記法が変わります.

①まずひとつめはmodule内でinterfaceのインスタンスを作成する場合です.このときは,modportの記述はしません.parameterは記述できます.

IF_FIFO #(.N(40)) if_fifo();

interfaceはそもそも,(機能は一見structに近いですが)moduleの拡張であるという点に注意します.従ってmoduleのインスタンス作成の記法に近くなります.

②moduleの入出力ポート宣言でInterfaceのインスタンスを作成する場合,modportを使うことができます.次のような記述になります:

module hoge(
    input logic clk,
    input logic rstn,
    IF_FIFO.master if_fifo,
);

③moduleをインスタンス化するときの入力にinterfaceを使うときも,modoportを使うことができます.次のように記述します:

Some_Module Some_Module_i(
        .clk(clk),
        .if_fifo(if_fifo.master),

);

 

modportで明示した方向は,合成ツールがSyntax Checkを行うときに使える情報になるので,可能な限りしておいたほうがよいでしょう.

modportは,2年前くらいまでは対応している合成ツール/シミュレータのほうが少ないくらいだったようですが,2015年8月現在では,だいたい対応されているようです.
#といっても,Vivado 2014.4,Vivado 2015.2でしか自分は試していません.

また,modportとparameterの併用についても,注意が必要です.(参考
②と③でparameterを明示する場合の記述方法は試していません.

 

array of Interfaces

最初に,この機能を使うのはかなり危険だということを認識しておく必要があります.Vivado 2015.2でも,正式サポートはされていないようです.
それ以前のバージョンでは一部コンパイルが通らなかったり,シミュレーションで信号のビットオーダーが逆になる等,いろいろな問題があるので,使う必要がなければ使わないに越したことはありません.

ですが,リスクを上回って強力な機能です.Vivado 2015.2で論理合成が可能で,意図したとおりにSchematicが構成されることを確認したので,紹介します.

①インスタンスを作成する場合は,次のように書きます.arrayでない時と同様に,modportの宣言は行えません.

IF_FIFO if_fifo[2-1:0]();

②moduleの入出力ポート宣言では,次のようになります

module hoge(
    input logic clk,
    input logic rstn,
    IF_FIFO.master if_fifo[2-1:0],
);

③moduleのインスタンス化時の入出力セットの場合,modportを含めた名前の後に,ビットの幅指定を行います.上位と下位でinterfaceのサイズが合っていないと合成でエラーになります.

Some_Module Some_Module_i(
        .clk(clk),
        .if_fifo(if_fifo.master[2-1:0]),
);

④アクセス

if_fifo[0].full

でアクセスできます.添字には定数しか使うことはできません.forループ等で添字を回す場合,注意が必要です.
generate内のgenverは定数として扱われるため,添字アクセスが可能ですが,generate内であってもalwaysの中にある添字は定数として扱われないようです.
通常の,generate直下にforループを置くような形(generate-for)では,特に問題はありません.
しかし,ここにあるようなonehot信号で配列のどの信号を使うかコントロールしたい,という場合,alwaysの中にfor文を記述することになります.これは論理合成可能ですが,このfor文の中でinterfaceに添字アクセスしようとすると
”i is not a constant” というような内容のエラーがでて合成に失敗します.
これはInterfaceの配列に特異な問題で,一度struct等にassignなりしてからであれば,合成は通ります.おそらく,Vivadoのバグなので,注意が必要です.

Interfaceを修飾できる,Modport,Array,parameterですが,それぞれを重ねあわせて使った場合どう書くのが文法的に正しいのか,よくわからないところが多いです.今回modportとarrayの重ね合わせについては検証しましたが,
parameterを含めてはまだの部分が多いので,試し次第報告します.

以上です.

 

参考:System Verilog Array of Interfaces

Thinkpad X250 セットアップメモ

1.SSD換装

基本的にはここを参考にすればよい.ただ自分の場合はHDDとSSDを入れ替えるのではなく,M2にSSDを増設してOSを載せ替える形にしたので,その手順をメモ.

1-1.購入

X250はHDD512GBのモデルを購入した.SSDはM2接続のもの(Transcendの256GB,512GBはサイズが違って入らないので注意).
X250内には空のM2スロットがあり,そこを利用できる.

1-2.リカバリディスクの作成

回復ディスク(リカバリディスク),バックアップ,色々名前があってわかりづらいが,
・回復ディスクは,「メーカーが出しているPCの場合は最初の1度はOSイメージを含めて作成できる(=別ドライブにインストールしなおしができる).それ以降はOSイメージを含まない,回復ディスクと言う名の修正ディスクしか作成できない」「(自作等の場合は最初から後者」
・バックアップは,ドライブとかの構成をそのままバックアップするものなので,めちゃくちゃたくさん領域が必要.DVDで書きだそうとすると10枚とかになる.
今回は増設したSSDにWin8.1を入れなおすので,OSイメージを含む回復ディスクを作成する.16GBくらいのUSBメモリがあればOK.

1-3.換装

Thinkpadにあるまじき分解のしにくさなので,諦めて指から血を出しながら30分くらい無駄にしましょう.
パーツをつけたりとりはずしたりする際,フロントバッテリを構成に含めている場合は,電源コードとリアバッテリを抜いても通電状態なので注意.
まずM2 SSDを装着し,HDDの方は接続ケーブルを外しておく.
次にUSBメモリからブート.PCを初期状態に戻そうとする.(上のサイトに手順が乗っている.)
するとOSがインストールされているHDDがあるべき場所に無く,うまくいかないので,詳細オプションから問題の修正を行い,再起動したのち再び試みる,
成功するので手順に従ってインストールする.
ローカルアカウントを作りたい場合はこうする.
ひと通りうまく行ったら,一度シャットダウンし,HDDを繋ぎ直して再起動する.HDD領域はフォーマットすればストレージとして普通に使える.

1-4.PCI-Expressの省電力設定をオフにする

ThinkpadでM2 SSDを起動ディスクにすると,PCを起動しっぱなしにしているときに突然SSDを認識しなくなって落ちるということが稀に発生する模様(自分も一度なりました.)
対策として電源オプションからPCI-Expressの省電力設定を切る方法が挙げられているので,設定しておく.

 

2.各種ソフトインストール

これから.

Python 勉強メモ

matplotlib

http://bicycle1885.hatenablog.com/entry/2014/02/14/023734

 

Numpy.array

http://turbare.net/transl/scipy-lecture-notes/intro/numpy/array_object.html
http://kaiseki-web.lhd.nifs.ac.jp/documents/Python/array.htm

 

Pythonによる信号処理,とかとか

http://aidiary.hatenablog.com/

 

Pythonのスコープ

制御構造はスコープを作らない.
http://d.hatena.ne.jp/saitodevel01/20101205/1291582273

 

True.

 

リスト

[0:4]は”0番目から4番目”ではない.
レンジ指定で取りうる番号は要素と要素の間のカウンタ.従って0([0]の前) ~ 4([4]の後)の5つある.
http://docs.python.jp/2/tutorial/datastructures.html

Windowsの環境構築メモ

基本ソフトウェア

Ninute ※pythonはうまく入らないので別途
Chocolatey
MinGW or Cygwin

参考:開発者がSurfacePro3を買ったらまずやること

 

Python(Windows上)

python本体のインストール時にパスを通す設定にチェックをつけること.
pipは自動で入るが,NumPy,SciPy,matplotlibあたりはうまく入らないので手動で入れる.
matplotlibが必要とする,python-dateutil, pytz, pyparsing, sixはpipで入れる.

追加したライブラリはそれぞれのPythonのバージョンごとのフォルダ下に置かれるので,そこにPYTHONPATHを通す.

参考:Python for Windows インストールメモ

CygwinのPythonを使っても良いが,Windowsとは別環境なので,環境変数の設定やライブラリの追加ははじめからやる必要がある.CygwinからWinのPythonを叩く方法もあるが,あんまりうまくいかないみたい.

apt-cygでガバガバになったパッケージを手動でremoveする

手元のpython3.2を3.4に更新しようとremove→installしたが,正しくinstallされず,removeもできなくなった.
既にありますよとか言われてしまう.

 

①removeできないのをなんとかしよう.apt-cygの更新を行った.最新版はgithubから入手.

https://github.com/transcode-open/apt-cyg
解決せず.

②手動でremoveする.

インスール済みのパッケージは(cygwin)\ets\setup\installed.db に記述されているっぽいので,中を見て書き換える.
python3っぽいものをリストから消す.
.db-saveとかいうのもいるけど,これは.dbのバックアップっぽい.

③手動removeできたぞ(ちゃんとパッケージが無いことになってる)

[Prily@ASAGI] $ apt-cyg remove python3                                                [~]
Package python3 is not installed, skipping
 

④install しなおす

[Prily@ASAGI] $ apt-cyg install python3                                               [~]
Installing python3
--2015-05-24 00:16:40--  http://cygwin.cybermirror.org//x86/release/python3/python3-3.4.3-1.tar.xz
cygwin.cybermirror.org (cygwin.cybermirror.org) をDNSに問いあわせています... 80.83.126.34
cygwin.cybermirror.org (cygwin.cybermirror.org)|80.83.126.34|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 6893432 (6.6M) [application/x-xz]
`python3-3.4.3-1.tar.xz' に保存中

100%[================================================>] 6,893,432    191K/s 時間 42s

2015-05-24 00:17:23 (159 KB/s) - `python3-3.4.3-1.tar.xz' へ保存完了 [6893432/6893432]

python3-3.4.3-1.tar.xz: 完了
Unpacking...
Package python3 requires the following packages, installing:
bash crypt cygwin cygwin-devel libbz2_1 libexpat1 libffi6 libgcc1 libgdbm4 libintl-devel libintl8 liblzma5 libncursesw10 libopenssl100 libreadline7 libsqlite3_0 zlib0 binutils libuuid-devel
Package bash is already installed, skipping
Package crypt is already installed, skipping
Package cygwin is already installed, skipping
Package cygwin-devel is already installed, skipping
Package libbz2_1 is already installed, skipping
Package libexpat1 is already installed, skipping
Package libffi6 is already installed, skipping
Package libgcc1 is already installed, skipping
Package libgdbm4 is already installed, skipping
Package libintl-devel is already installed, skipping
Package libintl8 is already installed, skipping
Package liblzma5 is already installed, skipping
Package libncursesw10 is already installed, skipping
Package libopenssl100 is already installed, skipping
Package libreadline7 is already installed, skipping
Package libsqlite3_0 is already installed, skipping
Package zlib0 is already installed, skipping
Package binutils is already installed, skipping
Package libuuid-devel is already installed, skipping
Package python3 installed
apt-cyg install python3  3.70s user 3.64s system 11% cpu 1:02.64 total
 

⑤removeはできたけどpythonちゃん動いてないじゃん.結局またremoveもできないし.

[Prily@ASAGI] $ python3                                                               [~]
[Prily@ASAGI] $ apt-cyg remove python3                                                [~]
gzip: invalid option -- 'k'
Try `gzip --help' for more information.
awk: コマンドライン:4: 致命的: ファイル `setup/python3.lst' を読み込み用に開けません (No such file or directory)
rm: `setup/python3.lst' を削除できません: No such file or directory
[Prily@ASAGI] $                                                                       [~]

 

⑥不具合の原因を調べる

1. gzipの invalid option – ‘k’ が謎.apt-cygのソースコードを読んでみた感じではgzipのバージョンが古くてオプションをサポートしていないっぽい.(-kはkeep)

→手元のは1.4,最新は1.6だった.

2.pythonが立ち上がらないので直接exeを叩いてみると,__cxa_atexit が cygwin1.dll の中に無いとか言って落ちていた. cygwin自体のバージョンが古いのでは.

→手元のは1.7,最新は2.0だった.

 

⑦公式から最新のcygwinを落とす

apt-cygもpython3.4もcygwinのバージョンが古くて動いていない可能性.

→cygwin+基礎パッケージを適当な場所にインストールして,bin以下をまるごとコピった.

 

⑧動いた.

 

cygwin不自由すぎてとてもつらい.windows使うのがつらい.てかapt-cyg,upgradeサポートしてくれ.

ちなみにお仕事の方もwindowsです.こちらはさすがにcygwin使わずcmder+chocolateyですが,cmderもbashでヒストリ漁った時に出力の表示位置がずれるんだよなあ.なんなんだあれ.

 

あとLive Writerがバグだらけなのでブログを書くのがツライです.そもそも2012年からメンテされてないし.

WordPressの表示も気に喰わないけど直す時間もない.はてなに乗り換えるのありだ…てかMarkdownで書かせてくれ…

 

とにかく1行もコード書いてないのにとてもつかれました.ねます.

gnuplotでアンダーバーが下付き文字になる

gnuplotがV4.2から拡張テキストモードをサポートしたらしい.アンダーバー(_)やキャレット(^)が下付き文字や上付き文字になる.
その他についてはここが詳しい. http://www.ecs.shimane-u.ac.jp/~stamura/gnuplot.html

拡張テキストモードを使わない場合は以下のようにする.

set termoption [no]enhanced

僕の環境では,デフォルトでこの拡張モード有効になっていて,アンダーバーがおかしな表示になっていたが解決した.

参考:http://www.bersch.net/gnuplot-doc/enhanced-text-mode.html

Maxとjs

maxの中でのjsの書き方まとめ.これだけわかっていればだいたい書ける.
ちゃんとしたリファレンスが無いのがつらい.

 

入力/出力ポート数の定義

inlets = 1
outlets = 1

 

入力によって呼ばれる関数

function msg_int(){} //入力がintの時
function msg_float(){} //入力がfloatの時
function bang(){} //入力がbangの時
function anything(){} //入力がそれ以外の時

 

入力された値へのアクセス

方法1:引数

function msg_int(in){
  post(in)
}

方法2:arguments (packされたのを受信する時などに使う)

function msg_int(){
  post(auguments[0])
}

備考:インレットが複数ある場合

function msg_int(){
  if (inlet==0){
    //
  }else if (inlet==1){
    //
  }
}

入力時に呼ばれる関数(例えばmsg_intとか)は,入力がどのinletポートから行われたとしても呼ばれるため,こういう書き方になる.効率悪いように見えるがこれしか無いっぽい.

 

出力

outlet ( outlet_number, value )
outlet ( outlet_number, [val1,val2] ) //配列で返す時.勿論unpackして取り出せる

 

send出力

glob = new Global(“hoge”) // グローバルオブジェクトを宣言
glob.tag_name = value // グローバルオブジェクトにデータを入れる
glob.sendnamed ( receive_object_name , tag_name) // それをreceiveオブジェクトに渡す

maxpat内で使うsendと同じようにreceiveオブジェクトに値を送れる.
直接値は送れない仕様らしく,グローバルオブジェクトを使って間接的にreceiveオブジェクトに値を渡す感じで書く.

 

maxobjへのアクセスと値の設定/取得

maxpat内のオブジェクトを取得できる.
下はScripting Nameを使ってmaxobjを取得する例.Scripting Nameはmaxpatのインスペクタ上で設定できる

var something_maxobj = patcher.getnamed(“scripting_name”)

something_maxobj.set ( value )

var hoge = something_maxobj.getvalueof()

とても便利.jsオブジェクトとmaxpat上のuiオブジェクトの値を同期させるのに使える.
http://qiita.com/okupara/items/b70dc76332dd69be0ab5

パッチャーウィンドウ制御

まだ使ったことがない.

 

デバッグ

post()

 

おまけ:jsの自動更新

autowatch = 1

セーブされるとjsオブジェクトがスクリプトを自動で読み込み直す.これを書かないとセーブするたびにopenしなくてはいけなくて不便だった,が,max7からは自動でautowatchする設定になっている気がする.

ZYBOをアカデミックで買ってみた

お手軽価格のZynq-7000評価ボード「ZYBO」を、Digilentから直接購入した。

https://www.digilentinc.com/Products/Detail.cfm?Prod=ZYBO

20150325_055336059_iOS

 

ZYBOはDigilentだとアカデミック価格が125ドル(15k円)で、とてもお手頃で個人もつ評価ボードとしては最適な製品だ。
しかし日本で買おうとすると結構高くなってしまうのと、Vivado用のバウチャーやステッカーの注文ができないという問題がある。
・秋月では勿論アカデミックの取り扱いはしていなくて、25kくらい。
http://akizukidenshi.com/catalog/g/gM-07740/
・日本の商社さんでアカデミックで注文できるところを探して見積もりを取ってもらったが、27kだった。

 

なんとかDigilentから購入できないかなと、PolicyのPricing – Academic and Student Pricingの項を読むと、
・USの学術機関の学生じゃないとダメ
・生徒一人あたり1台
・学術目的に限る
みたいなことが書いてある。
https://www.digilentinc.com/NavTop/AboutUs.cfm#academicpricing

 

やはりダメかなとは思いつつ、まぁ物は試しということでダメ元注文してみた。

購入時に研究室や大学の情報を記入して、2台クレカで購入した。

23日の夜注文 → 即自動返信メールが届く → 24日の朝Shipping開始のメールが届く → 25日昼過ぎにボードが届いた。

はやい。FedEx最高。

なお、シッピングは55ドル。
バウチャー+周辺機器の20ドルをあわせると200ドル(24k円)で、あんまり安くならないけれど、それでも周辺機器がついて秋月より安いし早く届くので、学生の人はガンガン利用しよう。

 

アカデミック購入だと、普通は精査してから商品を送るので、1週間くらいたってから「売れません」みたいなメールが届くあたりが関の山かと思っていたけど、このスピード感よ。逆に怖い。
まぁとりあえず、以前作った回路を動かせるようにしてみようと思う。

ちなみにZYBO、思ってたよりけっこう小さかった。

20150325_055804126_iOS