ADDED: PCB Tuning Profiles
Tuning profiles build on the previous delay tuning work to allow the definition of track geometries per-layer for a given tuning profile. These can be calculated from a target impedance (with all relevant geometry taken from the board stackup), or entered manually. Tuning profiles can be configured to enable time-domain tuning, and to automatically generate track geometry DRC rules for net classes which have an assigned tuning profile. Adds a DRC check for net classes with a tuning profile assigned which is not itself defined.
This commit is contained in:
+8
-2
@@ -59,7 +59,7 @@ NETCLASS::NETCLASS( const wxString& aName, bool aInitWithDefaults ) : m_isDefaul
|
||||
|
||||
SetName( aName );
|
||||
SetPriority( -1 );
|
||||
SetDelayProfile( wxEmptyString );
|
||||
SetTuningProfile( wxEmptyString );
|
||||
|
||||
// Colors are a special optional case - always set, but UNSPECIFIED used in place of optional
|
||||
SetPcbColor( COLOR4D::UNSPECIFIED );
|
||||
@@ -102,7 +102,7 @@ void NETCLASS::ResetParents()
|
||||
SetBusWidthParent( this );
|
||||
SetSchematicColorParent( this );
|
||||
SetLineStyleParent( this );
|
||||
SetDelayProfileParent( this );
|
||||
SetTuningProfileParent( this );
|
||||
}
|
||||
|
||||
|
||||
@@ -180,6 +180,9 @@ void NETCLASS::Serialize( google::protobuf::Any &aContainer ) const
|
||||
if( m_pcbColor != COLOR4D::UNSPECIFIED )
|
||||
PackColor( *board->mutable_color(), m_pcbColor );
|
||||
|
||||
if( m_tuningProfile != wxEmptyString )
|
||||
board->set_tuning_profile( m_tuningProfile.ToUTF8() );
|
||||
|
||||
project::NetClassSchematicSettings* schematic = nc.mutable_schematic();
|
||||
|
||||
if( m_wireWidth )
|
||||
@@ -246,6 +249,9 @@ bool NETCLASS::Deserialize( const google::protobuf::Any &aContainer )
|
||||
if( nc.board().has_color() )
|
||||
m_pcbColor = UnpackColor( nc.board().color() );
|
||||
|
||||
if( nc.board().has_tuning_profile() )
|
||||
m_tuningProfile = wxString::FromUTF8( nc.board().tuning_profile() );
|
||||
|
||||
if( nc.schematic().has_wire_width() )
|
||||
m_wireWidth = nc.schematic().wire_width().value_nm();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user