41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
|
from curses.ascii import isdigit
|
||
|
|
||
|
from zeroconf import instance_name_from_service_info
|
||
|
|
||
|
|
||
|
file_list = [('ectrl.txt', '.ECtrl'),
|
||
|
('exc.txt', ''),
|
||
|
('global.txt', ''),
|
||
|
('mctrl0.txt', '.MCtrl0'),
|
||
|
('mctrl1.txt', '.MCtrl1'),
|
||
|
('pcs.txt', ''),
|
||
|
('privilege.txt', ''),
|
||
|
('trap.txt', '.Trap'),
|
||
|
('wctrl.txt', '.WCtrl')]
|
||
|
mp = {}
|
||
|
inst_name = {}
|
||
|
for fi, subname in file_list:
|
||
|
with open(fi) as f:
|
||
|
lines = f.readlines()
|
||
|
title = lines[0].split()
|
||
|
items = [item.split() for item in lines[1:]]
|
||
|
for item in items:
|
||
|
for i in range(1, len(title)):
|
||
|
if title[i][-1].isdigit() and title[i] not in ['RS0', 'DP0', 'DP1']:
|
||
|
continue
|
||
|
if item[i] == '?':
|
||
|
continue
|
||
|
inst = item[0]
|
||
|
inst_name[inst] = ' '.join(item[len(title)+1:])
|
||
|
signal_name = 'ctrl' + subname + '.' + title[i]
|
||
|
if inst not in mp:
|
||
|
mp[inst] = [(signal_name, item[i])]
|
||
|
else:
|
||
|
mp[inst].append((signal_name, item[i]))
|
||
|
|
||
|
for inst in mp:
|
||
|
print(f'case {inst}: begin /* {inst_name[inst]} */')
|
||
|
for sig in mp[inst]:
|
||
|
print(f' {sig[0]} = {sig[1]}')
|
||
|
print('end')
|