0

Cadence EDI ツールでスクリプトを作成しています (これは TCL ベースです。つまり、EDI シェルは TCL ベースです)。私のコードは次のようになります-

namespace eval clockgatecloning {
....
.....
......
...
}

ネストされたステートメントが多数あり、proc が相互に呼び出しています。現在、このコードに毎回一連のデータを提供する大きなデータベースに取り組んでおり、これは約 5000 回発生します。コードが適切に実行されたため、コードを一晩実行したままにしました(反復ごとにシェルにデータをダンプしました。ただし、今日確認したところ、次のメッセージが表示されました-

<<: Line overflow.

これはエラーですか?実行は完了しましたか? これは以前にも起こったことがあり、その理由はわかりません。それはメモリと関係がありますか?

私を助けてください。

4

2 に答える 2

0

Tcl 自体には、行の長さに制限はありません。数メガバイトの長さの行が必要な場合は、それを使用できます。(厳密に必要でない場合は、おそらく良い考えではありませんが、それはあなた次第です。) これは、スクリプト内の行とデータ ファイル内の行の両方に適用されます。主な制限はメモリの量に関係しており、制限を超えてもエラー メッセージは表示されません。実際、このメッセージは Tcl ソース コードのどこにもありません。

Cadence EDI に独自の制限がある可能性は十分にありますが、これらはロギングのような場所や、Tcl に関連しない部分にある可能性が高くなります (ただし、最終的に Tcl レベルに公開されるインターフェイスを介してアクセスされることは明らかです)。

于 2013-12-11T10:10:02.890 に答える
0

コードは 1000 行以上あり、基本的に EDI のデザインでクロック ゲートの操作を実行しています。デザインには、複製するクロック ゲートが約 5000 あります (操作は、1 つのクロック ゲートのシンクを複製し、その新しい複製に再割り当てすることです)。

EDI は、このタスク用にメモリを割り当てた負荷分散機能で実行されます。

理想的には、コードが実行されると、各クロック ゲートのメッセージが EDI シェルにダンプされ、設計が変更されていることが示されます。これのスナップショットは-

インスタンス u_cheetah_core/uvincero_mpupd/uvincero_cpu_l2/uCORTEXA9MP/u_falcon_cpu_power_wrapper0/u_cpu/u_noram/u_core/u_de/u_neon/umcr_mrc_if/RC_CG_HIER_INST1390/RC_CGIC_INST_1 をフリップして、行の向きを一致させます。インスタンス u_cheetah_core/uvincero_mpupd/uvincero_cpu_l2/uCORTEXA9MP/u_falcon_cpu_power_wrapper0/u_cpu/u_noram/u_core/u_de/u_neon/uniq/RC_CG_HIER_INST1401/RC_CGIC_INST_1 をフリップして行の向きに合わせます。インスタンス u_cheetah_core/uvincero_mpupd/uvincero_cpu_l2/uCORTEXA9MP/u_falcon_cpu_power_wrapper0/u_cpu/u_noram/u_core/u_de/u_neon/uniq/RC_CG_HIER_INST1402/RC_CGIC_INST_2 をフリップして行の向きに合わせます。インスタンス u_cheetah_core/uvincero_mpupd/uvincero_cpu_l2/uCORTEXA9MP/u_falcon_cpu_power_wrapper0/u_cpu/u_noram/u_core/u_de/u_neon/uniq/RC_CG_HIER_INST1404/RC_CGIC_INST_1 をフリップして行の向きに合わせます。

今日の朝、シェルをチェックしたところ、このメッセージでコードを終了していることに気付きました-

:>> ライン オーバーフロー。

EDI ログ ファイルを確認したところ、同様のメッセージが表示されていました。

于 2013-12-11T12:46:41.447 に答える