作者hkrist (豆)
看板Electronics
标题[问题] design compiler synthesis遇到的问题
时间Wed Jan 15 10:01:20 2014
小弟从之前在使用design compiler的时候就有遇到两个主要的问题
但是无论是上网找或是问同学都没有找到答案
最近发现有这个版可以发问
Q1:
我将RTL拿去合成後,就我所知跑出来的slack只要维持在正的即可
我曾试过合40ns时slack是0.03,但最後要合到60ns,slack大约26
在post-synthesis simulation时才不会出现timing violation
我想请问为什麽40ns时,slack明明是正的
在模拟时却会出现timing violation?
Q2:
合成後要另存成_syn.v的netlist档,但有时候储存时
design compiler会告诉我有"assign"or"tran"被写到档案中
我知道的是合成後不应该有assign出现
这部分也让我不知道该如何处理
P.S. 最近发现会出现某些module里有用特别名称当做prefix的警告讯息
请问这会影响到我合成後档案的正确性吗?
还请知道的板友解惑
小弟先说声谢谢!!
------------------------------------
https://www.dropbox.com/s/wam1g21kpj6m8x3/GSIM.v
因为不知道可能是哪部分coding方式不OK
所以将档案分享在dropbox上
请各位板友帮我看一下问题
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.213.128
1F:推 appendixisu:Q1:0.03 太不安全了.30ps,clock tree没长好就挂了 01/15 10:51
2F:→ appendixisu:Q2:要更换Coding style.或许你可以把那段RTL贴上来 01/15 10:53
3F:→ appendixisu:请大家帮忙看一下 01/15 10:53
※ 编辑: hkrist 来自: 140.114.213.128 (01/15 14:35)
4F:→ hkrist:a大,我想请问Q1的部分主要是想表达0.03~26之间有很大的空间 01/15 14:37
5F:→ hkrist:但是我一直要加到slack=26才能模拟正确,这之间是哪部分有问 01/15 14:38
6F:→ hkrist:题呢? 01/15 14:38
7F:推 appendixisu:那我就要再问清楚一下是 你40ns去和 是用40ns去跑模拟 01/15 15:47
8F:→ appendixisu:那60ns去和 也是跑40ns模拟吗??? 01/15 15:48
9F:→ appendixisu:刚想到Q2 看可不可以在合成中加入条件 01/15 17:08
10F:→ appendixisu:set_fix_multiple_port_nets -all -buffer_constants 01/15 17:08
11F:→ appendixisu:试试看 01/15 17:08
12F:→ hkrist:a大,我是用多少合就用多少模拟 01/15 19:01
13F:→ hkrist:那行指令我合成时都有打,可是依然会有assign被写出来 01/15 19:02
14F:推 appendixisu:那这样挺合理的.代表你两个Filp Flop之间的Gate太多 01/15 20:00
15F:→ appendixisu:DC最厉害也只能和到40ns刚刚好过timing 01/15 20:01
16F:→ appendixisu:两个方法解决 第一个是去改DC的条件式 让她速度优先 01/15 20:01
17F:→ appendixisu:第二就是去改设计 多加一级pipeline 01/15 20:03
18F:推 appendixisu:我再看了一次你的问题!!你的问题好像是STA跟simulatio 01/15 20:16
19F:→ appendixisu:不一致!! 我猜测会不会是sim的timescale设太大以致忽 01/15 20:17
20F:→ appendixisu:略30ps的差异~~ 01/15 20:17
21F:→ hkrist:请问改DC的条件式指的是说mapping effort把timing改成high? 01/16 09:23
22F:→ hkrist:所以在DC中不能在两个DFF中放入太多的gate?强制我一定要拆 01/16 09:25
23F:→ hkrist:成更多级是这样吗? 01/16 09:25
※ 编辑: hkrist 来自: 140.114.86.92 (01/16 09:25)
24F:推 appendixisu:因为两个FF之间有很多加法器 乘法器 01/16 13:54
25F:→ appendixisu:DC在他的资料库里面有各式各样的加法器 乘法器 01/16 13:54
26F:→ appendixisu:有速度快面积大的 有面积小速度慢的 01/16 13:54
27F:→ appendixisu:但是都有它的极限~所以假设DC都已经选用速度最快的 01/16 13:55
28F:→ appendixisu:但STA仍然只能是0.02 那就达到DC的极限了 01/16 13:56
29F:→ appendixisu:那势必就一定要改设计 假设你的目标速度是40ns的话 01/16 13:56
30F:推 zxvc:Q1:合成40 ns,跑post-synthesis sim要60 ns,差太多了。建 01/17 10:57
31F:→ zxvc:议原po去trace发生timing violation的那条路径的波型是不是有 01/17 10:59
32F:→ zxvc:什麽奇怪的地方,例如有很大的delay。 01/17 11:01
33F:→ zxvc:trace的方法就是把那条路径的各节点波型show出来看。 01/17 11:03
34F:推 zxvc:Q2: assign是因为有些APR tools不支援(ICC?)。ICC用DDC格式就 01/17 11:06
35F:→ zxvc:不用管assign的问题金。 01/17 11:07
36F:→ zxvc: ^多打 01/17 11:08
37F:→ hkrist:感谢上面回答的两位版友,小弟再尝试看看你们提供的想法 01/22 11:10
38F:推 ViewMoon:现在所有 tool 都支援 assign 了, 包括 ICC 02/02 10:49
39F:→ ViewMoon:请确认你是用 dc_shell 产出的 .sdf 作 simulation 02/02 10:50
40F:→ ViewMoon:因为你是想讨论 simulation 和 synthesis 的 correlation 02/02 10:52
41F:→ ViewMoon:而不是讨论 synthesis 为什麽达不到 slack > 0 02/02 10:52