Skip to content

Commit 248d63f

Browse files
authored
Update verilogFileParser.py
1 parent 5e8c8c1 commit 248d63f

File tree

1 file changed

+26
-18
lines changed

1 file changed

+26
-18
lines changed

verilogFileParser.py

+26-18
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,28 @@
33
def verilogFileParser (verilogFile):
44
import re
55

6-
moduleRegex = re.compile(r'(module )(.*)( (#)?\()')
6+
moduleRegex = re.compile(r'(module )(.*)((\s)+(#)?\()')
77

88
portRegex = re.compile(r'''(
99
((in|out)put) #port declaration
1010
(\s)+
11-
(\w{3,4})* #wire/reg
11+
(reg|wire|logic|bit)? #wire/reg
1212
(\s)*
13-
(\[[A-Z-]*(\d)* : [A-Z-]*(\d)*])? #if vector
13+
(\[[A-Z-_0-9\s]*:[A-Z-_0-9\s]*\])? #if vector
1414
(\s)*
15-
(\w+) #name
16-
(,|;)? #seperator
15+
(\w+) #name
16+
(,|;|\))? #seperator
1717
)''', re.VERBOSE)
18-
19-
#CHANGE: think about what to do for declarations like input clk, reset..
2018

2119
parameterRegex = re.compile(r'''(
2220
(parameter) #declaration
2321
(\s)+
24-
[A-Z_0-9]+ #name
22+
([A-Z_0-9]+) #name
2523
(\s)*
26-
=
24+
(=)
2725
(\s)*
2826
([A-Za-z0-9']+) #value
29-
(,|\;)+ #end
27+
(,|;|\))+ #end
3028
)''', re.VERBOSE)
3129

3230
#access Verilog file
@@ -45,28 +43,38 @@ def verilogFileParser (verilogFile):
4543
#ports
4644
po = portRegex.findall(text)
4745
ports = []
46+
4847
for i in po:
49-
ports.append(i[0])
48+
item = [i[1], i[4], i[6], i[8]]
49+
for x in item :
50+
if '' in item :
51+
item.remove('')
52+
item = " ".join(item)
53+
ports.append(item)
5054
inputs = []
5155
outputs = []
52-
for i in ports:
53-
name = str(i)
56+
for name in ports:
57+
5458
if name[0:5] == 'input':
55-
inputs.append(name)
59+
inputs.append(name[6:])
5660
else:
57-
outputs.append(i)
61+
outputs.append(name[7:])
5862
writeFileObject.write("List of input ports:\n\t%s\n" %inputs)
5963
writeFileObject.write("List of output ports:\n\t%s\n" %outputs)
6064

61-
#CHANGE: format the ports how they are saved using groups
62-
65+
6366
#parameters
6467
lo = parameterRegex.findall(text)
6568
parameters = []
6669
for i in lo:
67-
parameters.append(i[0])
70+
item = [i[3], i[5], i[7]]
71+
if '' in item : item.remove('')
72+
item = " ".join(item)
73+
parameters.append(item)
6874
writeFileObject.write("List of parameters:\n\t%s" %parameters)
6975

76+
print("Results can be viewed from %s" %fileName)
77+
7078

7179

7280
import sys

0 commit comments

Comments
 (0)