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:
@@ -61,6 +61,7 @@ enum
|
||||
GRID_uVIADRILL,
|
||||
GRID_DIFF_PAIR_WIDTH,
|
||||
GRID_DIFF_PAIR_GAP,
|
||||
GRID_TUNING_PROFILE,
|
||||
GRID_PCB_COLOR,
|
||||
|
||||
GRID_FIRST_EESCHEMA,
|
||||
@@ -297,6 +298,7 @@ void PANEL_SETUP_NETCLASSES::loadNetclasses()
|
||||
[&]( int aRow, const NETCLASS* nc )
|
||||
{
|
||||
m_netclassGrid->SetCellValue( aRow, GRID_NAME, nc->GetName() );
|
||||
m_netclassGrid->SetCellValue( aRow, GRID_TUNING_PROFILE, nc->GetTuningProfile() );
|
||||
|
||||
m_netclassGrid->SetOptionalUnitValue( aRow, GRID_WIREWIDTH,
|
||||
nc->GetWireWidthOpt() );
|
||||
@@ -502,6 +504,7 @@ bool PANEL_SETUP_NETCLASSES::TransferDataFromWindow()
|
||||
nc->SetPriority( aRow );
|
||||
|
||||
nc->SetName( m_netclassGrid->GetCellValue( aRow, GRID_NAME ) );
|
||||
nc->SetTuningProfile( m_netclassGrid->GetCellValue( aRow, GRID_TUNING_PROFILE ) );
|
||||
|
||||
nc->SetWireWidth( m_netclassGrid->GetOptionalUnitValue( aRow, GRID_WIREWIDTH ) );
|
||||
nc->SetBusWidth( m_netclassGrid->GetOptionalUnitValue( aRow, GRID_BUSWIDTH ) );
|
||||
@@ -1100,3 +1103,19 @@ void PANEL_SETUP_NETCLASSES::OnMoveNetclassDownClick( wxCommandEvent& event )
|
||||
|
||||
m_netclassesDirty = true;
|
||||
}
|
||||
|
||||
|
||||
void PANEL_SETUP_NETCLASSES::UpdateTuningProfileNames( const std::vector<wxString>& aNames ) const
|
||||
{
|
||||
wxArrayString profileNames;
|
||||
profileNames.push_back( wxEmptyString );
|
||||
std::ranges::for_each( aNames,
|
||||
[&]( const wxString& aName )
|
||||
{
|
||||
profileNames.push_back( aName );
|
||||
} );
|
||||
|
||||
wxGridCellAttr* attr = new wxGridCellAttr;
|
||||
attr->SetEditor( new wxGridCellChoiceEditor( profileNames, false ) );
|
||||
m_netclassGrid->SetColAttr( GRID_TUNING_PROFILE, attr );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user