CQ版Lattice
XP2を試したのですが....
Lattice XP2によるDDS: out
10KHz(MAXUに比べて高調波のレベルが大きすぎる。)
PLLを使用した。 clock=56.8MHz LPFあり
全く同じverilogHLD記述を、MAXUで作動させた。
clock=50MHzに戻した。LPF無し
1.あかんがな、高調波のレベルが高過ぎる ディジタルデザインテクノロジー創刊号付属の、LatticeXP2を試したのですが どうも、いけません。 最初の図は、 PLLを使用して、元クロック 113.6MHzの水晶発信器を、使ったものです。 1/2に分周して使っています。(実は、水晶発信器は、33MHzも試してみた。結果は殆ど同じでした。) 動作がおかしいので、水晶発信器を付けないもので、内部発信器を使ってみました。 これは、CQ版Lattice XP2も、もうひとつ購入していたので、予備を使いました。 XP2の内部発信器を40MHzに設定して、全く同じverilogHDL記述を実行したのが、下図です。 ノイズレベルの上昇が、ありますが、傾向は、XP2で PLLを使ったものと同じです。 MAXUを壊したようなので、(水晶発信器の換装のせいで、以前に比べて、高調波のレベルが上がってしまった) Lattice XP2を試してみたのですが、結果はよくありません、涙。 Lattice XP2用に、ダウンロードケーブルも購入して(送料込みで$199位) 内部オシレータと、PLLも使えるように、調べたのにイ。 ここんところを、メモっておきます。 |
2.Lattice
XP2の内部発信器を使う なにしろ、発信器を使わない事には、LEDチカチカも、できません。 module OSC_TOP(OSC_CLK); output OSC_CLK; OSCE OSCinst0 (OSC_CLK); defparam OSCinst0.NOM_FREQ = "2.5"; endmodule これを、おまじないに、プログラムの何処かに貼り付けて下さい。 そして、LEDチカチカ プログラムで、このインスタンスを使います。 wire clock をコメントアウトしてしまっていますが、実際は、必要です。 ここで、右側の Syplify Synthesize Verilog File しておきます。 次に 左の最上段の LFXP2-5E-5TN144Cの所に、焦点を合わせて、 右側のDesign Planner (Pre-Map)をクリック。 CQ版Lattice基板のLEDのポートの一部は、74に設定されていますので、74を設定します。 で、下のタブを clock attributes に変更して、ここで、内部クロックを Primary ,ALL , PURE に設定しました。 保存後、Design Plannerを閉じて、いっきに、最後の Generate Data File(JEDEC) を押すと、ispLeverが必要な事を、すべてやってくれます。 後は、ispVMを使って書き込みます。 |
3.PLLを使った、LEDチカチカ プログラム 基本的に、内部発信器を使ったときと同じです。 moduleをIPexpressにて作り、そのインスタンスを使うのです。 今度は、 module myLED の入力に input clock; を宣言します。 この clockは、PLLの入力clock、 CLKI に、なります。 水晶発信器を取り付けますと、この発信器の出力は GCLK1 と命名されて、 CQ版 LatticeXP2 の 65番に繋がれています。 IPExpressの使い方です。 configureすると ここで、CLKI は、水晶発信器の周波数を指定します。 で、clkop が、出力周波数になります。 もし、PLLの出力周波数を 20MHz付近にしたい時は、 clkopに 20MHzを設定します。 そして、Tolerance を最大の10に設定して、calculate ボタンをクリックすると 113.6MHzの元クロックから、20.654545MHzが生成され、それが、PLLの出力周波数( clkop )に、なります。 ですので、PLLの出力は、clkop です。 それ故、メインのプログラムの clockのタイミングは、 clkop に対して 行う事になります。 always @(posedge clkop) begin ................... end 最後に、configure ボタンを押して確定します。 Close ボタン 次に、命名した PLL ( myPLL.v ) moduleを、projectに取り込んでおきます。 ( Source ->import ) ここで、右側の Syplify Synthesize Verilog File しておきます。 次に 左の最上段の LFXP2-5E-5TN144Cの所に、焦点を合わせて、 Design plannerを立ち上げます。 以下のように設定しました。 saveして、 Designe planner をclose。 後は、いっきに makeして下さい。 以下は、 DDSを、内部発信器を使って作成した時の、プログラムのレポートです。 sin波のデータである 20bit data、1024個のaddressが、 自動的に EBRメモリーに配置されている事がわかります。 まあ、こんな具合なんですが、 冒頭の図のように、高調波のレベルが大きいと、 どうも、使うのをためらいます。 どないしょ? XP2は、信号処理には、向かないんやろか..... そんなはずは無いと思うんやけど。 そんな折、Lattice semiconductor からのメールに、こんなんがあった。 MachXO(マックエックスオー)と、発音してる。 調べてみると、all in one で 何! デルタシグマ ADC/DAC回路付いてるって.......2280LUT以外に、 PLL2個、EBR付き、 $59 ! (5月末までの価格らしい) Lattice と言う名前からして、 クリスタルフィルターで馴染みある名前やし、興味あってん。 うーん、買うしかないなあ.... 送料込みで、$103.25でした、ナハハ (^_^;; H21.5.15 |