Uploaded by Blanky Chess

Warnings analysis

advertisement
Canvis a fitxers
LEF → smaller OBS
Perquè has ficat la mida (8.000000 8.000000 170.200000 160.000000) ?
La comanda write_lef_abstract té diverses opcions relacionades amb el OBS, a veure si trobo la
correcta per a no haver de tocar el .lef manualment.
LIB → change pin from internal to input
No veig cap comanda per a que ho escrigui bé automàticament, però és fàcil de canviar a mà
Warnings
**WARN: (IMPCTE-288): Could not locate the library tcbn28hpcplusbwp30p140tt0p9v25c
**WARN: (IMPCTE-290): Could not locate cell INVD0BWP30P140 in any library for view *
Aquests error venen del fitxer de constraints PE_row_netlist_sdc.sdc. Entenc que els 2 venen
d’aquí:
set_driving_cell -lib_cell INVD0BWP30P140 -library tcbn28hpcplusbwp30p140tt0p9v25c -pin
"ZN" [get_ports clk]
Tant la cel·la com la llibreria existeixen, i la cel·la està dins la llibreria, i a més la cel·la
INVD0BWP30P140 està dins del Cellviewer, llavors en algun moment la llegeix correctament. He
mirat que no hi hagi cap caràcters estrany amb el hexdump i tot està net.
El .view llegeix les tres llibreries (tt, ss, i ff) i llavors llegeix el .sdc per a mirar les constriants. Pels
warnings que surten, sembla que no troba la cel·la a la tt i llavors fa servir la ss, però com he
comentat abans, la cel·la i la llibreria (tt) existeixen...
Si li trec la comanda que especifica la llibreria (la comanda és opcional), no dona problema.
**WARN: (IMPLF-200): Pin * in macro 'PE' has no ANTENNAGATEAREA value defined. The
library data is incomplete and some process antenna rules will not be checked correctly.
Mirant les opcions per a fer el LEF, no veig alguna que sigui "include antenna" o similar.
Puc afegir el paràmetres manualment, però quin valor li fico?
**WARN: (TECHLIB-1329): The attribute 'related_power_pin' on the pin 'en_monit_tx' in cell
'PE' is missing, even though the cell has multiple supply voltages.
El pin 'en_monit_tx' no està connectat a res, al routing del PE. Mirant el vhdl, es fa servir a la
part de monitoreig, que està comentada. Ara per ara, aquest input no fa res.
Ho puc deixar així, i torno a fer el PE sense aquest input comentat?
**WARN: (TCLCMD-1461): Skipped unsupported command: set_units
El fitxer PE_row_netlist_sdc.sdc el genera automàticament el Genus, a partir de les constraints
i del script que li dono, no entenc perquè està ficant comandes que l'Innovus no entén, potser
és una cosa de versions...
Mirant per l'Innovus, la commanda correcta diria que és:
set_library_unit [-help] [-cap <string>] [-time <string>]
-help
-cap <string>
# Prints out the command usage
# capacitance unit for sdc data (string, optional)
-time <string> # time unit for sdc data (string, optional)
Commands
TO WRITE LEF
write_lef_abstract [-help] <out_file> [-add_obs_layers <layer_list>] [cut_obs_min_spacing] [-exclude_obs_layers <layer_list>] [-exclude_pin_layers
<layer_list>] [-extract_block_obs]
[-extract_block_pg_pin_layers <layer_list>] [ignore_bump_on_pin {all pg signal}] [-io_pad_pin] [-no_cut_obs] [-property] [stripe_pins [-selected ]] [-stripe_pins [-port_for_each_stripe_pin ]] [-stripe_pins [pg_pin_layers <layer_list>]] [-stripe_pins [-pg_nets <net>+]] [-top_layer <layer> [obs_above_top_layer <layer>+]] [-obs_above_top_layer <layer>+ ] [-extract_well_layer_obs
<well_layer_list> [-extract_well_obs_from_rows <margin>]] [-extract_well_layer_obs
<well_layer_list> [-merge_connected_well_only ]] [-obs_spacing <value_layer_pair_list>
[-obs_spacing_per_layer ]] [ -5.6 | -5.7 | -5.8 | -6.0 ] [-design_boundary
<point_list> ] [-cut_obs_to_expose_routing <microns> ]
-help
# Prints out the command usage
<out_file>
# LEF output file name (string, required)
-5.6
# write out LEF version 5.6 (bool, optional)
-5.7
# write out LEF version 5.7 (bool, optional)
-5.8
# write out LEF version 5.8 (bool, optional)
-6.0
# write out LEF version 6.0 (bool, optional)
-add_obs_layers <layer_list>
# Shapes on these layers will be written as
OBS shapes in the LEF. Cannot be routing or cut layers. (string, optional)
-cut_obs_min_spacing
(bool, optional)
# Cut OBS around pin shapes by min-spacing
-cut_obs_to_expose_routing <microns>
expose routing. (double, optional)
# Cut OBS from the boundary by <microns> to
-design_boundary <point_list>
boundary (string, optional)
# Write out SIZE and OBS based on the design
-exclude_obs_layers <layer_list>
((layer)+, optional)
# Do not create OBS shapes on these layers
-exclude_pin_layers <layer_list>
((layer)+, optional)
# Do not create PIN shapes on these layers
-extract_block_obs
# Extract OBS from BLOCK, RING, PAD macro
above top layer, and write to the LEF file (bool, optional)
-extract_block_pg_pin_layers <layer_list>
# Extract PG pins from BLOCK, RING, PAD, COVER
macros on these layers ((layer)+, optional)
-extract_well_layer_obs <well_layer_list>
# Extract OBS from instances on specified well
layers by merging all shapes into one bounding box ((layer)+, optional)
-extract_well_obs_from_rows <margin>
# Extract OBS from the bounding box of rows
plus the margin on specified well layers (double, optional)
-ignore_bump_on_pin {all pg signal}
optional)
# Do not dump bump shapes on pins (enum,
-io_pad_pin
# Write out IO pads that are connected to
design pins as LEF pin shapes (bool, optional)
-merge_connected_well_only
# Merge connected well shapes only, instead to
merge all shapes into one bounding box (bool, optional)
-no_cut_obs
optional)
# Do not cut OBS shapes around pins (bool,
-obs_above_top_layer <layer>+
# Write out OBS shapes rather than one large
abstract OBS shape for each wire and via on these layers that are not PIN shapes.
((layer)+, optional)
-obs_spacing <value_layer_pair_list>
section (string, optional)
# Write out LEF58_OBSSPACING property in OBS
-obs_spacing_per_layer
layer definition (bool, optional)
# Write out the spacing for each layer under
-pg_nets <net>+
((net)+, optional)
# Write out PG stripes only on these pg nets
-pg_pin_layers <layer_list>
((layer)+, optional)
# Write out PG stripes on these layers
-port_for_each_stripe_pin
# A separate LEF port will be created for each
pin shape created by -stripe_pins (bool, optional)
-property
(bool, optional)
# Write out all user defined design properties
-selected
pin shapes (bool, optional)
# Write out only selected PG stripes as LEF
-stripe_pins
LEF pin shapes (bool, optional)
# Write out PG stripes on top metal layer as
-top_layer <layer>
optional)
# Create OBS up to this layer ((layer),
TO WRITE LIB
write_timing_model [-help] <model_file> [-absolute_tolerance_optimistic_validation
<float>] [-absolute_tolerance_pessimistic_validation <float>] [absolute_tolerance_validation <float>]
[-assertions <constraint filename>] [-cell_name <cell_name>]
[-clock_transitions {<clk_slew1 clk_slew2>...}] [-gain <integer>] [include_aocv_weights] [-include_power]
[-include_power_ground] [-input_transitions {<input_slew1
input_slew2>...}] [-lib_name <lib_name>] [-max_num_loads <value>] [-max_num_transitions
<value>]
[-output_loads {<output_load1 output_load2>...}] [percent_tolerance_optimistic_validation <float>] [percent_tolerance_pessimistic_validation <float>]
[-percent_tolerance_validation <float>] [-precision <integer>]
[-resolution <float>] [-tolerance <float>] [-validation_dir <string>] [verilog_shell_file <filename>]
[-verilog_shell_module <top_module_name>] [-view <string>] []
[-post_check]
-help
# Prints out the command usage
<model_file>
(string, required)
# Specifies the name of the output file
-absolute_tolerance_optimistic_validation <float>
# This switch will specify the absolute
tolerance limit for flagging an optimistic failure. An optimistic path violating
absolute as well as percentage tolerance limit
# will be flagged as FAIL in
compare_model_timing output report. Default value of this switch is 15ps. This can be
used only when '-validate' is used with model
# extraction. (double, optional)
-absolute_tolerance_pessimistic_validation <float>
# This switch will specify the absolute
tolerance limit for flagging a pessimistic failure. A pessimistic path violating
absolute as well as percentage tolerance limit
# will be flagged as FAIL in
compare_model_timing output report. Default value of this switch is 15ps. This can be
used only when '-validate' is used with model
# extraction. (double, optional)
-absolute_tolerance_validation <float>
# Specifies the absolute tolerance value to
be used during the validation of extracted ETM. For more details refer
'compare_model_timing -absolute_tolerance'. This can
# be used only when '-validate' is used with
model extraction. The integer value specified with this switch is read as ns/ps
depending upon the time unit. Default 3ps
# (double, optional)
-assertions <constraint filename>
# Dumps the constraints for model, which is
used in validation flow (string, optional)
-cell_name <cell_name>
model (string, optional)
# Specifies the cell name used in the timing
-clock_transitions {<clk_slew1 clk_slew2>...}
# Specifies a range of slew values used at
all clock pins (string, optional)
-gain <integer>
# Represents an increase in the number of
delay arcs if a pin is removed (int, optional)
-include_aocv_weights
(bool, optional)
# writes stage weights on individual arcs
-include_power
block (bool, optional)
# Writes information of power consumed by the
-include_power_ground
pins (bool, optional)
# Writes the power ground information for
-input_transitions {<input_slew1 input_slew2>...}
# Specifies a range of slew values used at
all data input ports (string, optional)
-lib_name <lib_name>
timing model (string, optional)
# Specifies the library name used in the
-max_num_loads <value>
values (int, optional)
# Specifies the maximum number of output load
-max_num_transitions <value>
or clock slews (int, optional)
# Specifies the maximum number of input slews
-output_loads {<output_load1 output_load2>...}
# Specifies a range of load values used at
all output ports (string, optional)
-percent_tolerance_optimistic_validation <float>
# This switch will specify the percentage
tolerance limit for flagging an optimistic failure. An optimistic path violating
percentage as well as absolute tolerance
# limit will be flagged as FAIL in
compare_model_timing output report. Default value of this switch is 3%. This can be used
only when '-validate' is used with model
# extraction. (double, optional)
-percent_tolerance_pessimistic_validation <float>
# This switch will specify the percentage
tolerance limit for flagging a pessimistic failure. A pessimistic path violating
percentage as well as absolute tolerance
# limit will be flagged as FAIL in
compare_model_timing output report. Default value of this switch is 3%. This can be used
only when '-validate' is used with model
# extraction. (double, optional)
-percent_tolerance_validation <float>
# Specifies the percentage tolerance value to
be used during the validation of extracted ETM. For more details refer
'compare_model_timing -percent_tolerance'. This
# can be used only when '-validate' is used
with model extraction. Default 3% (double, optional)
-post_check
Valus. (bool, optional)
# Checks the generated ETM library using
-precision <integer>
for the timing model (int, optional)
# Specifies the floating point precision used
-resolution <float>
# Specifies the magnitude of delay difference
that can be ignored in extraction (double, optional)
-tolerance <float>
in percent (double, optional)
# Specifies the accuracy level of extractor
-validation_dir <string>
# This switch enables the validation of
generated ETM for corresponding view and displays number of failures at the end of
validation. It is mandatory to specify the
# name of validation directory with this
option (-validate valDir), this contains the write_model_timing, compare_model_timing
and summary reports. (string, optional)
-verilog_shell_file <filename>
# Generates a Verilog shell file that
instantiates the timing model (string, optional)
-verilog_shell_module <top_module_name>
Verilog shell file (string, optional)
# Specifies the top module name of the
-view <string>
extracted (string, optional)
# Specifies the view for which model needs to
Download