-
Notifications
You must be signed in to change notification settings - Fork 84
/
test_yosys.py
61 lines (41 loc) · 1.36 KB
/
test_yosys.py
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
import siliconcompiler
import os
import pytest
from siliconcompiler.tools.yosys import lec
from siliconcompiler.tools.builtin import nop
from siliconcompiler.targets import freepdk45_demo
@pytest.mark.eda
@pytest.mark.quick
def test_yosys_lec(datadir):
lec_dir = os.path.join(datadir, 'lec')
chip = siliconcompiler.Chip('foo')
chip.use(freepdk45_demo)
flow = 'lec'
chip.node(flow, 'import', nop)
chip.node(flow, 'lec', lec)
chip.edge(flow, 'import', 'lec')
chip.set('option', 'flow', flow)
chip.input(os.path.join(lec_dir, 'foo.v'))
chip.input(os.path.join(lec_dir, 'foo.vg'))
chip.run()
errors = chip.get('metric', 'drvs', step='lec', index='0')
assert errors == 0
@pytest.mark.eda
@pytest.mark.quick
def test_yosys_lec_broken(datadir):
lec_dir = os.path.join(datadir, 'lec')
chip = siliconcompiler.Chip('foo')
chip.use(freepdk45_demo)
flow = 'lec'
chip.node(flow, 'import', nop)
chip.node(flow, 'lec', lec)
chip.edge(flow, 'import', 'lec')
chip.set('option', 'flow', flow)
chip.input(os.path.join(lec_dir, 'foo_broken.v'))
chip.input(os.path.join(lec_dir, 'foo_broken.vg'))
chip.run()
errors = chip.get('metric', 'drvs', step='lec', index='0')
assert errors == 2
if __name__ == "__main__":
from tests.fixtures import datadir
test_yosys_lec(datadir(__file__))