SCSI2SD/software/SCSI2SD/v3/USB_Bootloader.cydsn/USB_Bootloader_timing.html

642 lines
18 KiB
HTML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Static Timing Analysis Report</title>
<style type="text/css">
<!--
body {
font:normal normal 100%/1.0 verdana, times new roman, serif, sans-serif;
}
table.sta_tsu > thead > tr > th.Delay,
table.sta_tsu > tbody > tr > td.Delay,
table.sta_tscs > thead > tr > th.Period,
table.sta_tscs > tbody > tr > td.Period,
table.sta_tscs > thead > tr > th.MaxFreq,
table.sta_tscs > tbody > tr > td.MaxFreq,
table.sta_tscs > thead > tr > th.Frequency,
table.sta_tscs > tbody > tr > td.Frequency,
table.sta_tco > thead > tr > th.Delay,
table.sta_tco > tbody > tr > td.Delay,
table.sta_tpd > thead > tr > th.Delay,
table.sta_tpd > tbody > tr > td.Delay,
table.sta_toe > thead > tr > th.Delay,
table.sta_toe > tbody > tr > td.Delay,
table.sta_tcoe > thead > tr > th.Delay,
table.sta_tcoe > tbody > tr > td.Delay,
table.sta_path > thead > tr > th.Delay,
table.sta_path > tbody > tr > td.Delay,
table.sta_path > thead > tr > th.Total,
table.sta_path > tbody > tr > td.Total,
table.sta_clocksummary > thead > tr > th.ActualFreq,
table.sta_clocksummary > tbody > tr > td.ActualFreq,
table.sta_clocksummary > thead > tr > th.MaxFreq,
table.sta_clocksummary > tbody > tr > td.MaxFreq,
table > tbody > tr > td.number
{
text-align: right;
}
table.sta_tsu {
border: solid 2px;
border-collapse: collapse;
width: 90%;
}
table.sta_tpd {
border: solid 2px;
border-collapse: collapse;
width: 90%;
}
table.sta_tscs {
border: solid 2px;
border-collapse: collapse;
width: 90%;
}
table.sta_tco {
border: solid 2px;
border-collapse: collapse;
width: 90%;
}
table.sta_toe {
border: solid 2px;
border-collapse: collapse;
width: 90%;
}
table.sta_tcoe {
border: solid 2px;
border-collapse: collapse;
width: 90%;
}
th {
border: solid 1px;
vertical-align: top;
font-family: monospace;
text-align: center;
white-space: pre-line;
}
td {
border: solid 1px;
vertical-align: top;
font-family: monospace;
white-space: pre-line;
}
table.sta_tpd > tbody > tr:hover,
table.sta_tsu > tbody > tr:hover,
table.sta_tscs > tbody > tr:hover,
table.sta_tco > tbody > tr:hover,
table.sta_toe > tbody > tr:hover,
table.sta_tcoe > tbody > tr:hover
{
background-color: #e8e8ff;
}
table.sta_path > tbody > tr:hover {
background-color: #e8e8ff;
}
table.sta_path {
background-color: #f8f8f8;
border: none;
border-collapse: collapse;
width: 90%;
margin-left: 1em;
margin-right: 1em;
}
table.sta_clocksummary {
border: solid 2px;
border-collapse: collapse;
}
div.sta_sec {
padding: 0.5em;
}
div.sta_sec div.sta_sec {
margin-left: 0.75em;
}
.proptext {
font:normal normal 100%/1.0 verdana, times new roman, serif, sans-serif;
border: 0px;
}
.prop {
font: normal normal 100%/1.0 verdana, times new roman, serif, sans-serif;
font-weight: bolder;
border: 0px;
}
.sec_head {
display: block;
font-size: 1.17em;
font-weight: bolder;
margin: .83em 0;
}
div.sta_secbody {
margin-left: 0.75em;
}
div.vio_sta_secbody {
margin-left: 0.75em;
}
.sta_sec_desc {
margin-bottom: 0.5em;
white-space: pre-line;
}
.violation_color {
color: red;
border-color: black;
}
-->
</style>
<script type="text/javascript">
<!--
function HideElement(element) {
var headerDiv = getChildElementsByTagName(element, "div")[0];
var expandLink = getChildElementsByTagName(headerDiv, "a")[0];
expandLink.onclick = clicked;
var children = element.childNodes;
var secBody = null;
for (var j = 0; j < children.length; j++)
{
if (children[j].nodeType == document.ELEMENT_NODE &&
(children[j].className == "sta_secbody" ||
children[j].className == "vio_sta_secbody" ||
children[j].className == "sta_sec" ))
{
secBody = children[j];
secBody.style.display = "none";
}
}
}
function HideElements(elements) {
for( var i=0; i<elements.length; i++)
HideElement(elements[i]);
}
// Description : returns boolean indicating whether the object has the class name
// built with the understanding that there may be multiple classes
//
// Arguments:
// objElement - element to check for.
// strClass - class name to be checked.
//
function HasClassName(objElement, strClass)
{
if ( objElement.className )
{
// the classes are just a space separated list, so first get the list
var arrList = objElement.className.split(' ');
for ( var i = 0; i < arrList.length; i++ )
{
if ( arrList[i] == strClass )
{
return true;
}
}
}
return false;
}
function initialize() {
if (document.ELEMENT_NODE == null)
{
/* Workaround for old IE */
document.ELEMENT_NODE = 1;
document.ATTRIBUTE_NODE = 2;
document.TEXT_NODE = 3;
document.CDATA_SECTION_MODE = 4;
document.ENTITY_REFERENCE_MODE = 5;
document.ENTITY_NODE = 6;
document.PROCESSING_INSTRUCTION_NODE = 7;
document.COMMENT_NODE = 8;
document.DOCUMENT_NODE = 9;
document.DOCUMENT_TYPE_NODE = 10;
document.DOCUMENT_FRAGMENT_NODE = 11;
document.NOTATION_NODE = 12;
}
HideElements(getElementsByClass(document, 'div', 'sta_sec'));
toggleExpandSection(document.getElementById('clock_summary'));
toggleExpandSection(document.getElementById('violations'));
var allTD = document.getElementsByTagName("td");
for( var i=0; i< allTD.length; i++)
{
if(allTD[i].className != "proptext" && allTD[i].innerHTML.match(/^\s*[-]?[0-9]+[\.]?[0-9]*$/))
{
allTD[i].align = "right";
//allTD[i].style.textAlign = "right";
}
}
var allTables = document.getElementsByTagName("table");
for (var i = 0; i < allTables.length; i++)
{
var table = allTables[i];
if (table.className == "sta_tsu" ||
table.className == "sta_tscs" ||
table.className == "sta_tco" ||
table.className == "sta_toe" ||
table.className == "sta_tcoe")
{
var tbodyList = getChildElementsByTagName(table, "tbody");
if (tbodyList.length != 0)
{
for (var row = tbodyList[0].firstChild; row != null; row = row.nextSibling)
{
if (row.nodeName.toLowerCase() == "tr")
{
if (HasClassName(row,"sta_path"))
{
row.style.display = "none";
}
else
{
row.style.cursor = "pointer";
row.onclick = rowClicked;
}
}
}
}
}
else if(table.className == "sta_tpd" )
{
var tbodyList = getChildElementsByTagName(table, "tbody");
if (tbodyList.length != 0)
{
for (var row = tbodyList[0].firstChild; row != null; row = row.nextSibling)
{
if (row.nodeName.toLowerCase() == "tr")
{
if(HasClassName(row, "sta_tv"))
{
row.style.cursor = "pointer";
row.onclick = violationClicked;
}
}
}
}
}
}
}
function clicked()
{
var parent = findAncestorByClass(this, "sta_sec");
toggleExpandSection(parent);
return false;
}
function toggleExpandSection(section)
{
if (section == null)
return false;
var children = section.childNodes;
for (var i = 0; i < children.length; i++)
{
if (children[i].nodeType == document.ELEMENT_NODE &&
(children[i].className == "sta_secbody" ||
children[i].className == "vio_sta_secbody"))
toggleVisible(children[i]);
}
}
function findAncestorByClass(node, className)
{
var parent;
for (parent = node; parent != null; parent = parent.parentNode)
{
if (parent.nodeType == document.ELEMENT_NODE &&
parent.className == className)
{
return parent;
}
}
return null;
}
function rowClicked()
{
for (var next = this.nextSibling; next != null; next = next.nextSibling)
{
if (next.nodeType == document.ELEMENT_NODE &&
next.nodeName.toLowerCase() == "tr" &&
HasClassName(next,"sta_path"))
{
if (next.style.display == "none")
next.style.display = "table-row";
else
next.style.display = "none";
break;
}
}
return false;
}
function findPos(obj)
{
var curtop = 0;
if (obj.offsetParent)
{
do
{
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return [curtop];
}
}
function jumpto(ClassName)
{
var classname = 'sta_path';
classname += ' ';
classname += ClassName;
if((obj = getElementsByClass(document, 'tr', classname)) &&
obj.length > 0 ){
window.scrollTo(0, findPos(obj[0]));
}
}
function violationClicked()
{
expandAllSections(0);
expandViolations(1);
var ident=this.id;
var rlist= document.getElementsByTagName( "tr");
var clickedElementClassNames = this.className.split(' ');
//The second class name is to match the violation element with the
//corresponding path element in the detailed section.
var identificationClassValue = clickedElementClassNames[1];
for(var i=0 ; i < rlist.length ; i++)
{
if( rlist[i].nodeType == document.ELEMENT_NODE && HasClassName(rlist[i],"sta_path") )
{
var staPathClassNames = rlist[i].className.split(' ');
// Assumption: There will be two class names, one indicating
// style (sta_path), other to identify elements tv1.
if(staPathClassNames.length > 1)
{
// Matching second class Names of both elements.
if(staPathClassNames[1] == identificationClassValue)
{
var parent= findAncestorByClass ( rlist[i] , "sta_tscs" );
if(parent == null)
parent= findAncestorByClass ( rlist[i] , "sta_tco" );
for( ; (parent!= null && parent.nodeName!="body") ; parent= parent.parentNode )
{
if( parent.nodeType == document.ELEMENT_NODE && parent.className == "sta_secbody")
{
//parent.style.display = "block";
visible(parent);
rlist[i].style.display = "table-row" ;
//alert(rlist[i].id);
}
}
}
}
}
}
//document.getElementById(this.id).scrollIntoView(true);
// location = location + this.id;
jumpto(identificationClassValue);
return false;
}
function toggleVisible(elem)
{
if (elem.style.display == "none")
elem.style.display = "block";
else
elem.style.display = "none";
headerDiv = getChildElementsByTagName(elem.parentNode, "div")[0];
link = getChildElementsByTagName(headerDiv, "a")[0];
innerSpan = getChildElementsByTagName(link, "span")[0];
textNode = getChildElementsByTagName(innerSpan, "span")[0].firstChild;
textNode.data = (elem.style.display == "none") ? "+" : "-";
}
function visible(elem)
{
elem.style.display = "block";
headerDiv = getChildElementsByTagName(elem.parentNode, "div")[0];
link = getChildElementsByTagName(headerDiv, "a")[0];
innerSpan = getChildElementsByTagName(link, "span")[0];
textNode = getChildElementsByTagName(innerSpan, "span")[0].firstChild;
textNode.data = (elem.style.display == "none") ? "+" : "-";
}
function getChildElementsByTagName(node, name)
{
var result = new Array(), i = 0;
name = name.toLowerCase();
for (var child = node.firstChild; child != null; child = child.nextSibling)
{
if (child.nodeType == document.ELEMENT_NODE &&
child.nodeName.toLowerCase() == name)
{
result[i++] = child;
}
}
return result;
}
function expandAllPaths(rootNode, show)
{
var show = show ? "table-row" : "none";
var elements = getElementsByClass(rootNode, "tr", "sta_path");
for (var i = 0; i < elements.length; i++)
{
elements[i].style.display = show;
}
}
function expandAllSections(show)
{
var show = show ? "block" : "none";
var elements = getElementsByClass(document, "div", "sta_secbody");
for (var i = 0; i < elements.length; i++)
{
if (elements[i].style.display != show)
toggleVisible(elements[i]);
}
var elements1 = getElementsByClass(document, "div", "vio_sta_secbody");
for (var i = 0; i < elements1.length; i++)
{
if (elements1[i].style.display != show)
toggleVisible(elements1[i]);
}
}
function expandViolations(show)
{
var show = show ? "block" : "none";
var elements = getElementsByClass(document, "div", "vio_sta_secbody");
for (var i = 0; i < elements.length; i++)
{
if (elements[i].style.display != show)
toggleVisible(elements[i]);
}
}
function expandViolationSections(show)
{
var show =show ? "block" :"none" ;
}
function getElementsByClass(rootNode, elemName, className)
{
var result = new Array(), idx = 0;
var elements = rootNode.getElementsByTagName(elemName);
for (var i = 0; i < elements.length; i++)
{
if (elements[i].className == className)
result[idx++] = elements[i];
}
return result;
}
//-->
</script>
</head>
<body onload="initialize();">
<noscript>
<p style="display: block; border: 1px solid; margin: 4em; padding: 1.5em">View this file with a JavaScript-enabled browser to enable all features.</p>
</noscript>
<h1> Static Timing Analysis </h1>
<table class="property">
<tr> <td class="prop"> Project :</td>
<td class="proptext"> USB_Bootloader</td></tr>
<tr> <td class="prop"> Build Time :</td>
<td class="proptext"> 08/28/14 22:25:58</td></tr>
<tr> <td class="prop"> Device :</td>
<td class="proptext"> CY8C5267AXI-LP051</td></tr>
<tr> <td class="prop"> Temperature :</td>
<td class="proptext"> -40C - 85/125C</td></tr>
<tr> <td class="prop"> Vdda :</td>
<td class="proptext"> 5.00</td></tr>
<tr> <td class="prop"> Vddd :</td>
<td class="proptext"> 5.00</td></tr>
<tr> <td class="prop"> Vio0 :</td>
<td class="proptext"> 5.00</td></tr>
<tr> <td class="prop"> Vio1 :</td>
<td class="proptext"> 5.00</td></tr>
<tr> <td class="prop"> Vio2 :</td>
<td class="proptext"> 5.00</td></tr>
<tr> <td class="prop"> Vio3 :</td>
<td class="proptext"> 5.00</td></tr>
<tr> <td class="prop"> Voltage :</td>
<td class="proptext"> 5.0</td></tr>
<tr> <td class="prop"> Vusb :</td>
<td class="proptext"> 5.00</td></tr>
</table>
<div>
<a href="#" onclick="expandAllSections(1);return false;">Expand All</a> |
<a href="#" onclick="expandAllSections(0);return false;">Collapse All</a> |
<a href="#" onclick="expandAllPaths(document, 1);return false;">Show All Paths</a> |
<a href="#" onclick="expandAllPaths(document, 0);return false;">Hide All Paths</a>
</div>
<div class="sta_sec" id="violations">
<div>
<a href="#" style="text-decoration: none; color: inherit;">
<span class="sec_head"><span style="font-family: monospace;">+</span>
Timing Violation Section</span>
</a>
</div><div class="vio_sta_secbody"><div class="sta_sec_desc">No Timing Violations</div>
</div>
</div>
<div class="sta_sec" id="clock_summary">
<div>
<a href="#" style="text-decoration: none; color: inherit;">
<span class="sec_head"><span style="font-family: monospace;">+</span>
Clock Summary Section</span>
</a>
</div><div class="sta_secbody"><table class="sta_clocksummary">
<thead>
<tr>
<th>Clock</th>
<th>Domain</th>
<th>Nominal Frequency</th>
<th>Required Frequency</th>
<th>Maximum Frequency</th>
<th>Violation</th>
</tr>
</thead>
<tbody>
<tr>
<td class = "text_info">CyILO</td>
<td class = "text_info">CyILO</td>
<td class = "number">100.000&nbsp;kHz</td>
<td class = "number">100.000&nbsp;kHz</td>
<td class = "number"> N/A </td>
<td class = "text_info"> </td>
</tr>
<tr>
<td class = "text_info">CyIMO</td>
<td class = "text_info">CyIMO</td>
<td class = "number">24.000&nbsp;MHz</td>
<td class = "number">24.000&nbsp;MHz</td>
<td class = "number"> N/A </td>
<td class = "text_info"> </td>
</tr>
<tr>
<td class = "text_info">CyMASTER_CLK</td>
<td class = "text_info">CyMASTER_CLK</td>
<td class = "number">64.000&nbsp;MHz</td>
<td class = "number">64.000&nbsp;MHz</td>
<td class = "number"> N/A </td>
<td class = "text_info"> </td>
</tr>
<tr>
<td class = "text_info">CyBUS_CLK</td>
<td class = "text_info">CyMASTER_CLK</td>
<td class = "number">64.000&nbsp;MHz</td>
<td class = "number">64.000&nbsp;MHz</td>
<td class = "number"> N/A </td>
<td class = "text_info"> </td>
</tr>
<tr>
<td class = "text_info">CyPLL_OUT</td>
<td class = "text_info">CyPLL_OUT</td>
<td class = "number">64.000&nbsp;MHz</td>
<td class = "number">64.000&nbsp;MHz</td>
<td class = "number"> N/A </td>
<td class = "text_info"> </td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>