FC2カウンター FPGAの部屋 Virtex5のお勉強(PLLのテスト2)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Virtex5のお勉強(PLLのテスト2)

Virtex5のお勉強(PLLのテスト)のプロジェクトでPLLを試しにインプリメントしてみたが、今度はシミュレーションしてみる。
テストベンチ、PLLtest_top_tb.tbw を作って論理シミュレーションしてみる。
PLLtest_V5_7_070311.png

PLLtest_V5_8_070311.png

ModelSim XE� 6.1e starter で論理シミュレーションしてみた。
PLLtest_ModelSim_070311.png

次にVeritakでシミュレーションしてみた。
PLLtest_Veritak_070311.png

当然だが結果は同じだった。
シミュレーションをしているとメモリをだいぶ消費していることに気がついた。
それでそれぞれのシュミレータがどのくらいメモリを消費しているか調べてみることにした。最初にWindowsをリブートしてISEを立ち上げてから各シミュレータを立ち上げて消費メモリを調べてみた。結果を下に示す。各シミュレータは並列に立ち上げずに、1つずつ立ち上げては落としている。シミュレーション時間はModelSimが1us、Veritakが1.082usだ。(ModelSim XE� 6.1e starter, Veritak-Basic 3.30A)
PLLtest_V5_9_070311.png

ModelSimは90MB程度メモリを使用しているが、使うたびにベースが増えてしまう。ライブラリかなにかが残ってしまうのか? 使用メモリも使用するたびに減りはするようだが?
Veritakはこのデザインでは、500MB強メモリを消費するようだ。Veritakは波形を全部記憶しているのでメモリを消費するのかもしれない? Veritakを使う時はメモリを十分に用意しないといけないようだ。

2006.03.11 追記:改めてみてみるとModelSimとVeritakの波形のCLKOUT0_OUTとCLKOUT3_OUT波形が位相が違っているようだ。485nsの波形を見るとわかると思う。なぜだろうか? 初期状態が異なるのか?

調べてみたところModelSimは 255ns 辺りからPLLの波形出力が始まっていて、しかも最初は乱れている。
(ModelSimのバージョンが古いのが原因でした。理由は後ろに書いてあります。)
PLLtest_ModelSim_2_070311.png

Veritakは 245ns からPLLの波形出力が始まっていて、最初からちゃんとした波形が出力されている。
PLLtest_Veritak_2_070311.png

この差が後で位相の差として効いてくるようだ。2つ比べないと違うとはわからない。論理としては合っているから。(ModelSimのバージョンが古いのが原因でした。理由は後ろに書いてあります。)

試してみるのでしたらPLLtestのプロジェクトをおいておきますので、試してみてください。ただし例によって保証はありませんので、自己責任でお使いください。

2006.03.12 追記:原因がわかりました。ModelSimをISE8.2i用の6.1e starterを使っていたのが原因でした。ライブラリが古かったので違いが出たようです。
ModelSimを最新の ModelSim XE� 6.2c starter にしてIPアップデート用のライブラリを更新したところVeritakと同様の波形が表示されました。Veritakと比較する場合はModelSimはライブラリを最新にしておかなければだめという教訓が出来ました。
いろいろご迷惑をおかけしまして申し訳ありませんでした。
  1. 2007年03月11日 09:22 |
  2. Virtex5のお勉強
  3. | トラックバック:0
  4. | コメント:5

コメント

はじめまして。
ロックと申します。いつも楽しみにしながら拝見させていただきます。

私も最近、V5の勉強をしていますが、面白いバグを見つけましたよ。
DCMのウィザードでISEの8.2と9.1では、クロックFXのジッターの概算値が全く違うんですよー。
一度ご確認ください。

では、これからも宜しくお願いします。
  1. 2007/03/11(日) 16:53:08 |
  2. URL |
  3. #-
  4. [ 編集 ]

ロックさん、こんにちは。はじめまして。
よろしくお願いします。

DCMウィザードあまり使ったことないので、CLKFXのジッター計算が出来ることを知りませんでした。
いつもは手で書いてXilinxサイトのジッター計算機で計算しています。
ISEの8.2と9.1のどっちが正しいのでしょうね?
もしかしてDCMのFACTORY_JFの値が違うということがあるんでしょうかね?
暇があったら一度調べてみたいと思います。
  1. 2007/03/11(日) 19:00:09 |
  2. URL |
  3. marsee #-
  4. [ 編集 ]

ISE 11では?

はじめまして。
同じ事をISE 11でやってみようとしているのですが、11からtbwが無くなってしまっていて、Test bench fixtureと格闘しています。
PLLtestプロジェクトのtbwを直接エディタで開いてみましたが、何をしているのかわかりませんでした。
Xilinxはなんでこの機能を切り捨てちゃったんでしょうねぇ。
  1. 2010/09/29(水) 14:49:38 |
  2. URL |
  3. Yos #-
  4. [ 編集 ]

Yosさん、こんにちは。
サポートし切れ無いのだと思います。tbwの使用は限定されていると思いますし、なれるとテストベンチも書きやすくなると思います。
PLLtestプロジェクトでは、PLLtest_top_tb.vがテストベンチなので、これをSimulationのプロジェクトに入れてください。
Test bench fixtureのやり方は、下のリンクを参照してください。
http://marsee101.blog19.fc2.com/blog-entry-1108.html
  1. 2010/09/29(水) 21:03:00 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

m(_ '_)m

to:marseeさん
ありがとうございます。
勉強になりました。
私、突然FPGA回路の設計をすることになり、現在勉強中なんです。
ずうっっと昔の学生時代は紙とペンで回路を書いていた事もあるのですが、いろいろ便利になっているんですね。
  1. 2010/09/30(木) 14:49:41 |
  2. URL |
  3. Yos #-
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/437-177f64f0
この記事にトラックバックする(FC2ブログユーザー)