4日目の やましょうさん に続く KiCad Advent Calendar 2015 の5日目です♪
一昨日に投稿したばかりなので、急いで仕上げました。
変なところがあっても生暖かい目で見逃して下さい。
(こっそり教えていただけたら、密かに修正します。。)
はじめに
CPLDやFPGAは、同じパッケージでも設計ごとに別部品としなければなりません。
KiCadのコンポーネント・ライブラリ・エディタを使って、ピン名称と電気的なプロパティをピン毎に設定するのは、ピン数が多いと大変面倒です。
この作業の煩わしさを軽減するため、KiCad コンポーネント・ライブラリを表計算ソフトを利用して編集する方法をご紹介します。
#1.KiCad コンポーネント・ライブラリのCSVファイルへの変換
表計算ソフトに読み込んで編集するためには、CSV形式へと変換するのが一般的です。
KiCadで使われているファイル・フォーマットは、本家のHPで公開されています。
しかし、現行のライブラリには、この説明から読み取れない下記のような部分があります。(PDFでのバージョンは2.0、KiCad 4.0.0で使われているバージョンは2.3)
1.$で始まる文字列で囲まれたセクションがあり、この部分の行の先頭は空白文字となっている
2.ダブルクォートをデリミタ(区切り文字)とした文字列にURLを含むことがある
3.デリミタの空白文字が2個連続する場合がある
このため、デリミタを空白からカンマ等に置換しただけでは編集しやすいCSVファイルとはなりません。
これらに対応したC#のコード例を以下に示します。
(注:以前にDelphiで書いたものをC#へポーティングしてbug修正したものです)
ピン定義のブロックだけをカンマ区切りに変更するだけでも十分なので、よりシンプルにしても良さそうです。
#2.CPLDコンポーネントの例
図1:オリジナルのCPLDコンポーネントです。
図3:このライブラリをCSVに変換して表計算ソフトで読み込んだものです。
図4:このCPLDを使って設計した回路のピン定義レポートです。
図5:定義レポートの":"を","へ置き換えて表計算ソフトで読んだものです。
ここで、図3と図5を比べると、ピン番号の順番が異なっていることが分かります。
このままでは単純にコピペできませんが、下図6のように双方の数列を並べたものを使ってソートすることでコピペで済ますことができます。
図8:再度ライブラリ形式に変換することで希望するコンポーネントを作成できました。
#あとがき
上で引用したCSVに変換するプログラムの全ソースはGitHub上にあります。
ご興味がありましたら、どうぞご自由にご利用ください。
URL : https://github.com/starfort-jp/KiCad_LibUtil/
(ほぼ最低限の実装しかしてないので、実使用にあたっては多分コードの追加が必要です)
6日目は miettalさん の"スイッチサイエンスPCBへの発注を手助けするpython scriptを書いた話"です♪
実用的で面白そうな内容に期待大です!
発注が簡単にできたら、痛そぉな基版とか作っちゃいたくなるかも。
KiCadで痛い基板作ってる人、いるんだろうか? 作り方が知りたひ…