MathWorks Japanは10月29日、東京・台場にてMATLAB/Simulinkユーザーが集うユーザーカンファレンス「MATLAB EXPO 2013」を開催し、併せてMathWroksのDesign Automation,マーケティングディレクターのPaul Barnard氏が9月に発表されたばかりのMATLABおよびSimulinkプロダクトファミリの最新版「リリース 2013b(R2013b)」の特徴などの説明を行った。

MathWroksのDesign Automation,マーケティングディレクターのPaul Barnard氏

MATLAB/Simulinkは複雑なものを簡素化できるツールとして知られているが、同社は今回のイベントのテーマでも「複雑性に取り組む」とし、複雑性を受け入れる必要性を説いている。その背景として、同氏は「エンジニアリングは、さまざまな課題に直面するようになっているが、そうした課題に対応するためには、これまでと異なるアプローチをとる必要があり、それが複雑性を受け入れるという話につながる」とする。

実際にそうした複雑性を受け入れるためには、いくつか要素があり、その最たるものが「コラボレーション」、「モデルとシミュレーション」、そして「自動化」といったキーワードであり、MATLAB/Simulinkでは、そうしたことの実現に向けた機能の追加や改善などが行われてきており、R2013bでも70項目以上のバグフィックスや機能追加が行われた。

複雑性の最たる例とも言える自動車。高級車ではECUは100個以上用いられ、さまざまな機能が提供されるが、そのすべてが一定以上の品質や安全性を担保しつつ、各機能同士で連携を図っていく必要がある

例えばR2013bでは、同社が提供する物理モデリングツールの1つである電気系(重電)向けの「SimPowerSystems」が、同社の物理システムのモデル化とシミュレーションを行うための環境「Simscape」に対応した。すでにほかの物理モデリングツール(電気系(弱電)「SimElectronics」、油圧計「SimHydraulice」、自動車のトルク伝達系「SimDriveline」、機械系「SimMechanics」)はSimscapeベースになっており、これによりそれらのツールとシームレスにSimPowerSystemsをアダプタ不要で接続することが可能となり、SimElectronicsと組み合わせて、詳細度の高い半導体デバイスと制御回路を組み合わせたりすることが容易に行えるようになったとするほか、従来Simspaceの機能として提供されてきたデータのロギングや、ローカルソルバ、計測データをベースにした統計データ、コードの生成もSimPowerSystems上で実行することが可能になった。

物理モデリングツール各種がSimscapeをベースとしたことで、各ツール間のシームレスな接続などが可能となった

また、R2013aまで「Polyspace Client」、および「Polyspace Server」として提供されてきたコード検証ツールだが、R2013bでは新たに「Polyspace Bug Finder」が提供されたこともあり、従来の検証機能が「Polyspace Code Prover」へと名称変更された。

Bug Finderは、CやC++で書かれたコード全体に対する不具合検証を行うのではなく、より開発者の近いところにおいて、素早く不具合を見つける機能に特化したものとなっており、実際にソフトを結合する前に、ハンドコードやCoderから生成されたコードの検証などを行うことで、バグやコードエラーを発見できるようになるほか、エラーを生成している元のブロックへのジャンプを行い、不具合の修正といったトレーサビリティ機能も搭載しているため、よりコード作成者が簡便にバグを発見したり、ターゲットとするコーディングルールに沿っているかのチェックなどが可能になるという。

R2013bでは「Polyspace Bug Finder」の提供により、従来のPolyspace Client/Serverが「Polyspace Code Prover」へと名称変更された

さらに、半導体設計に対する機能強化も施された。半導体デバイス上でさまざまなアルゴリズムを試していくにはFPGAなどのプログラマブルロジックが向いている。特に近年、ARMコアを搭載するなど、処理性能も向上し、かつ従来のARMコアを用いた資産の活用も可能になるSoCライクな製品も複数のデバイスベンダから提供されるようになってきたが、ソフトウェアとハードウェアの垣根が低くなったため、どこからどこまでソフトウェアで処理させ、どこをハードウェアで動かすのか、といった線引きが難しくなってきている。

そうした状況の改善に向け、R2013bでは、XilinxのプログラマブルSoC「Zynq」にて実装を容易に行うことを可能とするワークフローが提供された。ワークフローの手順としては、アルゴリズムや要求仕様に基づく設計を行った後、システムモデルをソフトウェアとハードウェアのモデルに分割。そこでシミュレーションなどを経て、実装できるレベルになったら、「Embedded Coder」や「HDL Coder」を用いてCコードやHDLコードを生成。そうしてできた各種コードとXilinxの開発ツールである「ISE」が自動的にリンクし(最新開発ツールである「Vivado」には将来的に対応予定)、コンパイルおよびダウンロードが行われるため、HDLなどがよく分からないソフトウェアエンジニアであっても、Zynqの回路を容易に構築することが可能となった。また、AXIバスなども選択するだけで実装されるため、手軽にハード/ソフトの比率を変えたりすることができるようになる。

Zynqとの連携強化がなされ、手軽にソフトウェアエンジニアが回路設計を行うことが可能となった

MATLAB EXPO 2013のXilinxブースにて展示されていたワークフローを活用したソリューション。Zynq搭載開発ボード「ZedBoard」に接続されているのはAnalog Devices(ADI)のソフトウェア無線向けトランシーバICを搭載したFMC。一方、PCモニタとつながっているZedBoard(中央/右)は、ワークフローの紹介用で、画面に従ってバス設定や開発ツール、ボード、コードなどを選択するだけで、Zynqの回路が設定される

このほか、同社では低価格開発ボード「Arduino」のサポートなどの強化を行ってきており、R2013bでもArduino Ethernet ShieldおよびArduino Nanoハードウェアのサポートを含む機能強化が施されている。今後も、Arduinoの互換ボードを含め、サポート範囲を広げていきたいとしており、市場での人気などを見ながら、対応していく開発ボードの検討を行っていきたいとしている。

近年、手軽に使えるそれなりに安価なロボットキットやArduinoなどの低価格開発ボードが登場してきたこともあり、プログラムを組み合わせることで、複雑な組み込み開発を簡単に体験することが可能になってきた