« December 2006 | Main | February 2007 »

2007.01.28

井倉さんセミナー@EDSF

久しぶりに井倉さんのセミナーを聞く。2年ぶりくらいでは
ないだろうか。いわいる大規模FPGAを使った時の落とし穴の
説明。FPGAが乗るボードをデザインする人はしっかり聞いた
方がよい。

僕に取っては目新しいことが無く、こういう話は卒業なんだ
ろうなぁと寂しく感じたのが正直な感想。

井倉さん自身が2001年頃と言っていたように、こういう問題が
多発したのは、APEX、Virtex-Eの頃だ。多ピン、BGA化が進み、
十分な試験がなされないまま出荷されるデバイス、毎月のよう
に変わるコンフィグ周りのデータシート。そのころに比べれば
状況は良くなっている。FPGAのアナログ的な性能は上がったし、
周辺のDCDCもラインナップが充実するとともに、適当に選ん
でも動く。

そんなことより、ア○ネット! ア○ネット!Σ(´Д` )
なんといっても、井倉さんがア○ネットにいることが一番の
驚きだ。えぇぇぇって感じ。

井倉さん「入社2年目くらいの学生・・・、」
これは本音と見た。まあ、入社したときからBGA当たり前だと
いろいろ厳しいだろうなぁとは思う。頑張れ、若い人たち。

井倉さん「DDRの電圧を下げて、他の電源系統と共有しようとすると・・・」
あるある・・・・ねーよ!

井倉さん「LX200がROMからコンフィグできずに目の前が真っ暗に・・」
これはあるある。JTAGでConfig出来て、ROMでやってみたら全然
conf doneが変化せず、報告のメール出さないとなぁって別の
パソコンの画面を見て、もう一度基板を見たらコンフィグ終わってた。
とにかく心臓に悪い。

僕も言葉を濁すけど、あれの件。
僕もFPGA間の転送だけを数年やっている人間として、等長とか
インピーダンスコントロールってのはあれだ。言い切るのは
まずいけど、そんなにきっちり働かない。少なくともそこが
ボトルネックなのかどうかはよく考えよう。そして、ちゃん
と設計通りに実物が動いているか確認しよう。

最後に、一度だけFPGAのコア電源に、トランジスタで自作した
リニアレギュレータを使ったけど性能はまじすごかった。
っていうところまで、同じようなことをしているんだなぁと
思った。やっぱりちょっと寂しい。

| | Comments (3) | TrackBack (0)

2007.01.22

EDSF

いざ、EDSFへ向けて横浜出発!

# コメントいただいているのにすいません。
# 帰ってきてからレスします。

| | Comments (0) | TrackBack (0)

2007.01.19

The Design and Evolution of C++ Chapter8

C++ D&E本を読んでいて、電車の中で電撃走る。
ザワザワ。ザワザワ。あっーーー。

cerr << "x = " << x;

が、(cerr.operator<<("x = ")).operator<<(x);と同じ。

なぜ、<<オペレータが、ostreamへの参照を返す必要があるのか
ようやく理解。

そして<<オペレータの評価順序を勘違いしていた事にも気がつく。
右から評価していって、文字列を接続していき、最後にcerrに渡すのかと
思っていった。逆だ。左から評価していって、右のオブジェクトに
戻り値として、ostreamの参照を返しているんだ。

| | Comments (3) | TrackBack (0)

今日のTLM

TLMの記事発見。

http://www.edadesignline.com/GLOBAL/electronics/designline/shared/article/showArticle.jhtml?articleId=196900909&pgno=1

SystemCとTLMの本も読みたいけど、C++ D&Eが面白すぎる。
早く読み終えよう。

| | Comments (0) | TrackBack (0)

今日のLattice

http://www.edadesignline.com/196802539?cid=RSSfeed_EDAdesignline_edadlALLから。

Latticeはどこに向かおうとしているんだろう。
横に出てくるメンターの広告の方が目立つのがかわいそうだ。

| | Comments (0) | TrackBack (0)

2007.01.13

Joel on Software

Joel on Software
読みました。

一応、Webでも日本語で有る程度読める。
このExcelの話が一番印象に残った。

引用
> この計算が意味するのは、乗り換えへの障害を取り除くことが、
> 既存のマーケットに入っていくためにあなたがしなければなら
> ない最も重要なことだということであり、それはただ1つの障害
> を除くことがあなたの売り上げを2倍にするからだ。2つ目の
> 障害を取り除けば、あなたは再び売り上げを2倍にする。

そして最後に、
「Microsoftは障害物のリストを見て、そのすべてに取り組んだのだ。」
これだ。これがマイクロソフトの強さなんだ。

| | Comments (0) | TrackBack (0)

sc_fifoの問題

sc_fifoには、write()、read() メンバ関数が用意されていて、
それを使ってアクセスができる。
しかし、channel経由でアクセスする場合は、->演算子を使う。

なぜ?

というわけで、最初の実験。
まずはsc_fifoへのアクセス方法を押さえよう。

#include

SC_MODULE(fifo_test1)
{
sc_in clk;

void process(void);

SC_CTOR(fifo_test1) {
SC_THREAD(process);
sensitive << clk;
}

sc_fifo > fifo;
};

void fifo_test1::process(void)
{
sc_int<16> rdata;

fifo.write(1);
fifo.write(2);
fifo.write(3);

wait();

std::cout << fifo.read() << std::endl;
std::cout << fifo.read() << std::endl;
std::cout << fifo.read() << std::endl;

sc_stop();
}

これはOK。ちゃんと1,2,3と表示される。

fifo.write(1); を fifo->write(1);に変えると

fifo_test1.cpp:10: error: base operand of `->' has non-pointer type `sc_core::sc_fifo >'
*** Error code 1

というエラーになる。
つまり、ある関数内部で、sc_fifoを宣言して、その中でアクセスする時は
read()/write()メンバ関数を使えばよい。


#include

SC_MODULE(fifo_test2)
{
sc_in clk;

void process(void);

SC_CTOR(fifo_test2) {
pfifo = new sc_fifo >;
SC_THREAD(process);
sensitive << clk;
}

~fifo_test2() {
delete pfifo;
}

sc_fifo > *pfifo;
};

void fifo_test2::process(void)
{
sc_int<16> rdata;

pfifo->write(1);
pfifo->write(2);
pfifo->write(3);

wait();

std::cout << pfifo->read() << std::endl;
std::cout << pfifo->read() << std::endl;
std::cout << pfifo->read() << std::endl;

sc_stop();
}

ポインタ経由のアクセスだと、->が普通にメンバ関数を呼び出している
ここまでは直感通り。

次に、sc_fifo_portsが何をしているか調べよう。

| | Comments (3) | TrackBack (0)

Perl/Tk

そんなこんなで、Perl/Tkに落ち着く。昔本を買った記憶があるんだが、
見つからない。

ここを参考にボタンを作ってみた。
広井様に感謝。ソースはこんな感じ


#!/usr/local/bin/perl

use Tk;
$count = 0;

sub push_button {
print "button\n";
}

$top = MainWindow->new();
$top->Button( -text => 'ON/OFF',
-command => \&push_button )->pack( -side => 'left', -fill => 'x');
$top->Button( -text => '1',
-command => \&push_button )->pack( -side => 'left', -fill => 'x');
$top->Button( -text => '2',
-command => \&push_button )->pack( -side => 'left', -fill => 'x');
$top->Button( -text => '3',
-command => \&push_button )->pack( -side => 'left', -fill => 'x');
$top->Button( -text => 'Bomb',
-command => \&push_button )->pack( -side => 'left', -fill => 'x');


MainLoop();

画面はこんな感じ。


キタコレ。
つーか、このPerlもキモイと感じるのは、もう年だからなのか。
最近のPerlの本も買ってこよう。そうしよう。

| | Comments (0) | TrackBack (0)

とにかくボタンを!

画面上にボタンと絵を出したくなったので、本屋にいっていろいろと探す。
第一候補としてTcl/Tk。これは家に本を買ってあるはず。あとは、GtkとQt。
とりあえず、Qtの本を買って、電車の中で読む。
ううっ、これは難しい。ていうか、どの方法でも、GUIと独立してプログラム
を動かすことは無理そう。別にスレッドなり、プロセスが必要なのね・・・

どれでも一緒なら一番簡単そうなTcl/Tkに挑戦。
orz
文法がキモすぎる・・・

| | Comments (0) | TrackBack (0)

今日の読書

メイド刑事
絵で衝動買い。嫁に見つかって「オタクだ」と非難される。
そうですよ。あなたの結婚相手はオタクですよ。

「駅すぱあと」風雲録―ヴァル研究所の開発者魂
読みました。ソフトウェア開発とビジネスのお話。市場投入の
タイミングの難しさを知る。それよりも、駅すぱあとが、
いわいる「エキスパートシステム」と引っかかっていることを
この本で初めて知った。

C++ D&E
7章まで読んだ。とにかく面白い。

| | Comments (0) | TrackBack (1)

C/C++によるVLSI設計―SystemCによるJPEGコーデック設計

C/C++によるVLSI設計―SystemCによるJPEGコーデック設計読みました。

非常に良い本です。
JPEGを題材に、アルゴリズムから合成まで、しっかりと説明されています。
モジュール間の接続を、sc_mainでやる場合と、topのコンストラクタでやる
場合の違いが説明してあったり、実際にした人でないとわからないことが
記載されていて勉強になりました。

2冊目くらいにちょうど良いと思います。

| | Comments (3) | TrackBack (0)

2007.01.04

SystemCの書籍 2007年1月

本を2冊読んだので更新。
ちょうど半分くらい。あと、リファレンスマニュアルとか、SCVのマニュアルとかも読まないと。

(1)Advanced Verification Techniques: A Systemc Based Approach For Successful Tapeout (終了)
そもそもSystemCに特化した本ではない。感想はこちら

(2)Transaction Level Modeling With SystemC: TLM Concepts And Applications for Embedded Systems

(3)Systemc: from the Ground Up (終了)
邦訳は基礎から学ぶSystemC
感想はこちら


(4)System Design With Systemc (終了)
邦訳はSystemCによるシステム設計。
SystemCに関わる人必読。感想はこちら

(5)SystemC Kernel Extensions for Heterogeneous System Modeling: A Framework for Multi-MoC Modeling & Simulation

(6)Advanced Verification Methodology Cookbook

(7)よくわかる SystemCによるシステムデザイン入門
感想はこちら


(8)C/C++によるVLSI設計―SystemCによるJPEGコーデック設計

(9)Systemc: Methodologies and Applications
1章まで読みました。結構面白い。

(10)A SystemC Primer (終了)
入手困難ですが、最初の一冊にお勧め。感想はここ

(11)SystemCを使ったハードウェア設計 (終了)
合成について記述があり参考になる。最初の一冊には向かない。感想はこちら


(12)System Cプログラミング基礎講座 (終了)
いろいろと気になる点があり、お勧めはしません。感想はここ


| | Comments (5) | TrackBack (0)

SystemCプログラミング基礎講座

SystemCプログラミング基礎講座読みました。

多分、SystemCでガンガン突っ込んでいくといつか著者との接点がでてきそうな気がします。
( ・ω・)ノ<しすてむ開発。さんの所で、著者には突っ込み有り。
こことかこことか。

勝負かけて、思った事を書いてみます。

大きく気になったのが2点。一点目は、会社の名前を出して出版している割にはチェックが甘い。
もう一点は、著者は実践的なRTLを書いたことが無いんじゃないかという点。

今日日、サンプル回路で、
#include<stdio.h>
main()
{
printf("Hello!\n");
}
は無いと思うんですがどうでしょう・・・。
こことか
省略したらからintのルールを積極的に使っているのか、don't careなのか、どちらにしても
チェックする人はいなかったのでしょうか。

さらに、「#includeの行を削除するとエラーがでる」と書いてありますが、古いコンパイラ
は出さない。さらに、SystemCの標準とも言えるgccではエラーも出さずに、普通にlibcが
リンクされる。

p53の表3.3で、intは64bit、longが32bitになっているのは目を疑う。誤植かと思ったが、
本文中にこのような記載まである。
「この表の中で、intとunsigned intを64bit型として紹介していますが、このビット幅は
コンパイラによって異なります。しかし、現在多くのコンパイラでint型は64bitとして
コンパイルされるため、ここでは64bitと覚えてしまって良いでしょう」
よくねーよ!多くのコンパイラが、64bit intをサポートしているの間違いじゃないのか。

FIFOのアクセスには、.write()ではなく->write()を使わないとだめと書いてあったり、
全加算器のcarryを
CARRY.write((A.read() & B.read()) | (A.read() & C.read()) | B.read() & C.read()));
のように悪い癖が付きそうなコーディングだったり、教育的には良くない本です。
(上の記述は、A、B、Cがsc_inだから上手く行くけど、sc_fifoになったら上手く行かない。)

最初の一冊には良くないと思います。第二版に期待。

| | Comments (1) | TrackBack (0)

A SystemC Primer, Second Edition

SystemC Primer読みました。

入手困難ですが良い本でした。
SystemCで記述した回路が、どのように回路に落ちるかを図でわかりやすく
説明してありました。各サンプルに、テストベンチもしっかりついている
のもポイント高い。

Verilog、VHDLの知識を前提としていないので、回路図から一気にSystemCに
ジャンプしたい人にもお勧め。なにげに、最後の章でgdbのbt(back trace)に
ついて書いてあるのもうれしい。
最初の一歩としては、Systemc: from the Ground Upよりもいいかもしれない。

普通に買うと高いので、中古で安く売っていたり、会社の本棚に転がって
いたら速getしよう。

| | Comments (0) | TrackBack (0)

年末年始の読書

年末年始にかけて、ちょっと濃いめの本を読みました。

SystemC関連では、SystemCプログラミングと、SystemC Primerを読む。
後者は当たり、前者はいまいち。

バイナリアンを目指して、Binary Hack Linkers & Loadersを読む。
どっちも面白い。ちなみにBinary Hackは、Linkers & Loadersを参考にしているところもあり、
あわせて読むと理解が深まる。

Binary Hackの内容は、既に知っていることが2割、勉強になった所が2割、全く理解できない
所が2割、後の4割はやっていることはわかるが使い道がさっぱりわからない。

Linkers & Loadersは随分前に買っていたのだがようやく読み切ることができた。
DLLとか、Shared Libraryとかだたくっつけるだけかと思ったら、もう一工夫が
あって面白かった。

国家の品格も読みました。いろいろと考えさせられる本でした。
この本を読んだから、年末頑張って勉強できた気がする。

紅白もお笑いも見ず、ひたすら家族サービスと読書に費やした年末年始でした。
去年は軟禁から始まり、C++/SystemCと手応えをつかんだ気がする。今年は
Lispを交えつつ、さらにSystemCに突っ込んで行こうと思う。

少しずつ自分のやりたいことの外堀が埋まっていっている気がする。

| | Comments (0) | TrackBack (0)

« December 2006 | Main | February 2007 »