半導体エンジニアがなぜ Perl を使うのか今では言わずと知れた Perl なのですが、筆者が初めて Perl を知ったのは1995年にアメリカ駐在を始めたときでした。 現地採用のアメリカ人エンジニアは Perl で 1. Verilog の 多重instance文、case文 を展開するプリプロセッサ 2. 100以上ある Test Case のシミュレーション実行結果の管理 (CGIを使う) などなどに活用していました。 当時 Perl は目新しく、半導体エンジニアとしては sed & awk を使って 論理合成結果やタイミング検証結果を整理する程度で、Perl のようなプログラミング言語を活用する発想があまり無かったと言えます。それもそのはず、半導体の設計を Verilog-HDLのような言語で記述することですら抵抗を感じるエンジニアが多かったですから。 そんなわけで、Perl に非常に興味を持った私は、早速 Perl の本を購入。がしかし、当時はネットで購入なんて手段がなかったので、現地アメリカの本屋に行き、O'REILLY の Programming Perl (英語版) いわゆるラクダ本を購入しました。 本で学習しながら、私が初めて作ったプログラムは、上記 2. のシミュレーション実行結果の管理 CGI をアップグレードして、自動でシミュレーションを実行させるものでした。つまり、RTL, Test Bench, Test Case のいずれかでも更新があると、それを感知して自動でシミュレーションの再実行 (Regression) を開始するものでした。 その仕組みは簡単で、設計データの管理として使われていた CVS の RTL, Test Bench, Test Case, それと共通 Work Space にある シミュレーション結果 Log のタイムスタンプを比較して、設計データのほうが Log よりも新しければ シミュレーションを再実行するだけのもの。また、この監視を1時間ないし30分間隔で行い、シミュレーションの再実行を自動化させました。ただ、発想は簡単でも実際にプログラムにするとなると、Perl のようなプログラミング言語が必要だったわけです。 なお、上記 1. のプリプロセッサは、Verilog-2001 で generate文 が登場する前の時代の話で、論理合成ツールも発達していない時代の話。今では必要ではなくなりました。 何にしても、半導体エンジニアにとって、Perl は、複雑化する設計フローをなるべく効率よく実行するために使わるようになったのです。 |
自己紹介 50才になる半導体エンジニアです。大学で電子電気工学を学び、1990年にその分野のまま就職。ASICやマイコンの設計を長く続けてきましたが20年も同じ分野にいると業態も衰退したり変化するもので退職し、今は外資のIT系会社に再就職して設計請負業をやっております。 お問い合わせは nakata.xianzhi@outlook.com Linux と 小ネタ デジタル回路設計
海外駐在後記
|