Skip to content

Commit 2e35f60

Browse files
authored
Merge pull request #7837 from eder-matheus/ppl_doc
ppl: error handling and documentation
2 parents 82a1d13 + 86a146d commit 2e35f60

File tree

5 files changed

+22
-1
lines changed

5 files changed

+22
-1
lines changed

src/odb/src/swig/tcl/odb.tcl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -734,6 +734,9 @@ proc set_io_pin_constraint { args } {
734734
} elseif { $interval == "*" } {
735735
set begin [ppl::get_edge_extreme "-region" 1 $edge]
736736
set end [ppl::get_edge_extreme "-region" 0 $edge]
737+
} else {
738+
utl::error PPL 212 "Invalid value for \'-region edge:interval\'. Set the interval as the\
739+
wildcard \'*\' or as a range \'begin-end\' in microns."
737740
}
738741

739742
if { [info exists keys(-direction)] && [info exists keys(-pin_names)] } {

src/ppl/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ set_io_pin_constraint
7979
| ----- | ----- |
8080
| `-direction` | Pin direction (`input`, `output`, `inout`, or `feedthrough`). |
8181
| `-pin_names` | List of names. Only one of (`-direction`, `-pin_names`) should be used in a single call for the `set_io_pin_constraint` command. |
82-
| `-region` | Syntax is `-region edge:interval`. The `edge` values are (`top\|bottom\|left\|right`). The `interval` can be the whole edge with the wildcard `*` value or a range of values. |
82+
| `-region` | Syntax is `-region edge:interval`. The `edge` values are (`top\|bottom\|left\|right`). The `interval` can be the whole edge with the wildcard `*` value or a range of values `begin-end` in microns. For example, in `-region right:15-60` the interval is on the right edge from 15 microns to 60 microns.|
8383
| `-mirrored_pins` | List of pins that sets pairs of pins that will be symmetrically placed in the vertical or the horizontal edges. The number of pins in this list **must be even**. For example, in `set_io_pin_constraint -mirrored_pins {pin1 pin2 pin3 pin4 pin5 pin6}`, the pins `pin1` and `pin2` will be placed symmetrically to each other. Same for `pin3` and `pin4`, and for `pin5` and `pin6`. |
8484
| `-group` | Flag places together on the die boundary the pin list defined in `-pin_names,` similar to the `-group_pins` option on the `place_pins` command. |
8585
| `-order` | Flag places the pins ordered in ascending x/y position and must be used only when `-group` is also used. |

src/ppl/test/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ or_integration_tests(
3030
add_constraint_error7
3131
add_constraint_error8
3232
add_constraint_error9
33+
add_constraint_error10
3334
annealing1
3435
annealing2
3536
annealing3
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[INFO ODB-0227] LEF file: Nangate45/Nangate45.lef, created 22 layers, 27 vias, 135 library cells
2+
[INFO ODB-0128] Design: gcd
3+
[INFO ODB-0130] Created 54 pins.
4+
[INFO ODB-0131] Created 88 components and 422 component-terminals.
5+
[INFO ODB-0133] Created 54 nets and 88 connections.
6+
[ERROR PPL-0212] Invalid value for '-region edge:interval'. Set the interval as the wildcard '*' or as a range 'begin-end' in microns.
7+
PPL-0212
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# gcd_nangate45 IO placement
2+
source "helpers.tcl"
3+
read_lef Nangate45/Nangate45.lef
4+
read_def gcd.def
5+
6+
catch {
7+
set_io_pin_constraint -group -order -region left:90.3 -pin_names {resp_msg[0] req_msg[0]
8+
resp_msg[1] req_msg[1] resp_msg[2] req_msg[2] resp_msg[3]}
9+
} error
10+
puts $error

0 commit comments

Comments
 (0)