国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      Fpga時(shí)序約束布局方法

      文檔序號(hào):8543875閱讀:444來源:國(guó)知局
      Fpga時(shí)序約束布局方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明屬于電子技術(shù)領(lǐng)域,具體涉及FPGA布局算法的時(shí)序約束布局功能實(shí)現(xiàn)方法。
      【背景技術(shù)】
      [0002]隨著FPGA陣列的規(guī)模和電路設(shè)計(jì)的復(fù)雜度不斷增加,某些FPGA設(shè)計(jì)中可能存在對(duì)特定路徑有較高時(shí)序性能要求的情況,而FPGA CAD流程中的布局結(jié)果對(duì)最終電路實(shí)現(xiàn)的時(shí)序性能產(chǎn)生著巨大的影響。因此,需要設(shè)計(jì)一種時(shí)序約束布局算法對(duì)用戶約束路徑上存在單元放置的更加緊密,以滿足約束路徑的延時(shí)要求。

      【發(fā)明內(nèi)容】

      [0003]本發(fā)明提出一種新型FPGA時(shí)約束布局方法,目的為在進(jìn)行FPGA布局過程中,在不舍棄過多電路線網(wǎng)長(zhǎng)度與整體電路時(shí)序性能的情況下,盡可能減少用戶所約束路徑的延時(shí)。
      [0004]在FPGA設(shè)計(jì)中存在4中路徑:(I)輸入端口到觸發(fā)器;(2)觸發(fā)器到輸出端口 ;
      (3)觸發(fā)器到觸發(fā)器;(4)輸入端口到輸出端口。其中針對(duì)觸發(fā)器到觸發(fā)器延時(shí)的處理為時(shí)序驅(qū)動(dòng)布局算法所研宄對(duì)象。本發(fā)明所提出的時(shí)序約束布局算法主要針對(duì)以下兩類時(shí)序約束:(1)輸入輸出延時(shí)約束;(2)端口路徑延時(shí)約束。下面簡(jiǎn)要介紹這兩類時(shí)序約束的意義和目的。
      [0005](I)輸入輸出延時(shí)約束
      此類約束是指對(duì)輸入端口到觸發(fā)器或者觸發(fā)器到輸出端口的路徑進(jìn)行延時(shí)約束,如圖1所示,用戶通過設(shè)定端口名與延時(shí)約束值,使得外部端口信號(hào)滿足FPGA內(nèi)部的時(shí)序要求。
      [0006](2)端口路徑延時(shí)約束
      此類約束只針對(duì)組合邏輯電路設(shè)計(jì),若用戶對(duì)電路設(shè)計(jì)的某些輸入端口到某些輸出端口的路徑延時(shí)有明確要求,用戶可以使用該類約束規(guī)定這些端口之間的最大延時(shí)不得超過用戶約束值,如圖2所示。
      [0007]這些時(shí)序約束能夠處理用戶設(shè)定的時(shí)序約束路徑存儲(chǔ)與路徑延時(shí)計(jì)算工作,指導(dǎo)布局引擎進(jìn)行時(shí)序路徑約束處理。
      [0008]技術(shù)方案
      (一)關(guān)于輸入輸出延時(shí)約束的布局算法
      圖1中所示的輸入延時(shí)約束是較為簡(jiǎn)單的情況,而在實(shí)際FPGA設(shè)計(jì)中,某個(gè)輸入端口經(jīng)過組合邏輯所到達(dá)的觸發(fā)器有可能不只一個(gè),從輸入端口到同一個(gè)觸發(fā)器的路徑也可能不止一條,并且,這些路徑中有些是外部線網(wǎng)構(gòu)成的,有些是內(nèi)部線網(wǎng)或者內(nèi)部基本邏輯電路單元連接關(guān)系構(gòu)成的。因此,在實(shí)際操作中有必要將時(shí)序路徑存儲(chǔ)下來以方便計(jì)算延時(shí)。本發(fā)明通過將時(shí)序圖中有向邊分類,提出了一種存儲(chǔ)端口到觸發(fā)器路徑與計(jì)算路徑延時(shí)的方法。下面以輸入延時(shí)約束為例進(jìn)行描述,輸出延時(shí)約束處理策略完全類似。
      [0009]如圖3所示,輸入INPUT端口信號(hào)在SLICEl內(nèi)并行傳輸進(jìn)兩個(gè)組合邏輯模塊I與2后經(jīng)過SLICE2到達(dá)SLICE4內(nèi)的觸發(fā)器DFF1,另一條路徑為經(jīng)過SLICE3后到達(dá)SLICE5內(nèi)的觸發(fā)器DFF2。輸入延時(shí)約束需要保證輸入端口到達(dá)任何一個(gè)觸發(fā)器延時(shí)都要小于約束值。因此,首先需要搜索輸入端口到任意觸發(fā)器的所有路徑,并對(duì)搜索到的每條路徑進(jìn)行處理與存儲(chǔ),通過這樣的方法可以大大簡(jiǎn)化每次計(jì)算各條路徑延時(shí)的時(shí)間復(fù)雜度。本發(fā)明設(shè)計(jì)了一種遞歸搜索算法解決該問題,其流程圖如圖4所示。設(shè)CurVertex代表搜索到的當(dāng)前頂點(diǎn),Cur_Path代表保存當(dāng)前搜索到的有向邊的堆棧,具體步驟如下:
      (1)判斷CurVertex是否為由觸發(fā)器Q端口頂點(diǎn),若是,則證明發(fā)現(xiàn)了觸發(fā)器,需要分析當(dāng)前所存儲(chǔ)路徑棧Cur_Path,進(jìn)行該路徑存儲(chǔ)與計(jì)算,否則轉(zhuǎn)步驟(2);
      (2)遍歷當(dāng)前頂點(diǎn)所連接的所有出邊,設(shè)當(dāng)前遍歷到的出邊為OutEdge,則OutEdge所連接的頂點(diǎn)為ConnectVertex ;若所有出邊都遍歷完成,則轉(zhuǎn)步驟(4);
      (3)存儲(chǔ)當(dāng)前出邊OutEdge到Cur_Path中,將ConnectVertex為當(dāng)前頂點(diǎn)CurVertex,遞歸調(diào)用本算法,即轉(zhuǎn)步驟(I);
      (4)算法結(jié)束。
      [0010]該算法核心思想為使用遞歸算法進(jìn)行某一輸出端口的所有路徑搜索,若某一頂點(diǎn)存在出邊且該頂點(diǎn)不為觸發(fā)器Q端口頂點(diǎn),則遍歷該頂點(diǎn)的出邊并使該出邊入棧,并遞歸調(diào)用本算法進(jìn)行后續(xù)頂點(diǎn)的搜索。若當(dāng)前搜索到的頂點(diǎn)為觸發(fā)器Q端口頂點(diǎn),則需要對(duì)當(dāng)前所存儲(chǔ)的路徑棧Cur_Path進(jìn)行分析與計(jì)算,本發(fā)明設(shè)計(jì)以下方法進(jìn)行處理:
      如圖3所示,在時(shí)序圖中唯一變化的是由外部線網(wǎng)構(gòu)建的有向邊延時(shí),因此,現(xiàn)將時(shí)序圖中有向邊分為兩類:
      (I)可變延時(shí)有向邊(Alterable Delay Edge,ADE):即構(gòu)建時(shí)序圖時(shí)由外部線網(wǎng)構(gòu)建的有向邊。
      [0011](2)固定延時(shí)有向邊(Constant Delay Edge,Q)E):即內(nèi)部基本邏輯電路單元模型構(gòu)建的有向邊,或這些基本單元之間互聯(lián)關(guān)系構(gòu)建的有向邊。
      [0012]根據(jù)這樣的分類,任意一條從輸入端口到觸發(fā)器Q頂點(diǎn)的路徑可表示為:
      Path 二 n*ADE + m*CDE
      即該路徑可表示為η個(gè)ADE與m個(gè)⑶E的組合。所以,本發(fā)明在ADE組合確定情況下,取CDE組合的最大延時(shí)值來存儲(chǔ)一條路徑。
      [0013]按照以上所述的路徑搜索與路徑存儲(chǔ)策略,將輸入端口到觸發(fā)器的路徑簡(jiǎn)化為若干個(gè)以唯一 ADE集合所代表的路徑,每個(gè)路徑還存儲(chǔ)著對(duì)應(yīng)該ADE集合情況下的最大固定延時(shí)有向邊延時(shí)的最大值Max_CDEDelaySum。
      [0014]在兩個(gè)布局可交換單元進(jìn)行位置交換后,其影響到所有線網(wǎng)AfferctedNets是已知的。而輸入延時(shí)所存儲(chǔ)的路徑可能有多條,需要對(duì)每條路徑的ADE集合判斷其是否與AfferctedNets有交集,如果有交集則證明該條路徑的延時(shí)將發(fā)生變化并計(jì)算該路徑新的延時(shí),而未被影響到的路徑將繼續(xù)保持原來的延時(shí)值。最后,取所有路徑中最大的延時(shí)值作為交換后輸入端口到觸發(fā)器延時(shí)
      根據(jù)上述內(nèi)容,輸入輸出延時(shí)約束布局算法具體步驟如下:
      (I)使用本發(fā)明提出的遞歸路徑搜索算法,對(duì)所約束的輸入端口(或輸出端口)進(jìn)行該端口到后續(xù)所有觸發(fā)器的路徑搜索;在搜索的同時(shí),對(duì)當(dāng)前搜索到的路徑進(jìn)行分析處理。搜索完畢后,存儲(chǔ)下若干個(gè)以唯一 ADE為代表的路徑,這些路徑其ADE集合各不相同,且每個(gè)ADE集合對(duì)應(yīng)一個(gè)最大的CDE組合延時(shí)值Max_CDEDelaySum ;
      (2)計(jì)算所存儲(chǔ)的每條路徑的延時(shí),其值等于該路徑的ADE集合各元素延時(shí)之和加上Max_CDEDelaySum ;取所存儲(chǔ)每個(gè)路徑的最大值,即為該輸入端口到觸發(fā)器(或觸發(fā)器到輸出端口)的最大延時(shí);
      (3)在每次布局交換后,分析當(dāng)前延時(shí)有變化的外部線網(wǎng)是否影響到了所存儲(chǔ)的某一路徑,若某一路徑受到影響,則該路徑的延時(shí)只需在原有基礎(chǔ)上增加變化線網(wǎng)的延時(shí)變化量即可。最后判斷該條被影響到的路徑的最新延時(shí)值是否大于步驟2中的延時(shí),并取兩者的最大值,即為布局交換后被約束的輸入端口到觸發(fā)器(或觸發(fā)器到輸出端口)的最新延時(shí),布局引擎使用該延時(shí)值指導(dǎo)其布局過程。
      [0015](二)關(guān)于端口路徑延時(shí)約束的布局算法
      為了處理該類約束,首先需要能夠構(gòu)建出準(zhǔn)確輸入端口到輸出端口準(zhǔn)確的時(shí)序圖,并且需要排除掉其他無用的頂點(diǎn)和有向邊。本發(fā)明提出了一種使用正向拓?fù)渑判驁D與反向拓?fù)渑判驁D求交集的方法,排除時(shí)序圖中無用頂點(diǎn)與時(shí)序邊。如圖7所示,分為三個(gè)步驟:
      (I)對(duì)所約束的每個(gè)輸入頂點(diǎn)進(jìn)行正向的拓?fù)渑判颍玫秸蛲負(fù)渑判驁D(ForwardTopological Graph,F(xiàn)TG)。
      [0016](2)對(duì)所約束的每個(gè)輸出頂點(diǎn)進(jìn)行反向的拓?fù)渑判颍玫椒聪蛲負(fù)渑判驁D(Reverse Topological Graph,RTG)。
      [0017](3 )將FTG與RTG求交集,所得結(jié)果即為所約束的輸入端口到輸出端口的時(shí)序圖(From-To Graph)。
      [0018]使用上述方法可構(gòu)建出準(zhǔn)確的輸入端口到輸出端口時(shí)序圖,并排除掉其余非約束路徑的時(shí)序節(jié)點(diǎn)和時(shí)序邊。
      [0019]在交換兩個(gè)布局單元后,需要分析交換后是否影響到了約束路徑導(dǎo)致最大延時(shí)值發(fā)生變化。本發(fā)明設(shè)計(jì)了以下增量式延時(shí)變化計(jì)算方法解決該問題,其步驟如下:
      (I)將From-To Graph進(jìn)行拓?fù)渑判蚪Y(jié)果記為TopoVertex,將該圖中所有由外部線網(wǎng)構(gòu)建的有向邊集合記為ADE_Set。
      [0020](2)設(shè)交換后受到影響的外部線網(wǎng)集合名為AfferctedNets,將ADE_Set和AfferctedNets 求交集的結(jié)果記為 Affercted_ADE_Set。
      [0021](3)順序遍歷TopoVertex中每個(gè)頂點(diǎn),若當(dāng)前頂點(diǎn)的出邊存在于Affercted_ADE_Set中時(shí)停止遍歷,記當(dāng)前頂點(diǎn)為CurVertex。
      [0022](4)以CurVertex作為起點(diǎn)進(jìn)行有向圖拓?fù)浔闅v,重新計(jì)算被遍歷到頂點(diǎn)的Etv。所約束輸出端口所有頂點(diǎn)的最大Etv值即為交換后路徑的最大延時(shí)值。
      [0023]根據(jù)上述內(nèi)容,端口路徑延時(shí)約束布局算法具體步驟如下:
      (I)對(duì)所約束的輸入端口進(jìn)行正向拓?fù)渑判?,?duì)所約束的輸出端口進(jìn)行方向拓?fù)渑判?,兩者求交集?gòu)建出完整的端口路徑延時(shí)約束時(shí)序圖From-To Graph。
      [0024](2)對(duì)From-To Graph所有頂點(diǎn)計(jì)算最晚發(fā)生時(shí)間Etv,則所有輸出端口的最大Etv即為當(dāng)前端口路徑約束的最大延時(shí)值。
      [002
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1