介紹
AIGER(Document)是一種簡單的電路圖格式,包括了AND閘、反閘和正反器。
格式
一個AIGER檔案包括
- Header (必要)
- Inputs
- Latches
- Outputs
- ANDs
- Symbols
- Comments
Variable/Literal
每個input, latch 和 AND gate 都會被指派一個 variable ID
variable ID
- Between [1, M]
- ID 0 => constant
false
- 可以跳號
literal ID
- 2v <= variable v 的正常型態
- 2v + 1 <= variable v 的反轉型態
- example: 3(literal ID) <= 1(variable ID)的反轉型態
Header
Syntax:aag M I L O A
- M = maximal variable index
- I = number of inputs
- L = number of latches
- O = number of outputs
- A = number of AND gates
如果沒有跳號的話 M = I + L + A
,注意沒有O喔,所以Output基本上會從 M + 1 開始編號。
Inputs
Syntax:<input literalID>
Latches
Syntax:<currState literalID> <nextState literalID>
Outputs
Syntax:<SRC literalID>
And gates
Syntax:<And literalID> <SRC0 literalID> <SRC1 literalID>
example:12 7 15
And literalID
只能是偶數(因為是輸出嘛,本來就只有輸入SRC有可能會有反轉)
Symbols
Syntax:[ilo]<position> <symbolicName>
example:i0 reset
o1 done
sybolicName可以是任何除了”\n”的可列印字符,包括空白
Comments
Syntax:c
(newline)[anything...]
Example
aag 0 0 0 1 0 // header 0 // output0
這會是一個constant false
aag 0 0 0 1 0 // header 1 // output0
而這是constant true