Implement time-domain length tuning

- Adds time and delay units
- Adds time domain tuning parameters entry and storage
- Adds pad-to-die delay property
- Adds time domain parameter interface for length / delay calculations
- Adds unit tracking for numerical constants through LIBEVAL
   - Will need future work to truly propagate through binary expressions
- Adds time domain tuning to meander placers
- Adds time delay display to net inspector panel
- Modifies DRC to handle time domain constraints
This commit is contained in:
JamesJCode
2025-04-17 21:46:56 +01:00
parent 0820e90c73
commit eb17ebee4e
113 changed files with 13444 additions and 1101 deletions
+8
View File
@@ -59,6 +59,7 @@ NETCLASS::NETCLASS( const wxString& aName, bool aInitWithDefaults ) : m_isDefaul
SetName( aName );
SetPriority( -1 );
SetTuningProfile( wxEmptyString );
// Colors are a special optional case - always set, but UNSPECIFIED used in place of optional
SetPcbColor( COLOR4D::UNSPECIFIED );
@@ -101,6 +102,7 @@ void NETCLASS::ResetParents()
SetBusWidthParent( this );
SetSchematicColorParent( this );
SetLineStyleParent( this );
SetTuningProfileParent( this );
}
@@ -178,6 +180,9 @@ void NETCLASS::Serialize( google::protobuf::Any &aContainer ) const
if( m_pcbColor != COLOR4D::UNSPECIFIED )
PackColor( *board->mutable_color(), m_pcbColor );
if( HasTuningProfile() )
board->set_tuning_profile( m_TuningProfile );
project::NetClassSchematicSettings* schematic = nc.mutable_schematic();
if( m_wireWidth )
@@ -244,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 = nc.board().tuning_profile();
if( nc.schematic().has_wire_width() )
m_wireWidth = nc.schematic().wire_width().value_nm();