马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位eetop的师兄弟,大家好!我是一名即将毕业的研究生,目前正在写毕业论文,由于论文当中涉及到一个采用多位寄存器去替换多个一位寄存器的对比实验,整个实验流程是基于candence的encounter来做的,由于我对这个工具不是很熟悉,所以前段时间就在论坛上发布了一个“现金购买tcl脚本”的帖子,在发出这个帖子之后,我收到了大量的师兄的来信,在这里我非常感谢大家,尤其是“木名@湖滨"、”Darren“师兄等等,“木名@湖滨"师兄在牺牲了一个下午的休息时间帮我写了一个替换脚本,但是由于师兄写的是基于icc的,加上我可能没有把替换流程描述的太清楚,后来在设计流程上还做了的一些小的修改,导致了这个脚本暂时无法使用,但是还是谢谢这位师兄。还有最让我感动的是师兄在帮我写脚本的时候从未提起“报酬”,师兄这种乐于助人的精神值得我好好学习,由于我尚未毕业,资金方面也不是很充足,但是之前的承诺还是必须得兑现,在我写完论文后,我会联系相应的师兄,虽然这些“小钱”对于你来说,算不了什么,但是师兄对我的帮助我会永远牢记在心。最后,我再将我的需求重新发布一遍,如果有什么不清楚的地方可以联系我。
这个替换实验的流程具体是这样的:首先把模块划分成多个的面积相等的小格子,再从每个小格子里挑出有时序违反的路径上的寄存器实例名,然后再根据小格子里有时序违反的寄存器的个数替换成一个相应位数的多位寄存器。例如:这个小格子里有4个寄存器存在时序违反,那么我就用一个4位的寄存器来替换这4个一位的寄存器。
目前,我将这个实验已经大大的简化了。我已经将整个设计中有时序违反的寄存器的实例名已经全都提取出来保存在了一个文本文件当中(违反寄存器文件),所有的网格大小的坐标也保存在一个文件(坐标文件)中,这是两个输入文件。具体做法是:从坐标文件当中提取一个网格坐标,然后再找出既在这个网格坐标里的又同时在违反寄存器文件中的所有寄存器实例名,根据这些寄存器的数量用相应位数的寄存器去进行替换。目前只有1位,2位,3位,4位,5位的寄存器,如果这个网格内的寄存器的个数已经超过了5个,则优先采用大位数的寄存器进行替换,假如,这个网格内有9个寄存器,则用一个4位的和一个5位的进行替换。 脚本需要实现的功能:
1,能够找出既在当前网格坐标内,又在违反寄存器文件当中的寄存器 2,将第一步找出来的寄存器用相应位数的寄存器进行替换 3,能够采用encounter当中的命令实现自动连接。即:用多位寄存器替换多个一位的时候能够利用encounter中的相关dbget命令,找出相应的线的名字与相应的端口进行连接上。不需要手工连线。这一步是最重要的。
所以我希望能够帮我写脚本的师兄是后端的,同时是对EDI中的命令非常熟悉。主要是能够实现步骤3。 我的联系QQ:393329231
|