drc: added length/skew constraint types
This commit is contained in:
parent
abe354773f
commit
26e7dc6e14
|
@ -50,4 +50,11 @@ void DRC_RULE::AddConstraint( DRC_CONSTRAINT& aConstraint )
|
||||||
m_Constraints.push_back( aConstraint );
|
m_Constraints.push_back( aConstraint );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OPT<DRC_CONSTRAINT> DRC_RULE::FindConstraint( DRC_CONSTRAINT_TYPE_T aType )
|
||||||
|
{
|
||||||
|
for( auto &c : m_Constraints)
|
||||||
|
if( c.m_Type == aType )
|
||||||
|
return c;
|
||||||
|
|
||||||
|
return OPT<DRC_CONSTRAINT>();
|
||||||
|
}
|
|
@ -25,6 +25,7 @@
|
||||||
#define DRC_RULE_PROTO_H
|
#define DRC_RULE_PROTO_H
|
||||||
|
|
||||||
#include <core/typeinfo.h>
|
#include <core/typeinfo.h>
|
||||||
|
#include <core/optional.h>
|
||||||
#include <layers_id_colors_and_visibility.h>
|
#include <layers_id_colors_and_visibility.h>
|
||||||
#include <netclass.h>
|
#include <netclass.h>
|
||||||
#include <libeval_compiler/libeval_compiler.h>
|
#include <libeval_compiler/libeval_compiler.h>
|
||||||
|
@ -38,7 +39,8 @@ class DRC_RULE_CONDITION;
|
||||||
enum DRC_CONSTRAINT_TYPE_T
|
enum DRC_CONSTRAINT_TYPE_T
|
||||||
{
|
{
|
||||||
DRC_CONSTRAINT_TYPE_UNKNOWN = -1,
|
DRC_CONSTRAINT_TYPE_UNKNOWN = -1,
|
||||||
DRC_CONSTRAINT_TYPE_CLEARANCE = 0,
|
DRC_CONSTRAINT_TYPE_NULL = 0,
|
||||||
|
DRC_CONSTRAINT_TYPE_CLEARANCE,
|
||||||
DRC_CONSTRAINT_TYPE_HOLE_CLEARANCE,
|
DRC_CONSTRAINT_TYPE_HOLE_CLEARANCE,
|
||||||
DRC_CONSTRAINT_TYPE_EDGE_CLEARANCE,
|
DRC_CONSTRAINT_TYPE_EDGE_CLEARANCE,
|
||||||
DRC_CONSTRAINT_TYPE_HOLE_SIZE,
|
DRC_CONSTRAINT_TYPE_HOLE_SIZE,
|
||||||
|
@ -48,7 +50,12 @@ enum DRC_CONSTRAINT_TYPE_T
|
||||||
DRC_CONSTRAINT_TYPE_TRACK_WIDTH,
|
DRC_CONSTRAINT_TYPE_TRACK_WIDTH,
|
||||||
DRC_CONSTRAINT_TYPE_ANNULAR_WIDTH,
|
DRC_CONSTRAINT_TYPE_ANNULAR_WIDTH,
|
||||||
DRC_CONSTRAINT_TYPE_DISALLOW,
|
DRC_CONSTRAINT_TYPE_DISALLOW,
|
||||||
DRC_CONSTRAINT_TYPE_VIA_DIAMETER
|
DRC_CONSTRAINT_TYPE_VIA_DIAMETER,
|
||||||
|
DRC_CONSTRAINT_TYPE_LENGTH,
|
||||||
|
DRC_CONSTRAINT_TYPE_SKEW,
|
||||||
|
DRC_CONSTRAINT_TYPE_DIFF_PAIR_LENGTH,
|
||||||
|
DRC_CONSTRAINT_TYPE_DIFF_PAIR_SKEW,
|
||||||
|
DRC_CONSTRAINT_TYPE_DIFF_PAIR_INTRA_SKEW
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -105,6 +112,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddConstraint( DRC_CONSTRAINT& aConstraint );
|
void AddConstraint( DRC_CONSTRAINT& aConstraint );
|
||||||
|
OPT<DRC_CONSTRAINT> FindConstraint( DRC_CONSTRAINT_TYPE_T aType );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool m_Unary;
|
bool m_Unary;
|
||||||
|
@ -129,6 +137,11 @@ class DRC_CONSTRAINT
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsNull() const
|
||||||
|
{
|
||||||
|
return m_Type == DRC_CONSTRAINT_TYPE_NULL;
|
||||||
|
}
|
||||||
|
|
||||||
const MINOPTMAX<int>& GetValue() const { return m_Value; }
|
const MINOPTMAX<int>& GetValue() const { return m_Value; }
|
||||||
MINOPTMAX<int>& Value() { return m_Value; }
|
MINOPTMAX<int>& Value() { return m_Value; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue