LatticeXP2入門 その6 PLLの目的は?
myDDS out:
30KHzと100KHzの積。かなり綺麗になった。
1.1bit信号同士の積のverilogHDL記述に、EBRを手動設定する。
前回の手法を用いて
1bit信号の積のverilogHDL記述を、書き直しました。
sliceの消費を、かなり抑える事が出来ました。
EBR使用前
EBR使用後
その上、前々回に見られた、30KHzの元信号の第2高調波も、消えてしまいました。
原因は、解りませんが、メデタシ。
2.PLLの目的は?
私は、周波数を、ある程度自由に設定できる事にあると、思っていました。
しかし、XP2のhandbook sysClock編によると、
ふーん......... クロックツリー注入除去が、メインらしいです。
クロックツリー ? なんじゃらほい。
調べてみましたら、
LSIのクロック分配方式には、クロック・ツリー(clock
tree)方式や クロック・メッシュ(clock mesh)方式、フィッシュ・ボーン(fish
bone)方式などがある(図1)。
ツリー方式は、木の枝(ツリー)状にクロック信号を分配する。レイアウト設計の自由度が高い。しかし規模が大きい回路ではクロック信号の到着時間の差(スキュー)を小さくしにくい.....出展(http://www.ednjapan.com/content/l_news/2003/09/02_04.html)
そうなんや、全く知りませんでした。
XP2のハンドブックには、更に
と、書いてあります。
ある程度、聞いた事がある機能もあるのですが...... PLLって、便利なんやア。
3.プライマリークロック、セカンダリークロック ?
sysCLOCK の項目を見ておりますと、プライマリー、セカンダリーと、
クロックの使い分けが、出来るようです。
もしかしたら、できるかもと、試してみました。
以下の図を参考にしました。
myDDSの、クロック関係は、元々、以下のように設定していました。
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
ここで、 myDDS2の部分のクロックを
clkop(56.8MHz) から clock(113.6MHz)に換えたら、どうなるやろ?
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
この場合、ispLEVERの process中、 Design
Planner(pre) の設定で
clockを primaryに、 clkopをsecondaryに設定しないと、タイミングエラーが出ました。
そんで、そのように設定しなおしました。
こう設定すると、タイミングエラーは、出ませんでした。
出力周波数が、200KHzと、100KHzの2倍になっているのは、
-------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
32'h0073615A (100KHz@56.8MHz)
の常数を、113.6MHz用に、設定し直していないからです。
出力段(PDM)には、PLL出力のclkopを使ったほうが、きれいな波形を出力できます。
成る程、こうやって、clockを使い分ける事が、できるらしいわ。
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
そろそろ、AD変換を使って、実際の信号を取り入れたいのですが、
これが、むっちゃ、難しい。
アナログ波形を 1bit信号に変換したいのですが.......
相当の期間が必要だと、思います。
そんなんで、例によって、しばし(1年位?)、HPの更新をできないと思います、ゴメンチャイ。
H.21.6.5