見やすい回路図を書けているでしょうか?
回路図を見やすく書くことは単なる自己満足ではなく、設計ミスを減らしたり、基板設計を正しく行うことにもつながるので非常に重要です。
見やすい回路図を書く為の5つのポイントを紹介します。
ド・モルガンの法則で信号の論理を合わせる
汎用ロジックICを使った回路図は、どんな動作なのが分かり難くなりがちです。
信号の正/負論理、AND/ORを整頓することでかなり見やすい回路図にできます。
ド・モルガンの法則で論理ゲートを書き換えるのがポイントです。
見難い論理回路
下のような論理回路を考えてみます。
回路の動作としては「#CSと#RD信号が両方Loになった時にICから信号が出力される」となりますが、ぱっと見ただけで動作が問題無いか判断できるでしょうか?
論理ゲートが1個なので、これくらいならば頭の中に真理値表を作って判断できますが、論理ゲートが3個、4個と増えてくるともう真理値表を書き出さないと判断出来ないのではないでしょうか。
見難い理由
この回路図が見難い理由は2つあります。
正負論理の異なる信号とピンを接続している
#CSや#RD信号はLoの時に有効になる信号(負論理)です。(一般的に#,/,n,上線なんかを信号名に付けて負論理であると表します)それに対してORゲートの入出力ピンは正論理です。
負論理のピンには(ICの1,19ピンのように)〇を付けるかピン名に#,/,n,上線を付ける慣習がありますが、ORゲートにはそれが有りません。この論理の違う信号とピンの接続が回路図の信号の”流れ”を切断しており、回路図を見難くしています。
機能がANDなのに、ゲートがORで書かれている
この回路の意味は、”#CSと#RD信号が両方とも来た時”にICの出力を有効にする、という事なのでANDロジックになります。
しかし回路図の論理ゲートがORで書かれているため、”#CSと#RD信号が両方とも来た時”という回路の機能が読み取れなくなっているのです。一見しただけでは、#CSか#RD信号のどちらか一方でも来たらICは出力する?と勘違いしてしまいます。
ド・モルガンの法則
この回路を分かり易く書き換える方法とは、ド・モルガンの法則で論理ゲートを書き換えるというものです。ここではド・モルガンの法則をまず見ていきます。それは2つの式から成り立っています。
なんのこっちゃですね。日本語に書き換えてみます。
- (AとBのOR)の反転は、(Aの反転)と(Bの反転)のANDと同じ
- (AとBのAND)の反転は、(Aの反転)と(Bの反転)のORと同じ
なんと無く分かってきましたが、視覚的に分かるようにこれをさらに論理ゲートで書き替えてみます
ようやく回路図に利用出来そうになってきました。つまりド・モルガンの法則とは、
・論理ゲートのANDとORの変換方法
・論理ゲートの正論理と負論理(〇の有無)の変換方法
この2つについての法則なのです。そしてそれは、下記のようにかみ砕く事が出来ます。
論理ゲートの入出力の論理を全て反転させてOR⇔ANDの入れ替えをしても意味は変わらない。
2種類の論理ゲートの変換方法しか示していないので、このような結論に飛躍を感じるかも知れません。これはド・モルガンの法則の論理ゲートに反転ゲートを追加することで任意の論理ゲートを作れることから言えます。
下の図で一例を示してみます。
ORゲートの入力に反転ゲートを付けてドモルガンの法則に存在するゲートに変換、そのゲートをOR⇒ANDに変換しています。その後、反転ゲートを集約して負論理入力負論理出力のANDゲートとしています。
論理回路を見やすく修正
それではド・モルガンの法則を使って論理ゲートを書き換えて回路図を見易くしてみましょう。
論理ゲートの入出力の論理を全て反転させてOR⇔ANDの入れ替えをしても意味は変わらない。
ということなので、下のようになります。
この回路図は、
- 信号とピンが全て同一の論理(負論理)で接続されている。
- #CSと#RDの両方の信号が来た時だけ(AND)、ICの#OE端子が有効になる。
という情報が視覚的に一目瞭然で、真理値表を思い描く必要もありません。
この例のように、汎用ロジックICを使った回路図を作成する場合は下記の2点に配慮して論理ゲートの見た目を配慮することで回路図の可読性を上げることが出来ます。
- 正論理と負論理のピンを接続しない。
- 論理ゲートの機能がANDなのかORなのかを考える
部品ライブラリには両方の見た目を登録
回路CADで汎用ロジックICのライブラリ登録をする際は、ド・モルガンの法則で変換できる2通りの見た目を登録しておくようにしましょう。
回路CADによって呼び方はいろいろですが、オルタネートとか代替シンボルとかコンバートビューという機能で複数の見た目を登録する機能が有ると思います。
信号は左から入力、右に出力を基本とする
回路図を書くときは、信号が左から入力されて左に出力されるように記述しましょう。横文字が左から右に書かれているので、回路図も左から右に流すと可読性が上がります。
しかし、全てを対応することも難しいのも事実です。そんな時の考え方や対応も紹介します。
信号は左から入力、右に出力が基本
正直なところ、左から入力して右に出力すると見易いというのは直感的で理解できる内容だと思います。下の2つの回路図を見比べれば、どちらが見易いかは明らかです。
2つ目の回路図の方が明らかに見易いですよね。見易い回路図の条件は下記のようなものです。
- 目線を一方向に流せば読み取れる
- 信号線が短く直線
- 信号線が交差していない
- 同類の信号がまとまっている
このような条件を満たす回路図にするためには、信号を左から入力して右に出力するように整理してやることが有効なのです。
部品シンボルは左に入力ピン右に出力ピンを配置
このような回路図を書く為には、部品シンボルの登録がポイントです。前項の1つめの回路図のように実物のピン配置通りに部品ライブラリを登録すると見難い回路図になりがちです。2つめの回路図のように部品の左側に入力ピン、右側に出力ピンを配置すると左から右に信号が流れる回路図が書けます。
CADに最初から登録されているシンボルも、左が入力・右が出力となっているものが多いですよね。
例外
左から右に信号を流すという方針はできましたが、この方針に盲目的に従えば良いという訳でもありません。また、対応困難な場合もあります。このような時の私なりの対応を紹介いたします。そんなに特別な配慮でも無く、当たり前に対応している回路も多いと思います。
入出力が混在しているコネクタ
コネクタの信号に入出力が混在しているのはよくある事です。(というかそっちの方が多い)
そんな時、コネクタの右側に信号を出すのか、左側に信号を出すのかという問題になります。入力だけならば上の回路図のように左から信号を入れれば良いんですけど。このような時の対応としては下記の2点を気にすると見易くなります。
- 電源ピンも存在するならば、電源の流れを(信号よりも優先して)左から右になるように配線する
- コネクタ先の機器との関係性で、メインを左にレプリカが右となるようにする
メイン/レプリカという言い方は、マスター/スレーブの最近の言い方。差別的な言葉を排除しようという活動で置き換えが進んでいます。
双方向の通信線
UARTのTX・RXライン、SPIのMISO・MOSIライン、などのような双方向通信の規格においては信号の入出力を整えても見易い回路図になりません。TXピンを部品右側、RXピンを部品左側に配置することになるので、同類の信号をまとめることになりませんので。
これらの通信においても、メインを左に置いてレプリカを右に置いて配線すると見やすくなります。USBなどの信号線自体が双方向の通信においても同様の考え方で良いです。
マイコン/FPGA
マイコンやFPGAのピン配列は、ポートナンバーでまとめて配列することが多いです。(ソフト設計者にとって見易いという理由が主だと思います。)
別のやり方として、実物のピン配列通りに配列するということも有ります。(基板上の部品レイアウトを考えながらピン機能の割り振りが出来るからと思います。)
私もどちらかで回路図を作成することが多いです。無理に左側に入力ピン、右側に出力ピンを揃えても回路図は見難くなってしまいます。マイコンのピンには直接周辺回路を接続せずに、ラベルを接続するようにします。ラベルは上の回路図のように矢印で信号の方向が示せますので。
(KiCADではラベルといいますが、他のCADではポートと言われたりもします。)
ブロック間の信号はラベルで入出力を明確に
各回路ブロックの間の信号接続では積極的にラベルを付けることが良いです。その理由やラベルを付けるときのポイントを記載します。
ラベルとは
この記事でいうラベルとは、下の赤丸の文字入り矢印の事を言います。回路CADによって呼び方が様々ですので、明確にしておきます。
ラベルを付けることで、別シートの回路ブロックとネット接続されます。また、信号名がラベル内の文字列に命名されます。
ラベルの利点
ラベルを使う際のポイントとして2点あります。
- 機能ブロック間の配線は基本的に全てラベルにする
- ラベルの矢印方向と信号の入出力方向を合わせる
これは、ラベルを使う事による以下の利点を最大限生かすために必要です。
機能ブロックの区切り場所がはっきりする。
機能ブロック間の信号を全てラベルで行うことで、機能ブロックの区切りがどこなのか明確になります。機能ブロックを別プロジェクトに流用する時もコピペするだけなので簡単です。各機能ブロックにコメントも付けておくとなお良し。
信号の入出力(双方向も)が明確になる。
ラベルは矢印になっているので、信号の入出力方向が明確になります。通常、信号は左から右に流して書くきますが、全てがそうも行かないです。そんな時の見易さ確保にラベルの方向指示は有効です。
大量の信号配線が交差する状況を避けることが出来る。
マイコンとコネクタ間など、すべて信号配線で接続しようとすると、線が交差しまくってぐちゃぐちゃになります。可読性が良くないし、最悪の場合接続ミスをしやすいです。ラベルにしてしまえは配線の交差はゼロにできます。
ラベルの文字列から信号の機能が読み取れる。
信号線に名前がついていることは、回路図の可読性にとって非常に重要です。ラベルには必ず名前が必要になりますので、機能ブロック間の信号には名前が付くことになります。これだけでかなり回路図の可読性は上がります。当然、全ての配線に信号名を付けることが理想ですが、非常に手間でなかなかできないです。
ラベルの使い方
それでは、KiCADでの作業を例にして説明します。
KiCADではここでいうラベルの事をグローバルラベルと言っています。信号線に命名するだけの機能として”ラベル”がありますが、これとは違います。他のCADでも同様の見た目にすることは可能ですが、ちょっとずつ呼び方や機能が違うので注意してください。
メニューバーの ”配置” → ”グローバルラベル” もしくは 画面右の”グローバルラベル” をクリックします。その後、CAD上の適当な場所をクリックするとグローバルラベルのプロパティ Windowが出てきます。
グローバルラベルのプロパティの各項目は下のように設定します。
- ラベル:信号名を記述します
- テキストサイズ:通常は1.27㎜程度が見易いです
- 角度:ラベルの接続回路先の方向をします
- スタイル:お好みで
- 形状:信号の入出力を指定します
UART_TX信号の設定例とその時のラベルは下のようになります。
ICの2ピンとラベルの左にある□を信号線で接続します。ラベルにおいも部品のピンのようなものがあり、そこに接続していないとネットリストに出力されないので注意してください。信号線と接続した後はラベルをドラッグ(Gキー押下等)して位置を微調整します。(ドラッグでは信号線の長さも一緒に調整してくれます。)その他の信号線にもラベルを付けた回路が下記になります。
USB-UART Bridge機能ブロックの回路で、マイコンなどの他の回路ブロックへの接続をすべてラベルにしています。また、ラベルの矢印で信号の入出力方向が一目でわかるようにしています。
ラベルに接続先を記載
下図のように、ラベル横に(P2)のようなラベルの接続先ページを記述している回路図を時々見ます。この記載は必要なのか、記載する場合のポイントについて説明します。
必要性
ラベル接続先の記述が必要な場合とは、回路図を紙に印刷して運用することが想定される場合と考えて良いです。CADデータやPDFで管理される場合は記載しなくても良いかと。PC上で信号の接続先を参照する場合は、信号名で検索(Ctrl+F)するのが確実で手っ取り早いです。
しかし、紙で接続先を参照する場合に接続先が書いていないと、回路図の全ページを漏れなく確認しなければなりません。接続先が1か所とは限りませんからね。これは10ページの回路図とかになるとかなりの時間ロスですし、そもそも見落としをしてしまいます。紙で回路図を運用する場合、ラベルの接続先を記載しておくのは必須と考えて良いです。
記述する場合のポイント
残念ながら紙での運用が無くせない場合、ラベルには接続先を記述しておきましょう。その時のポイントとして3点あります。
- 出力ラベルには、全ての入力ラベルのページを列挙しておく。
- 入力ラベルには、出力ラベルのページのみ記述しておく。
- 回路変更時にラベルの変更を忘れないこと。
十字結線を禁止する
回路図において、十字結線は禁止するのが望ましいです。
確かにパッと見の印象は十字結線した方がすっきりした回路図に見えるかもしれませんし、その事がこのルールがあまり浸透していない要因のようにも思えます。しかし、十字結線を認めた場合には以下のような懸念が避けられません。
- 十字結線を許容して書かれた回路図はジャンクションの有無で回路情報が変わる
- ジャンクション配置ミスは”ありがち”なミス
- ジャンクションは小さく見落としがち
十字結線を禁止して回路図を書くと結線は全てT字路になるので、このような懸念は無くなります。十字結線は禁止して回路図を書く方が、最終的に見易い回路図になると思います。
回路図の比較
十字結線の可否で回路図を比較してみましょう。(赤丸が差分です)
どちらかというと十字結線あった方が見易いと感じるかもしれません。十字結線を禁止すると配線の分岐は全てT字路になり、部品位置がずれたり配線が直線にできなかったりしてしまいます。
それなのに、なぜ十字結線を禁止するような設計ルールが有効なのでしょうか。
十字結線を禁止する理由
十字結線を禁止する理由は、配線接続の有無をジャンクション(十字路にある●のこと)に依存してしまうからです。
十字路の●は、回路図を引きで全体を確認したり、紙に縮小印刷したりすると結構見難くなります。それに対して、十字結線を禁止すると配線の分岐は全てT字路になるので、●によらず配線の接続が明確になります。
設計ミスで下のような回路図を書いてしまった場合を想定したらどうでしょうか?ジャンクション抜けにより回路接続がおかしくなっています。
このようなミスは、「ありがち」ですが結構見つけ難いです。コピー印刷された紙の回路図をマッキー片手に検図している時などは、結構な確率で見逃してしまうミスではないでしょうか。
これに対して、十字結線を禁止して回路図を書くと、配線接続点は必ずT字路になります。つまり、仮にジャンクションが付いていなくても回路接続の見た目上の意味は変わらないのです。
この、ジャンクションの有無によって回路情報が左右されないという事が、回路図の見易さにつながっているのです。
部品位置は基板レイアウトを考慮する
基板上の理想的な部品レイアウトを考えながら回路図を書きましょう。理由は下記になります。
- 隣接して配置すべき部品が別ページに書いてあると、回路の内容を把握するのが大変です。
- 回路図の見た目がそのまま基板設計者の部品レイアウトの指針となります。
- セオリーと違うレイアウトは、”私に理解できていない理由でこうなっているのでは?”というミスディレクションを起こします。
いくつかの例を出して説明します。
コンデンサは容量小さいものをICの近くに配置
・見難い回路例
・見やすい回路例
電源回路やマイコンの電源端子に、異なる容量のバイパスコンデンサを数種類使うことが良くあります。
コンデンサは一般に容量が小さいものほど高周波特性が良いため、容量小のものは高周波ノイズの除去を目的として使用されます。高周波の信号(ノイズ)ほど基板パターンのインピーダンスの影響をうけやすいのでバイパスコンデンサは容量の小さなものから順にICの端子近くに配置するのが基板設計のセオリーです。
上記のように容量が小さいコンデンサがICの外側についていると、何か特別な意味があるのか??と勘ぐってしまいます。大抵の場合、この配置には何の意味も無かったりしますが…
このように、基板設計のセオリーと異なる配置には、何の意味も無いのに意味深な印象が出てしまって気持ちが悪いです。最悪、基板設計者がこの回路図の並び順にレイアウトしてしまいます。セオリー通りに設計してほしいなら、セオリー通りの部品レイアウトにしておくべきです。
ジャンパーチップは未使用配線が短くなるように
・見難い回路例
・見易い回路例
マイコンの出力をどちらの入力ICに接続するのか、ジャンパーチップで設定できるようにしてある回路図です。(回路図の中心で別ページになっていると思ってください。)
この回路では、ジャンパーチップは入力IC側に配置するのが良いです。未接続になったIC側の配線が長く引き伸ばされているのは、アンテナパターンになってノイズ特性を悪化させる可能がありますし、配線が密集しがちなマイコン周辺のパターンが過密になって十分な配線配慮が出来なくなる可能性も有ります。
入力IC側に接続設定用のジャンパーチップを配置するのを回路図にも適応したのが、見やすい回路例になります。ラベルの数が減らせますし、マイコン周辺の回路図がすっきりして見易いかと思います。
ノイズ対策部品はコネクタ近くに配置
基板外部から来るノイズを除去するために、バリスタやローバスフィルタやエミフィルなどを外部インターフェースラインに挿入します。これらはコネクタの直近に配置するのが望ましいです。
ノイズ対策部品よりコネクタ側の配線はノイズが減衰していないので、長く引き回すと基板中にノイズをまき散らす危険性があります。
ダンピング抵抗は信号出力側に配置
ダンピング抵抗とは、外部バスラインなどに直列に挿入される数十~数百Ω程度の抵抗器のことです。信号波形のオーバーシュートやノイズの低減をするのが目的になります。
ダンピング抵抗は出力端子の近くに配置されるべき部品です。ダンピング抵抗によって”ダンピング”される前の配線を最短で配線することでノイズ低減効果が最大になります。
ここで、悩ましい問題に突き当たります。データバスは双方向の信号なのですが、ダンピング抵抗はどこに配置すれば良いのでしょうか?(アドレスはマイコン側で良いとはっきりしているのですが…)2つの判断材料がありそうです。
- 駆動能力の高いICのピン直近に配置する
- 出力になる頻度の高いICの直近に配置する
双方向の信号についてはこのような観点でダンピング抵抗の位置をきめましょう。
まとめ
見やすい回路図を書くには、下記の5ポイントを気を付けましょう。
- ド・モルガンの法則で信号の論理を合わせる
- 信号は左から入力、右に出力を基本とする
- ブロック間の信号はラベルで入出力を明確にする
- 十字結線を禁止する
- 部品位置は基板レイアウトを考慮する
見やすい回路図を書くことは、ミスを減らし、基板パターンをより良くする事につながります。
次回、回路図を書く際に気にして書いていただければ嬉しいです。
その他のカン・コツ紹介記事
これ以外にもハード設計のカン・コツを紹介した記事があります。こちらも参考にしてみてください。
KiCAD (Pcbnew)の便利な使い方。作業効率アップのコツ
コメント