作者hkrist (豆)
看板Electronics
标题[问题] 电路合成及APR 含SRAM
时间Thu May 28 13:45:07 2015
5/31更新
目前经过几位版友的回覆之後,部分问题已经获得解决。现在依然遇到的最大问题是在
floorplan的阶段将sram及其他cell摆入之後,使用report timing去check wns等资讯时,
会出现0和N/A的结果,看起来像是没有吃到clk。在我去观察接线的时候,发现clk pad是
接到一个sram output buffer的output,不知道有没有版友知道为什麽会发生这样的情形
呢?
------------------------------------------------------------------------------
各位版友好,小弟最近在做电路的合成及APR,主要电路就只是BIST接上SRAM
大致上的流程都清楚,但是之前做的电路中都没有包含SRAM的部分
所以这次是第一次做有memory在内的电路,我看到只需要将memory compiler产生出的
lib转成db并且在一开始连同制程db一起读入design compiler即可
目前我将top module(包含我的电路以及与sram module的接线)读进dc中
不知道为什麽我的电路I/O总共只有18个,但是在dc的block diagram中却跑出port 19
进入下一层的电路中查看後,发现是一个完全悬空的port(有前辈跟我说这是dc的bug)
请问有没有可能是哪个部分没写好产生的问题,或真的是dc的bug呢?
另外我的sram有3bit的EMA控制线,从0~7分别会有不同的access time(0是min 7是max)
但事实上EMA=0~3的access time值才是正常的,4~7的时候access time=999ns
所以导致我合成後的电路slack都会是-99X,目前是先使用set_case_analysis的指令
将EMA的讯号设为011去分析,不知道有没有其他办法可以让dc预设分析的case就是EMA=3
------------------------------------------------------------------------------
APR的部分我是使用SOCE,拿上述合成後的电路来操作时,开始Import都没有太大的问题
但是在进行floorplan时,ratio和utilization的值设为1.6和0.8
apply之後会变成1.0和0.0X而已,怎麽更改都会停在这个范围左右
接着尝试直接用auto floorplan将sram的hard macro摆入时,tool似乎是认为我的电路里
并没有SRAM这个module,所以没有摆入任何的hard macro,请问这有可能是什麽问题呢?
APR时使用的CHIP.v是将合成後的电路外面再包上一层接了pad
也就是说我在APR中电路的hierarchy是
CHIP--top--BIST
|
|-SRAM
不知道有可能是什麽因素导致tool认为我的电路并没有SRAM呢?
P.S.因为是BIST接上SRAM电路,所以SRAM吃到的clock是有经过一个MUX选择
------------------------------------------------------------------------------
这阵子做过许多尝试,只将BIST部分拿去合成,之後再使用top将BIST和SRAM相接,最後
在包一层CHIP来接pad
这个做法在APR时可以将SRAM的macro摆入,但是将standardcell也摆入後去report timing
从结果显示看来是没有吃到clock,所有数值都是0和N/A,但是不摆放SRAM只摆cell的时候
可以report出那些参数的值,所以我才认为是SRAM的问题,导致後面一连串的错误
问题叙述有点繁复,但为了正确说明我的情况,还请大家见谅并请知道可能的问题点的前
辈不吝指教,先谢谢耐心看完的前辈们。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.114.213.128
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1432791910.A.7CE.html
1F:→ hkrist: 不知道有没有版友可以帮忙解答我的问题呢? 谢谢! 05/28 20:27
2F:→ hsnuyi: 问题太多了 你那个utilization的设定是无用的 它会用你的 05/28 22:02
3F:→ hsnuyi: 边距或是别的参数去算 按apply後它会变是正常 05/28 22:03
4F:→ hsnuyi: 太小的原因 不外乎是你core太小 然後 剩下的问题 去看CIC 05/28 22:04
5F:→ hsnuyi: 讲义 上面都有写 05/28 22:05
6F:→ hsnuyi: 对了 你utilization不要压到0.8 不然你route完会想哭 05/28 22:06
7F:→ hkrist: 请问hsnuyi大,你是建议我不要将utilization压这麽高吗? 05/28 22:17
8F:→ hsnuyi: 你会取0.8 应该是学长/上课说的吧? 这个值是出自CIC讲义 05/28 22:23
9F:→ hsnuyi: 不过如果真的选0.8 有些电路route完你会要解DRC解很久... 05/28 22:24
10F:→ hsnuyi: 主要是打稳压用的via时 和route出来的线有violation的机率 05/28 22:26
11F:→ hsnuyi: 很高 建议是设在0.7左右就好 如果你route完 setup或hold 05/28 22:26
12F:→ hsnuyi: 还有需要修正时 它的density还会上升 因为会加buffer 05/28 22:27
13F:→ hsnuyi: 如果你pad数过多 或是速度已经达到了 那utilization低一点 05/28 22:28
14F:→ hsnuyi: 也没关系 会要求0.8 有两个原因 一是不希望die太大 你下线 05/28 22:29
15F:→ hsnuyi: 教授要付钱 二是为了速度考量 05/28 22:29
16F:→ hsnuyi: 还是说你只是要交作业... 那就根本没差... 05/28 22:33
17F:→ hkrist: 谢谢hsnuyi大的回覆,之前确实是能拉越高越好,我也在想目前 05/28 23:27
18F:→ hkrist: 看起来就很紧密了,之後绕线根本不知道要怎麽绕才行 05/28 23:28
19F:→ hkrist: 另外我还想请问一下,目前我大部分问题都解决了,但是在APR 05/28 23:29
20F:→ hkrist: 里,看起来还是没有吃到clock,wns那些都为0,其他的都是N/A 05/28 23:29
21F:→ hkrist: 听学长说所有的线都不能经过macro是这样吗? 05/28 23:38
22F:→ hkrist: 昨天尝试在放入sram和cell之後做report timing,但仍然wns 05/29 08:05
23F:→ hkrist: 和其他都是显是0或N/A的状态,因此我去trace一下他report 05/29 08:06
24F:→ hkrist: timing时产生的绕线,发现从clk pad进来的线被接到很奇怪的 05/29 08:07
25F:→ hkrist: cell上,但是在.v里明明不是这样连接,不知道有可能是什麽原 05/29 08:07
26F:→ hkrist: 因,请问这个问题有什麽办法可以解吗?谢谢! 05/29 08:08
27F:→ michael6172: clk当然会接到奇怪的cell,因为你有做clk tree,APR後 05/29 08:48
28F:→ michael6172: 的连线关系会跟DC的不一样 05/29 08:48
29F:→ michael6172: 至於为啥hard marco上方不能走线,原因是那是已经lay 05/29 08:51
30F:→ michael6172: 好的IP,你无法确定它用了哪几层metal,当然不能走线 05/29 08:51
31F:→ hkrist: 先谢谢m大的回答,但是我想可能是我说的不够清楚,目前我 05/29 10:43
32F:→ hkrist: 放cell是选了一个run floorplan mode的选项,之後直接执 05/29 10:43
33F:→ hkrist: 行report timing,到这步为止尚未长clock tree,另外是sra 05/29 10:43
34F:→ hkrist: m output端有接了buffer,而这buffer的output端不知为何 05/29 10:43
35F:→ hkrist: 接到clk pad,这才是我说接到奇怪cell的疑问 05/29 10:43
36F:→ hkrist: 关於我表达不清楚的部分我很抱歉,还请h大和m大多包涵 05/29 10:47
37F:推 mmonkeyboyy: 多一个port 可能是名字出错了 05/29 12:38
38F:推 mmonkeyboyy: 没吃到SRAM原因可能是路径问题 05/29 12:42
39F:→ hkrist: 谢谢mm大的回答,port那个确定没有多写,是dc自己多加的bu 05/29 16:45
40F:→ hkrist: g,完全浮接 05/29 16:45
41F:→ hkrist: sram确实是我把LEF档路径设定错误,但吃不到clk的问题目前 05/29 16:47
42F:→ hkrist: 还是存在 05/29 16:47
43F:推 mmonkeyboyy: 你的script是自己写的还是? 05/30 01:31
44F:→ mmonkeyboyy: 我说的名字不是多写 你你写错 @_@ 当你写错时 tool 05/30 01:32
45F:→ mmonkeyboyy: tool可能还是找得到错的那条接法 但原来那名字就多了 05/30 01:32
46F:→ mmonkeyboyy: 你可能没感觉到你写错了 但tool帮你处理了 05/30 01:33
47F:→ mmonkeyboyy: 另一种可能性就是你的lib里有多一个port要用 05/30 01:33
48F:→ mmonkeyboyy: 但你没有管那个port 所以系统就自重帮你生了一个出来 05/30 01:34
49F:→ hkrist: 我想或许有可能是第二种情形,电路中sram的lib可能有我没使 05/30 12:04
50F:→ hkrist: 用到的port 05/30 12:04
※ 编辑: hkrist (1.160.10.119), 05/31/2015 13:53:57