無償の開発ツールって、役に立つの?
質問
現在は、様々な開発支援ツールが無償で提供されている状況にあります。
それらは実用に耐えるものなのでしょうか?
回答
質問者の方がおっしゃるとおり、さまざまな企業が、さまざまな理由で、さまざまな開発支援ツールを技術者に向けて無償で提供しています。「無償」ということもあり、「どこまで信頼してよいものなのか?」との懸念を持たれる方がいるのは当然のことでしょう。
しかし、そうしたツールの中には、市販(有償)のツールと比べて遜色ないレベルにまで達しているものが少なくありません。何しろ、想定するユーザ層は技術者であり、想定される用途は開発作業です。当然のことながら、ツールに対しては非常に厳しい評価の目が向けられます。したがって、それ相応のものでなければ、ツールを提供する側にとっても好ましい結果(例えば、プロモーションの成功)にはつながらないはずです。実際、会社のPCで使用している様々なツールの中で、気が付けば有償のものは会社指定の基板設計ツールだけだったという強者もいるようです。
本稿では、BBSサイト「アナログ電子回路コミュニティ」(主催:アナログ・デバイセズ。2018年3月に終了)に寄せられた投稿の中で、技術者の方々から「オススメ」として名前が挙がった無償ツールを紹介することにします。なお、アナログ・デバイセズも様々な無償ツールを提供しています。本稿でも一部を紹介しますが、それら以外にも数多くのツールを用意しています。詳細については、回路設計 / 計算ツールのページをぜひご参照ください。
SPICEシミュレータ:LTspice
「LTspice」は、アナログ・デバイセズが提供するSPICEシミュレータです。もともとは、旧リニアテクノロジー(現在はアナログ・デバイセズと合併)が提供していたツールです。
「これだけの機能/性能を備えるツールを無償で使用できるというのは、一昔前では考えられないことでした。これといった制限事項などはありませんし、何ら問題なく使用できます。そのため、回路設計におけるメインのツールとして使用しています」という声が技術者の方から寄せられていました。
Verilogシミュレータ:ModelSim* - Intel® FPGA Starter Edition
「ModelSim* - Intel® FPGA Starter Edition」は、Intelが提供するFPGAに実装する回路を設計するためのツールです。
ただ、ModelSimの主機能は、Verilogシミュレータと表現しても差し支えないでしょう。つまり、FPGAの設計が前提になっていないケースでも使用可能です。デジタル回路を設計したい場合や、FPGAの設計フローについて学びたい場合などにも利用できます。
高周波アナログ回路シミュレータ:Qucs
「Qucs」は、高周波に対応するアナログ回路シミュレータです。高周波ならではのSパラメータ解析やハーモニック・バランス解析(周波数ドメインでの解析)に対応しています。
「FreeHDL」というツールと組み合わせれば、デジタル回路のシミュレーションも実行可能です。
アナログ・フィルタ設計ツール:アナログ・フィルター・ウィザード
「アナログ・フィルター・ウィザード」はアナログ・デバイセズが提供するオンライン・ツールです。
アクティブ・フィルタ(ローパス、ハイパス、バンドパス)の設計を、実際の特性を確認しながら、わずか数分のうちに実施することができます。用途に応じて最適なオペアンプを容易に選択できる点を最大の特徴とします。設計作業が完了したら、部品表やSPICEネット・リストを生成することも可能です。
LC対応のフィルタ設計ツール:AADE Filter Design
フィルタ用の設計ツールとしては、低周波向けのアクティブ・フィルタを対象とするものであれば数多く存在します。しかし、LCフィルタに対応する設計ツールはあまり見かけることはありません。特に高周波領域に対応するものは少ないようです。
「AADE Filter Design」であれば、LCフィルタの設計にも対応しています。
PLLシミュレータ:ADIsimPLL
「ADIsimPLL」は、アナログ・デバイセズが提供するPLL用のシミュレータです。ユーザである技術者の方から「実際に回路を構築して測定してみると、シミュレーション結果と見事に合致して少し驚いた」との感想をいただいています。
基板設計ツール:DesignSpark PCB、CADLUS X
ここでは、無償の基板設計ツールを2つ紹介しておきます。1つは、「DesignSpark PCB」です。これは、アールエスコンポーネンツが無償で提供しているツールです。設計の完了後は、ガーバ形式のファイルを生成することが可能です。
もう1つは、ピーバンドットコムの「CADLUS X」です。こちらには、ガーバ・データを出力することなくCADLUS Xのデータをアップロードすることで基板発注が完了するサービスも用意されています。
電磁界シミュレータ:Sonnet Lite
「Sonnet Lite」はソネット技研が提供する高周波対応の電磁界シミュレータです。マイクロ波回路、高周波回路、RFID、平面アンテナ、EMC/Signal Integrityなどの解析に使用できます。
数値解析ソフトウェア:Scilab
市販の数値解析ソフトとして最も有名なものは恐らくThe MathWorksが提供する「MATLAB」でしょう。それとほぼ同等の能力を持つとも言える無償のツールが存在します。それが「Scilab」です。一般的な数値解析が行えることはもちろん、ラプラス変換やZ変換などの記述も行えるので、制御システムの設計にも活用できます。古典的な制御から現代的な制御まで、豊富なライブラリによってサポートしています。FFTやウェーブレット変換などにも対応するので、上流寄りの設計やアルゴリズム設計などでも真価を発揮します。
また、グラフィカルなブロック・ダイアグラム設計ツール「Xcos」も用意されています。これはThe MathWorksの「Simulink」に相当するものだと考えていただけばよいでしょう。例えばデジタル・フィルタの設計などで重宝します。ただし、MATLABのように、コードを自動生成する機能などは備えていません。それでも、十分に威力を発揮するツールだと言えます。
統計解析ツール:R言語
「R言語」は、統計解析向けのプログラミング言語とその開発実行環境です。オープンソースとして提供されています。書店の統計分野のコーナーには、このR言語に関する書籍が数多く並んでいます。それくらい注目度の高い技術です。
ターミナル・エミュレータ:Tera Term
「Tera Term」はターミナル・エミュレータ(通信プログラム)です。シリアル・ポート、telnet(TCP/IP)、SSHの各通信プロトコルに対応します。当初は、様々な機能を実現するマクロを簡単に作成できる点を特徴としていました。現在は、オープンソースのソフトウェアとして提供されています。
抵抗値計算ツール:曖昧抵抗くん
「曖昧抵抗くん」は、2本の抵抗を直列または並列に接続し、所望の抵抗値を得たい場合に使用するツールです。E6、E12、E24系列の抵抗2本を対象とし、希望する抵抗値に近くなる組み合わせを選んでくれます。また、2本の抵抗を使って分圧を実施したい場合にも、所望の分圧比に近くなる組み合わせを選択してくれます。
空芯コイル用の計算ツール:coil 0.1.2
「coil 0.1.2」はソレノイド型の空芯コイルの値を計算するためのツールです。巻数、巻幅、直径、インダクタンスのうち、いずれか3つの定数を入力すると、残りの1つを算出してくれます。
RF設計用の計算ツール:RFDN
「RFDN(RF Design Note)」というのは、ツール名ではなく、サイト名です。RF設計に関する様々な情報が提供されています。RF設計用の計算ツールも数多く提供されているので、ぜひ一度アクセスしてみてください。
アナログ電子回路コミュニティとは
アナログ電子回路コミュニティは、アナログ・デバイセズが技術者同士の交流のために提供していた掲示板サイトで、2018年3月に諸般の事情からサービスを終了しました。
アナログ電子回路コミュニティには日々の回路設計活動での課題や疑問などが多く寄せられ、アナログ・デバイセズのエンジニアのみならず、業界で活躍する経験豊富なエンジニアの皆様からも、その解決案や意見などが活発に寄せられました。
ここでは、そのアナログ電子回路コミュニティに寄せられた多くのスレッドの中から、反響の大きかったスレッドを編集し、技術記事という形で公開しています。アナログ電子回路コミュニティへのユーザ投稿に関するライセンスは、アナログ電子回路コミュニティの会員登録時に同意いただいておりました、アナログ・デバイセズの「利用規約」ならびに「ADIのコミュニティ・ユーザ・フォーラム利用規約」に則って取り扱われます。
また、英語版ではございますが、アナログ・デバイセズではEngineerZoneというコミュニティサービスを運用しています。こちらのコミュニティでは、アナログ・デバイセズの技術に精通した技術者と交流することで、設計上の困難な課題に関する質問をしたり、豊富な技術情報を参照したりすることが出来ます。こちらも併せてご活用ください。
この記事に関して
資料
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}