-
Notifications
You must be signed in to change notification settings - Fork 6
/
__main__.py
73 lines (68 loc) · 2.14 KB
/
__main__.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
62
63
64
65
66
67
68
69
# -*- coding: utf-8 -*-
from .verilogparser import *
import sys
import doctest
def map_int(item):
if item=='1' or item=='0':
return int(item)
else:
return item
if __name__=="__main__":
args=sys.argv
filename=None
input_data=None
for item in args:
if item.find(".v")!=-1:
filename=item
xz_flag=False
test_number=100
all_mode=False
random_mode=False
deductive_mode=False
time_mode=False
time_slot=0
upper_args=list(map(str.upper,args))
if len(upper_args)==1:
help_func()
sys.exit()
if "TEST" in upper_args:
doctest.testfile("test.py", optionflags=doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS, verbose=True)
sys.exit()
if "INPUT" in upper_args:
index=upper_args.index("INPUT")
if len(upper_args)>index+1:
input_data=list(map(map_int,list(args[index+1].split(","))))
if "XZ" in upper_args:
xz_flag=True
if "RANDOM" in upper_args and (len(upper_args)>2):
random_mode=True
all_mode=True
index = upper_args.index("RANDOM")
try:
if len(upper_args)>index+1:
test_number=int(args[index+1])
except ValueError:
pass
if "DEDUCTIVE" in upper_args:
deductive_mode=True
xz_flag=False
if "TIME" in upper_args:
time_mode=True
index = upper_args.index("TIME")
if len(upper_args) > index + 1:
try:
time_slot = int(upper_args[index+1])
except Exception:
time_slot = 1
if ("ALL" in upper_args) and (len(upper_args)>2):
all_mode=True
if "HELP" in upper_args:
help_func()
sys.exit()
if "DETAIL" in upper_args:
module_detail(filename=filename)
sys.exit()
if all_mode==True:
verilog_parser(filename,alltest=True,random_flag=random_mode,xz_flag=xz_flag,test_number=test_number,deductive_mode=deductive_mode,time_slot=time_slot,time_mode=time_mode)
else:
verilog_parser(filename,input_data=input_data,deductive_mode=deductive_mode,time_slot=time_slot,time_mode=time_mode)