Skip to content

Commit 599bf7f

Browse files
authored
Merge pull request #95 from siliconcompiler/add-port-info
add use and direction to macro ports
2 parents 173823d + da3fb70 commit 599bf7f

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

sc_leflib/_leflib.pxd

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,10 @@ cdef extern from "lefrReader.hpp" namespace "LefParser":
368368

369369
cdef cppclass lefiPin:
370370
const char* name()
371+
int hasUse()
372+
const char* use()
373+
int hasDirection()
374+
const char* direction()
371375
int numPorts()
372376
lefiGeometries* port(int index)
373377

sc_leflib/_leflib.pyx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,14 @@ cdef int pin_cb(lefrCallbackType_e cb_type, lefiPin* pin, lefiUserData data) noe
394394
name = pin.name().decode('ascii')
395395
_state.data['macros'][_state.cur_macro]['pins'][name] = {}
396396

397+
if pin.hasDirection():
398+
direction = pin.direction().decode('ascii')
399+
_state.data['macros'][_state.cur_macro]['pins'][name]['direction'] = direction
400+
401+
if pin.hasUse():
402+
use = pin.use().decode('ascii')
403+
_state.data['macros'][_state.cur_macro]['pins'][name]['use'] = use
404+
397405
ports = []
398406
for i in range(pin.numPorts()):
399407
port = pin.port(i)

tests/test_leflib.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ def test_leflib_complete(datadir):
102102
assert chk3a['size'] == {'width': 10.8, 'height': 28.8}
103103
assert len(chk3a['pins']) == 7
104104
vdd = chk3a['pins']['VDD']
105+
assert vdd['direction'] == "INOUT"
106+
assert vdd['use'] == "POWER"
105107
assert len(vdd['ports']) == 2
106108
port = vdd['ports'][1]
107109
assert port['class'] == 'NONE'

0 commit comments

Comments
 (0)