デジタル回路の時間概念

デジタル回路の時間概念

 デジタル回路設計で2進数、16進数の他に大切な概念があります。「時間」です。ソフトウェアでも割り込み処理などで時間が大切になる場面がありますが、デジタル回路の場合には常に時間を考慮しなくてはなりません。

 おそらく、デジタル回路の設計を担当する初心者はFPGA(エフピージーエー)から入ると思います。FPGAはField-Programmable Gate Arrayの略で何度でも作り変える事ができるデジタルデバイスです。プログラマブルがそれを意味しています。なので、本ブログでもFPGAの設計をベースに解説していきます。

 FPGAをベースに考えた場合の「時間」はnsec(ナノセック)~msec(ミリセック)です。時間の単位は、「hour」「minute」「second」が思いつくと思います。もちろん、製品によっては「month」や「year」を扱う製品もあるでしょう。これらの時間の関係を確認しておいてください。

 秒の単位である「second」までは馴染みがあります。秒よりも小さい時間がデジタル回路設計には必要になります。そこで、秒の補助単位であるm(ミリ)、μ(マイクロ)、n(ナノ)、p(ピコ)が必要となります。これを表にまとめると次のようになります。

  μ(マイクロ)は半角文字で表す事ができないので、小文字の[u]で代用します。usecで”マイクロセック”を意味します。

 これらの時間の補助単位は常に頭に入れて設計を進める必要があります。特に、表の「大きさ」の欄に記載した、10E-6といった指数表記の値はしっかりと理解してください。関数電卓に貼っておいても良いです。

 実際のFPGAにおけるデジタル回路設計では最小単位がnsecです。高速な回路設計の場合psecもありますが、初心者はnsec〜msecでしょう。この補助単位の間を自由に計算できるようにしておいてください。

 例えば、200usecを測定する場合、10nsec単位で何回になりますか?

200usec / 10nsec = 20000(dec)

といった計算になります。デジタル回路設計ではこんな計算が頻繁に出てきます。デジタル回路設計というのは数を数えることが頻繁に起きます。特に人が操作するような回路の場合には数が多く出てきます。例えばスイッチを押す。というだけの操作においても、FPGAの中では多くの数を数える回路が動作して、スイッチを押したことを安定して検出しています。

 本ブログの「時間」はデジタル回路で扱う時間を指していますが、この他に時間は周期を意味している場合があります。特に高周波の回路設計を行うときに、周波数<->周期の変換を頻繁に行います。なので、周波数の補助単位と時間の補助単位を自由に扱えるようにする必要があります。

 補助単位の計算は関数電卓に任せましょう。いちいち、200usecは0.0002secで、10nsecは0.00000001secだから。0.0002/0.00000001は・・・などという計算をする必要はありません。

 このように、デジタル回路の設計において、関数電卓は必須です。メーカーによってもいろいろあります。次のような機能の関数電卓を探すと良いでしょう。

  • 2進数、10進数、16進数が簡単に変換できる
  • 指数計算が簡単にできる
  • 指数計算でF-E機能がある(指数を-3,-6,-9,-12に区切ってくれる)
  • 逆数(1/x)の計算が簡単にできる(周波数<->周期変換)
  • sin,cosの計算ができる