インナーイヤー式イヤホン

カナル型イヤホンっていう方が一般的なのかな?
今は主流になってるけど、出始めのときはそんなにやってる人いなかったような。
まぁ、そんな話は置いておいて、、、
先週、イヤーピース(耳に触れるゴムの部分)がなくなってしまった。
今までも何回か、なくしたことがあるが、
後からポケットとかバッグの中とかから出てくるパターンが多かったので、
少し待ってみることにしたが、一週間待っても出てこない。
どうやら本当に紛失したみたい。。。
インナーイヤー式だと外れやすいんだよなぁぁぁ。
これって欠点なんじゃ、と思ったけど
くっついてたら引っかかったときにコードに負荷がかかっちゃうし、
破損や紛失でも交換できるし、安全側に設計されてるってことなんだよね。うん、納得。
とりあえず、購入時に付属してるサイズ違いのイヤーピースを試してみるか。
ま、最近はノイズキャンセリングヘッドホンを愛用してるのであんまり使ってないのさ☆

Lisperへの道

language of the yearというわけではないが、
最近ちょっとLispにはまっている。
まだ簡単なコードでも頭に入ってくるまでのタイムラグがあって、
思考するための言語になるまでには相当な時間がかかるだろう。
いまはやっと純リストと再帰関数の相性がいいことがわかったってところ。
本は1冊読んで、今はポール・グラハムの「On Lisp」を眺めてる。
On Lisp
まだ私が読むのは早かったかなと思う。
もう少し自分で手を動かして、体感しないとな。
いまんとこ.emacsをいじったくらいだし。
よし、楽しもう。Hello, lisp world!

VHDLメモ

'X'(不定値)と'-'(don't care)

  • 'X'はシミュレーション結果で信号の衝突やタイミング制約違反があったときなどに表示される。
  • '-'はwhen文などでどんな出力値でもよい場合に以下の目的で使用する。
    • 不必要なラッチを生成しない
    • コンパイラの最適化で回路を小さくする

'X'も'-'と同様にdon't careの目的で使用することができるらしい。
アルテラの資料にも'X'を使用するとの記述があった。

範囲指定したintegerによる循環カウンタ

integer range 0 to MAXで整数値の範囲指定をすることができる。
これは静的に違反しているときはコンパイル時にエラー、
動的に違反がした場合はシミュレーションでエラーを出してくれるらしい。
実行時はどうなる?

これを使って0からMAXを循環する値を作り出したい場合、
if文で最大値の判定をして0で初期化する処理を入れる必要がある。
こんな感じ。

if (cnt = MAX) then
   cnt <= 0;
else
   cnt <= cnt + 1;
end if;

ソフト屋目線で見るとMAXが2の累乗−1という条件では
この処理は冗長に見えてしまう。
でも上の理由からこの処理ははずせない。
しかもC言語三項演算子のようなものも見当たらず。

integerじゃなくて、std_logic_vectorならいけるか?
でもどっかの記述でstd_logic_vectorでの加算は勝手に
ビット拡張されるとあったような。
C言語みたいにビット範囲を切り出して使えば、まぁ使えなくもなさそうか。

if-else文について

疑問に思うこと。
ソフトでは同じ変数を使って条件文を書くときはelse ifを使うと思う。(Cの場合)

if (val == 0) { ... }
else if (val == 1) { ... }
else ...

valが0のときにval == 1の判定を行う必要はないが、
else ifをifにするとval == 1の判定も行ってしまう。

逐次処理ではなく並列処理が基本のハードでは
ifでもelsifでも処理は実行される。
その上elsifはその前のif文の結果を考慮するので、
結果的に回路が増えてしまわないのだろうか?


もう一つ疑問。
if文で同じ判定式だけど、意味的に分けたい(出力先によって分けるなど)場合、
if文を分けた場合に回路的には増大してしまうのかな?
最適化とかどうなんだろ?


こういうのはコンパイル結果を見るしかないんだろうなぁ。うーん。

blog outside

駅のコーヒーショップから更新中です。


無線サービスのWIRELESS GATEに加入しているけど、
最近全然利用してない。
せっかくなので、ここで書いてみました。


そろそろWIRELESS GATEやめようかな。
もう少しアクセスポイントが増えるといいんだけど。


他にも無駄にしてる支出があるような気がする。
家計簿でもつけてみようかな。

ジェネレーティブプログラミング

ジェネレーティブプログラミング (IT Architects’Archive CLASSIC MODER)

ジェネレーティブプログラミング (IT Architects’Archive CLASSIC MODER)

  • 作者: クシシュトフ・チャルネッキ,ウールリシュ・W・アイセンアッカ,津田義史,今関剛,朝比奈勲
  • 出版社/メーカー: 翔泳社
  • 発売日: 2008/04/23
  • メディア: 大型本
  • 購入: 7人 クリック: 399回
  • この商品を含むブログ (45件) を見る
最近読み始めました。尊敬する平鍋氏が推薦してるので、是非読了したいけど、
抽象的で難しい。。。

IE Tab修正要望

前回のエントリで、IE Tabをもってしても不都合な場合があると書いた。
実はテキストエリアなどにカーソルがある状態で、他のウィンドウに移動後、再びアクティブ化した場合フォーカスが失われてしまうのだ。
これで困るのが、クリップボード拡張系のソフトを使用する場合だ。
一旦クリップボードソフトのウィンドウでコピーしたい文字列を選択しEnterキー(またはダブルクリック)でウィンドウが消えて、
元のウィンドウに戻り、元のカーソル位置に選択した文字列が貼り付けられる。
ここでフォーカスが失われていると、当然貼り付けができない。
のでクリックしてから手動で貼り付けを行うしかなくなる。
なので一旦ウィンドウを離れてもフォーカス位置を維持するようになってほしいな。
開発元が英語なんで報告するのもメンドー。小手。
オープンソースみたいだからソース引っ張ってきて自分で治すってのもあるけど、それも、ねぇ。。。