Skip to content

Commit

Permalink
gp4par: DRC messages are now indented. Added some skeleton code for P…
Browse files Browse the repository at this point in the history
…GA conflicts with IOB or ADC, but not yet functional as ADC isn't implemented.
azonenberg committed Oct 15, 2016
1 parent 59996e5 commit a3968d1
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions src/gp4par/par_main.cpp
Original file line number Diff line number Diff line change
@@ -77,6 +77,7 @@ bool DoPAR(Greenpak4Netlist* netlist, Greenpak4Device* device)
void PostPARDRC(PARGraph* netlist, Greenpak4Device* device)
{
LogNotice("\nChecking post-route design rules...\n");
LogIndenter li;

//Check for nodes in the netlist that have no load
for(uint32_t i=0; i<netlist->GetNumNodes(); i++)
@@ -154,15 +155,27 @@ void PostPARDRC(PARGraph* netlist, Greenpak4Device* device)

//Check for ABUF with inputs driven from non-analog IOs
auto abuf = device->GetAbuf();
CheckAnalogIbuf(abuf, dynamic_cast<Greenpak4IOB*>(abuf->GetInput().GetRealEntity()));
if(abuf)
CheckAnalogIbuf(abuf, dynamic_cast<Greenpak4IOB*>(abuf->GetInput().GetRealEntity()));

//Check for PGA with inputs driven from non-analog IOs
auto pga = device->GetPGA();
CheckAnalogIbuf(abuf, dynamic_cast<Greenpak4IOB*>(pga->GetInputP().GetRealEntity()));
CheckAnalogIbuf(abuf, dynamic_cast<Greenpak4IOB*>(pga->GetInputN().GetRealEntity()));
if(pga)
{
CheckAnalogIbuf(abuf, dynamic_cast<Greenpak4IOB*>(pga->GetInputP().GetRealEntity()));
CheckAnalogIbuf(abuf, dynamic_cast<Greenpak4IOB*>(pga->GetInputN().GetRealEntity()));
}

//TODO: Check for VREF with inputs driven from non-analog IOs

//TODO: Check for PGA driving an IOB when ADC is enabled
//auto adc = device->GetADC();
if(pga /*&& adc*/)
{
//We do not yet implement the ADC
//so nothing to do here
}

//Check for multiple ACMPs using different settings of ACMP0's output mux
typedef pair<string, Greenpak4EntityOutput> spair;
switch(device->GetPart())

0 comments on commit a3968d1

Please sign in to comment.