0

我正在使用 Cadence EDI 工具编写脚本(这是基于 TCL 的,即 EDI shell 是基于 TCL 的)。我的代码看起来像 -

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

有许多嵌套语句,过程相互调用。现在我正在研究一个大型数据库,该数据库每次都为此代码提供一组数据,这种情况大约发生 5000 次。我让我的代码在一夜之间运行,因为它运行正常(在每次迭代时都会在 shell 上转储一些数据。但是今天当我检查时,显示了这条消息 -

<<: Line overflow.

这是一个错误吗?我的跑步完成了吗?这曾经发生过一次,我不知道为什么。跟记忆有关系吗?

请帮帮我。

4

2 回答 2

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 以匹配行方向。

今天早上,当我检查 shell 时,我意识到它已经退出了代码并显示了这条消息——

:>> 线路溢出。

我检查了 EDI 日志文件,即使在那里它也显示了类似的消息。

于 2013-12-11T12:46:41.447 回答
0

Tcl 本身对行的长度没有限制;如果你想要一条长几兆字节的线,你可以拥有它。(如果您不是严格需要它,这可能不是一个好主意,但这是您的决定。)这适用于脚本中的行和数据文件中的行。主要限制与您拥有多少内存有关,超过它们不会产生该错误消息。事实上,该消息在 Tcl 源代码中的任何地方都不存在。

Cadence EDI 完全有可能有其自身的限制,但这些限制更有可能出现在诸如日志记录之类的地方或与 Tcl 无关的部分(尽管它们显然是通过某些最终暴露于 Tcl 级别的接口访问的)。

于 2013-12-11T10:10:02.890 回答