FIFO進展

さて、最初の絵をなんとかしないといけなくて

信号を見ながら確認していると、分かった事は

インプットのクロックとアウトプットのクロックが非同期であると言う事です

同じ66MHzでも、クロックのソースが同じでない場合、それぞれのクロックドメインの信号は同期しないのです。

今となっては、そんな事も知らないのかい、と思うような事も知らなかったです

もしも言ってる事がわからない人は、2つのデバイスで30Hzの同期信号を作り

オシロスコープで二つの信号を計測して見てください(オシロが使える人はこんな事知ってるけどね)

すると片方の信号に対して同じような波形がもう一個できるのですが、その信号がスーっと動いて行きます。

これは、どんなに精度が良いクロックソースであっても、誤差を持つためです

例えばクロックを作る水晶には

50MHz±100ppmなどと書かれています

これは20nsで一周するクロックを提供するけど、100ppmの誤差は勘弁してよ

って意味です

ppmと言うのはPerts Per Millionの頭文字で100万個と言う意味で

100ppmは100万個の中の100個つまり1万分の1の誤差はあると言う意味です

20.002の場合は不具合じゃないよ、19.998の場合は不具合じゃないよ

って事です

 

さて、非同期だからどうだと言うのかと言うと、あるタイミングで256クロック分のインプット信号が来ると分かっている場合、信号が開始するタイミングでFIFOを256クロック読みに行くと、まだ書き込まれていない場合があります

これを読みに行くと、黒い絵だったり、前のクロックと同じ絵だったりします

不具合の画像が横方向の線をランダムに配置したようになっているのは、64bit単位でのデータは揃っていたらからです

 

f:id:info-akiron-com:20201107221337g:plain

oscillo