LatticeXP2入門 その4 1bit信号同士の積


myDDS out : 30KHz と 100KHzの積
(60KHzは、30KHzの元信号の第2高調波そのものが、元と同じレベルで残っている様子。)

 1.1bit信号同士の積を試す

    MAXUマイクロキットで試したの同じ、verilogHDL記述を試してみました。

    LatticeXP2のPLLを使って、元クロックの1/2である、56.8MHzを使用しました。

    んっ? ispLEVERで、generate Data Fileまで、行って、XP2に書き込めるのですが、出力がありません....

    QuartusUの、ModelSim Alteraを使って、simulationで、確認しているのですが....はて、困った。

   

    LatticeXP2のPLLを使っていますので、ModelSimで、どう使ったらいいのか、解りません。

    原因を掴むべく、ispLEVERで使う、Aldec ActiveHDLを、習ってみる事にしました。

    当分の間は、信号処理と言うよりは、ispLEVER、ActiveHDLで、動くようになる為に、調べる事になりそうですわ、グスン。



    
 2.とっても便利な ispLEVERの 'Creating a Verilog Test Fixture from a Template'の機能

    テストベンチを、

      verilogHDL記述から、テンプレートとして作成する機能です。




    トップレベルのverilogHDLを選択しておいて
 
    右側のProcessから、Test Fixture Templateをダブルクリックすると、

    テンプレートファイルが出来上がります。


    で、このテンプレートファイルに、必要な変数を設定して、

    `timescale、Initialize等、少し変形、加筆しておきます。



     これを、'top_tf.v'等、適当な名前にして、sourceに加えておきます。

     で、このソ−スを選択し、右側のProcessをダブルクリックすると、Active−HDLが

     waveformまで、描いてくれます。





    しかしながら、test moduleが選択されている限り、私の場合、信号がハイインピーダンス状態になってしまいました。

    で、UUT:top のトップ moduleのインスタンスを選択しなおして、simulateすると、よい結果がでました。

    これは、私の間違いでした。 テストベンチに、余計な変数を追加していました。(data_unsigned 等)

    テストベンチは、トップモジュールのインスタンスを生成する項目は、自動的に追加されていますから、

    後は、クロックのタイミングだけ、書けば、それだけで、よい結果が出ます。





    LatticeXP2のPLLの状態も、うまく再現されています、うれしいな。



    で、原因を探ったのですが、

    例によって、私のケアレスミスでした。


    と、書くべき所を



    clkop と、書くべき所を、 clokop と、書いてしまっていたっ! アチャー。 大ばか者ですわ、私やっ。

    出力が、ないはずですわ....(-_-;;

    まあ、お陰で、Active-HDLを使えるようになったので、良しとしましょうか。

 3.ispLEVERのレポートを読む

    どうも、今回は、SinRomがEBR(SysMemory)に、自動配置されていない雰囲気です。

    もったいないぞ。





    このEBRは、LaitticeXP2-5Eの場合、5K LUT以外に沢山のメモリーを、もっています。 165,888bits!

    物理的には、sliceとsliceの間に、XP2-5Eの場合、9blockあります、大もうけ!

    1024 addressの20bit dataなら、楽勝。(22%位)


          そして、Part Number Description は



           Lattice社 テクニカルノートJPより、抜粋。


    しかしですね、IPexpressを使って、EBRを自力で使えるようにするには、タイミングを操作せな、あかんのです。

    誠に残念ながら、現在の私は、順序回路を理解できてないのです。(ちょっと、頑張ろうかなア)

    以下、レポートの抜粋です。






H.21.5.27