|
1 | 1 | import os |
2 | 2 | import sys |
3 | 3 | sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) ) |
| 4 | + |
4 | 5 | from pyverilog.dataflow.dataflow_analyzer import VerilogDataflowAnalyzer |
5 | 6 | from pyverilog.dataflow.optimizer import VerilogDataflowOptimizer |
6 | 7 | from pyverilog.controlflow.controlflow_analyzer import VerilogControlflowAnalyzer |
| 8 | + |
7 | 9 | codedir = '../../testcode/' |
8 | 10 |
|
9 | 11 | expected = """\ |
| 12 | +TOP.CLK: TOP_CLK |
10 | 13 | TOP.RST_X: TOP_RST_X |
11 | | -TOP.md_always0.al_block0.al_if0_ELSE.al_block2.al_functioncall0.inc: (((!TOP_RST_X))? TOP_al_block0_al_block2_al_functioncall0_inc : (((!TOP_RST_X))? (((&TOP_al_block0_al_block2_al_functioncall0_inc))? 'd0 : (((!TOP_RST_X))? (TOP_al_block0_al_block2_al_functioncall0_inc+'d1) : (TOP_cnt+'d1))) : (((&TOP_al_block0_al_block2_al_functioncall0_inc))? (((!TOP_RST_X))? (TOP_al_block0_al_block2_al_functioncall0_inc+'d1) : (TOP_cnt+'d1)) : (((!TOP_RST_X))? (((&(TOP_al_block0_al_block2_al_functioncall0_inc+'d1)))? 'd0 : (((!TOP_RST_X))? (TOP_al_block0_al_block2_al_functioncall0_inc+'d1) : (TOP_cnt+'d1))) : (((&(TOP_cnt+'d1)))? 'd0 : (((!TOP_RST_X))? (TOP_al_block0_al_block2_al_functioncall0_inc+'d1) : (TOP_cnt+'d1))))))) |
12 | | -TOP.md_always0.al_block0.al_if0_ELSE.al_block2.al_functioncall0._rn1_inc: (((!TOP_RST_X))? (TOP_al_block0_al_block2_al_functioncall0__rn1_inc+'d1) : (TOP_cnt+'d1)) |
13 | 14 | TOP.cnt: (((!TOP_RST_X))? 'd0 : (((!TOP_RST_X))? TOP_cnt : (((&TOP_al_block0_al_block2_al_functioncall0_inc))? 'd0 : (((!TOP_RST_X))? (TOP_cnt+'d1) : (TOP_cnt+'d1))))) |
14 | | -TOP.md_always0.al_block0.al_if0_ELSE.al_block2.al_functioncall0.in: (((!TOP_RST_X))? TOP_al_block0_al_block2_al_functioncall0_in : TOP_cnt) |
15 | | -TOP.CLK: TOP_CLK |
16 | 15 | TOP.md_always0.al_block0.al_if0_ELSE.al_block2.al_functioncall0._rn0_inc: 'd0 |
| 16 | +TOP.md_always0.al_block0.al_if0_ELSE.al_block2.al_functioncall0._rn1_inc: (((!TOP_RST_X))? (TOP_al_block0_al_block2_al_functioncall0__rn1_inc+'d1) : (TOP_cnt+'d1)) |
| 17 | +TOP.md_always0.al_block0.al_if0_ELSE.al_block2.al_functioncall0.in: (((!TOP_RST_X))? TOP_al_block0_al_block2_al_functioncall0_in : TOP_cnt) |
| 18 | +TOP.md_always0.al_block0.al_if0_ELSE.al_block2.al_functioncall0.inc: (((!TOP_RST_X))? TOP_al_block0_al_block2_al_functioncall0_inc : (((!TOP_RST_X))? (((&TOP_al_block0_al_block2_al_functioncall0_inc))? 'd0 : (((!TOP_RST_X))? (TOP_al_block0_al_block2_al_functioncall0_inc+'d1) : (TOP_cnt+'d1))) : (((&TOP_al_block0_al_block2_al_functioncall0_inc))? (((!TOP_RST_X))? (TOP_al_block0_al_block2_al_functioncall0_inc+'d1) : (TOP_cnt+'d1)) : (((!TOP_RST_X))? (((&(TOP_al_block0_al_block2_al_functioncall0_inc+'d1)))? 'd0 : (((!TOP_RST_X))? (TOP_al_block0_al_block2_al_functioncall0_inc+'d1) : (TOP_cnt+'d1))) : (((&(TOP_cnt+'d1)))? 'd0 : (((!TOP_RST_X))? (TOP_al_block0_al_block2_al_functioncall0_inc+'d1) : (TOP_cnt+'d1))))))) |
17 | 19 | """ |
18 | 20 |
|
19 | 21 | def test(): |
@@ -47,14 +49,14 @@ def test(): |
47 | 49 | ) |
48 | 50 |
|
49 | 51 | output = [] |
50 | | - for tk in sorted(c_analyzer.resolved_terms.keys(), key=lambda x:str(x[0])): |
| 52 | + for tk in sorted(c_analyzer.resolved_terms.keys(), key=lambda x:str(x)): |
51 | 53 | tree = c_analyzer.makeTree(tk) |
52 | 54 | output.append(str(tk) + ': ' + tree.tocode()) |
53 | 55 |
|
54 | 56 | rslt = '\n'.join(output) + '\n' |
55 | 57 |
|
56 | 58 | print(rslt) |
57 | | - assert(rslt == expected) |
| 59 | + assert(expected == rslt) |
58 | 60 |
|
59 | 61 | if __name__ == '__main__': |
60 | 62 | test() |
0 commit comments