@@ -38,6 +38,45 @@ SPIKE_EXT_NOT_ALLOWED = [
3838 "zvl4096b" ,
3939]
4040
41+ NSIM_EXT_ALLOWED = [
42+ "i" , "m" , "a" , "f" , "d" , "c" , "e" , "h" , "v" ,
43+ "zfh" ,
44+ "zfhmin" ,
45+ "zhinx" ,
46+ "zhinxmin" ,
47+ "zfinx" ,
48+ "zdinx" ,
49+ "zfa" ,
50+ "zicsr" ,
51+ "zifencei" ,
52+ "zicond" ,
53+ "zihintpause" ,
54+ "zba" ,
55+ "zbb" ,
56+ "zbc" ,
57+ "zbs" ,
58+ "zca" ,
59+ "zcb" ,
60+ "zcf" ,
61+ "zcd" ,
62+ "zcmp" ,
63+ "zcmt" ,
64+ "zicbom" ,
65+ "zicboz" ,
66+ "zicbop" ,
67+ "zvl32b" ,
68+ "zvl64b" ,
69+ "zvl128b" ,
70+ "zvl256b" ,
71+ "zvl512b" ,
72+ "zvl1024b" ,
73+ "zve32x" ,
74+ "zve32f" ,
75+ "zve64x" ,
76+ "zve64f" ,
77+ "zve64d"
78+ ]
79+
4180CPU_OPTIONS = {
4281 "xlen" : "" ,
4382 "vlen" : "" ,
@@ -59,6 +98,8 @@ def parse_opt(argv):
5998 parser .add_argument ('--print-spike-isa' , action = 'store_true' , default = False )
6099 parser .add_argument ('--print-spike-varch' , action = 'store_true' ,
61100 default = False )
101+ parser .add_argument ('--print-nsim-family' , action = 'store_true' , default = False )
102+ parser .add_argument ('--print-nsim-isa' , action = 'store_true' , default = False )
62103 opt = parser .parse_args ()
63104 return opt
64105
@@ -203,6 +244,18 @@ def print_spike_varch():
203244
204245 return "vlen:{0},elen:{1}" .format (CPU_OPTIONS ['vlen' ], CPU_OPTIONS ['elen' ])
205246
247+ def print_nsim_family ():
248+ return "rv{0}" .format (CPU_OPTIONS ['xlen' ])
249+
250+ def print_nsim_isa ():
251+ cpu_options = ["-all" ]
252+
253+ for ext in CPU_OPTIONS ['extensions' ]:
254+ if ext in NSIM_EXT_ALLOWED :
255+ cpu_options .append (ext )
256+
257+ return "." .join (cpu_options )
258+
206259class TestArchStringParse (unittest .TestCase ):
207260 def _test (self , arch , expected_arch_list , expected_vlen = 0 ):
208261 exts = parse_march (arch )
@@ -301,5 +354,11 @@ def main(argv):
301354 if opt .print_spike_varch :
302355 print (print_spike_varch ())
303356
357+ if opt .print_nsim_family :
358+ print (print_nsim_family ())
359+
360+ if opt .print_nsim_isa :
361+ print (print_nsim_isa ())
362+
304363if __name__ == '__main__' :
305364 sys .exit (main (sys .argv ))
0 commit comments