Skip to content

Commit 23f8a37

Browse files
authored
added related pins to rw_port_group (#16)
Signed-off-by: Jeff Ng <jeffng@precisioninno.com>
1 parent b0a6bf1 commit 23f8a37

File tree

6 files changed

+67
-0
lines changed

6 files changed

+67
-0
lines changed

spreadsheet_ram.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,11 @@ def set_logical_pins(self, mem, pin_org):
249249
rw_port_group.set_data_output_bus_name(pin_name)
250250
elif pin_type == "write_enable":
251251
rw_port_group.set_write_enable_name(pin_name)
252+
else:
253+
if "msb" in port_data:
254+
rw_port_group.add_related_bus(port_data)
255+
else:
256+
rw_port_group.add_related_pin(pin_name)
252257
mem.add_rw_port_group(rw_port_group)
253258
for src in pin_org.get_misc_busses():
254259
mem.add_misc_bus(src)

utils/lef_exporter.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,11 @@ def write_signal_pins(self, fid):
156156
if rw_port_group.get_write_enable_name():
157157
port = mem.get_port(rw_port_group.get_write_enable_name())
158158
self.write_pin(fid, port)
159+
for pin_name in rw_port_group.get_related_pins():
160+
port = mem.get_port(pin_name)
161+
self.write_pin(fid, port)
162+
for bus_name, bus_data in rw_port_group.get_related_busses().items():
163+
self.write_signal_bus(fid, bus_name, bus_data["lsb"], bus_data["msb"] + 1)
159164
if rw_port_group.get_clock_name():
160165
port = mem.get_port(rw_port_group.get_clock_name())
161166
self.write_pin(fid, port)

utils/liberty_exporter.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,14 @@ def write_bus_defs(self, out_fh):
147147
addr_bus_msb = mem.get_addr_bus_msb()
148148
self.write_bus_def(out_fh, name + "_DATA", bits, data_bus_msb)
149149
self.write_bus_def(out_fh, name + "_ADDRESS", addr_width, addr_bus_msb)
150+
for rw_port_group in mem.get_rw_port_groups():
151+
for bus_name, bus_data in rw_port_group.get_related_busses().items():
152+
self.write_bus_def(
153+
out_fh,
154+
mem.get_name() + "_" + bus_name,
155+
bus_data["msb"] - bus_data["lsb"] + 1,
156+
bus_data["msb"],
157+
)
150158
for bus_name, bus_data in mem.get_misc_busses().items():
151159
self.write_bus_def(
152160
out_fh,
@@ -435,4 +443,8 @@ def write_rw_pin_set(self, out_fh, name, rw_port_group, is_ram):
435443
clk_pin_name,
436444
is_ram,
437445
)
446+
for related_pin in rw_port_group.get_related_pins():
447+
self.write_pin(out_fh, name, related_pin, clk_pin_name)
448+
for bus_name,bus_data in rw_port_group.get_related_busses().items():
449+
self.write_generic_bus(out_fh, name, bus_name, clk_pin_name)
438450
self.write_clk_pin(out_fh, clk_pin_name)

utils/rw_port_group.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ def __init__(self, suffix=None):
3535
self._data_input_bus_name = None
3636
self._data_output_bus_name = None
3737
self._clk_name = None
38+
self._related_pin_list = []
39+
self._related_busses = {}
3840

3941
def set_suffix(self, suffix):
4042
"""
@@ -84,6 +86,22 @@ def get_data_output_bus_name(self):
8486
"""Gets the data output bus name"""
8587
return self._data_output_bus_name
8688

89+
def add_related_pin(self, name):
90+
"""Adds related pin"""
91+
self._related_pin_list.append(name)
92+
93+
def get_related_pins(self):
94+
"""Gets the related pin list"""
95+
return self._related_pin_list
96+
97+
def add_related_bus(self, bus):
98+
"""Adds related bus"""
99+
self._related_busses[bus["name"]] = bus
100+
101+
def get_related_busses(self):
102+
"""Gets the related bus dictionary"""
103+
return self._related_busses
104+
87105
def _set_names_by_suffix(self, suffix):
88106
"""
89107
Sets the port & bus names based on the default for the port or bus

utils/ss_port_organizer.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@ def organize_ports(self, macro_data):
8181
"write_enable",
8282
"output_bus",
8383
"data_bus",
84+
"toggle_power",
85+
"self_time_bypass",
86+
"mem_enable",
87+
"write_margin_enable",
88+
"write_margin_input",
8489
]:
8590
last_char = port_data["name"][-1]
8691
self._rw_groups[last_char][port_data["type"]] = port_data

utils/verilog_exporter.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,11 @@ def write_rw_port_decl_set(self, rw_port_group, out_fh, index):
9191
out_fh.write(f" {rw_port_group.get_data_output_bus_name()},\n")
9292
if rw_port_group.get_clock_name():
9393
out_fh.write(f" {rw_port_group.get_clock_name()}")
94+
for port_name in rw_port_group.get_related_pins():
95+
out_fh.write(f" {port_name}")
96+
for bus_name in rw_port_group.get_related_busses():
97+
out_fh.write(f" {bus_name}")
98+
9499

95100
def write_misc_decl_set(self, mem, out_fh):
96101
"""Write the misc bus/port declarations"""
@@ -125,6 +130,15 @@ def write_rw_port_defn_set(self, rw_port_group, out_fh):
125130
out_fh.write(
126131
f" input wire {rw_port_group.get_clock_name()};\n"
127132
)
133+
for pin_name in rw_port_group.get_related_pins():
134+
out_fh.write(
135+
f" input wire {pin_name};\n"
136+
)
137+
for bus_name,bus_data in rw_port_group.get_related_busses().items():
138+
out_fh.write(
139+
f" input wire [{bus_data['msb']}:{bus_data['lsb']}] {bus_name};\n"
140+
)
141+
128142
out_fh.write("\n")
129143

130144
def write_misc_defn_set(self, mem, out_fh):
@@ -171,6 +185,14 @@ def export_bb_port_decl_set(self, rw_port_group, out_fh, index):
171185
out_fh.write(
172186
f" output reg [{data_bus_msb}:0] {rw_port_group.get_data_output_bus_name()},\n"
173187
)
188+
for pin_name in rw_port_group.get_related_pins():
189+
out_fh.write(
190+
f" input {pin_name},\n"
191+
)
192+
for bus_name, bus_data in rw_port_group.get_related_busses().items():
193+
out_fh.write(
194+
f" input [{bus_data['msb']}:{bus_data['lsb']}] {bus_name},\n"
195+
)
174196
if rw_port_group.get_clock_name():
175197
out_fh.write(f" input {rw_port_group.get_clock_name()}")
176198

0 commit comments

Comments
 (0)