-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
test_api.mjs
79 lines (77 loc) · 1.87 KB
/
test_api.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import { runYosys } from '@yowasp/yosys';
runYosys(["--version"]);
const files = await runYosys(
["inv.v", "-p", "hierarchy -auto-top", "-o", "top.json"],
{"inv.v": "module inv(input a, output o); assign o = ~a; endmodule"});
const actual = JSON.parse(files["top.json"]);
const expected = {
"creator": actual["creator"],
"modules": {
"inv": {
"attributes": {
"hdlname": "inv",
"top": "00000000000000000000000000000001",
"src": "inv.v:1.1-1.56"
},
"ports": {
"a": {
"direction": "input",
"bits": [ 2 ]
},
"o": {
"direction": "output",
"bits": [ 3 ]
}
},
"cells": {
"$not$inv.v:1$1": {
"hide_name": 1,
"type": "$not",
"parameters": {
"A_SIGNED": "00000000000000000000000000000000",
"A_WIDTH": "00000000000000000000000000000001",
"Y_WIDTH": "00000000000000000000000000000001"
},
"attributes": {
"src": "inv.v:1.43-1.45"
},
"port_directions": {
"A": "input",
"Y": "output"
},
"connections": {
"A": [ 2 ],
"Y": [ 3 ]
}
}
},
"netnames": {
"$not$inv.v:1$1_Y": {
"hide_name": 1,
"bits": [ 3 ],
"attributes": {
"src": "inv.v:1.43-1.45"
}
},
"a": {
"hide_name": 0,
"bits": [ 2 ],
"attributes": {
"src": "inv.v:1.18-1.19"
}
},
"o": {
"hide_name": 0,
"bits": [ 3 ],
"attributes": {
"src": "inv.v:1.28-1.29"
}
}
}
}
}
};
if (JSON.stringify(actual) !== JSON.stringify(expected)) {
console.log(JSON.stringify(actual));
throw 'test failed';
}