みなさま、
明けましておめでとうございます。

昨年は、3月11日に東日本大震災が発生し、大変な年だったと思います。被害に遭われた方には更に大変な年だったと思います。心よりお見舞い申し上げます。
私は昨年一年間「点と点を繋げて線にする」と言うテーマでやって参りました。
流れを理解してつまり先を見越して先手を打っていけるようにと言うことを意識してきました。
100%とは言えないですが、一歩ずつ前進して行けているのではと思っています。
今年は、創立10周年で「拡大完勝の年」を弊社の合い言葉にして精進して参ります。
10周年をやり切ったと言う気持ちで終われるように、2年前に掲げていた「実」と同じように「為すべき事を為す。」と言う意味と「皆の為に、自分の為に」の意味も込めまして、「為」を心に精進して参る所存です。
今年のブログは、技術面だけでなくD-CLUEで培った思い(心)を表現して行けたらと思っていますので、よろしくお願い致します。
2012年1月吉日
最近、知り合いの家庭菜園にお邪魔して土いじりをしたりしました。
そこで懐かしかったのは、オケラを見たことです。
田舎から神奈川に来て20数年、更に言うと大学で上京してから約30年の間でオケラを見たのは、本当にこの1度だけでした。
自然が減っていてその機会が少なくなっているのは事実でしょうけど、自分が自然から離れているんだと考えを新たにしました。
D-CLUEでは、「環境エレクトロニクス」と銘打って人間主義をベースに環境について考えていますが、家庭菜園を経験して更にイメージ(想像力)を付けて行きたいと思います。
最近、20年以上の経験のある演算器開発が活きる機会が多いと感じています。
昔もあったのですが、アルゴリズム開発をMatlabで行う際にFloating Pointを使われる方が多いと思います。
最初はそれでも良いのですが、いざハードにする段階で有効桁がどのぐらい必要か?動作周波数はどのぐらいまで出るか?などで実現性を後からになって確認することになり絵に描いた餅になってしまう可能性があります。
下の図のようにFloatとIntでは有効桁が違います。また、Intは除算を行うと有効桁落ちして精度が悪くなります。このような時にはFixed Pointを使うべきだと思います。
IntとFixの違いは、小数点の位置の違いだけです。乗算などをした時に次の図のように
倍のビット数の結果から小数位置を合わせて抜き出します。
新郎新婦とは7,8年の付き合いで歳は一回り半ぐらい離れています(^^;
新郎は、数ヶ月前から色々準備をしていたようで終わった後に飲んだ時に「終わってから虚脱感に襲われて何もする気にならない。」と言っていました。
この話を聞いて誰かのためにという思いから一生懸命やり遂げたからこそ言える言葉だなぁと思いました(^^)。お幸せに!!
これをSystemC-AMSのELNレベルで記述すると次のようになります。
6行目は、前述と同じです。
7行目は、前述のファイルをincludeしています。
9行目は、SystemC-AMSのトップ関数になります。
12行目は、GNDを定義しています。
14,15行目は、ELNレベルの信号(ネット)を宣言しています。
19行目は、テストベンチで信号を与える為の信号で、ELNのsca_nodeには直接信号を代入出来ないからです。
27~30行目は、rc_elnモジュールのインスタンス宣言になります。
32~37行目は、トレースファイルの指定とトレース信号の指定になります。
39行目は、信号sigに"0"を代入します。
41行目は、1ms時間を進めます。
同様に43行目は、信号sigに"1"を代入します。
45行目は、10ms進めます。
48行目は、トレースファイルをクローズします。
以上でファイルの準備が出来て、コンパイル&実行するとVCDファイルが出来て、その波形を確認すると下の図のようになります。
以上でSystemCの簡単な紹介ですが、機会を見つけてまたご紹介したいと思います。
ありがとうございました。
以上です。
最近、ネット検索をしていて、射法八節と言う言葉を目にして懐かしく見入ってしまいました。
実はこの射法八節と言うのは弓道の言葉で、大学の頃弓道をやっていた私にとって懐かしい言葉でした。
八節とは、以下の8つの動作(気構え)のことです。
足踏み、胴造り、弓構え(ゆがまえ)、打起し、引分け、会、離れ、残心
D-CLUEに入ってから改めてこの8つの中で気に入ったのは、「会(かい)」です。
会と言うのは弓を引いた状態で矢が放たれる手前の状態です。
弓の世界では矢は放つのではなく自然と放たれるのだとされています。いつ放たれても良いように常に背骨を軸に矢に向かって矢を引いている状態がこの会と言う状態です。
目には見えないですけど、この状態は止まっているのではなくジワジワと伸びているのです。
「D-CLUEに入ってから改めて…」と書いたのは、以前ならそのようなことまでは考えもしませんでしたが、D-CLUEに入ってからは良い緊張感があり、常に真剣勝負であるし、いつどのような商談が来ても受けて立つと言う気構えでいますので、その状態が昔やっていた弓道の射法八節を見て、あ~今はこの会の状態なんだなぁと実感しました。
さて、前回SystemCについてさわりを書きましたが、今回はSystemCで組合せ回路と順序回路を具体的に書いてみたいと思います。簡単ですけど次のような回路の記述を例にします。
まずは、VHDLで言うところのentityに相当するsample.hファイル(上記)について説明します。
4行目は、SystemCを記述するのに必須のincludeファイルになります。
6行目は、sampleと言うモジュールを宣言しています。
7~17行目は、入出力宣言で、上位階層と接続する信号を定義します。
22~25行目は、C++で言うプロトタイプ宣言です。関数の実体はsample.cppで提示します。
27~36行目は、C++で言うコンストラクタ宣言でこのクラス(モジュール)が宣言された時に一度だけ実行されるものを定義します。
31行目は、関数の呼び出し宣言であるSC_METHODでfunc_regを定義しています。
また、32行目ではrst,clkでその関数が呼び出されることを定義しています。
これをセンシティビティ宣言と言います。
34~35行目もfunc_regの宣言とほぼ同じですが、sensitive_posとsensitiveの違いがあります。
次にVHDLで言うところのarchitectureに相当するsample.cppを説明します。
4行目は、このファイルで使用する変数、関数を宣言しているsample.hをincludeします。
7~12行目は、func_reg関数の実体でrstが1ならリセットなのでoutaが0になり、1ならoutaにはinaの値が代入されます。
14行目は、func_and関数の実体でinbとincのandをoutbに代入します。
先ほど、VHDLと比較してentityとarchitectureに対応させましたが、実際には次のような違いがあります。verilogも一緒に比較した表を載せます。
このように「違いの分かるエンジニア」を目指せばどんな言語だろうとアルゴリズムでお話が出来ると思います(^^)私の持論です。
次回は、実際にSIM環境を紹介したいと思います。
以上です。
先日、またミュージカルに行ってきました。
今度のタイトルは「リトルプリンス(星の王子様)」です!
今回はかなり前の席で表情まではっきり見えてすごく良かったです。
この写真は、写りが悪くてすみません。安寿さん、福田さん、社長!m(_”_)m
真ん中の方が安寿(あんじゅ)さんです。本名です(驚)!今回の役どころは花です。王子との会話があるのですが、花なのでずっと座っているのに音量も王子と同じくらいでした。さすがヨガで鍛えているだけありますねぇ(^^)
表情が見えて何が良かったかと言うと、全身を使って感情を表現していることは前からすごいと感動していたのですが、表情でも常にシグナルを送っていたんだなぁと感じることが出来てますますミュージカルにハマりました(^^)
今回は、前回の「ホーム」のほのぼのした感じプラス童心に帰れる感じです。
中でも一番印象に残ったのは、「大切なことは目には見えない」と言う言葉です。
D-CLUEに入っていなければ、そのままふ~んでやり過ごしていたかも知れませんが、D-CLUEで培った(鍛えられた)思いや意志を根底に考えると日頃社長に言われている心の動体視力を鍛えることが目には見えないものを見えるようにするし、それが見えてきた時にすぐに反応が出来るようになるのだなぁと考えられるようになりました。感謝です!
さて今回は、SystemCについて書いてみたいと思います。
めちゃくちゃ詳しいと言う訳ではありませんが、ソフト(プログラム)が苦手なディジタルエンジニアが日本では多いと感じているので、そんな人たちにお役に立てればと思います(^^)
実は、D-CLUE創立当時にまだディジタルメンバがほとんどいない時に論理検証するのにSystemCって有効(おもしろ)そうだなぁと思って使って見たことがあります。
実際にそれがすぐに役に立って良かったと思った記憶があります。
しばらく使わないうちに検証ライブラリなどが増えていて使いこなせてはいないけど、使えれば有効だと思っています。
さて、SystemCって良くVerilogやVHDLと比較されますが、C++のクラスライブラリって表現を良くします。これがソフトに詳しくない人はピンと来ないのだと思います。
私もソフトの専門用語など熟知している訳ではないので自分なりの言葉で説明してみたいと思います。
C++はオブジェクト指向の言語で、オブジェクト (class) を定義するのと、そのオブジェクトに付随する変数と関数を定義します。
それらを集めたものをクラスライブラリと言います。(たぶん)
MFCライブラリって言うのが有名ですね。MFCはMicrosoft Foundation Classの略で
「Windows用のアプリケーション構築のためのアプリケーションフレームワーク(クラスライブラリ)である」ってWikipediaにあります。
つまり、C++のコンパイラがあれば、SystemC記述をコンパイル、リンクしてシミュレーションを実行出来る訳です。
Linuxであれば、g++を使って環境を構築出来ますし、Windows上であればVC++で環境を構築出来ます。ただ、VC++の場合にはバージョンに左右されるみたいなのでVC++について詳しい知識が必要になるかもしれません。
SystemCがクラスライブラリと言う説明が終わったところで、では、SystemCの文法ってどのようなものかをVerilogと比較してみたいと思います。左側がVerilogで右側がSystemCです。
まず、大きな違いはSystemCはファイルを2つに分けます。VHDLもそうする場合がありますが、目的がちょっと違います。
VHDLの場合にはentityとarchitectureでファイルを分けていて1つのentityに複数のarchitectureを関連付けるためです。
SystemCの場合には、上位階層にヘッダファイルをincludeする必要があるためで、includeしないとコンパイルでエラーになります。
2つのファイルとは、
1つは、ヘッダファイルでSC_MODULE宣言を記述します。
もう1つは、ソースファイルで動作を記述します。
繰り返しになりますが、ネットで流れている資料はハード屋さんにはちょっと理解しづらいと思っている人に理解しやすいように説明したいと思います。
以上です。
先日、社員旅行に行って来ました(^^)
場所は創立から5回目になる沖縄です。

この旅行を実現してくれた社長に感謝です!ありがとうございました!
また、この旅行を盛り上げてくれたスタッフ一同にも感謝です!皆さんご苦労様でした!
旅行は例年の通り2泊3日でした。
初日は5回目にして初めてオリオンビール工場の見学に行きました。
浴びるほど飲んだビールがどのようにして作られているか見ることが出来て楽しかったです。
実はこの工場見学コースはリニューアルオープン3日目で綺麗になっていて魅力も増えたんだと感じました。
作りたてのビールは格段にうまいですね(^^)ビール飲んだだけではなく、
当時ビール造りが難しいと言われた沖縄で奮闘した人たちが居て、このオリオンビールが出来たんだということも知って、さらにビールがおいしく感じられたし、先人への感謝の気持ちも良いおつまみになりました。
オリオンビールも飲んで気持ち良くなったところで、
次は、見晴らしの良い食事どころに行きました。
海がパノラマ状態で最高でした。この写真は自分の携帯で撮ったのですがモードを変えずに撮ったのでピントが合わずにこんなことに。。。
このすばらしい景色を見ながらこの沖縄の家庭料理のような(?)食事をしました。
味噌汁ではなく煮麺(にゅうめん)があっさりしていてホッとするし、
鯖の脂ののりが良くてご飯が進むし、最高でした。「農村喫茶」のおじさん、おばさん(おねえさん?)御馳走様でした!
お腹もいっぱいになって、いざみんなで泊まるホテルへ。
旅行で恒例のイベントも例年以上に盛り上がりました。
今年は全然サンダルが飛びませんでした(;_;)
宴会もかなりの盛り上がりだと思います(^^)
が、写真は控えさせて頂きます(^^;
この旅行を通じて更にD-CLUEは団結力が高まったと感じています。
これからもその団結力を持ってお客様に「さすがD-CLUE!」と言って貰えるように頑張りたいと思います。
最後に、お陰様の方々に感謝感謝の気持ちを込めて締めたいと思います。
以上です。
写真で分かる人も居ると思いますが、新横浜までつい足を伸ばしてしまい、帰りがあることに気が付いた時にはちょっと後悔しました。
実は、その日は自転車を会社のビルに置いて次の日の明るいうちに乗って帰りました(^^;
東北地方太平洋沖地震から6週間が経ちました。
福島に居る姉と久々に話をしました(^^)
話の内容は、甥っ子(姉の長男)が仙台の大学生で3年になりキャンパスが変わって引っ越しをしたのでインターネットが使える環境の構築の話でした。
母はたくましいなぁと思った次第です(^^;
実は私も引っ越しをしました。ベランダからは富士山が見えます。
富士山が見える家は、生まれて初めてで晴れた日に富士山が見えると元気になりますね。
まず、非同期の定義ですが図のようにあるクロックで叩かれた信号を別のクロックで叩く場合にその信号の非同期の乗り換えがあると表現します。
複数の信号は、どのように乗せ換えるかですが、
カウンタとランダムデータで違うと思っています。
カウンタでよく知られているのは、Gray-Codeでの乗り換えですね。
値が1ずつインクリメントされる代わりに、1ビットだけが変化します。
詳しくは、ネットで調べて下さい(^^;
これは、毎サイクル変化するような回路には対応出来ません。
その時にはFIFOになると思います。
お分かりかと思いますが、その時に利用するのがGray-Codeですね。
ライトポインタとリードポインタはそれぞれカウンタで構成していますからライトカウンタをGray-Code変換してリードクロックで2段叩いて逆Gray-Code(Binary)変換してリードカウンタと比較してEmptyをチェックします。
また、リードカウンタをGray-Code変換してライトクロックで2回叩き逆Gray-Code(Binary)変換してFullをチェックします。
EmptyやFullをチェックする時の注意点として大事なのは、ライトとリードの周波数です。
遅い方は、早い方が連続して変化(ライトまたはリード)すると取り込めない可能性があるので、例えば、2倍の速度であり場合によっては、カウンタ値を+1したものと+2したものを準備して全部で3つの値を比較するようにすれば、取りこぼしがなく設計できます。
非同期は、設計初期の段階でちゃんと設計しないと論理SIMでは一生エラーが出ない可能性があります。みなさんも気を付けましょう!
以上です。
みなさま、
明けましておめでとうございます。
昨年は「為すべきことを為す」と言うテーマで精進して参りました。
今年は、「点から線にする」をテーマに物事を1つ1つの事象で捉えるのではなく、ストーリーとして捉えられるように精進して参りたいと思っています。
また今年は、うさぎ年にちなんで「飛躍完勝の年」を弊社の合い言葉にして精進して参ります。
昨年のブログは、技術自体の話よりも如何にして手間を省くかと言うことをテーマに思いを表現して来ました。
ディジタルの場合には扱う設計物(論理)自体が大量であるために見逃したりする人的ミスが起きやすいと思っています。
その人的ミスを如何に無くすかと言うことが、本質的に頭を使う時間を確保出来ると信じています。
本年も思い付くところを綴っていきたいと思いますので、よろしくお願い致します。
2011年1月吉日




