« May 2007 | Main | July 2007 »

2007.06.30

SICPでデジタル回路

ディジタル回路(SICP 3.3.4 A simulator for Digital Circuits)動いたよ!とgoogle向けにキーワードを書いてみた。


わかってしまうとたいした理由じゃない。

(define (set-current-time! agenda time)
  (set-car! agenda time))

のset-car!がset-cdr!になっていた。the-agendaのcar部が時刻を表し、今実行した時刻で上書きするところが、イベントーキューをまるごと破壊していた。


デバッグ用にlist構造を書いた図をupしておきます。この図は遅延が2のinverterを一つ用意したときの図です。
(inverter input output)
宣言した時点で、inputの初期値0に対して、2nsに反転させる手続きinverter-inputが実行されます。

デバッグに手こずったのがこの関数


(define (first-agenda-item agenda)
(if (empty-agenda? agenda)
(error "Agenda is empty -- FIRST-AGENDA-ITEM")
(let ((first-seg (first-segment agenda)))
(set-current-time! agenda (segment-time first-seg))
(front-queue (segment-queue first-seg)))))

見た目はfirst-agenda-itemと普通の関数なのに、中でset-current-time!を呼び出して破壊的操作をしている。なんてこったい。これに気がつかず遠回りをしてしまった。

| | Comments (0) | TrackBack (0)

2007.06.29

スーパーコンピューターを20万円で創る

noboshemonさんの所から。

スーパーコンピューターを20万円で創るようやくアマゾンから届いたので読みました。

著者の伊藤氏は本当のハッカーだ。この本から学べることは多い。

(1)大きな目標と決して小さくない一歩
目標としてすごいスーパーコンピュータがあったとしても、まずは機能を限定してでも動く物を作りきる事が大事。作って動かしてみて、初めていろんな事が分かる。その経験がさらに大きな目標のために役に立つ。最初の一歩は限られた人数で、全力を挙げて取り組むんだ。大きく構えていてはいけない。そんな暇があったら、まずはできる範囲で動く物を見せよう。話はそれからだ。

(2)3桁上を目指そう
新しいことをするなら、既存の物に比べて3桁上を行かないとだめだ。GRAPEは計算速度こそ当時のスーパーコンピュータの1/10だが、価格が20万と、スーパーコンピュータの1/1000以下だ。
1桁上はだめだ。10倍程度であればムーアの法則が自然に解決してくれる。2桁上はムーアの法則+並列化による力業が解決してくれる。3桁上は違う、誰も知らない未知のゾーンだ。3桁上を目指すために削れる物はどんどん削って良い。削った為にできなくなることに悩むより、3桁上の新しいパラダイムでできることを考えよう。

(3)アプリケーションに特化しよう
ムーアの法則は強敵だが、CPUやメモリの進化は全体のパフォーマンスを上げる事が目的だ。どんなアプリに対してでも良い影響がでるように、高速化していく。僕たちが目指す物は、特定のアプリに限ってでも最大のパフォーマンスを出すような何かだ。ポールグレハムだって、最初はオンラインショップに特化していたよね。彼の実力なら、掲示板でもWebメールでもパフォーマンスを出せるだろうが、彼はオンラインショップに集中し、そして成功した。

(4)今がチャンス!
今がチャンスだ。GRAPE-5の開発費は5億円になり十分肥大化した、50万で同じような物を作れば、それは次のGRAPE-1だ。Verilog 1.0に書いたとおり、ようやく舞台はそろった。伊東氏が初めにGRAPEに挑戦したときより、世界は劇的に良くなっている。数億円をかけてGRAPE-6を作っているとき、地球の裏側では、ラリーとセルゲイができあいのパソコンでGoogleを作っていたんだ。僕たちにだって、世界は変えられるよ。

一気に読み終わって、ものすごく元気が出た。

| | Comments (2) | TrackBack (0)

榎本俊二のカリスマ育児


榎本俊二のカリスマ育児読みました。

面白い!
榎本俊二って人の漫画はあまり好きじゃないんだけどこの本は読める。
男の人から見た育児がリアルに書かれていて共感した。

妊娠中の女性は本当に不安定で、「幸せ」→「死ぬ」→「お金」がループする。
僕は生まれてくる子供は大好きなんだが、養育費とか積み立てとか一戸建てとか、そういう話題にげんなりする。残念だけど、げんなりする感情は止められない。僕だけがだめな大人かと思っていたら、他の男性も同じで安心した。

今、嫁に渡してリアクションを見ている。女の人には受け入れにくい絵かもしれない。

子供が好きなお父さんにお勧め、旦那の本音を知りたい奥さんにもお勧め。
育児を経験していない人には、お勧めしません。多分、書いてあることが伝わらない。

# wifehackカテゴリーも作ってみた。

| | Comments (0) | TrackBack (0)

SICP 3.3.4 デジタル回路のシミュレーション

テキストはここ
FPGAでお金もらっている人間としては、飛ばしちゃだめだろうと思って打ち込むも、実行させるとエラーがでる。
時刻の表現周りでおかしいようだ。時間とって追おう。入力の0と1を、Schemeの論理値(#t、#f)に置き換えて、シミュレーションするのかと思ったら、結構本格的で驚く。

inverterの実装から(コメントは僕が追加)

(define (inverter input output)   ; 入力1つ、出力1つでinverterを定義
  (define (invert-input)
    (let ((new-value (logical-not (get-signal input))))  ; get-signalで入力ポートの読み出し、読み出した値にシミュレータ上のnotを取る
      (after-delay inverter-delay
                   (lambda ()
                     (set-signal! output new-value)))))  ; 遅延を追加して、反転された新しい値を出力ポートへの書き込む
  (add-action! input invert-input)                       ; 入力が変化するたびに、上の処理を実行するよ
  'ok)
(define (logical-not s)    ; 実際の演算部分の定義
  (cond ((= s 0) 1)        ; schemeのnotを使っていないから、XやZの機能も足せるよ。
        ((= s 1) 0)
        (else (error "Invalid signal" s))))

モンテカルロの問題も同じだけど、勉強用の例題と割り切らないで学習者自身での拡張がちゃんと視野に入っているのが凄い。教科書のサンプル用に作ったんじゃなくて、実績のある物からエッセンスを抜き出してきたような感じ。

| | Comments (0) | TrackBack (0)

2007.06.27

CとGNU開発ツールによる組み込みシステムプログラミング

CとGNU開発ツールによる組み込みシステムプログラミング読みました。

全体的に教科書のような感じで、読みやすくかつ丁寧にまとまっていました。ソフト、ハード、それらを取り巻く環境まで浅く広く説明してあります。一つ一つの項目は浅いですが、さらに詳しく知るためのリファレンスも充実しているのでそれほど問題にならない。

組み込みの世界に入ってきた新人への最初の一冊として、僕の知る限り一番良い本。これだけ綺麗にまとまっている本を僕は知らない。あまりにもないから、自分自身で同じようなことをまとめていたことがあるくらいだ。こういうところをまとめることで、新人への教材になるだけでなく、ソフトとハードの人の相互理解につながると思っていた。

例えば回路図の基礎で抵抗、コンデンサなどの部品は当然載っているとして、オフページコネクタや、ジャンクション、ネットラベル、ピン番号まで説明がある新人の時にこの本があればどれだけ怒られずにすんだか、と苦い思い出がよぎる。ハードウェアの初期調査として、電圧の確認、クロックの確認、リセットの確認と順を追ってデバッグすることもちゃんと書いてある。プロセッサの教科書にはこんな事は載っていないし、CQ出版の記事はそんなことは知っている人に向けて書いてあるから、こちらも載っていない。

正直この本の日本版がほしい。リファレンスの書籍は日本人が書いた本にして、
eCosのサンプルはuItronがふさわしい。cyg_thread_create()よりも、cre_tsk()の方が良いでしょ。プロセッサもARMよりはSH2だ。次の一歩に進むときに、日本語の書籍もあるしなによりデータシートが日本語、これは大きい。

翻訳のレベルは一部を除き十分高く普通に読める。ハードに近いところは首をかしげる表現が多い。全体が良いだけに少し残念。

p43から、
「高位、低位」というのはlevel high/lowを訳したんだろうけど、論理H/Lとか、H/L出力とか、単にH/Lで良い。設定/消去も、set/clearがペアで使われるときは、セット/クリアーで良いと思う。丁寧にかくのなら、1にセットする/0にクリアーするだ。GPIOの設定で「0=ピンは入力として設定されている」は、日本語の資料だと「0=ピンを入力として使用する」になる。

割り込み信号(p140)の「上昇/降下」は、立ち上がり/立ち下がりだ。割り込み信号が上昇だと全く通じない。

ハード以外の部分は、普通に読みやすかったです。ニッチな所でそんなに売れるとも思えない本を訳していただいた訳者に感謝します。


| | Comments (0) | TrackBack (0)

2007.06.26

Bluespecは凄い!

関数型言語で高位合成をがすでにプロダクトになっていた。

まずはこのPDF見て欲しい。
Future Programming of FPGAs
英語だけど、10ページくらいしかないから大丈夫。
40年前の話を持ち出して、ソフトウェアの世界では、FortranとCは成功したけどLisp/Prologは失敗したよね。
でもハードウェアの世界は違うよ。C/C++/Javaが失敗して、Bluespecが成功するよ。からプレゼンは始まる。

最後は、ソフトウェアの歴史から学んだ教訓を忘れるな!で終わる。
cf. why Fortran and C succeeded
cf. why Lisp/Prolog/Functional Languages (mostly) failed
cf. why automatic parallelization (mostly) failed

トレーニングの資料も公開されているので見てみる。
slideの2にGCDの回路があるので紹介。

Complete Codeだからこれで全部らしい。左がテストベンチ、右上がインターフェイス、右下が実際の回路に見える。
なんと言っても、CLKとループが存在しないのが衝撃。これでワンプッシュでハードまで落ちるのだろうか?
仕組み的には、計算が終わるまでbusy bitを立てて、ふるいにかけ終わるまで引き算を続けているように見える。

SystemCで動きそうだから、もうちょっと突っ込んで調べよう。
この会社を知っただけでも、ESL D&Vを買った甲斐があった。7000円の元は取ったぜ。

| | Comments (6) | TrackBack (0)

英語の勉強

表紙の女の子に釣られて買ってしまった。
19歳の普通の女の子が、恋もしながら魔物を倒すという、日本で言うラノベのよう。

amazonで勉強用じゃない小説も買おうとしたら、いわいるアメコミワールドで、どれから買って良いのか分からない。とりあえず、在庫が残り1冊の物から買ってみた。

| | Comments (0) | TrackBack (0)

Verilog 1.0

日本語で読めるFPGAとVerilogのblogは本当に少ない。プログラミング人口的には数万人いるし、書籍だって日本語の本が、Haskellの何倍も売っている。にも関わらずblogを書いている人は少ない。理由ははっきりしていて、コンパイラだとか、シミュレータが高いのだ。あとは自分で動かすためには、FPGAのボードもいる。ほとんどの人は、コンパイラとかシミュレータとかを会社の設備として使っている。だからblogに書けない。

FPGAでblogを書いている人は、大学関係の人、自営業の人、駄目な大人の3種類に限られている。私は言うまでもなく3番目。大学関係の人と、自営業の人は個人的にはスキルが高いけど、基本的には数人でできる回路になる。数十人のチームで回路を作っている人たちのノウハウってのは全く出てこない。コンパイラのオプションやディレクティブで、最適化をどうかけたらこうなったなんて情報は門外不出の技術だ。gccで最適化かけたら、末尾再帰がジャンプになったよ、やたー、なんて口が裂けても言えない世界。それどころか、引数が4つまでだったらレジスタ渡しになるよ、程度でも情報がない。

例えばVerilogシミュレータで時刻0の動きに注意しないといけないのは、scanf使ってはまるくらいの、最初は誰でもはまる事なんだけどそういう情報もなかなか見つけにくい。ちなみに、このあたりはWriting Testbenchesが詳しい。

しかしVeritakの登場で、状況は変わる。本格的なVerilogシミュレータが、個人で買える値段で手にはいるようになった。FAQには初心者がはまるところが、わかりやすく説明されている。あわせて、Altera、XilinxがWeb editonやWebPackを出してきた。1万円だせば、FPGAのボードも買える。こういうお膳立てがそろって、ようやく個人でもVerilogのネタがかけるようになった。

今、まさにVerilog 1.0なんですよ。日本の設計力を底上げするためにも、もっとVerilogやFPGAの情報を共有したい。嘘、みんなであーだ、こーだやった方が楽しいじゃん。Just for fun !。自分が出せる所は少しずつ出していこう。

| | Comments (3) | TrackBack (0)

最近のへこみ

noboshemonさんの所でスーパーコンピュータの話を知り、googleをさまよう。

「重力+FPGA」でぐぐったりすると、特定の計算に特化したプロセッサをFPGAで作るとかいっぱい事例があるのね。DSLならぬ、DSH(Domain-Specific Hardware)だな。いろんな事例を見ていると、自分の存在の小ささに気がつく。blogが自分自身にもたらした変化っていうのは、あれもこれも勉強しないと行けないという圧迫感だ。オブジェクト指向のプログラミングなんてどれかできて当たり前だし、LLも一つくらいは自由に操りたいよね、Lispはプログラマとしての教養、なんて思っているとやりたいことが多すぎる。10個くらいblogを回ると、blog書いている人ってのはみんなC、C++、Java、Perl、ruby、Python、Scheme、Common Lispくらいは普通に使えて、さらにHaskellとか、Erlangとか勉強しているイメージがある。

そんな悩みを抱いていると、あろはさんの所にこんな記事が。
Lispの人って文章上手いよね。びっくりするくらい読んでいて面白い。C++/Perlの人ってのは混沌としている。ニッチな最適化の話をしていると思ったら、普通に晩飯とかアニメとかの話がでてくる。言語が性格を作るのかもしれない。C++とかPerlをやっていると、practicalな汚さを汚いまま受け入れられるようになるのだと思う。Lispの人たちは抽象度を上げていく過程で、晩飯の話は隠蔽されるのだろう。

突っ込む所はそこじゃなくって、「ちゃんとイイ仕事を丁寧にコツコツやっている人々」という表現にまたへこむ。背伸びして、あーだこーだ言っていないで現実を見た勉強とblogも大事なんだろう。ココログのアクセス解析を見ても、ほとんどの人はVerilogネタを求めてここに来ている。見ての通りここにVerilogの話なんて全くありませんよ。FPGAとVerilogに関して書きたいことはいっぱいあるんだけど、書けることってほとんど無いんですよ。職務上の守秘義務があるから。(→これは話が長くなるから別エントリにしよう)

ESLの本の5章から、bluespecなる言語を発見。こっちの記事からソースがダウンロードできます。見てみたけど意味がわからない。ESLの本によると、rule-based, declarative hardware specification language based on term rewriting らしい。素独を解いているのがN-queenを彷彿させてすごい。

というような記事だけを書けば良いんだろうけど、「ちょww、5章入ったら図も絵もないじゃん、1章まるまる英語かよ。読めるか、こんなもの!女将を呼べ」と書きたくなる僕ガイル。わかった、小難しい記事を書くのが恥ずかしいんだ。

もう少しがんばろう。


| | Comments (3) | TrackBack (0)

2007.06.21

Amazonのトップが大変なことに!


なにげにアクセスしたら、こんな感じ。orz

ほら、Crayの本とか、ESLの本とか、SystemCの本とか、いろいろ買ってるじゃん。そっちを前面に出してください。

| | Comments (0) | TrackBack (0)

スーパーコンピュータ!

ずっと前に頼んでいたCrayの本が、船に乗ってようやく到着したよ。
って残り1冊だから買ったのに、まだ在庫あるのかよ!アマゾントラップだな。

高い割にあまり面白くなさそうな雰囲気がしている・・・。
失敗か?

| | Comments (0) | TrackBack (0)

今日の本屋

ラノベを読み尽くしたので、本屋へ

なにげに立ち読みした、気配りの本を読んだら、僕には無理!って事がいっぱい書かれてあって精神的ダメージ大。そういえば、ビジネスマナーの勉強はどうなった?

そんななかThe Art of UNIX Programmingなる本を発見。面白そう。
鞄に入れておけば、一気に読めそう。危うく買いそうだったが、なんとか我慢。他にも読みたい本がいっぱいある。

ゼロの使い魔 3巻 とらドラ3!ネクラ少女 3巻文学少女 3巻、世界を動かすトップの英語図解 1時間の仕事を20分で終わらせる 確実に身につけたい、時間管理のコツとは買ってきました。これだけ買っても、The Art of UNIX Programmingより安い。

| | Comments (0) | TrackBack (0)

今日のラノベ

ゼロの使い魔 2巻 ルイズに婚約者がっ!なんだって~!

とらドラ2! これも良い!

とある魔術の禁書目録 罰ゲームしたい。

ああ、今僕はラブコメに飢えている。

| | Comments (0) | TrackBack (0)

今日の妄想


http://www.monkeyboy.is-a-geek.org/oracover.jspで作ってみた。

| | Comments (2) | TrackBack (0)

2007.06.19

wifehack

かなりエロい響きですがこことかこことか。

ノートPC大事です。
近い距離にいるのもそうですし、やばい雰囲気になったときにノートPCの蓋を閉める事で「僕はあなたとの話に集中しますよ」という意志表示ができる。

家事をするってのも大事。相手の気持ちがよく分かる。正直、娘の相手しながら掃除と洗濯物していると、どこから見ても楽しめるくだらないトーク番組を見てしまう。不思議。余計な気遣いよりも黙って家事を片付けてもらう方がうれしいらしい。

相手が疲れているようなら、紅茶でも入れてあげる。
リナザウとか欲しくても一応相談する。
喧嘩しないためにも、自分がまず怒らない。
「話をする」事が目的なので、内容には突っ込まず話を合わせる。
つきあい始めた時の姿を今の姿に重ね合わせる。(間違ってもdiff取っちゃだめ。絶対だめ)

のろけてみました。ごちそうさまでした。

| | Comments (2) | TrackBack (0)

スーパーコンピュータ

あろはさん経由で、masa_edwさんを知り、スーパーコンピューティングの将来を見つける。

おぉぉぉ。
こういう資料を探していたんだ。
今、僕がすごいアーキテクチャのコンピュータを考えても、間違いなく30年前の人も同じ事を考えいたに違いないんだ。だから、スーパーコンピュータの歴史がまとまっている資料が欲しいなぁと。

さっそくタングステンに転送したぜ!

| | Comments (0) | TrackBack (0)

ネットイナゴ ブーンブーン

ああ、イナゴがぁ

日本の科学教育の不幸から

> 物理的世界では、原因と結果の間には1対1の対応関係があるので、現象は本質的に単純だ。
> 時間は可逆で決定論的であり、変化は静的な平衡(均衡)状態に至るまでの過渡的な撹乱
> にすぎないので、あらかじめ平衡状態を計算によって求めることができれば、
> 工学的にそれを実現できる。

理科大理学部物理学科でろくに勉強をしなかった僕が言ってみる。

時間について対称と、時間について可逆は意味が違うんじゃない?
数式上tを-tにしても理論が破綻しない、というのと実際に逆回転できるのは違うよね。少なくとも「物理学」を出してくるのなら、実験による検証無しでは物理は成り立たない、なんて大学1年生で習うのに。実験と理論はまさに両輪であり、「熱力学の不可逆性は、時間について対称な物理学の基本法則からは導けない」から、「時間について可逆」は物理学としては飛躍しているように見える。僕が大学を出てから、10年程の間に急激に実験物理の重要性が低下したのだろうか。

と普通に日本の科学教育の不幸と同じ感想になってしまった。(ていうか、何でこの人が謝らないといけないんだ?)

僕達(でよいよね)がどうミスリーディングされているのか、どなたかわかりやすく解説してください。

| | Comments (0) | TrackBack (0)

2007.06.18

High-Speed Digital Design: A Handbook of Black Magic

High-Speed Digital Design: A Handbook of Black Magicについて。とっくにblogに書いていたと思ったら、社内wikiにしか書いていなかった。社内wikiとは違う視点で書いてみる。

AO diaryさん経由で、邦訳が出ることを知る。
ハワード・ジョンソン 高速信号ボードの設計 基礎編ハワード・ジョンソン 高速信号ボードの設計 応用編の2冊。

僕は1冊目の原書しか読んでいません。2冊目は途中で放置してます。こっち側の勉強するよりは、SystemCを勉強する道を選んだから。

この本を読んで勉強しようとする人は、書いてある内容を消化するのにかなりの労力をかけることを覚悟しないといけない。内容も切り口もすばらしいのだが、いかんせん古い。原書の時点で1993年、15年近く前だ。基板だって、コンデンサだって、半導体だって15年分の進化がある。具体的に言えば、今現在、高速動作が必要なところにDIP部品なんて使わないが、1993年当時はパッケージの選択が高速回路設計とリンクしていたのだ。読む価値が無いかというとそうではない。高速回路に関わる人であれば全員に読んで欲しい内容である。

この本を読むときは、15年前の本だと言うことを頭に入れて、数字に関する部分は全部調べ直して欲しい。今のコンデンサのESL(等価直列インダクタンス)の値はいくなんだろうか、とか、時に最新のデータシートをダウンロードし、時にトラ技のバックナンバーをあさり、会社に転がっている基板で実験し、そうして自分の物にしていく必要がある。

この本の内容をちゃんと説明できて、回路設計に反映できる実力があれば、ESECでもEDSFでもどこでもセミナー開ける。基板のデザインハウスや、シミュレーション屋さんはいろんな事を知っているけど、時に伝送線路至上主義に陥り、実際に回路を動かして状態を見られる人は少ない。DDRを安定動作させるという意味では、伝送線路をターミネーションするのも、リフレッシュをずらしながら発生させるのも同じレベルで大切だし、同じレベルで手を抜いてもなんとかなる。ノイズは一番弱いところを襲う。

僕の場合は、そうやって勉強したことが一生の知識になるとは思えず、業界全体が「基板の設計が楽になるように部品とプロトコルを決める」方向に進んでいると思ったので、こっちの勉強は止めてしまった。そんな僕が言うのもあれですが、ちゃんと勉強したいなら読んでみよう。そして、いろいろ調べて、手を動かして自分の物にしてください。

| | Comments (0) | TrackBack (0)

2007.06.16

今日の読書

ねくら少女の2巻と、文学少女の2巻を読んだ。文学少女は本当によい。と書きかけて、いつのまにか「通勤途中にものすごい勢いでラノベを読みまくるblog」になっていることに気がつく。英語の勉強を再開しようと思ったが、結局しなかったり、SICPは2章が終わって満足してしまったり、ダメ人間モードだ。

| | Comments (0) | TrackBack (0)

丸くて白い!

アリフレロ読みました。

2chでは、ドグラマグラの再来とまで言われていたが、そこまで来てはいない。ただし、かなりクトゥルフ入っている、作者の脳みそが。作者の文章力の不足には感謝しないと行けない。もし、作者が世界を記述する十分な文章力を持っていたら、リアルでSANチェックをしないと行けなかったと思う。1234にクレイジーとルビが打てるのはこの本だけだ。こういう本こそPTAでチェックして18禁にするなり、青少年には目の届かない所におくべきだ。ちなみに電車の中で頭を抱えた本はこれがはじめて。

絵は可愛いし、プロットもわかりやすく、キャラが立っていて、文章も読みやすい。が、全体的に混沌としていて、理解できない。書いている途中で、いや数ページ毎に作者の記憶が入れ替わっている気がする。

100点満点で点数を付けると100i (iは虚数単位)くらいの点数はあると思う。僕たちの座標軸では評価できない。

| | Comments (0) | TrackBack (0)

2007.06.14

アトムとハッカー

会社の人とアトムについて話すことがあって気がついた。
僕の理想とするハッカーは天馬博士なんだ。

自分の子供の代わりにロボットを作って、なぜか10万馬力にしてしまう。この時点で相当駄目。
そして、自分が作った仕様(背が伸びない)を納得いかず、アトムを捨ててしまう。

人間的にはどーしようもないんだけど、天馬博士以外にはアトムは作れない。
かなりあこがれる。

| | Comments (0) | TrackBack (0)

娘について思ったこと

最近2歳の娘が長い日本をしゃべるようになってきた。子供ってのは知らないうちにどんどん言葉を覚えていく。もし、家族そろってアメリカに移住すると、娘は英語ペラペラになるんだよな、日本語しゃべれなくなるけど。子供ってのは生まれたときには本当に無限の可能性があって、子供を育てるということは「その子の可能性を広げる」と同時に「可能性を狭めている」って事でもある事に気がついた。
今から、HPの電卓を与えると逆ポーランドでしか計算できないそんな娘にも育てられるんだよな。

親ってのは責任重大だ。

| | Comments (0) | TrackBack (0)

バッドノウハウ

オープンソース開発ができる日本の会社の私のコメントについて

新しい設計手法がWorld Wideで盛り上がっているのと、日本の半導体設計がきついのは両方真とか、わざと面白そうな所だけ書いているとかそういうのを抜きしても気になったのが一点。

> いいですなぁ,バッドノウハウがほとんど無い世界ですからね.

むしろ自分が作ったところがどんどんバッドノウハウ扱いになっていく世界。

当時はこうだったんだとか、そんな重要だと思ってなかったとか、何も考えてませんでした、とか言い訳はいっぱいあるんだけど、「何でこうしてあるのか?」が直感的に分からず、設計者本人が見ても明らかにおかしいものを引き継いでいかないといけない辛さがある。それも自分が引き継ぐのではなくて、ユーザーや同僚にそれを受け入れてもらわないといけない。新しい世界で物を作るって事は、バッドノウハウの生みの親になる事から避けられない。これって、バッドノウハウだよね~って苦笑する立場から、苦笑される立場になるって事。そしていったんプロダクトとして、リリースされてしまうと、それらの修正はまず不可能だ。プロダクトの終焉まで引きずらないといけない。

クリティカルな誤りなら直せるんだけど、我慢すればなんとかなるってのはずーっとバッドノウハウとして残る。これは技術の話ではなく、純粋にビジネスの話。Joelのエッセイも参考に。

というわけで、バッドノウハウと呼ぶときには愛を込めてください。しょうがないなーって笑ってやってください。
こんな風にに怒らないでください。

| | Comments (2) | TrackBack (0)

今日の読書

ゼロの使い魔
ルイズキタコレ。才人(サイト)って名前に 日記猿人が浮かんだ僕は十分おっさん。

とらドラ
こっちも、ストレートど真ん中。ストーリも良いし、キャラも立ってる。あと、長門っぽいのが一人欲しいなぁ。


天帝のつかわせる御矢
悪夢のような作品だった。これをミステリーの棚に置いたり、帯に本格みたいな文字を入れるのは反則では。ハルヒの横くらいに置いておいてちょうど良い・・・。

ESLの本
3章終了。EDAのbig3の中でMentorが褒められている。まあ、現状を見る限り、状況はそんな単純じゃなさそうだ。

SICP
2章終了。最後の数式処理システムでは、データの表現方法を最後に決めるのね。これが普通に受け入れられるシステムってすごいと思う。C言語だと、まずデータ構造決めないと前に進まない。

失敗学のすすめ
これはよい。いかに失敗を伝えるべきかについて具体的に書かれた本。
気になった点をメモ。
・失敗は実名で伝える。
・「事象」「経過」「原因」「対処」「総括」「知識化」の6項目で行う。
・「封印技術」という考え方
・ISOを形だけ取り入れると「仏作って魂入れず」

というわけで、ゼロの使い魔、とらドラ、文学少女、ネクラ少女の2巻買ってきました。

| | Comments (0) | TrackBack (0)

2007.06.09

Evolution of ESL Development

ESL Design and Verification のChapter 3から。

この章は、ESLツールの歴史についてまとめられている。他業界から転職してきた私にはとても勉強になる。
各項目に Trailblazer という記述があり、Virtual Component Co-Designや、Behavioral Compilerが紹介されている。

C言語設計が、SpecCやらHandle-Cやら乱立する中、SystemCに一本化されていく様子も書かれている。
SpecCが、日本の会社で作られたことを初めて知った。ブルーレイみたいに、日本企業と海外企業でそれぞれ陣営に分かれて規格争いをするのはよく見るけど、日本の大企業がこんなに手を組むって今から見ると珍しいと思う。

SpecCが負けてしまった理由として「商用のEDAベンダーがメンバーに入っていないよね」という指摘は正しく、痛いところを突かれている。EDA業界に取って日本はお客でしかなく、国産のEDAツールがほぼ壊滅している現状が招いた結果だと思う。FPGA業界も同じだけどね。ちょっと寂しい。

| | Comments (3) | TrackBack (0)

Systemc: Methodologies and Applications

Systemc: Methodologies and Applications 読みました。

いくつかの事例が並べてあるが、表面的な事しか書かれていないので無理して読まなくても良い。応用事例を調べたい人にはお勧めですが、今ならTLMとかが中心になるだろうし、歴史の通過点の一つにすぎないと思う。ちなみにSystemC 2.0の話です。

どちらかというと後半の方が面白い。
Chap8では、ポインターを使わないでどうやってObject Orientedな機能を使用するか、Chap9ではSystemC 3.0を先取りしたようなソフトの検証について書かれている。Chap10、Chap11はアナログ系シミュレータとの結合について書かれている。

この辺りに興味があるなら良いかも知れないが、すぐに役に立つ情報があるわけでもなく、無理して買わなくても良いでしょう。

| | Comments (0) | TrackBack (0)

2007.06.07

今日の読書

ネクラ少女は黒魔法で恋をする
まずまずのおもしろさ。絵に助けられているかも。


“文学少女”と死にたがりの道化
これは(゚∀゚)イイ!!
太宰読みたくなってきた。

とある魔術の禁書目録(インデックス)〈11〉
文章が安定してきた気がする。どんどん読むよ。

狂乱家族日記 7さつめ
なんだか読むのがしんどくなってきた。でも、このシリーズ人気あるのね。

Computer Architecture: A Quantitative Approachの最新版がでているなんて!
今すぐ欲しいけど、売り切れる本でもなさそうだから今月のお給料はいるまで我慢しよう。


| | Comments (0) | TrackBack (0)

式神ちゃん

ET Westでの一番の収穫。


アックスの女の子の名前は式神ちゃん。
ちなみに画像は日経bpから無断借用。

| | Comments (0) | TrackBack (0)

今日の日記

gaucheから調べていって、こんなサービスを発見。
http://karetta.jp/top
ここでいろいろと書いて、完成度が高まれば出版までいくのか。すごいな。


暗号ネタ
http://www.geocities.jp/andosprocinfo/wadai07/20070602.htm
通信を傍受しようとすると、系が乱れるのがみそか。

fpga-lab.org/を発見。
Verilog+FPGAの方で頑張ろうかな・・・

FreeBSDネタ
思い切ってSystemCの勉強に使っている環境をupdateしてみた。
カーネルのupdateの最後(make installkernel)でpanic、そのままfsck地獄に突入。駄目だ、またもupdate失敗。そして、Virtual PCなんだからバックアップなんか100%できたのに、と今更ながら悔やむ。今動いているムラマサの方はしばらくそのままにしておこう。
大事なことは、バックアップするファイルを明確にしておくことだと、今更ながら気がついた。
ここの人が聞いたら、あたりまえじゃーと怒られそうだが、身をもって分かった。
FreeBSD 7.1くらいになったらもう一回頑張ろう。

| | Comments (0) | TrackBack (0)

2007.06.05

シンプリシティがHARDIを買収

http://www.synplicity.jp/corporate/pressreleases/2007/synprjp_070531_synplicityandhardi.html

普通にびっくり。

| | Comments (0) | TrackBack (0)

2007.06.02

AVM in_order_comparator 再挑戦

ここまで絞り込んだ。


#include "systemc.h"

//#include "in_order_comparator.h"
#include "tlm.h"

int sc_main(int argc, char *argv[])
{
tlm::tlm_event_finder_t >, sc_dt::sc_int<8> > finder;

// in_order_comparator< sc_int<8> > c("comp");
//tlm_nonblocking_get_port< sc_int<8> > before_port("befor");

return 0;
}

g++ -g -DSC_INCLUDE_DYNAMIC_PROCESSES -I. -I.. -I. -I/home/natu/systemc/systemc-2.2.0/include -I/home/natu/systemc/TLM-2005-04-08/tlm -c main.cpp
/home/natu/systemc/TLM-2005-04-08/tlm/tlm_event_finder/tlm_event_finder.h: In function `int sc_main(int, char**)':
/home/natu/systemc/TLM-2005-04-08/tlm/tlm_event_finder/tlm_event_finder.h:68: error: `tlm::tlm_event_finder_t::tlm_event_finder_t() [with IF = tlm::tlm_nonblocking_get_if >, T = sc_dt::sc_int<8>]' is private
main.cpp:8: error: within this context
main.cpp:8: error: cannot declare variable `finder' to be of type `tlm::tlm_event_finder_t >, sc_dt::sc_int<8> >'
main.cpp:8: error: because the following virtual functions are abstract:
/home/natu/systemc/systemc-2.2.0/include/sysc/communication/sc_event_finder.h:96: error: virtual const sc_core::sc_event& sc_core::sc_event_finder::find_event(sc_core::sc_interface*) const
*** Error code 1 (continuing)
`a.out' not remade because of errors.

ここから先は、腰を据えてソース追わないと駄目かな。

何となくだけど、AVMはSystemCの最新(2.2)と古いTLM(1.0)を要求し、古いTLMは古いSystemCを要求しているから
不一致起きているんじゃないだろうか・・・
つまりTLM1.0は、SystemC2.2に対応しているのか?
もしくは、gccのバージョンが駄目なのかも。

| | Comments (2) | TrackBack (0)

AVM in_order_comparator

in_order_comparator周りでエラーが起きている。クックブックを見てみると
順番に入ってきたデータを比較するクラスらしい。
AVM Encyclopedia ってSystemVerilogの説明なのが気になった。


こんなソースにたいして、

#include "systemc.h"
#include "in_order_comparator.h"

int sc_main(int argc, char *argv[])
{
in_order_comparator< sc_int<8> > c("comp");
return 0;
}

こんなエラーが出る。


/home/natu/systemc/TLM-2005-04-08/tlm/tlm_event_finder/tlm_nonblocking_port.h: In member function `sc_core::sc_event_finder& tlm::tlm_nonblocking_get_port::ok_to_get() const [with T = sc_dt::sc_int<8>]':
/home/natu/study/AVM/mentor/avm30/libraries/systemc/avu/in_order_comparator.h:75: instantiated from `_in_order_comparator::_in_order_comparator(sc_core::sc_module_name) [with T = sc_dt::sc_int<8>]'
/home/natu/study/AVM/mentor/avm30/libraries/systemc/avu/in_order_comparator.h:159: instantiated from `in_order_comparator::in_order_comparator(sc_core::sc_module_name) [with T = sc_dt::sc_int<8>]'
main.cpp:8: instantiated from here
/home/natu/systemc/TLM-2005-04-08/tlm/tlm_event_finder/tlm_nonblocking_port.h:41: error: cannot allocate an object of type `tlm::tlm_event_finder_t >, sc_dt::sc_int<8> >'
/home/natu/systemc/TLM-2005-04-08/tlm/tlm_event_finder/tlm_nonblocking_port.h:41: error: because the following virtual functions are abstract:
/home/natu/systemc/systemc-2.2.0/include/sysc/communication/sc_event_finder.h:96: error: virtual const sc_core::sc_event& sc_core::sc_event_finder::find_event(sc_core::sc_interface*) const
*** Error code 1 (continuing)
`a.out' not remade because of errors.

sc_event_finder.h で宣言されている純粋仮想関数が無いですよってエラーだよね。
virtual const sc_event& find_event( sc_interface* if_p = 0 ) const = 0;


そのエラーを起こしているtlm_nonblocking_port.h:41がこれ。
return *new tlm_event_finder_t< get_if_type , T >
(*this, &get_if_type::ok_to_get );

ああ、それで、こういう表現になるのか。
cannot allocate an object of type `tlm::tlm_event_finder_t >, sc_dt::sc_int<8> >'

| | Comments (0) | TrackBack (0)

AVM update

3.1でました。早いねー。

2007-05-18 mglasser

* Modified avm_blocking_peek_port, avm_nonblocking_peek_port, and
avm_peek_port so that a port type of AVM_PORT is passed to the
parent constructor instead of the erroneous AVM_EXPORT.

* Fixed avm_report_handler::report() so that it responds properly to
m_max_verbosity_level. Prevsiously it ignored the setting of
m_max_verbosity_level.

2007-05-16 mglasser

* Release AVM-3.0

| | Comments (0) | TrackBack (0)

« May 2007 | Main | July 2007 »