|
最近Cadence的高级综合C to RTL的工具逐渐推向市场,听说效果不过。引用deepchip的文章:
-----------------------------------------------------------------------------------------------------------
> CtoS produced good results, both in speed and area, and had the fastest
> turnaround in the competition. Results reported by DC (90 nm target):
>
> Area results excluding SRAM (registers/comb logic):
>
> C-to-Silicon Others
> 54 MHz 13414/68040 9981/86479 - 23435/93605
> 108 MHz 24809/68523 19357/87021 - 48394/101775
>
> Shortest achievable pipeline latency (clock cycles):
>
> C-to-Silicon Others
> 54 MHz 10 8 - 13
> 108 MHz 15 12 - 19
>
> Timing results (slack nsec):
>
> C-to-Silicon Others
> 54 MHz 0.00 0.52 - 1.14
> 108 MHz 0.00 0.00 - 0.10
>
> The C synthesis (from C to RTL) runtimes ranged from 5 min (54 MHz, ASIC)
> up to around 1.5 hours (120 MHz, Xilinx), depending on the tightness of
> clock constraint. CtoSilicon was generally on the faster end.
>
> - Gernot Koch
> Micronas GmbH Freiburg,
-------------------------------------------------------------
看起来,真的不错耶!是不是我们不用再深入追究算法的实现架构,电路细节呢?我的答案是 当然不是!高级的综合工具,的确帮助我们提高了效率,但是如果真的要好好掌握他,我们必须对算法的实现有充分的认识,对高级综合的原理要有深入理解,只有这样才能驾驭工具,而不是被工具牵住鼻子走。工具帮助大家提高效率,而不是代替大家思考问题。
高级的综合工具,就像程序设计中的很高级的语言,目前才刚刚起步,如果想让效率效果和低级语言完全一样,那是不可能的。所以往往大部分代码都用高级语言,关键部位还是需要用汇编语言来优化。 同样,完整的SOC芯片不应该全部使用高级综合,关键模块仍然需要RTL,甚至电路设计。我相信,完全用高级综合来设计的IC,一定不是大众市场的IC, 因为没有性价比的竞争力。
该如何判断什么模块使用底层语言,什么模块使用高级语言呢?这就是程序设计者的内功所在。同理,哪些模块使用RTL或电路设计,哪些模块比较适合用高级综合,对此的判断力就是IC设计者的水平体现。
想做一个高水平的数字IC设计工程师,不能不会使用纷繁复杂的工具。但是绝对不能被工具俘虏,可以毫不客气的说被工具俘虏的IC设计工程师是低水平的工程师!高水平的IC设计工程师需要掌握电路设计的精髓,同时也掌握了工具的根本原理和特性,驾驭工具,利用工具的优势,避开工具的不足。
到目前为止,我还没有接触高级综合,短期内也不会接触。将来为了提高工作效率,相信还是有机会会用到它。另外还要看他带来的效率提高是否值得他的价钱,当然这个问题需要公司的上层来决定了。