主权项 |
1.一种片上系统的低功耗电压岛划分方法,其特征在于包括以下步骤:步骤①:片上系统由多个电路宏模块组成,定义电路宏模块的合法工作电压是满足电路宏模块正确时序要求的供电电压,所有电路宏模块的合法工作电压值构成电路宏模块的合法工作电压集,其中所有电路宏模块均可工作在芯片电压V<sub>c</sub>下;定义电压岛为工作在同一合法工作电压下且占据连续物理空间的电路宏模块组成的区域;计算机读入和分析用户提供的电路宏模块的几何拓扑信息文件和电路宏模块的合法工作电压集;步骤②:根据电路宏模块的几何拓扑信息,构造一个二叉树数据结构来表示电路宏模块间的位置关系,可选择采用以下步骤(1)、(2)生成矩形电压岛;(1)若二叉树中某一子树所包含的电路宏模块有一个公共的合法工作电压,则该子树所包含的电路宏模块可汇聚成矩形电压岛;(2)若二叉树的左/右树干上的节点具有相同的操作符‘H’或者‘V’,且树叶上所包含的电路宏模块有一个公共的合法工作电压,则树干上的树叶所包含的电路宏模块可汇聚成矩形电压岛;步骤③:给定矩形电压岛I<sub>1</sub>和I<sub>2</sub>的左下角坐标分别为<img file="FDA00002203528600011.GIF" wi="145" he="51" /><img file="FDA00002203528600012.GIF" wi="150" he="51" />右上角坐标分别为<img file="FDA00002203528600013.GIF" wi="153" he="45" /><img file="FDA00002203528600014.GIF" wi="153" he="45" />若<img file="FDA00002203528600015.GIF" wi="117" he="51" />且满足以下(1)、(2)、(3)三个条件之一,则矩形电压岛I<sub>1</sub>和I<sub>2</sub>水平相邻;(1)<maths num="0001"><![CDATA[<math><mrow><msubsup><mi>y</mi><mn>1</mn><mi>l</mi></msubsup><mo>=</mo><msubsup><mi>y</mi><mn>2</mn><mi>l</mi></msubsup><mo>;</mo></mrow></math>]]></maths>(2)<maths num="0002"><![CDATA[<math><mrow><mrow><mo>(</mo><msubsup><mi>y</mi><mn>1</mn><mi>l</mi></msubsup><mo><</mo><msubsup><mi>y</mi><mn>2</mn><mi>l</mi></msubsup><mo>)</mo></mrow><mo>∩</mo><mrow><mo>(</mo><msubsup><mi>y</mi><mn>1</mn><mi>r</mi></msubsup><mo>></mo><msubsup><mi>y</mi><mn>2</mn><mi>l</mi></msubsup><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>(3)<maths num="0003"><![CDATA[<math><mrow><mrow><mo>(</mo><msubsup><mi>y</mi><mn>1</mn><mi>l</mi></msubsup><mo>></mo><msubsup><mi>y</mi><mn>2</mn><mi>l</mi></msubsup><mo>)</mo></mrow><mo>∩</mo><mrow><mo>(</mo><msubsup><mi>y</mi><mn>1</mn><mi>l</mi></msubsup><mo><</mo><msubsup><mi>y</mi><mn>2</mn><mi>r</mi></msubsup><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>若<img file="FDA00002203528600019.GIF" wi="125" he="51" />且满足以下(4)、(5)、(6)三个条件之一,则矩形电压岛I<sub>1</sub>和I<sub>2</sub>垂直相邻;(4)<maths num="0004"><![CDATA[<math><mrow><msubsup><mi>x</mi><mn>1</mn><mi>l</mi></msubsup><mo>=</mo><msubsup><mi>x</mi><mn>2</mn><mi>l</mi></msubsup><mo>;</mo></mrow></math>]]></maths>(5)<maths num="0005"><![CDATA[<math><mrow><mrow><mo>(</mo><msubsup><mi>x</mi><mn>1</mn><mi>l</mi></msubsup><mo><</mo><msubsup><mi>x</mi><mn>2</mn><mi>l</mi></msubsup><mo>)</mo></mrow><mo>∩</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mn>1</mn><mi>r</mi></msubsup><mo>></mo><msubsup><mi>x</mi><mn>2</mn><mi>l</mi></msubsup><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>(6)<maths num="0006"><![CDATA[<math><mrow><mrow><mo>(</mo><msubsup><mi>x</mi><mn>1</mn><mi>l</mi></msubsup><mo>></mo><msubsup><mi>x</mi><mn>2</mn><mi>l</mi></msubsup><mo>)</mo></mrow><mo>∩</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mn>1</mn><mi>l</mi></msubsup><mo><</mo><msubsup><mi>x</mi><mn>2</mn><mi>r</mi></msubsup><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>步骤④:对于一个二叉树中的某一父节点,若其包含左子树和右子树,左子树可汇聚成矩形电压岛I<sub>1</sub>且公共的合法工作电压v<V<sub>c</sub>,则在右子树中继续寻找一个同样工作在v的矩形电压岛I<sub>2</sub>,然后通过步骤③判断I<sub>1</sub>和I<sub>2</sub>的物理位置是否相邻,若相邻,则返回由I<sub>1</sub>和I<sub>2</sub>组成的非矩形的面积更大的电压岛I=I<sub>1</sub>∪I<sub>2</sub>,若不相邻,则返回矩形电压岛I<sub>1</sub>;步骤⑤:对于一个二叉树中的某一父节点,若其包含左子树和右子树,右子树可汇聚成矩形电压岛I<sub>1</sub>且公共的合法工作电压v<V<sub>c</sub>,则在左子树中继续寻找一个同样工作在v的矩形电压岛I<sub>2</sub>,然后通过步骤③判断I<sub>1</sub>和I<sub>2</sub>的物理位置是否相邻,若相邻,则返回由I<sub>1</sub>和I<sub>2</sub>组成的非矩形的面积更大的电压岛I=I<sub>1</sub>∪I<sub>2</sub>,若不相邻,则返回矩形电压岛I<sub>1</sub>;步骤⑥:重复步骤④~⑤可得到满足要求的电压岛,完成电压岛的划分。 |