我想分析一个组合数字电路。ASCII 文件包含电路的描述,格式如下:
<name> <logic gate> <inputs> <outputs> <input 1>…<last input> <output> <delay>
其中:
<name>
是一个不超过 20 个字符的字符串,带有逻辑门的名称。
<logic gate>
是一个不超过 20 个字符的字符串,用于标识逻辑门的类型。可以是INPUT
, OUTPUT
, AND
, OR
, NOT
.
<inputs>
是一个整数,对于 INPUT,等于 0,对于 NOT 或 OUTPUT,等于 1,对于 AND 和 OR。
<outputs>
对于 OUTPUT 是等于 0 的整数,否则大于 0。
<input 1>
, <last input>, <output
> 是每个不超过 20 个字符的字符串,用于标识逻辑门的输入/输出网络的名称。
<delay>
是一个整数,用于标识逻辑门计算其功能所花费的时间。
程序在读取包含电路描述的文件后,必须计算电路的关键路径,该路径可以定义为连接 INPUT 类型的门和 OUTPUT 类型的门的路径,其中门的延迟总和在路径中是电路中所有可能路径中最高的。
Can anyone please tell me the data structures that are best suited for storing the information the program has to elaborate.
How could i load the the data structure into the memory?
例子
A INPUT 0 1 net1 1
B INPUT 0 1 net2 1
C INPUT 0 1 net3 1
G1 NOT 1 1 net1 net4 1
G2 OR 2 1 met3 net4 net5 1
G3 AND 2 1 net4 net2 net6 2
G4 AND 2 1 net6 net5 net7 2
D OUTPUT 1 0 net6 1
E OUTPUT 1 0 E 1
In this example the critical path is A/G1/G2/G4/E with a delay of 7.
我怎样才能实现这个。?