-
序言
最近直面感受到了flow工具的重要性。从之前的一步步执行dc、vcs、spyglass、pt等脚本然后看报告,到现在一个命令交给flow工具执行,效率上直接薄纱。遂想学习flow到底怎么搭建的,但是公司flow工具介绍资料极少,于是就在github上找到了mflowgen这个项目。通过该系列文章记录对asic flow开源工具–mflowgen的学习过程。
-
开源网址:mflowgen-github
-
mflowgen简介
mflowgen是Christopher Torng(膜拜)基于python搭建的flow工具,通过将各个流程节点模块化来构建整个设计,允许用户灵活定义各个节点的输入文件、输出文件、执行命令,并生成makfile来管理节点间的文件传输和执行。
mflowgen 提供了一些预定义的 ASIC 流程脚本,支持开源EDA工具(OpenROAD)和商业EDA工具(Synopsys、Cadence),mflowgen 还包含一个开源的 45nm asic adk包(FreePDK45)。用户可通过修改节点个数及连接关系来适应自己的EDA工具链及设计流程。mflowgen支持通过pytest库实现assertion来检查各个节点执行前、执行后的状态,例如支持检测log中是否有error。
# ADK step
g.set_adk( adk_name )
adk = g.get_adk_step()
# Custom steps
rtl = Step( this_dir + '/rtl' )
testbench = Step( this_dir + '/testbench')
# Default steps
info