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