首页 > 其他 > 详细

BLIF(Berkeley Logic Interchange Format )

时间:2021-02-04 17:19:18      阅读:137      评论:0      收藏:0      [点我收藏+]


BLIF的目标是用文本的形式描述一个逻辑层级电路(logic-level hierarchical circuit)
一个电路是由逻辑方程组成的网络(包括组合逻辑和时序逻辑)
电路可以看作是由组合逻辑节点和时序逻辑元件组成的有向图
每个节点包含一个单一输出的逻辑方程
每个反馈回路(feedback loop)必须包含至少一个锁存器。
在下面的代码中,尖括号括起非终止符,方括号括起可选结构。

models

blif中的模型是展平后的电路
一个blif文件可包含很多模型,以及对其他文件中的模型的引用

模型的声明

.model <decl-model-name>
.inputs <decl-input-list>
.outputs <decl-output-list>
.clock <decl-clock-list>
<command> 
...
<command>
.end

是指模型名,定义输入信号,以空格分开多个,以换行符结束
是指可选的时钟信号
一行中‘#‘之后的部分为注释
在没有注释的部分,‘\’斜杠符号表示连接两行

逻辑门 logic gates

逻辑门将逻辑函数与模型中的信号相关联,也可作为其他逻辑函数的输入

逻辑门的声明

.names <in-1> <in-2> ... <in-n> <output>
<single-output-cover>

指明已定义的逻辑门的输出信号, 指明已定义的输入信号
定义一行PLA description, 输入信号的定义域为{0, 1, -},输出信号的定义域为{0,1}
例:一个逻辑门和它的定义

.names v3 v6 j u78 v13.15
1--0 1
-1-1 1
0-11 1

逻辑门的语义

在一行中,‘1‘表示该输入信号,‘0‘表示该输入信号的非,‘-‘表示没用到该输入信号
每一行中的所有输入信号用\(and\)连接
再使用\(or\)连接所有行的输入
例:上述逻辑门可表示为

v13.15 = (v3 u78’) + (v6 u78) + (v3’ j u78)

将某个逻辑门赋予常值‘0‘

.names j

将某个逻辑门赋予常值‘1‘

.names j
1

External Don’t Cares

置于模型最后,定义一个独立于该模型的网络

.exdc
.names <in-1> <in-2> ... <in-n> <output>
<single-output-cover>

Latch

表示一位存储或者状态信息
latch声明

.latch <input> <output> [<type> <control>] [<init-val>]

input是输入,output是输出
type是{fe, re, ah, al, as}中的一种,分别表示“falling edge,” “rising edge,” “active high,” “active low”, “asynchronous”.
control是latch的时钟信号,如果没有指定时钟信号,则跟随系统的全局时钟信号
init-val是latch的初始值,可以是{0,1,2,3},‘2‘表示don‘t care,‘3‘表示unknown,默认为‘3‘
例:简单时序电路

.inputs in 
.outputs out
.latch out in 0
.names in out
0 1
.end

BLIF(Berkeley Logic Interchange Format )

原文:https://www.cnblogs.com/bacmive/p/14373475.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!