新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 動態重構兩種模式的分析與對比

        動態重構兩種模式的分析與對比

        作者: 時間:2009-03-24 來源:網絡 收藏

        1、引言

        本文引用地址:http://www.104case.com/article/192118.htm

        隨著數字邏輯系統功能的復雜化,單片系統的芯片正朝著超大規模、高密度的方向發展。然而,隨著數字邏輯系統規模的擴大,在相同速度的條件下,在一定的時間區間,由于從時間軸上來看,系統中的各個功能模塊并不是任何時刻都在激活或工作,所以其功能模塊的平均使用率將下降。也就是說,隨著系統規模的擴大,單片電路的資源利用率反而下降。因此,系統設計能不能從傳統的追求大規模、高密度的方向,轉向如何提高資源利用率上來呢?

        FPGA重構技術正適應了這種要求,用有限的資源去實現更大規模的邏輯設計,大大提高了資源利用率。但它決不僅僅是一種新型功能電路的應用,其涉及數字系統設計方法、設計思想的變革,可以使數字系統單片化的設計從追求邏輯規模轉向追求邏輯的分時復用;從專用的固定功能邏輯系統轉向功能可自適應進化的邏輯系統。重構技術是未來FPGA研究和使用方向。

        2、基本理論

        嚴格來講,系統重構的概念可分為靜態系統重構和系統重構。靜態系統重構是指目標系統的邏輯功能靜態重載,即在系統空閑期間通過各種方式進行在線編程,而不是在其他部分動態運行時重載。

        動態系統重構是指在系統實時運行當中對FPGA的邏輯功能實時地進行動態配置,能夠只對其內部需要修改的邏輯單元進行重新配置,而不影響沒有被修改的邏輯單元的正常工作。動態重構特征引出了一種新的設計思想[3]:即用有限的硬件邏輯資源來實現大規模系統時序功能;將傳統的空間分布的硬件邏輯,分為器件外部特征不變,而內部邏輯在時間上交替變換的硬件邏輯,并共同在時間空間上構成系統整體邏輯功能。

        當器件的同一個區域需要載入不同的設計功能并且又不需要重新配置整個電路也不影響其他電路的運行時就需要部分動態重構。這樣既可以降低電路能量消耗又可以提高板子利用率、加快下載速度。

        可重構系統的歷史很短,目前還處于研究、驗證階段,但已經被應用到了很多方面,如軍事目標匹配[4,5] 、集成電路計算機輔助設計[6]等。可重構系統研究的關鍵之處在于硬件方面即FPGA,有代表性的主要有MI芯片[7]、SIDSA FIPSOC結構[8]、MIT的DPGA[9]和Virtex系列,目前使用較多的是Xilinx 公司推出的Virtex系列。

        Virtex器件的有效部分重構可以使用Select映射或者Boundary Scan(JTAG)下載。不需要重新配置器件也不需要下載完整的配置,新的數據只需下載到器件的可重構部分。對于目前的FPGA器件來說,數據是以column為基礎下載,最小的可下載單元是一幀(frame)的配置比特流,它根據目標器件的不同而有不同的大小。

        FPGA的動態可重構有兩種不同的方式:基于模塊(Module-based)的部分動態可重構和基于差異(Difference-based)的部分動態可重構。基于模塊的部分動態可重構將設計分解成模塊,對一個設計來說,每個模塊都是完全獨立的。如果模塊之間需要交流通信,就需要一種特殊的總線宏,它允許信號穿過部分可重構的邊界??偩€宏為設計的內部通信提供了一個固定的總線。每次實現部分可重構時,總線宏就用來確保模塊間布線通道沒有改變,保證正確的連接。而基于差異的部分可重構只是比較部分重構前后的電路差別,產生一個只包含重構前后設計差別的比特流。

        3、基于模塊的部分可重構

        部分可重構定義了一些特殊的區域,這些區域可以在器件的其他部分還在運行的情況下進行重構,這些特殊區域稱作可重構區域?;谀K的部分可重構就是將電路功能劃分成一個個的模塊,這些模塊包括可重構模塊(可以實現重構的特殊區域)和固定模塊(功能不變不能實現重構的區域)。其中可重構模塊是重構技術的關鍵,具有以下特性:

        重構模塊的高度是整個器件的高度。

        重構模塊的寬度最小可以是四個slice最大可以到整個器件的寬度,但必須以四的整數倍個slice增加。

        重構模塊放置的水平坐標必須是四的整數倍個slice的邊界,例如:左邊邊界可以放置在x=0,4,8,……

        可重構模塊和其他模塊之間的通信(包括可重構模塊和普通固定模塊之間、可重構模塊和 可重構模塊之間)都是通過使用特殊的總線宏,如圖1。

        圖1 總線宏用作模塊內部通信

        重構模塊寬度范圍內包括的所有邏輯資源都被看作是可重構模塊的一部分,包括slice、TBUF、RAM塊、乘法器、IOB和布線資源。

        時鐘邏輯和可重構模塊是相互分離的,時鐘和比特流是相互獨立的。

        可重構模塊上部和下部的IOB是可重構模塊資源的一部分。

        如果一個可重構模塊貫穿了整個板子的左部和右部,那么每一邊的IOB都是可重構模塊資源的一部分。

        為了降低設計難度,要盡量減少可重構模塊的個數(理想狀況下,如果可能的話,最好只有一個可重構模塊)。

        可重構模塊的邊界不能改變。任何一個可重構模塊的位置、所占據的區域都是固定的。

        為了保證重構的時候實現合適的操作,需要外在的握手邏輯。

        在可重構過程之前和之后,要保存可重構模塊內的存儲元素的狀態。

        如圖2所示,是一個具有兩個部分可重構模塊的設計,各模塊間都是通過總線宏來通信。通過合理的時序控制,實現在其他電路還在運行時的動態配置重構模塊,實現硬件復用。從而用更少的硬件資源去實現更大的系統功能,提高資源利用率。同時,可重構模塊比整個系統小很多,下載速度也得到大大提高。


        上一頁 1 2 下一頁

        關鍵詞: 動態 模式 分析 對比

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 龙岩市| 广东省| 蒙阴县| 黄大仙区| 宜良县| 东阿县| 隆林| 昌邑市| 老河口市| 镇赉县| 新巴尔虎右旗| 嘉义市| 师宗县| 祥云县| 保亭| 大兴区| 思茅市| 盐边县| 腾冲县| 蕉岭县| 大冶市| 旌德县| 张家口市| 阿拉尔市| 简阳市| 十堰市| 定襄县| 濮阳市| 苏尼特右旗| 岑巩县| 济阳县| 筠连县| 高雄市| 漳州市| 溆浦县| 绥江县| 黄龙县| 台南市| 奎屯市| 高雄市| 共和县|