いろいろ考え事するときは

仕事も進まない。いろいろ悩むことも積もりに積もる。
ということで、そういうときは無心にKeynoteで何か図を描くと落ち着く。
写経みたいなものかしら。

HDLでRAMの一面からもう一面へコピーする話

その昔のお話。HDLでRAMからデータを読み出して云々していた頃。
あ、そもそもRAMといっても、いろいろ種類がありますが、シンプルにアドレスと値だけここでは取り上げます。
f:id:hideack:20080616213533p:image
どの様な内容だったかというと…。
画像の処理だったか忘れてしまいましたが、RAMが2面あって、そこに次の様なコピーをする処理が必要になった。というとき。
あ、でも、こうやって正方形にできたってことは画像処理だったのかなぁ。
簡単のため、4x4の情報、16アドレスのRAMで考えます。
f:id:hideack:20080616213535p:image
で、コピーをするときにはRAMのアドレスを指定する必要があるので、この場合、コピー元のアドレスは単純に4ビットのカウンタを用意してアドレスに指定してやればよい。
f:id:hideack:20080616213534p:image
問題は、書き出すときのRAMの指定でありまして。

0x0 → 0x4 → 0x8 → 0xc → 0x1 → 0x5 ...

てな具合の動きをさせてやらなければならない。
読むアドレスと書くときのアドレスは次の様な関係な訳です。
f:id:hideack:20080616213530p:image
このとき、書き込み先のRAMのアドレスは、例えばソフト書くとき配列の引数の様に考えれば、

int baseram[16];  // 読み込み元RAMのイメージ
int destram[16];  // 書き込み先RAMのイメージ
int address;
for(int i=0; i<16; i++){
address = (i * 4) % 15;
destram[address] = baseram[i];   // コピー
}

といった形で書けるが、これをVHDLで書くときは、単純にこうしてやればよい…。
コピー元のアドレスを作るためのカウンタが、

signal COUNTER : std_logic_vector(3 downto 0);

といった感じで構成されていれば、書き込み先にアドレスをビット連結して次の様にすればよい。

signal WRADRS : std_logic_vector(4 downto 0);
-- 中略
WRADRS = COUNTER(1 downto 0) & COUNTER(3 downto 2);  -- ココ!

図に書くとこの様な感じ。
f:id:hideack:20080616213532p:image
ビットの並びを変えるだけで、書き込み先のアドレスも簡単に構成できる訳です。
初めて教わったときには、目から鱗がボロボロこぼれた記憶がある。

よく考えると、そりゃそうさ。なのだけど。
気づいたり教わったときの感動は忘れない様に。ということで、長いエントリーでした。

咳をしても一人。

Sweet melodies

2006年リリースの葉加瀬太郎オリジナル曲の詰め合わせ。
なんど聴いてもよい曲ばかりだ。
あと、このアルバムにはピアノ伴奏のみのCDがついているので、バイオリン弾きはピアノの伴奏にあわせられるというすばらしい仕様。
このCD片手にバイオリンもって、どこぞの公園で弾いてようかしら。
一般的な人口考えるとどう考えても使う人は少ない気がしますが、こういう特典はうれしい。
iTunesでも発売されていますので、興味のある方はぜひ。

Sweet Melodies~TARO plays HAKASE

Sweet Melodies~TARO plays HAKASE

余談だけど、バイオリンの譜面買うと、初心者向けのものはCDとかで伴奏のみ録音されたものがついてたりするのですが、それを思い出したり。
そういえば、一番最初の頃の譜面についていたのはレコードだった気がするぞ。私の時代でも。*1

*1:記憶間違いだろうか?借りた譜面だったのだろうか??

iPhone

iPhoneが来月発売される訳ですが。(ネタにするのが遅い)
もっぱら発表以降、あちこちで議論になってるのは「日本でも売れるのか?」ということ。

  • おさいふケータイもできない、ワンセグも見れない。買うのはMac好きな人だけだ

という意見や、

  • これはすごい端末だ。売れまくるに違いない

という意見。いろいろ出ていますが…。

今日、電車の中で女子高生が話している会話聞いて、こりゃもしかしたら本当に一般の人にも売れるかも。と思った会話。
内容としては、

  • iPhoneがソフトバンクから出るって知ってる?という話
  • 私、機種変しなくてよかった。という話(年契とかの縛りがまだない。ということか?)

なんか、話してた女子高生が非常に特殊だったのかもしれない。聞いてて思ったのだけど。

確かに高校生ってワンセグは使ってるかもしれないけど、クレジットカード等々が必要なおさいふケータイとか使ってないような気がするし、通学してる様子とか見ても、ケータイ片手に耳から白いお約束のiPod付属のイヤホンだったりするし。
あと、端末の値段が安いというのは一つ大きなポイントのような気もする。

iPhoneは携帯が広く普及しきった日本では一般受けしないんじゃないかな。と思っていたのだけど、これはもしかしたらもしかするかもしれない。
あとは、ソフトバンクの料金プラン次第。だろうか。

部屋と扇風機と私

扇風機を押し入れから出した。部屋に帰ると、少し暑かったのだ。
毎年、週末とかのタイミングでなく、暑かったら出す。といった具合だ。(2006年の出来事参照)
扇風機を出すと、どうしてもファンが回っている前に座って、

あ゛〜

と、言ってしまう。子供の頃から変わらない私。

扇風機いいよね。扇風機。
「中」がいい。風邪の強さは「中」。
弱だと頼りないし、強だと机の上のものが飛んじゃうし。
"中"は絶妙の強さで体を冷やしてくれる。

あれ?何かいてるんだ。扇風機で、こんなに書いてしまった。

一線超えたな

うん。超えた。
進捗ではなくて精神状態が。

The Future Calling

Jobs総統の教書演説(= 基調講演)まであと数時間ということで、AppleStoreも閉店中。
f:id:hideack:20080610003940p:image
日本時間で午前2時から演説開始ということで、あと1時間くらいなのでリアルタイムで情報を集めたいところですが、明日仕事で倒れそうなので早く起きて情報は確認することにします。
Softbank Mobileからは、今年のいつ発売されるのか。という興味と、実はiPhone以外にしれっと何かを発表するのではないかという楽しみ.
あと、twitterが一斉に行われるWWDCの会場からの更新リクエストにサービスが耐えられるのか?という興味もあります。

なんだか。

午前中は仕事の用事をしていて、昼から買い物にちょうど電気街にいたのですが…。
かなり騒然としていて驚きました。人が走り回ってたり、消防や警察の人が大声でやりとりしていたので。
消防車も見えたので火事だったのかと思っていたのですが、どうも様子が違って携帯電話のワンセグ放送でNHKを見て、やっと状況がわかりました。
詳細はまだわかりませんが、なんともやるせないなぁ。

Ethnaでベースディレクトリの場所を取得する

ベースディレクトリというのは、Ethnaのプロジェクトの親ディレクトリ。"app"や"template", "log"等々が置かれているディレクトリのことでありまして...。このディレクトリ名を処理中取得したい場合。
バックエンド処理クラス Ethna_Backend に getBasedir() というメソッドがあるのでこれを使えばよい。
Actionクラスであれば、

$basedir = $this->backend->getBasedir();

といった感じで取得できる。

なぜ、いまさらこんなことを書いているかというと、Ethna...というよりPHP...というよりWebアプリケーションって何ですか?という様な右も左もわからないまま、1年と少し前、突如Webアプリを作ることになった際にあれこれ調べながら作ったのですがその時にEthnaの環境設定ファイルの"etc/〜-ini.php"へプロジェクトディレクトリの場所をご丁寧に書いてそこからとっていたので。

落ち着いたとき振り返るのは重要ですね。
なかなか落ち着かないので振り返られないという話もありますが。