@@ -51,41 +51,57 @@ proc generate_ram_netlist { args } {
5151
5252sta::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
6666proc 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}
0 commit comments