背景
QiitaでFPGAの記事を読んでいて、FPGA内で完結する記事が多いなぁって感じたので、FPGAで外のデバイスと連携を行うときに、「あれ? 上手くいかない。」 って場合に注意してみて欲しいことをまとめていこうと思います。
Hardwareあれこれ
FPGAもハードウェア
すごいざっくりいうとゲート回路の集まった「Hardware」です。
これらの論理素子を自由に接続できちゃうよっていう代物。
立ち上がり時間
JIS C 0161 の定義
パルスの瞬時値が最初に規定した下限値に到達 し,その後規定された上限値に到達するまでの 時間間隔。
クロックを水晶振動子など外部から信号を入れている場合に、立ち上がり時間が想定以上に大きく周波数が安定しないってことがあったりなかったり。。。
オーバーシュート アンダーシュート
電圧の立ち上がり時に規定値よりも大きい値になってしますことをオーバーシュート、
電圧が下ったときに規定値よりも小さい値になることをアンダーシュートと言います。
どういった状況で発生するのかというと、信号をLowからHighにしたときやスイッチを入れたり切ったりしたときに発生します。オーバーシュートの電圧がデバイスの瞬間耐圧電圧よりも大き場合にデバイスの破損の原因になります。コンデンサなどの場合は最悪爆発します。
チャタリング
スイッチやリレーなどでON/OFFの切替え時に発生する信号ノイズ・・・
wikipediaのチャタリングに記載されている波形図のようになる現象です。
FPGAでスイッチを扱う際には必ずチャタリング除去回路をかますようにします。
シミュレーションなどでわからない信号のデバッグ方法について
マルチメーター
テスターって言ったほうが通じるかもしれないです。
電圧や電流を図れる測定器。回路がつながっているかなどの導通チェックもできる。
ホームセンターでも売っている。
ただ、制度がそこまで高いわけではないので、詳細に調べたい時はオシロスコープを使います。
オシロスコープ
電圧の時間変化を計測するための測定器。
今回書いた内容の計測などではオシロスコープがあれば簡単に計測できます。
オシロスコープがあれば、だいたい事たります。一家に一台は欲しいです。
どこまで細かい時間を測定できるか(周波数帯域)、同時に測定できる信号の数(チャンネル数)などによって、価格も大きくかわります。
有名なオシロスコープメーカとしてはTektronixなどがあります。
その他測定器
オシロスコープ以外だと
ロジックアナライザーやスペクトルアナライザーなどがありますが、まぁ普段は出番ないですw
興味があればどんなものかググってください。
ハードウェアや計測器についての基礎知識が学べるサイト
ノイズについてなどのハードウェアの基礎知識は、電子機器・計測機器メーカなどの企業サイトに為になる情報が沢山公開してくれてます。
NF回路設計ブロック 技術資料
村田製作所 ノイズの基礎知識
菊水電子 技術や規格について
や、計測機器メーカ一覧などの企業サイトも暇な時に見ると色々と勉強になるかもしれません。
おわりに
FPGAなど触っていてシミュレーションだと上手く行っているのに、なぜちゃんと動作しないんだ!
ってありますよね。そんな時に、外部信号の影響を確認したら解決できた。
みたいにちょっとでも役に立てたらいいなと思います。
IoTが流行ってソフトフェアエンジニアもハードウェアを触る機会が増えていると思うので、エンジニアとしてソフトだけではなくてハードウェアの知識も増やして行きたいですね。