FPGA学習メモ

自分用メモ

カウンタを使うとなんで分周できるのか

このブログを始めたきっかけ

ここの最初に記載。
darushino.hatenablog.jp

つまづいたこと(ではない)

「n bitカウンタを使うと、クロックの 1/2^n倍の周波数まで分周できる」。これが直感的によくわからなかったので、16bit を具体例として考えてみた。厳密に書き下ろすつもりはなくて、あくまで直感的な理解のメモ。

16bit 分周方法

クロックを16bitで最大分周すると、クロック周波数の1/65536(つまり1/2^{16})倍の周波数が得られる。これを実現するには、16bitカウンタ*1を準備して、15bit目を分周後のクロックとして使えばよい。

15bit 目のうごきに着目するとわかりやすい

15bit 目は、0~2^{15}-12^{15}回カウントする間は Lowで、2^{15}~2^{16}-12^{15}回カウントする間は High となる。

元のクロック周波数で1カウントずつしているので、15bit目は2^{16}回カウントするとようやく1周期経過するクロックと考えてよい。周期が2^{16}倍となるので、周波数は元クロックの1/2^{16}倍ということになる。

対処法

対処法ではないけど、一度納得できたのでスッキリ。長年わかったようでわかってないモヤモヤがあった。分周の原理がやっとわかった気がする。

*1:0から15ビット