ExcelとPerlでライブラリファイルを作る
LCoVを使ってピン数の多いデバイスのライブラリデータを作るのは結構骨が折れます。
ピンの定義をスプレッドシート形式でできればもっと楽になりそうですが、使いやすいものにしようとするとプログラミングも骨が折れそうな気がしました。
そんなわけで、Excelで作ったCSVファイルからライブラリファイルを作る方法です。
初めはコンバータをC++で作ろうとしていたのですが、2ちゃんねるの電気電子板の「BSchを使いたおせ」スレを見ていたら、perlでやっているよ、という方がおられました。もともとライブラリのLB3データもテキストファイルですし、perlで処理をするのも面白そうだと思いました。
それにperlなら必要に応じて簡単にプログラム(スクリプト)を書き換えることができます。
とはいえ、私自身はperlスクリプトを組まなくなって何年も経っていてすっかり忘れています。紹介するスクリプトは、初心者向けの本を引っ張り出してきたり、Google先生で調べたりして作ったものなので、かなりいい加減なものだと思います。
スクリプトと下記サンプルデータ(csv2comp.lzh 4,722bytes)のダウンロード
1. 仕様
2. Perlのインストール
Linuxならたいていは最初から使えるようになっていますが、Windowsなら別途インストールが必要です。
Active state(http://www.activestate.com/Products/ActivePerl)のFree Downloadから辿り、Windows の MSI形式をダウンロードします。
ダウンロードが出来たら、これをダブルクリックしてインストールを行います。
3. CSVファイルの作成
楽をするためにCSVファイルからLB3ファイルを作るのですし、CSVファイルも元になるデータを部品メーカーのサイトからもらってくることにします。ここではXilinxのSpartan3のXC3S200-PQ208を例にとって解説します。
(3-1)ピン配置のCSVデータをダウンロードする
(3-2)ダウンロードしたファイルを解凍して、目的の部品のCSVファイルを開く
ピン番号目的の部品のピン名以外は要りません。上で着色したカラムは削除します。
また、ここで紹介するスクリプトでは、2カラム目がピン名、3カラム目がピン番号になりますので、上のB列とE列は入れ替える必要があります。
(3-3)1行目をヘッダーに書き換えたり、ピン位置を書き加えたりする
1行目はヘッダーです
A1 部品名 ライブラリで呼び出すときの名前になります。 B1 部品番号プリフィクス そのままです。ここではUとしていますが、ICでももちろんOKです。 C1 部品の幅 部品の幅をグリッド単位で指定します。 D1 部品の高さ 部品の高さをグリッド単位で指定します。
2行目以降はピンの定義です
Ax ロケーション ピンを配置する位置を[LTRBのいずれかの文字]+[数字]で表現します。LTRBはそれぞれ部品の左上右下を表します。数字は、部品の左端または上端を0としたグリッド単位のオフセットです。 Bx ピン名 ピンの名前です。 Cx ピン番号 数字だけでなく、アルファベットも使えます。ただし、ここで指定したピン番号がそのままネットリストに出力されます。ネットリストによってはアルファベットを許容していないこともありますのでご注意ください。
これらの記入が終わったらCSVファイルとして保存します。(ここでは、保存名を"xc3s200pq208.csv"とします)
4. Perlと csvtocomp.pl スクリプトで処理をする
コマンドプロンプトから次のように入力して[Enter]を押します。
これで xc3s200pq208.lb3 という部品1個だけのライブラリファイルができます。LCoVで読み込んで確認したら、部品のコピーをしてBSch3Vに貼り付けてください。