設計のポイント
FPGA設計のポイント
- verilog記述のポイント:always内の出力はできる限り少なくする
- 定数のビット幅明示
- FPGAによるスキャンコンバータの実装
- ストリーミングデータ参照による高速演算処理
- FPGAによるLCDコントローラの実装
- USB HS FIFOによる高速計測アプリケーションの実装
- verilog記述のポイント:連接演算子を使う
- verilog記述のポイント:複雑な組み合わせ回路にfunctionを使用する
- verilog記述のポイント:wireとregの違い
- verilog記述のポイント:双方向ピン(inout)を使用する
- verilog記述のポイント:モジュールの接続
- verilog記述のポイント:output regを使用する
- verilog記述のポイント:定数にparameterを使う
- verilog記述のポイント:二次元配列
- verilog記述のポイント:ブロッキング・ノンブロッキング
- DCFIFOによりクロックが異なる回路を接続し、開発リードタイム短縮
- PC搭載システムのダウンサイジング
- 複数のSPIデバイスの同時制御
- ソフトコアプロセッサ使用によるマイコンとゲートアレイのワンチップ化
- verilog記述のポイント:case文にはdefaultを必ず記述する
- verilog記述のポイント:クロック分周ではなくクロックイネーブルを使う
- verilog記述のポイント:generate文による繰り返し回路の生成
- verilog記述のポイント:signedを使った符号付き演算
- verilog記述のポイント:除算・剰余演算を避ける
- verilog記述のポイント:演算結果のビット幅と桁あふれに注意する
- verilog記述のポイント:casex・casezの多用を避ける
- verilog記述のポイント:初期値に頼らずリセットで初期化する
- verilog記述のポイント:シフトレジスタの記述
- verilog記述のポイント:エッジ検出回路の記述
- verilog記述のポイント:チャタリング除去(デバウンス)回路
- verilog記述のポイント:パイプライン化による動作周波数の向上
- verilog記述のポイント:演算子の優先順位は括弧で明示する
- verilog記述のポイント:`defineとparameterの使い分け
- VHDL記述のポイント:signal代入はプロセス終了時に反映される
- VHDL記述のポイント:processの感度リスト漏れに注意する
- VHDL記述のポイント:型変換の作法(std_logic_vector・unsigned・signed・integer)
- VHDL記述のポイント:others => ‘0’ を活用する
- VHDL記述のポイント:rising_edge(clk)を使う
- VHDL記述のポイント:列挙型でステートマシンの状態を定義する
- VHDL記述のポイント:record型で関連信号をまとめる
- VHDL記述のポイント:packageで共通定義を集約する
- VHDL記述のポイント:数値リテラルの記述と型の修飾
- verilog記述のポイント:taskで手続きをまとめる(functionとの違い)
- verilog記述のポイント:for文による組み合わせ回路の記述
- verilog記述のポイント:インデックス付きパートセレクト(+:)でビットフィールドを扱う
- verilog記述のポイント:valid/readyハンドシェイクによるデータ受け渡し
- verilog記述のポイント:同期FIFOの設計
- VHDL記述のポイント:subtypeで意味のある型名を定義する
- VHDL記述のポイント:std_ulogicでマルチドライバを検出する
- FPGA利用によるCPU負荷の削減
- VHDL記述のポイント:after句・wait文は合成対象外と心得る
- VHDL記述のポイント:booleanとstd_logicの使い分け
- VHDL記述のポイント:aliasで信号やスライスに別名を付ける
- VHDL記述のポイント:shift_left・shift_right関数によるシフト演算
- VHDL記述のポイント:resize関数でビット幅を変換する
- VHDL記述のポイント:functionとprocedureの使い分け
- verilog記述のポイント:$readmemhによるメモリ・ROMの初期化
- verilog記述のポイント:グレイコードカウンタで多ビット値をドメイン間へ渡す
- verilog記述のポイント:トグル同期によるクロックドメイン間のパルス受け渡し
- VHDL記述のポイント:port mapは名前による結合を使う
- VHDL記述のポイント:直接インスタンス化とcomponent宣言の使い分け
- VHDL記述のポイント:constantで定数を定義する
- VHDL記述のポイント:integerにはrange指定を付ける
- VHDL記述のポイント:属性(’range・’length)で幅に依存しない記述
- VHDL記述のポイント:配列型の定義と活用
- VHDL記述のポイント:genericによるモジュールのパラメータ化
- VHDL記述のポイント:同時処理文(when-else/with-select)とprocessの使い分け
- VHDL記述のポイント:numeric_stdを使う(std_logic_arithを避ける)
- VHDL記述のポイント:signalとvariableの違いと使い分け
- VHDL記述のポイント:std_logicとstd_logic_vectorを使う
- verilog記述のポイント:トライステートはトップレベルのみで使用する
- verilog記述のポイント:ブロックRAMが推論される記述パターン
- verilog記述のポイント:ステートマシンの記述パターン
- verilog記述のポイント:2段フリップフロップによる非同期信号の同期化
- verilog記述のポイント:非同期リセットと同期リセットの使い分け
- verilog記述のポイント:組み合わせ回路のalwaysはalways @(*)で記述する
マイコン開発のポイント
- LEDを使用したデバッグ
- MRAMを使用して高頻度書き込みを必要とするアプリケーションの実装
- I/Oエクスパンダ使用による入出力点数の拡張
- 7セグメントLEDのダイナミック点灯でI/O点数の削減
- マイコン制御による制御盤の小型化とコスト低減
- 期待通りの動きをしない場合のマイコンチェックのポイント:未使用端子の適切な処理
- 期待通りの動きをしない場合のマイコンチェックのポイント:電流過多の原因
- 期待通りの動作をしない場合のマイコンチェックのポイント:ビットレートを合わせる
- 優先レベルの設定で、多重割り込み時の正常動作を確保
- 割り込み動作の短時間化で動作レスポンス向上
- DMACを利用したCAN通信で高頻度通信を実現
組み込み機器 基本設計のポイント
RaspberryPi活用のポイント
- ハードウェア・ボタンによる電源操作(シャットダウン・起動)
- MIPI DSIコネクタによる組み込みディスプレイの直結
- 外部EEPROMによる個体識別と校正データの保持
- 1-Wireプロトコルによる多地点・配線節約センシング
- UPS(無停電電源装置)連携による安全な停電処理
- PCIe(M.2)インターフェースによる超高速通信・拡張
- I2S(Inter-IC Sound)によるデジタルオーディオの入出力
- Compute Module 4/5 (CM4/CM5) を用いた製品組込の最適化
- 起動時自己診断(セルフテスト)と状態通知
- デバイスツリー・オーバーレイによるピン機能の固定化
- BLEを活用した配線レス・マルチセンサ集約
- 広範囲入力電圧(DC12V/24V)への対応設計
- CSI-2インターフェースを利用した低遅延画像入力
- LTE/4Gモバイル回線を利用した遠隔監視
- CAN Bus通信による移動体・産業機器との連携
- 外付け電源監視ICによるハードウェア・リセットの自動化
- 産業用DINレールマウント対応の筐体設計
- RS-485通信におけるデータ送受信切替の自動化
- NVMe SSDからのOSブートによる高速化と高信頼化
- 固定IPアドレス設定によるネットワーク安定化
- 起動ロゴ(スプラッシュスクリーン)のカスタマイズ
- サーマルスロットリング防止のための熱設計
- PoE(Power over Ethernet)による配線省力化
- Modbus TCP/RTUを用いた産業機器との連携
- I2C通信における配線長とプルアップ抵抗の最適化
- 外部RTC(リアルタイムクロック)モジュールの追加
- RAMディスク(tmpfs)へのログ出力によるSDカードの長寿命化
- GPIOへのフォトカプラ絶縁回路の採用
- ハードウェア・ウォッチドッグタイマ(WDT)の利用
- 赤外線通信を活用した非接触・遠隔操作インターフェースの実装
- spidevを活用した標準的なSPI通信の実装
- 組み込み機器への簡易GUI採用による操作性の向上と開発効率化
- Raspberry Piを活用した低コストな生産現場向け情報表示板の製作
- SPIバッファサイズの拡張による高速・大容量通信の安定化
- RaspberryPiでシャットダウンフリー化を実現
- Raspberry PiをPLC通信アダプタ(ゲートウェイ)として活用
- RaspberryPi OSの日本語環境構築と最適化


