[lib] add more apis
This commit is contained in:
parent
b8bd19a234
commit
ae328cfa7f
|
@ -29,12 +29,30 @@ IoPinTable::io_pin_table_range IoPinTable::internal_pins() const {
|
|||
/************************************************************************
|
||||
* Public Accessors : Basic data query
|
||||
***********************************************************************/
|
||||
openfpga::BasicPort IoPinTable::internal_pin(const IoPinTableId& pin_id) const {
|
||||
BasicPort IoPinTable::internal_pin(const IoPinTableId& pin_id) const {
|
||||
/* validate the pin_id */
|
||||
VTR_ASSERT(valid_pin_id(pin_id));
|
||||
return internal_pins_[pin_id];
|
||||
}
|
||||
|
||||
BasicPort IoPinTable::external_pin(const IoPinTableId& pin_id) const {
|
||||
/* validate the pin_id */
|
||||
VTR_ASSERT(valid_pin_id(pin_id));
|
||||
return external_pins_[pin_id];
|
||||
}
|
||||
|
||||
e_side IoPinTable::pin_side(const IoPinTableId& pin_id) const {
|
||||
/* validate the pin_id */
|
||||
VTR_ASSERT(valid_pin_id(pin_id));
|
||||
return pin_sides_[pin_id];
|
||||
}
|
||||
|
||||
IoPinTable::e_io_direction IoPinTable::pin_direction(const IoPinTableId& pin_id) const {
|
||||
/* validate the pin_id */
|
||||
VTR_ASSERT(valid_pin_id(pin_id));
|
||||
return pin_directions_[pin_id];
|
||||
}
|
||||
|
||||
bool IoPinTable::empty() const {
|
||||
return 0 == pin_ids_.size();
|
||||
}
|
||||
|
@ -63,6 +81,26 @@ IoPinTableId IoPinTable::create_pin() {
|
|||
return pin_id;
|
||||
}
|
||||
|
||||
void IoPinTable::set_internal_pin(const IoPinTableId& pin_id, const BasicPort& pin) {
|
||||
VTR_ASSERT(valid_pin_id(pin_id));
|
||||
internal_pins_[pin_id] = pin;
|
||||
}
|
||||
|
||||
void IoPinTable::set_external_pin(const IoPinTableId& pin_id, const BasicPort& pin) {
|
||||
VTR_ASSERT(valid_pin_id(pin_id));
|
||||
external_pins_[pin_id] = pin;
|
||||
}
|
||||
|
||||
void IoPinTable::set_pin_side(const IoPinTableId& pin_id, const e_side& side) {
|
||||
VTR_ASSERT(valid_pin_id(pin_id));
|
||||
pin_sides_[pin_id] = side;
|
||||
}
|
||||
|
||||
void IoPinTable::set_pin_direction(const IoPinTableId& pin_id, const e_io_direction& direction) {
|
||||
VTR_ASSERT(valid_pin_id(pin_id));
|
||||
pin_directions_[pin_id] = direction;
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
* Internal invalidators/validators
|
||||
***********************************************************************/
|
||||
|
|
|
@ -72,18 +72,23 @@ class IoPinTable {
|
|||
*/
|
||||
io_pin_table_range internal_pins() const;
|
||||
public: /* Public Accessors: Basic data query */
|
||||
/* Get the internal pin */
|
||||
/* Get the basic information for a pin */
|
||||
openfpga::BasicPort internal_pin(const IoPinTableId& pin_id) const;
|
||||
|
||||
openfpga::BasicPort external_pin(const IoPinTableId& pin_id) const;
|
||||
e_side pin_side(const IoPinTableId& pin_id) const;
|
||||
e_io_direction pin_direction(const IoPinTableId& pin_id) const;
|
||||
/* Check if there are any pins */
|
||||
bool empty() const;
|
||||
|
||||
public: /* Public Mutators */
|
||||
/* Reserve to be memory efficent */
|
||||
void reserve_pins(const size_t& num_pins);
|
||||
|
||||
/* Add a pin to storage */
|
||||
IoPinTableId create_pin();
|
||||
/* Set pin attributes */
|
||||
void set_internal_pin(const IoPinTableId& pin_id, const BasicPort& pin);
|
||||
void set_external_pin(const IoPinTableId& pin_id, const BasicPort& pin);
|
||||
void set_pin_side(const IoPinTableId& pin_id, const e_side& side);
|
||||
void set_pin_direction(const IoPinTableId& pin_id, const e_io_direction& direction);
|
||||
|
||||
public: /* Public invalidators/validators */
|
||||
/* Show if the pin id is a valid for data queries */
|
||||
|
|
Loading…
Reference in New Issue