write_blif [options] [filename] 命令用于将当前设计导出为 BLIF文件命令项
-top <top_module> 指定设计的顶层module;
-buf <cell-type> <in-port> <out-port> 使用指定类型的buf单元(<cell-type>)以及输入端口和输出端口的名称。
-unbuf <cell-type> <in-port> <out-port>使用指定的名称和端口名称替换缓冲单元,生成一个 .names 语句以模拟buf。
-true <cell-type> <out-port>
-false <cell-type> <out-port>
-undef <cell-type> <out-port>
使用指定的单元类型来驱动常量信号(例如常量1、常量0或未定义信号)。具体来说:当<cell-type>为’-’时,需要指定一个 <out-port>,这个 <out-port> 将代表常量信号的wire名称。在这种情况下,不会生成任何cell来驱动该wire。当<cell-type>为’+’时,同样需要指定一个<out-port>,其代表常量信号的wire名称。与前者不同的是,这时会生成一个 .names 语句,用于驱动该wire。简单来说,’-’表示不会生成驱动wire的cell,而’+’表示将生成一个用于驱动该wire的cell。
-noalias如果alias关键字用于一个wire与另一个wire,默认情况下会生成一个没有扇出(fanout)的wire,由另一个wire驱动。此选项抑制生成这些没有扇出的wire。
用于自定义工具的命令项以下选项在生成的文件供自定义工具使用时非常有用,而不用于 BLIF 解析器。使用下列命令项时,建议不要将输出文件命名为 .blif 后缀。
-icells将 yosys 的内部门电路转换为 .subckt行或 .gate行,而不是通用BLIF逻辑函数
-gates对于设计中不是其他模块实例化的所有单元,打印 .gates行而不是 .subckt行。
-conn不为连接的wire生成buf,而是使用非标准的 .conn语句。
-attr使用非标准的 .attr语句记录cell的属性。
-param使用非标准的 .param语句记录cell的参数。
-cname使用非标准的 .cname语句记录cell的名称。
-iname, -iattr为 .names 语句启用 -cname 和 -attr 功能。(.cname 和 .attr 语句将包含在输出的真值表后)
-blackbox使用 .blackbox 语句写出黑盒单元。
-impltf不写出 $true、$false 和 $undef wire的定义。
eg:write_blif -top my_design -buf INV A B -true $true C -false $false D output.blif
该命令行指定顶层module为 my_design,使用反相器(INV)作为缓冲,并定义驱动常量true和false的cell。