第14回組込み適塾

  • J02-01
実装演習「マイコン/FPGA」

はじめに

本カリキュラムは、組込みシステム設計エンジニア育成を目的とし、特に若手の組込みソフトウェア技術者に対し、ハードウェアの分かるシステム設計者としてのスキルアップを目的としたものである。

監修者

大阪大学
尾上孝雄
大阪大学 理事・副学長
大阪大学助手,講師,京都大学助教授,大阪大学教授,大学院情報科学研究科長などを経て,2019年から現職。専門領域は画像符号化システム,空間音響処理システム等のアーキテクチャ,システムオンチップ設計, 組込みシステムの低消費電力化など。

科目の特徴

実装演習科目は、近年の組込みシステムで多くの機能を担うFPGA実装開発を体験しながら、ソフトウェア設計とハードウェア設計の役割を理解できるプログラムです。このプログラムではIoTで活用する基本デバイスを用いた擬似的なシステム開発を最初から最後まで体験し業務に活かせる勘所を修得します。 更に、ソフトウェア技術者が通常行わないハードウェア側のボードへ部品を実装する作業を通し、視野を広げる機会を設けています。

  • ・企業の実際の現場から培ったノウハウを提供し、今後の業務に活かせる
  • ・受講生同士のグループ討議、講師との討議を通じて、受講生の自主的な参加を促す

めざす人材像

組込み適塾全体の目指す人材像にのっとり、実装演習科目の受講者は「組込みソフトウェア技術者が、ソフトウェアだけでなくハードウェアの基礎・システム開発の基礎を理解し、将来の開発プロジェクトリーダとして活躍出来ること」を目指します。
<最終目標とする人材像>
  • ・論理回路の基礎を理解し、簡単な回路の実装とHDL言語設計手法を理解している。
  • ・組込みソフトウェアの構造を理解し、設計変更ができる。
  • ・組込みシステムの設計と実装の一連の開発の流れを理解している。

講義日時:2021年9月14日~16日、28日~30日 9:30~ 17:30

講義概要

マイコン・FPGAの基礎を実習を通して修得する。 IoTで活用する基本デバイスを用いた組込みシステム開発を疑似体験することで、マイコンおよびFPGAの効果的な使い方を理解し、組込みシステムの勘所を体得することを目標とする。

講師

所属
三菱電機マイコン機器ソフトウエア株式会社 
講師名
高良 秀治
1986年三菱電機マイコン機器ソフトウエア(株)入社。同社にて有線・無線通信機器のカスタムASIC開発に従事。
所属
ルネサス エレクトロニクス株式会社 
講師名
藤澤 幸穂
昭和53年津山高専電気工学科卒業。㈱電研精機研究所にて交流安定化電源、パルス発生装置、ノイズカットトランスなどの設計、製造、検査に従事。昭和59年から㈱日立マイクロコンピュータエンジニアリング(現ルネサスエレクトロニクス)でマイクロコンピュータのLSI設計を経て研修業務に従事。現在に至る。

スケジュール

日付 時間帯 講座名 担当講師
1日目 9:30~9:40 ガイダンス 三菱電機マイコン機器
ソフトウエア株式会社
高良 秀治
9:40~12:30
マイコンの基礎
  • ・RX210の構造と特徴
  • ・SWデザインツールの使用方法
13:30~17:30
FPGAの基礎
  • ・FPGAの構造とHDLの文法概要
ボードを使った回路実習
  • ・FPGAデザインツールの使用方法
  • ・回路設計とシミュレーション
  • ・2進数, 16進数対応付演習
  • ・組合せ回路演習
2日目 9:30~12:30
ボードを使った組込みソフト実習①
  • ・クロック選択
  • ・内部タイマの使用
  • ・7セグLEDへのパターン表示
13:30~17:30
ボードを使った組込みソフト実習②
  • ・PWM出力によるブザー鳴動
  • ・パソコンとのシリアル通信
  • ・ADコンバータ
  • ・ポーリング読み込みとチャタリング吸収
  • ・外部割込みとポーリングの差異
3日目 9:30~12:30
RXマイコンの効果的な使い方①
  • ・他CPUからの移植性
  • ・内蔵周辺機能の使い方
ルネサスエレクトロニクス 株式会社
藤澤 幸穂
13:30~17:30
RXマイコンの効果的な使い方②
  • ・C/C++コンパイラのコード効率化オプション
  • ・既存CPUからの移植性
  • ・RXマイコンの優位性
4日目 9:30~11:00
マイコンとFPGAの速度差比較
  • ・ボード上で実動作体験
  
三菱電機マイコン機器
ソフトウエア株式会社
高良 秀治
11:00~15:30
FPGA実践(プロセッサ設計)
  • ・プロセッサの内部構造の理解と設計
  • ・FPGA実装
  • ・マシンコード作成と動作確認
15:30~17:30
組込みシステム実践①
  • ・光源検出システムの概要
5日目 9:30~11:30
組込みシステム実践②
  • ・拡張ボードの作成
11:30~15:00
組込みシステム実践③
  • ・仕様追加での不具合調査
15:00~17:30
組込みシステム実践④
  • ・グループ製作(役割分担・仕様追加検討)
 
6日目 9:30~12:30
組込みシステム実践④
  • グループ製作 (実装)
13:30~15:00 まとめ・報告会資料の作成
15:00~17:30 報告会

講義内容

■マイコンの基礎
ワンチップマイコンRX210の基礎知識を習得する。
講義内容
RX210の機能を使った組込みソフトウェア開発手順の体験実習を行う。
  • (1)RX210の構造
  • (2) RX210を使った組込みソフトウェアの設計
    • ・RX210ソフトウェア開発用のデザインツールの使用方法の習得
    • ・GPIOの設定方法
    • ・ボード上のLEDを点灯消灯させるソフトウェアの作成
■FPGAの基礎
論理回路の基礎とFPGA回路開発に必要な基礎知識を習得する。
講義内容
論理回路設計を始めるにあたり、論理回路の基礎と記述言語の基礎を学ぶ。
  • (1)FPGAの構造
  • (2)FPGA開発言語HDLの学習
  • (3)実機を使った回路設計
    • ・FPGA回路開発用のデザインツールの使用方法の習得
    • ・回路図からの回路設計演習
    • ・HDL言語を使った2進数/16進数回路演習
    • ・カウンタ回路演習
    • ・7セグメントLED表示シフト回路演習
■ボードを使った組込みソフト実習
RX210の内蔵機能と周辺回路の制御を実機演習を通して体験する。
講義内容
  • (1)RX210の内蔵クロックの選択方法
  • (2)内蔵タイマを使用した定周期動作
  • (3)周辺回路の制御を行う
    • ・7セグLEDへのパターン表示
    • ・PWM出力によるブザー鳴動
    • ・パソコンとのシリアル通信
  • (4)内蔵ADコンバータの動作体験
  • (5)ポーリングによりスイッチ入力処理とチャタリング除去ソフトウェアの作成
■RXマイコンの効果的な使い方
RXマイコンの効果的な使い方を学ぶ
講義内容
  • スタートアップ/割込み動作の概要
    • リセット起動からmain関数が起動されるまでのメカニズムの解説。
  • RXマイコンのアセンブラ概要
    • アセンブラ言語の紹介
  • 開発ツールe2 studioのコード効率化、実行の高速化を行うオプションの体験。
  • ルネサス社製の既存マイコンからの移植性の紹介。
  • 内蔵温度センサー、イベントリンクコントローラ等のRX210の特徴的な機能説明と演習による確認。
■マイコンとFPGAの速度差比較」
組込みソフトウェアとハードウェアの速度差をボードを使って体験する。
講義内容
RX210マイコンとFPGAのそれぞれに、「0.1秒のカウンタ動作」と「加算乗算」を行わせ、時間に差が出ることをボード上で体験する。また、その速度差が起きる要因を解説する。
■FPGA実践(プロセッサ設計)
FPGA上に4Bitのプロセッサを搭載し、そのプロセッサ上で簡単な組込みソフトウェアを動作させる。
講義内容
4Bitプロセッサの設計と作成実習を行う。このプロセッサ上で動作する簡単な組込みソフトウェアの作成をアセンブラで行い、ハンドアセンブルでマシンコードまでの作成を行い、実機で動作させる。これにより、マシンコードの解読動作やプログラムカウンタ動作などの、プロセッサコアの基本動作を学ぶ。
■組込みシステム実践
IoTで活用する基本デバイスを用いた組込みシステム開発(光源検出システム)の一連の設計を疑似体験することで、マイコンおよびFPGAの効果的な使い方を理解するとともに、組込みシステムの勘所を体得する。
講義内容
  • (1)光源検出システムの概要
  • (2)拡張ボードの作成
  • (3)現仕様での不具合調査
  • (4)グループ製作
■まとめ・報告会資料の作成
 6日間の講座を通して、修得した事項のまとめ、報告会資料の作成。
■報告会
6日間の講座を通して、修得した事項の報告会。受講生の上長にも参加いただく。
報告内容は、担当講師にて採点し、優秀な受講生には表彰を行う。

成果物

受講要件

【受講要件】
  1. 組込み開発プロジェクトで1年以上の開発経験を有する方
  2. C言語でのプログラミングの経験を有し、エミュレータデバッガの操作経験のある方
  3. ハードウェア設計、組込みシステム設計プロセスに興味を持っている方
【事前学習のポイント】
  1. C言語の基本構文は理解しておくこと。
  2. マイコン制御の仕組みを確認しておくこと。(参考文献参照)
  3. JISのC言語仕様には「コンパイラ依存」となっている部分があり,使用するMCU毎に理解しておく必要があります。教科書の3章コンパイラ仕様とコード効率,がそれになりますから事前に確認することを推奨します。

受講にあたって必要な準備

  • 特になし。(会場にて主催者が用意します。)

講義に関連する解説記事・参考文献・図書等