フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
webadm | 投稿日時: 2006-8-25 21:37 |
Webmaster 登録日: 2004-11-7 居住地: 投稿: 3088 |
Xilinxの場合は少し最適化が足らない Xilinxの合成結果を良くみると律儀にゼロサプレスのあり得る特定の桁の時だけゼロサプレスの論理生成されるようにわざわざ特定の桁を条件に入れている。よく考えればすべての桁のイネーブル信号はパラに出力されるのでゼロサプレスするかしないかは常にやってしまってもいいわけである。Aletaraの場合はするどくそれを読み取って論理を最適化している。
HDLを少し変更してcase文の外で年、月、日、時、分、秒がゼロサプレスする値ならば該当するnDIGIT信号bitを強制的にネゲートするようにしたところXilinxのRTL viewerの姿ががらっと変わった。記述通りにdispselのデコード信号それぞれに対して月、日、時、分、秒のそれぞれのゼロサプレスパターンでマスクして最終的なnDIGIT出力を得るような形になった。 しかしTechnology Viewerで見るとまったく変わってなかったりする。リソースの利用率も変わらないのでおそらく最初からAlteraのとほぼ等価な論理合成だったのだろう。XilinxのRTL Viewerは合成されたネットリストではなくあくまでHDL記述をネットリストに翻訳した結果を表示していると思ったほうが良いのかも。最終的にデバイスにmapされた結果はそれとは異なると。 それとAlteraとXilinxで微妙にVerilogのシンタックスが違っていた。function定義で複数の文を含む場合、Xilinxの場合は複数の文をbegin endで囲まないとエラーになってしまう。Alteraの場合はエラーにならない。よく見るとXilinxのテンプレートとかはfunctionだけでなくcaseやifまでbegin endを使うようになっている。確かにその方がいいんだけどね。 |
フラット表示 | 前のトピック | 次のトピック |
投稿するにはまず登録を | |