本篇文章给大家分享的是有关如何学会design compiler ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
拿一个模块来跑一下或者跟一个项目做一下,会成长得很快,但是不能算是一个design compiler (DC )高手。
Design Compiler 是一个工具(tool),是一把剑。从这个意义上说,高手可以是两种人,像干将那样的铸剑大师,或像西门吹雪那样的用剑大师。
前者可以比拟Synopsys公司的 DC 高级应用工程师(Application Consultant或者Application Engineer)。
他们对 DC 的各种命令都异常熟悉。他们会告诉你:
“设置什么什么变量后,就可以做某事”
“在某个版本里面有个隐藏变量,可以符合你的某个要求,但是不推荐你用”
“最新发布的某个版本的某个新功能可能对你有用”
他们的问题是,他们不懂你的设计。
如果你的DC crash/core dump了,他们建议你换一个新版本。如果你不愿意换,他们需要你递交一个test case。可是,拜托,成百上千的RTL源文件啊!所以还要靠自己。
虽然我在这里小小地抱怨了一下AE,但是他们在很多时候是很有帮助的。如果读者想做的高手是这样的,这篇文章到此也可以终止了。
大多数人还是会呆在某个集成电路设计公司里,做DC的使用者。那么,他们就要做像西门吹雪那样的用剑高手。
先问一个问题,西门吹雪用剑干什么?杀人。那人们用DC做什么?
综合(Synthesis)。
综合是什么呢?通俗地讲,是把用硬件描述语言所描述的电路结构在符合时序、面积和功耗要求的条件下转变成一组基本逻辑单元库元件构成的电路结构。
ASIC 综合如是,FPGA 综合亦如是。我觉得,要成为一个综合高手,应该了解综合在整个设计流程(以下讨论集中于ASIC设计流程)中的位置,然后如何通过综合给整个芯片带来最多的附加价值。
综合位于RTL之后,所以它有一个任务是检查RTL的质量,比如敏感表有没有写全,有没有latch,这些都是需要反馈给RTL designer的。不过,现在这事情给SpyGlass抢去了。
不过还有更加高端的问题,需要仔细看log和各种综合report。比如有些时序问题需要修改RTL才能解决,这些问题必须反馈给前端工程师。
综合位于布局布线之前。诚然,在整个设计流程看来,后端布局布线的重要程度高于综合,但是目前的趋势在于两者的进一步耦合,即所谓物理综合。
在综合过程中,后端的物理信息已经是不可缺少的了。同时,我也遇到过后端工具的布局不尽理想,以至于需要综合工具提供布局信息(placement)的例子。
再者,加法器乘法器选用什么算法都是在综合的时候决定的,后端布局布线工具最多做些size up/size down,不会从根本上改变结构,不可能把ripple优化成CLA。这也体现了综合的重要性。
综合后的时序是布局布线时序优化的起点。如果不能给出一个很好的起点,布局布线只会事倍功半。
以前,对综合的要求只是面积和时序,现在又加入了低功耗(low power)的要求。所以,综合高手还需要懂low power。这就是综合可以带来的附加值。
以上就是如何学会design compiler ,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/230578.html