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
+13 -8
View File
@@ -45,14 +45,19 @@ wxString KIGFX::PREVIEW::DimensionLabel( const wxString& prefix, double aVal,
// nanometre
switch( aUnits )
{
case EDA_UNITS::UM: fmtStr = wxT( "%.0f" ); break; // 1um
case EDA_UNITS::MM: fmtStr = wxT( "%.3f" ); break; // 1um
case EDA_UNITS::CM: fmtStr = wxT( "%.4f" ); break; // 1um
case EDA_UNITS::MILS: fmtStr = wxT( "%.1f" ); break; // 0.1mil
case EDA_UNITS::INCH: fmtStr = wxT( "%.4f" ); break; // 0.1mil
case EDA_UNITS::DEGREES: fmtStr = wxT( "%.1f" ); break; // 0.1deg
case EDA_UNITS::PERCENT: fmtStr = wxT( "%.1f" ); break; // 0.1%
case EDA_UNITS::UNSCALED: fmtStr = wxT( "%f" ); break;
case EDA_UNITS::UM: fmtStr = wxT( "%.0f" ); break; // 1um
case EDA_UNITS::MM: fmtStr = wxT( "%.3f" ); break; // 1um
case EDA_UNITS::CM: fmtStr = wxT( "%.4f" ); break; // 1um
case EDA_UNITS::MILS: fmtStr = wxT( "%.1f" ); break; // 0.1mil
case EDA_UNITS::INCH: fmtStr = wxT( "%.4f" ); break; // 0.1mil
case EDA_UNITS::DEGREES: fmtStr = wxT( "%.1f" ); break; // 0.1deg
case EDA_UNITS::PERCENT: fmtStr = wxT( "%.1f" ); break; // 0.1%
case EDA_UNITS::FS: fmtStr = wxT( "%.4f" ); break; // 0.0001ps
case EDA_UNITS::PS: fmtStr = wxT( "%.3f" ); break; // 0.001ps
case EDA_UNITS::PS_PER_INCH: fmtStr = wxT( "%.3f" ); break; // 0.001ps/in
case EDA_UNITS::PS_PER_CM: fmtStr = wxT( "%.3f" ); break; // 0.001ps/cm
case EDA_UNITS::PS_PER_MM: fmtStr = wxT( "%.3f" ); break; // 0.001ps/mm
case EDA_UNITS::UNSCALED: fmtStr = wxT( "%f" ); break;
}
str << wxString::Format( fmtStr, EDA_UNIT_UTILS::UI::ToUserUnit( aIuScale, aUnits, aVal ) );