Skip to content

Commit 1d42c1b

Browse files
committed
Merge branch 'master' into develop
2 parents f3e25b9 + 1edf759 commit 1d42c1b

29 files changed

+2050
-1173
lines changed
Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
#-------------------------------------------------------------------------------
1+
# -------------------------------------------------------------------------------
22
# active_analyzer.py
33
#
44
# Active condition list generator from Verilog Definitions
55
#
66
# Copyright (C) 2013, Shinya Takamaeda-Yamazaki
77
# License: Apache 2.0
8-
#-------------------------------------------------------------------------------
8+
# -------------------------------------------------------------------------------
99
from __future__ import absolute_import
1010
from __future__ import print_function
1111
import sys
@@ -16,56 +16,61 @@
1616
import pyverilog.controlflow.transition as transition
1717
from pyverilog.controlflow.controlflow_analyzer import VerilogControlflowAnalyzer
1818

19+
1920
class VerilogActiveConditionAnalyzer(VerilogControlflowAnalyzer):
20-
def __init__(self, topmodule, terms, binddict,
21+
def __init__(self, topmodule, terms, binddict,
2122
resolved_terms, resolved_binddict, constlist):
22-
VerilogControlflowAnalyzer.__init__(self, topmodule, terms, binddict,
23+
VerilogControlflowAnalyzer.__init__(self, topmodule, terms, binddict,
2324
resolved_terms, resolved_binddict, constlist)
2425
self.fsm_loops, self.fsms = self.getLoops()
2526

26-
############################################################################
2727
def getActiveConditions(self, termname, condition=splitter.active_constant):
28-
if not termname in self.resolved_binddict: return {}
28+
if not termname in self.resolved_binddict:
29+
return {}
2930
tree = self.makeTree(termname)
3031
funcdict = splitter.split(tree)
3132
funcdict = splitter.filter(funcdict, termname, condition)
3233
funcdict = splitter.remove_reset_condition(funcdict)
3334

3435
if len(funcdict) == 1 and len(list(funcdict.keys())[0]) == 0:
3536
func = funcdict.values()[0]
36-
return {termname : ( ('any', None), )}
37+
return {termname: (('any', None), )}
3738

3839
active_conditions = {}
3940
active_conditions_size = 0
4041
for fsm_sig in self.fsms.keys():
4142
rslt = self.getActiveConditions_fsm(fsm_sig, funcdict)
42-
if len(rslt) > 0: active_conditions[fsm_sig] = rslt
43+
if len(rslt) > 0:
44+
active_conditions[fsm_sig] = rslt
4345
active_conditions_size += len(rslt)
4446

4547
if active_conditions_size == 0:
4648
rslt = self.getActiveConditions_fsm(termname, funcdict)
47-
if len(rslt) > 0: active_conditions[termname] = rslt
49+
if len(rslt) > 0:
50+
active_conditions[termname] = rslt
4851

4952
return active_conditions
5053

5154
def getActiveConditions_fsm(self, fsm_sig, funcdict):
5255
# returns a list of some (state, transcond) pairs
5356
active_conditions = []
5457
fsm_sig_width = self.getWidth(fsm_sig)
55-
for condlist, func in sorted(funcdict.items(), key=lambda x:len(x[0])):
58+
for condlist, func in sorted(funcdict.items(), key=lambda x: len(x[0])):
5659
node = transition.walkCondlist(condlist, fsm_sig, fsm_sig_width)
5760
state_node_list = []
5861
if isinstance(node, transition.StateNodeList):
59-
for n in node.nodelist: state_node_list.append(n)
62+
for n in node.nodelist:
63+
state_node_list.append(n)
6064
elif node:
6165
state_node_list.append(node)
6266

6367
for state_node in state_node_list:
64-
#if state_node.isany:
68+
# if state_node.isany:
6569
# active_conditions.append( ('any', state_node.transcond) )
6670
for rs, re in state_node.range_pairs:
67-
for state in range(rs, re+1):
71+
for state in range(rs, re + 1):
6872
transcond = self.optimizer.optimize(state_node.transcond)
69-
if isinstance(transcond, DFEvalValue) and transcond.value == 0: continue
70-
active_conditions.append( (state, transcond) )
73+
if isinstance(transcond, DFEvalValue) and transcond.value == 0:
74+
continue
75+
active_conditions.append((state, transcond))
7176
return tuple(active_conditions)

0 commit comments

Comments
 (0)