Skip to content

Commit fd948b9

Browse files
committed
ram: ram.tcl changes for parameters and ok files
Signed-off-by: braydenl9988 <braydenl9988@gmail.com>
1 parent 864d35a commit fd948b9

2 files changed

Lines changed: 50 additions & 32 deletions

File tree

src/ram/src/ram.tcl

Lines changed: 37 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -51,41 +51,57 @@ proc generate_ram_netlist { args } {
5151

5252
sta::define_cmd_args "generate_ram" {-bytes_per_word bits
5353
-word_count words
54-
[-storage_cell name]
55-
[-tristate_cell name]
56-
[-inv_cell name]
57-
[-read_ports count]
58-
-power_net name
59-
-ground_net name
60-
-routing_layer config
61-
-ver_layer config
62-
-hor_layer config
63-
-filler_cells fillers}
54+
[-read_ports count]
55+
[-storage_cell name]
56+
[-tristate_cell name]
57+
[-inv_cell name]
58+
-power_pin name
59+
-ground_pin name
60+
-routing_layer config
61+
-ver_layer config
62+
-hor_layer config
63+
-filler_cells fillers}
6464

6565
# user arguments for generate ram netlist arguments
6666
proc generate_ram { args } {
6767
sta::parse_key_args "generate_ram" args \
6868
keys {-bytes_per_word -word_count -storage_cell -tristate_cell -inv_cell -read_ports
69-
-power_net -ground_net -routing_layer -ver_layer -hor_layer -filler_cells} flags {}
69+
-power_pin -ground_pin -routing_layer -ver_layer -hor_layer -filler_cells} flags {}
7070

71-
generate_ram_netlist \
71+
set ram_netlist_args [list \
7272
-bytes_per_word $keys(-bytes_per_word) \
73-
-word_count $keys(-word_count) \
74-
-storage_cell $keys(-storage_cell) \
75-
-read_ports $keys(-read_ports)
73+
-word_count $keys(-word_count)]
74+
75+
if { [info exists keys(-read_ports)] } {
76+
lappend ram_netlist_args -read_ports $keys(-read_ports)
77+
}
78+
79+
if { [info exists keys(-storage_cell)] } {
80+
lappend ram_netlist_args -storage_cell $keys(-storage_cell)
81+
}
82+
83+
if { [info exists keys(-tristate_cell)] } {
84+
lappend ram_netlist_args -tristate_cell $keys(-tristate_cell)
85+
}
86+
87+
if { [info exists keys(-inv_cell)] } {
88+
lappend ram_netlist_args -inv_cell $keys(-inv_cell)
89+
}
90+
91+
generate_ram_netlist {*}$ram_netlist_args
7692

7793
ord::design_created
7894

79-
if { [info exists keys(-power_net)] } {
80-
set power_net $keys(-power_net)
95+
if { [info exists keys(-power_pin)] } {
96+
set power_net $keys(-power_pin)
8197
} else {
82-
utl::error RAM 5 "The -power_net argument must be specified."
98+
utl::error RAM 5 "The -power_pin argument must be specified."
8399
}
84100

85-
if { [info exists keys(-ground_net)] } {
86-
set ground_net $keys(-ground_net)
101+
if { [info exists keys(-ground_pin)] } {
102+
set ground_net $keys(-ground_pin)
87103
} else {
88-
utl::error RAM 6 "The -ground_net argument must be specified."
104+
utl::error RAM 6 "The -ground_pin argument must be specified."
89105
}
90106

91107
if { [info exists keys(-routing_layer)] } {
@@ -160,12 +176,4 @@ proc generate_ram { args } {
160176

161177
global_route
162178
detailed_route
163-
164-
set lef_file [make_result_file make_8x8.lef]
165-
write_abstract_lef $lef_file
166-
diff_files make_8x8.lefok $lef_file
167-
168-
set def_file [make_result_file make_8x8.def]
169-
write_def $def_file
170-
diff_files make_8x8.defok $def_file
171179
}

src/ram/test/make_8x8.tcl

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,25 @@ read_liberty sky130hd/sky130_fd_sc_hd__tt_025C_1v80.lib
77
read_lef sky130hd/sky130hd.tlef
88
read_lef sky130hd/sky130_fd_sc_hd_merged.lef
99

10+
puts $tcl_version
11+
1012
generate_ram \
1113
-bytes_per_word 1 \
1214
-word_count 8 \
1315
-read_ports 2 \
1416
-storage_cell sky130_fd_sc_hd__dlxtp_1 \
15-
-power_net VPWR \
16-
-ground_net VGND \
17+
-power_pin VPWR \
18+
-ground_pin VGND \
1719
-routing_layer {met1 0.48} \
1820
-ver_layer {met2 0.48 40} \
1921
-hor_layer {met3 0.48 20} \
2022
-filler_cells {sky130_fd_sc_hd__fill_1 sky130_fd_sc_hd__fill_2 \
21-
sky130_fd_sc_hd__fill_4 sky130_fd_sc_hd__fill_8}
23+
sky130_fd_sc_hd__fill_4 sky130_fd_sc_hd__fill_8}
24+
25+
set lef_file [make_result_file make_8x8.lef]
26+
write_abstract_lef $lef_file
27+
diff_files make_8x8.lefok $lef_file
28+
29+
set def_file [make_result_file make_8x8.def]
30+
write_def $def_file
31+
diff_files make_8x8.defok $def_file

0 commit comments

Comments
 (0)