Skip to content

Commit

Permalink
Now characterizing LUTs across 3.3V voltage range
Browse files Browse the repository at this point in the history
azonenberg committed Jun 4, 2017
1 parent 9be991e commit 517fb32
Showing 1 changed file with 16 additions and 12 deletions.
28 changes: 16 additions & 12 deletions src/gp4tchar/measurements.cpp
Original file line number Diff line number Diff line change
@@ -586,27 +586,31 @@ bool MeasureLUTDelays(Socket& sock, hdevice hdev)
LogNotice("Measuring LUT delays...\n");
LogIndenter li;

//Test conditions (TODO: pass this in from somewhere?)
int voltage = 3300;
PTVCorner corner(PTVCorner::SPEED_TYPICAL, 25, voltage);

//Characterize each LUT
//Don't forget to only measure pins it actually has!
float delay;
for(unsigned int nlut = 0; nlut < g_calDevice.GetLUTCount(); nlut++)
{
auto baselut = g_calDevice.GetLUT(nlut);
auto lut = GetRealLUT(baselut);
for(unsigned int npin = 0; npin < lut->GetOrder(); npin ++)

//Try various voltages
for(auto voltage : g_testVoltages)
{
if(!MeasureLUTDelay(sock, hdev, nlut, npin, corner, delay))
return false;
//Test conditions (TODO: pass this in from somewhere?)
PTVCorner corner(PTVCorner::SPEED_TYPICAL, 25, voltage);

for(unsigned int npin = 0; npin < lut->GetOrder(); npin ++)
{
if(!MeasureLUTDelay(sock, hdev, nlut, npin, corner, delay))
return false;

//For now, the parent (in case of a muxed lut etc) stores all timing data
//TODO: does this make the most sense?
char portname[] = "IN0";
portname[2] += npin;
baselut->AddCombinatorialDelay(portname, "OUT", corner, CombinatorialDelay(delay, -1));
//For now, the parent (in case of a muxed lut etc) stores all timing data
//TODO: does this make the most sense?
char portname[] = "IN0";
portname[2] += npin;
baselut->AddCombinatorialDelay(portname, "OUT", corner, CombinatorialDelay(delay, -1));
}
}
}

0 comments on commit 517fb32

Please sign in to comment.