forked from efabless/caravel
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopenframe_build_stub.py
executable file
·116 lines (89 loc) · 3.72 KB
/
openframe_build_stub.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/usr/bin/env python3
# Generate the SPICE netlist stub entry for the openframe chip_io, to be
# used to annotate the layout. The generated file is only needed for
# annotation and may be removed afterwards. The script is maintained to
# regenerate the stub file on demand.
with open('chip_io_openframe.spice', 'w') as ofile:
print('* Subcircuit pin order definition for chip_io_openframe', file=ofile)
print('.subckt chip_io_openframe', file=ofile)
print('+ vddio_pad', file=ofile)
print('+ vddio_pad2', file=ofile)
print('+ vssio_pad', file=ofile)
print('+ vssio_pad2', file=ofile)
print('+ vccd_pad', file=ofile)
print('+ vssd_pad', file=ofile)
print('+ vdda_pad', file=ofile)
print('+ vssa_pad', file=ofile)
print('+ vdda1_pad', file=ofile)
print('+ vdda1_pad2', file=ofile)
print('+ vssa1_pad', file=ofile)
print('+ vssa1_pad2', file=ofile)
print('+ vssa2_pad', file=ofile)
print('+ vccd1_pad', file=ofile)
print('+ vccd2_pad', file=ofile)
print('+ vssd1_pad', file=ofile)
print('+ vssd2_pad', file=ofile)
print('+ vddio', file=ofile)
print('+ vssio', file=ofile)
print('+ vccd', file=ofile)
print('+ vssd', file=ofile)
print('+ vdda', file=ofile)
print('+ vssa', file=ofile)
print('+ vdda1', file=ofile)
print('+ vdda2', file=ofile)
print('+ vssa1', file=ofile)
print('+ vssa2', file=ofile)
print('+ vccd1', file=ofile)
print('+ vccd2', file=ofile)
print('+ vssd1', file=ofile)
print('+ vssd2', file=ofile)
print('+ resetb_pad', file=ofile)
print('+ porb_h', file=ofile)
print('+ porb_l', file=ofile)
print('+ por_l', file=ofile)
print('+ resetb_h', file=ofile)
print('+ resetb_l', file=ofile)
for i in range(31, -1, -1):
print('+ mask_rev[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_out[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_oeb[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_inp_dis[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_ib_mode_sel[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_vtrip_sel[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_slow_sel[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_holdover[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_analog_en[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_analog_sel[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_analog_pol[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_dm0[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_dm1[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_dm2[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_in[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_in_h[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_loopback_zero[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ gpio_loopback_one[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ analog_io[' + str(i) + ']', file=ofile)
for i in range(43, -1, -1):
print('+ analog_noesd_io[' + str(i) + ']', file=ofile)
print('* No contents---stub for ordering pins in layout.', file=ofile)
print('.ends', file=ofile)