[Suzaku:02060] EDK9.2→11.5移行に失敗

Nobuaki Sugishima email@hidden
2011年 1月 4日 (火) 17:55:50 JST


杉島と申します。
今年もよろしくお願いいたします。

sz410です。

EDK9.2から11.5への移行に失敗しました:

Base System Builderにはよらず、sz410-20100617をModifyする方法で進めました。

経過:

1.プロジェクト起動段階
WARNING:EDK:1582 - IPNAME:dcr_v29 INSTANCE:dcr -  prj_11\xps_proj.mhs line
328 - deprecated core for architecture 'virtex4fx'!
WARNING:EDK:1582 - IPNAME:dcr_v29 INSTANCE:dcr -
prj_11\_xps_tempmhsfilename.mhs line 319 - deprecated core for architecture
'virtex4fx'!
のwarningがでます。
dcr_v29には PARAMETER HW_VER = 1.00.aではなく1.00.bがあるようなのでmhsファイルを書き換えたのですが、プロジェクトが起動しなくなってしまったので元へ戻しました。
warningなので無視することにしました。

2.bram_vec、xps_bram_if_cntlrを追加
PARAMETER C_BASEADDR = 0xFFFF0000
 PARAMETER C_HIGHADDR = 0xFFFF3FFF
の定義を追加してBitstreamが生成できました。


3.mycoreを追加
prj_11\pcores\xps_mycore_v1_00_a\hdl\vhdlに9.2で実績のあるmycoreを追加
data\のxps\proj.ucfをこれも実績のある同名ファイルで上書きの上Compile
その結果:
ERROR:Map:237 - The design is too large to fit the device.  Please check the
   Design Summary section to see which resource requirement for your design
   exceeds the resources available in the device. Note that the number of
slices
   reported may not be reflected accurately as their packing might not have
been
   completed.

私のやや特殊事情ですが16KBのCasheをFPGAに確保しています。殆どSlice数の増加なしに設定することができました。9.2では動作も問題ないようです。
これがこのErrorを生んだ原因らしいです。EDKのバージョンにより通らなくなる理由をXilinxの代理店に問い合わせたのですが、bramの単位消費量が違うのでそれを考慮してDesignするようにとのことでした。
やむなく容量を半分に落として、このErrorを回避しました。

4.constraint error
次に
ERROR:Pack:1653 - At least one timing constraint is impossible to meet
because
   component delays alone exceed the constraint. A timing constraint summary
   below shows the failing constraints (preceded with an Asterisk (*)).
Please
   use the Timing Analyzer (GUI) or TRCE (command line) with the Mapped NCD
and
   PCF files to identify which constraints and paths are failing because of
the
   component delays alone. If the failing path(s) is mapped to Xilinx
components
   as expected, consider relaxing the constraint. If it is not mapped to
   components as expected, re-evaluate your HDL and how synthesis is
optimizing
   the path. To allow the tools to bypass this error, set the environment
   variable XIL_TIMING_ALLOW_IMPOSSIBLE to 1.
がでます。
そこで環境変数SETにXIL_TIMING_ALLOW_IMPOSSIBLE=1を追加しました。これはconstraint error
の判定を緩和するオプションのようです。
しかし効果はありません。
----------------------------------------------------------------------------------------------------------
  Constraint                                |    Check    | Worst Case |
Best Case | Timing |   Timing
                                            |             |    Slack   |
Achievable | Errors |    Score
----------------------------------------------------------------------------------------------------------
* TS_dcm_ddr_clk_dcm_ddr_clk_CLK0_BUF = PER | SETUP       |     1.080ns|
3.554ns|       0|           0
  IOD TIMEGRP "dcm_ddr_clk_dcm_ddr_clk_CLK0 | HOLD        |    -0.456ns|
|     511|       39707
  _BUF" TS_dcm_ddr_fx_dcm_ddr_fx_CLKFX_BUF  |             |            |
|        |
  HIGH 50%                                  |             |            |
|        |
----------------------------------------------------------------------------------------------------------

*のついたスレッショルドオーバーの個所が4個あります。
なお、2項の段階でも1つありました。しかしこの場合はCompilerはとおしてくれたようです。

mycoreのどの個所がこのエラーを引き起こしたのか要素を削除する方法で分析にかかったのですが、prj.vhd、user_logic.vhd、mycore.vhdのどこでおきたのか特定できませんでした。
TS_dcm_ddr_clk_dcm_ddr_clk_CLK0_BUFに関するエラーというメッセージを見ているとある特定の記述がこの結果をもたらしているのではないような感じがします。
dcm_module自身あるいは他の欠陥がこのようなメッセージを引き出しているのか、私には判断できません。

なにか気がつかれた点があればお教えください。







suzaku メーリングリストの案内