一種fpga映射后網(wǎng)表的時(shí)序估算方法
【專利摘要】本發(fā)明提出一種FPGA映射后網(wǎng)表的時(shí)序估算方法,包括:針對源塊單元與匯塊單元之間的單段連線,根據(jù)所述源塊單元和匯塊單元的類型,確定所述單段連線的類型;根據(jù)所述單段連線的類型,查找時(shí)序模型庫文件中所述單段連線落入的全局延時(shí)范圍及全局擁擠度范圍;計(jì)算所述單段連線的局部擁擠度,根據(jù)所述局部擁擠度,確定所述單段連線所屬的局部擁擠度范圍和局部延時(shí)范圍;根據(jù)所述單段連線所屬的局部擁擠度范圍和局部延時(shí)范圍,計(jì)算所述單段連線的延時(shí)值。由此可估算出FPGA布局布線前的最高工作頻率并生成時(shí)鐘約束文件,代替用戶設(shè)置的時(shí)鐘約束作為布局布線工具的輸入,使其能以更少的迭代次數(shù)獲得更佳的最高頻率。
【專利說明】-種FPGA映射后網(wǎng)表的時(shí)序估算方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及芯片布局領(lǐng)域,尤其涉及一種FPGA映射后網(wǎng)表的時(shí)序估算方法。
【背景技術(shù)】
[0002] 現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array, FPGA)軟件所能達(dá)到 的最高頻率是FPGA芯片性能的一個(gè)衡量指標(biāo),它與用戶設(shè)置的初始時(shí)鐘約束有很大關(guān)系, 不同的初始時(shí)鐘約束可能導(dǎo)致最終達(dá)到的最高頻率有很大不同,而FPGA時(shí)序估計(jì)一般在 布局布線后進(jìn)行。在布局布線前做FPGA時(shí)序估計(jì),由于缺乏塊單元和布線資源的片上物理 位置信息,要達(dá)到較小的誤差有很大的難度,該領(lǐng)域的研究在當(dāng)前業(yè)界基本屬于空白狀態(tài)。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的是提供一種對用戶設(shè)計(jì)的門級電路進(jìn)行綜合及庫映射之后形成的 網(wǎng)表進(jìn)行時(shí)序估算的方法,從而生成更合適的時(shí)鐘約束文件,代替用戶時(shí)鐘約束作為布局 布線工具的輸入,使FPGA軟件能以更少的迭代次數(shù)獲得更佳的最高頻率。
[0004] 為實(shí)現(xiàn)上述目的,第一方面,本發(fā)明提供了一種FPGA映射后網(wǎng)表的時(shí)序估算方 法,該方法包括 :
[0005] 針對源塊單元與匯塊單元之間的單段連線,根據(jù)所述源塊單元和匯塊單元的類 型,確定所述單段連線的類型;
[0006] 根據(jù)所述單段連線的類型,查找時(shí)序模型庫文件中所述單段連線落入的全局延時(shí) 范圍及全局擁擠度范圍;
[0007] 計(jì)算所述單段連線的局部擁擠度,根據(jù)所述局部擁擠度,確定所述單段連線所屬 的局部擁擠度范圍和局部延時(shí)范圍;
[0008] 根據(jù)所述單段連線所屬的局部擁擠度范圍和局部延時(shí)范圍,計(jì)算所述單段連線的 延時(shí)值。
[0009] 在上述方法中,所述根據(jù)所述單段連線的類型,查找時(shí)序模型庫文件中所述單段 連線落入的全局延時(shí)范圍及全局擁擠度范圍包括:
[0010] 根據(jù)預(yù)設(shè)的網(wǎng)表中記錄的各類連線的源塊單元的數(shù)目和芯片上所述源塊單元的 總數(shù),計(jì)算各類連線的源塊單元的利用率;
[0011] 根據(jù)預(yù)設(shè)的網(wǎng)表中記錄的各類連線的匯塊單元的數(shù)目和芯片上所述匯塊單元的 總數(shù),計(jì)算各類連線的匯塊單元的利用率;
[0012] 根據(jù)所述單段連線的類型、源塊單元的利用率和匯塊單元的利用率,查找所述時(shí) 序模型庫文件中所述單段連線落入的全局延時(shí)范圍及全局擁擠度范圍。
[0013] 在上述方法中,所述計(jì)算所述單段連線的局部擁擠度包括:
[0014] 計(jì)算源塊單元和匯塊單元的扇出擁擠度;
[0015] 根據(jù)所述源塊單元和匯塊單元的扇出擁擠度,計(jì)算所述源塊單元與匯塊單元之間 單段連線的局部擁擠度。
[0016] 在上述方法中,所述計(jì)算源塊單元和匯塊單元的扇出擁擠度包括:
[0017] 根據(jù)1(1、1(2、1(3、1(4和1(5計(jì)算源塊單元的扇出擁擠度;
[0018] 根據(jù)K0、K2、K3、K4和K5計(jì)算匯塊單元的扇出擁擠度;
[0019] 其中,KO為源塊單元的扇出單元中,與匯塊單元類型相同的數(shù)目;Kl為匯塊單元 的扇出單元中,與源塊單元類型相同的數(shù)目再加1 (源節(jié)點(diǎn)單元本身);K2為源塊單元的扇 入扇出單元總數(shù);Κ3為匯塊單元的扇入扇出單元總數(shù);Κ4為Κ2集合中的單元數(shù)目減去KO 集合中的單元數(shù)目;Κ5為Κ3集合中的單元數(shù)目減去Kl集合中的單元數(shù)目。
[0020] 第二方面,本發(fā)明提供了一種FPGA映射后網(wǎng)表的時(shí)序估算方法,該方法包括:
[0021] 根據(jù)源塊單元和匯塊單元的類型,對源塊單元與匯塊單元之間的單段連線進(jìn)行分 類;
[0022] 針對各類單段連線中的每一類單段連線,根據(jù)布局布線后生成的網(wǎng)表標(biāo)注文件中 各單段連線在芯片上經(jīng)過的連線盒跳數(shù),劃分為多個(gè)跳數(shù)集合;
[0023] 根據(jù)所述各集合中單段連線的局部擁擠度,確定所述各跳數(shù)集合的局部擁擠度范 圍;
[0024] 根據(jù)所述各集合中單段連線的布局布線后的延時(shí)值,確定所述各跳數(shù)集合的局部 延時(shí)范圍;
[0025] 根據(jù)所述各集合的局部延時(shí)范圍和局部擁擠度范圍,建立時(shí)序模型庫文件。
[0026] 在上述方法中,所述多個(gè)跳數(shù)集合是指3個(gè)跳數(shù)集合。
[0027] 在上述方法中,所述針對各類單段連線中的每一類單段連線,根據(jù)布局布線后生 成的網(wǎng)表標(biāo)注文件中各單段連線在芯片上經(jīng)過的連線盒跳數(shù),劃分為3個(gè)跳數(shù)集合包括:
[0028] 針對各類單段連線中的每一類單段連線,根據(jù)布局布線后生成的網(wǎng)表標(biāo)注文件中 各單段連線在芯片上經(jīng)過的連線盒跳數(shù)的不同,將各類連線分為N檔,統(tǒng)計(jì)各檔內(nèi)的單段 連線總數(shù),將具有最大單段連線總數(shù)的第i檔對應(yīng)的連線盒跳數(shù)作為典型跳數(shù)j,并統(tǒng)計(jì)出 第i檔內(nèi)單段連線的第一最小延時(shí)值和第一最大延時(shí)值;
[0029] 遍歷所有單段連線在芯片上經(jīng)過的連線盒跳數(shù)大于j的檔,計(jì)算各檔內(nèi)所有單段 連線的幾何平均延時(shí)值;
[0030] 將所述所有單段連線的幾何平均延時(shí)值大于所述第一最大延時(shí)值的M個(gè)檔歸為 大跳數(shù)集合,剩余的N-M個(gè)檔歸為典型跳數(shù)集合;
[0031] 根據(jù)大跳數(shù)集合與典型跳數(shù)集合的交集,將所述N個(gè)檔重新劃分為小跳數(shù)集合、 典型跳數(shù)集合和大跳數(shù)集合。
[0032] 在上述方法中,所述根據(jù)所述各集合中單段連線的局部擁擠度,確定所述各跳數(shù) 集合的局部擁擠度范圍包括:
[0033] 根據(jù)所述各集合中單段連線的局部擁擠度,統(tǒng)計(jì)所述各集合中單段連線的最小局 部擁擠度和最大局部擁擠度,并計(jì)算所述各集合中所有單段連線的幾何平均局部擁擠度, 所述最小局部擁擠度、最大局部擁擠度和幾何平均局部擁擠度組成各集合的局部擁擠度范 圍。
[0034] 在上述方法中,所述根據(jù)所述各集合中單段連線的延時(shí)值,確定所述各跳數(shù)集合 的局部延時(shí)范圍包括:
[0035] 根據(jù)所述各集合中單段連線的布局布線后的延時(shí)值,統(tǒng)計(jì)所述各集合中單段連線 的第二最小延時(shí)值和第二最大延時(shí)值,并計(jì)算所述各集合中所有單段連線的幾何平均延時(shí) 值,所述第二最小延時(shí)值、第二最大延時(shí)值和幾何平均延時(shí)值組成各集合的局部延時(shí)范圍。
[0036] 本發(fā)明提供的FPGA映射后網(wǎng)表的時(shí)序估算方法,在FPGA芯片上首先完成一次布 局布線,然后基于該次布線后各單段連線的延時(shí)值及局部擁擠度,建立時(shí)序模型庫文件,然 后對網(wǎng)表中任一單段連線,通過在時(shí)序模型庫文件中匹配與其相應(yīng)的局部擁擠度范圍和局 部延時(shí)范圍,計(jì)算該單段連線的延時(shí)值。
【專利附圖】
【附圖說明】
[0037] 下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
[0038] 圖1是本發(fā)明實(shí)施例一提供的FPGA映射后網(wǎng)表的時(shí)序估算方法流程圖;
[0039] 圖2為一種網(wǎng)表的結(jié)構(gòu)示意圖;
[0040] 圖3是本發(fā)明實(shí)施例二提供的FPGA映射后網(wǎng)表的時(shí)序估算方法流程圖。
【具體實(shí)施方式】
[0041] 將用戶設(shè)計(jì)的電路進(jìn)行綜合以及庫映射之后形成網(wǎng)表,從而也可以得到基本單元 以及它們的連接關(guān)系,其中,基本單元包括:查找表、寄存器、存儲器、輸入輸出等等,基本單 元之間的連線稱為單段連線,通常在FPGA芯片上完成一次布局布線,根據(jù)該布局布線的結(jié) 果就可以唯一的確定任意單段連線的延時(shí)值。
[0042] 圖1是本發(fā)明實(shí)施例一提供的FPGA映射后網(wǎng)表的時(shí)序估算方法流程圖。如圖1 所示,本發(fā)明實(shí)施例提供的方法包括:
[0043] 步驟101,針對源塊單元與匯塊單元之間的單段連線,根據(jù)所述源塊單元和匯塊單 元的類型,確定所述單段連線的類型。
[0044] 對于預(yù)設(shè)的網(wǎng)表中記錄的連線可以分為兩類:硬連線和非硬連線,硬連線是指 FPGA芯片上端口到端口之間的連線是唯一確定的;非硬連線是指FPGA芯片上端口與端口 之間的連線可以有多種方式,通常時(shí)序估計(jì)算法針對的是預(yù)設(shè)的網(wǎng)表中的非硬連線。預(yù)設(shè) 的網(wǎng)表中記錄的基本單元包括:LUT、LUTC、REG和IO等幾種,而預(yù)設(shè)的網(wǎng)表中的連線根據(jù) 連接該連線的源節(jié)點(diǎn)和匯節(jié)點(diǎn)類型的不同而可以分為多種類型,即任意一單段連線,根據(jù) 源節(jié)點(diǎn)和匯節(jié)點(diǎn)的類型,可以唯一的確定該單段連線的類型,舉例為,LUT-LUT、LUTC-LUT、 REG-LUT 和 IO-LUT 等。
[0045] 需要說明的是,對預(yù)設(shè)的網(wǎng)表中的單段連線分類后,就可以計(jì)算每類連線的源節(jié) 點(diǎn)的利用率和匯節(jié)點(diǎn)的利用率,源節(jié)點(diǎn)的利用率可以反映源節(jié)點(diǎn)資源的全局擁堵狀態(tài),匯 節(jié)點(diǎn)的利用率可以反映匯節(jié)點(diǎn)資源的全局擁堵狀態(tài),舉例為,上述源、匯節(jié)點(diǎn)均為LUT,且它 的利用率為3%,那么說明該類連線目前在芯片上還不是很擁堵。在一種具體實(shí)施例中,源節(jié) 點(diǎn)和匯節(jié)點(diǎn)的利用率的公式如下所示:
[0046] 源節(jié)點(diǎn)的利用率=預(yù)設(shè)的網(wǎng)表中源節(jié)點(diǎn)的數(shù)目/芯片上源節(jié)點(diǎn)的數(shù)目(1)
[0047] 匯節(jié)點(diǎn)的利用率=預(yù)設(shè)的網(wǎng)表中匯節(jié)點(diǎn)的數(shù)目/芯片上匯節(jié)點(diǎn)的數(shù)目(2)
[0048] 根據(jù)公式(1)和(2)計(jì)算得到每類連線的源節(jié)點(diǎn)和匯節(jié)點(diǎn)的利用率之后,再結(jié)合 在FPGA芯片上完成一次布局布線后單段連線的延時(shí)值,就可以唯一的確定出每類連線中 最小延時(shí)值和最大延時(shí)值。
[0049] 步驟102,根據(jù)所述單段連線的類型,查找時(shí)序模型庫文件中所述單段連線落入的 全局延時(shí)范圍及全局擁擠度范圍。
[0050] 具體地,對于任意一單段連線,依照步驟101就可以確定該單段連線的類型,再結(jié) 合該單段連線所屬連線類型的利用率,就可以查找到時(shí)序模型庫文件中該單段連線落入的 全局延時(shí)范圍及全局擁擠度范圍,如下所示:
【權(quán)利要求】
1. 一種FPGA映射后網(wǎng)表的時(shí)序估算方法,包括: 針對源塊單元與匯塊單元之間的單段連線,根據(jù)所述源塊單元和匯塊單元的類型,確 定所述單段連線的類型; 根據(jù)所述單段連線的類型,查找時(shí)序模型庫文件中所述單段連線落入的全局延時(shí)范圍 及全局擁擠度范圍; 計(jì)算所述單段連線的局部擁擠度,根據(jù)所述局部擁擠度,確定所述單段連線所屬的局 部擁擠度范圍和局部延時(shí)范圍; 根據(jù)所述單段連線所屬的局部擁擠度范圍和局部延時(shí)范圍,計(jì)算所述單段連線的延時(shí) 值。
2. 根據(jù)權(quán)利要求1所述的FPGA映射后網(wǎng)表的時(shí)序估算方法,其特征在于,所述根據(jù)所 述單段連線的類型,查找時(shí)序模型庫文件中所述單段連線落入的全局延時(shí)范圍及全局擁擠 度范圍包括: 根據(jù)預(yù)設(shè)的網(wǎng)表中記錄的各類連線的源塊單元的數(shù)目和芯片上所述源塊單元的總數(shù), 計(jì)算各類連線的源塊單元的利用率; 根據(jù)預(yù)設(shè)的網(wǎng)表中記錄的各類連線的匯塊單元的數(shù)目和芯片上所述匯塊單元的總數(shù), 計(jì)算各類連線的匯塊單元的利用率; 根據(jù)所述單段連線的類型、源塊單元的利用率和匯塊單元的利用率,查找所述時(shí)序模 型庫文件中所述單段連線落入的全局延時(shí)范圍及全局擁擠度范圍。
3. 根據(jù)權(quán)利要求1所述的FPGA映射后網(wǎng)表的時(shí)序估算方法,其特征在于,所述計(jì)算所 述單段連線的局部擁擠度包括: 計(jì)算源塊單元和匯塊單元的扇出擁擠度; 根據(jù)所述源塊單元和匯塊單元的扇出擁擠度,計(jì)算所述源塊單元與匯塊單元之間單段 連線的局部擁擠度。
4. 根據(jù)權(quán)利要求3所述的FPGA映射后網(wǎng)表的時(shí)序估算方法,其特征在于,所述計(jì)算源 塊單元和匯塊單元的扇出擁擠度包括: 根據(jù)Kl、K2、K3、K4和K5計(jì)算源塊單元的扇出擁擠度; 根據(jù)KO、K2、K3、K4和K5計(jì)算匯塊單元的扇出擁擠度; 其中,K0為源塊單元的扇出單元中,與匯塊單元類型相同的數(shù)目;K1為匯塊單元的扇 出單元中,與源塊單元類型相同的數(shù)目再加1 (源節(jié)點(diǎn)單元本身);K2為源塊單元的扇入扇 出單元總數(shù);K3為匯塊單元的扇入扇出單元總數(shù);K4為K2集合中的單元數(shù)目減去K0集合 中的單元數(shù)目;K5為K3集合中的單元數(shù)目減去K1集合中的單元數(shù)目。
5. -種FPGA映射后網(wǎng)表的時(shí)序估算方法,包括: 根據(jù)源塊單元和匯塊單元的類型,對源塊單元與匯塊單元之間的單段連線進(jìn)行分類; 針對各類單段連線中的每一類單段連線,根據(jù)布局布線后生成的網(wǎng)表標(biāo)注文件中各單 段連線在芯片上經(jīng)過的連線盒跳數(shù),劃分為多個(gè)跳數(shù)集合; 根據(jù)所述各集合中單段連線的局部擁擠度,確定所述各跳數(shù)集合的局部擁擠度范圍; 根據(jù)所述各集合中單段連線的布局布線后的延時(shí)值,確定所述各跳數(shù)集合的局部延時(shí) 范圍; 根據(jù)所述各集合的局部延時(shí)范圍和局部擁擠度范圍,建立時(shí)序模型庫文件。
6. 根據(jù)權(quán)利要求5所述的FPGA映射后網(wǎng)表的時(shí)序估算方法,其特征在于,所述多個(gè)跳 數(shù)集合是指3個(gè)跳數(shù)集合。
7. 根據(jù)權(quán)利要求6所述的FPGA映射后網(wǎng)表的時(shí)序估算方法,其特征在于,所述針對各 類單段連線中的每一類單段連線,根據(jù)布局布線后生成的網(wǎng)表標(biāo)注文件中各單段連線在芯 片上經(jīng)過的連線盒跳數(shù),劃分為3個(gè)跳數(shù)集合包括: 針對各類單段連線中的每一類單段連線,根據(jù)布局布線后生成的網(wǎng)表標(biāo)注文件中各單 段連線在芯片上經(jīng)過的連線盒跳數(shù)的不同,將各類連線分為N檔,統(tǒng)計(jì)各檔內(nèi)的單段連線 總數(shù),將具有最大單段連線總數(shù)的第i檔對應(yīng)的連線盒跳數(shù)作為典型跳數(shù)j,并統(tǒng)計(jì)出第i 檔內(nèi)單段連線的第一最小延時(shí)值和第一最大延時(shí)值; 遍歷所有單段連線在芯片上經(jīng)過的連線盒跳數(shù)大于j的檔,計(jì)算各檔內(nèi)所有單段連線 的幾何平均延時(shí)值; 將所述所有單段連線的幾何平均延時(shí)值大于所述第一最大延時(shí)值的M個(gè)檔歸為大跳 數(shù)集合,剩余的N-M個(gè)檔歸為典型跳數(shù)集合; 根據(jù)大跳數(shù)集合與典型跳數(shù)集合的交集,將所述N個(gè)檔重新劃分為小跳數(shù)集合、典型 跳數(shù)集合和大跳數(shù)集合。
8. 根據(jù)權(quán)利要求5所述的FPGA映射后網(wǎng)表的時(shí)序估算方法,其特征在于,所述根據(jù)所 述各集合中單段連線的局部擁擠度,確定所述各跳數(shù)集合的局部擁擠度范圍包括: 根據(jù)所述各集合中單段連線的局部擁擠度,統(tǒng)計(jì)所述各集合中單段連線的最小局部擁 擠度和最大局部擁擠度,并計(jì)算所述各集合中所有單段連線的幾何平均局部擁擠度,所述 最小局部擁擠度、最大局部擁擠度和幾何平均局部擁擠度組成各集合的局部擁擠度范圍。
9. 根據(jù)權(quán)利要求5所述的FPGA映射后網(wǎng)表的時(shí)序估算方法,其特征在于,所述根據(jù)所 述各集合中單段連線的布局布線后的延時(shí)值,確定所述各跳數(shù)集合的局部延時(shí)范圍包括: 根據(jù)所述各集合中單段連線的布局布線后的延時(shí)值,統(tǒng)計(jì)所述各集合中單段連線的第 二最小延時(shí)值和第二最大延時(shí)值,并計(jì)算所述各集合中所有單段連線的幾何平均延時(shí)值, 所述第二最小延時(shí)值、第二最大延時(shí)值和幾何平均延時(shí)值組成各集合的局部延時(shí)范圍。
【文檔編號】G06F17/50GK104424369SQ201310380431
【公開日】2015年3月18日 申請日期:2013年8月28日 優(yōu)先權(quán)日:2013年8月28日
【發(fā)明者】李璇, 樊平, 劉明 申請人:京微雅格(北京)科技有限公司