1、時空變換基本概念
? ? ? ? 1.1、時空概念簡介
? ? ? ? ? ? ? ? 時鐘速度決定完成任務需要的時間,規模的大小決定完成任務所需要的空間(資源),因此速度和規模就是FPGA中時間和空間的體現。
? ? ? ? ? ? ? ? 如果要提高FPGA的時鐘,每個clk內組合邏輯所能做的事通常就越簡單,因此實現同樣的邏輯會造成資源的膨脹。
? ? ? ? ? ? ? ? 由于clk的提高,對資源的排列關系的要求就越緊湊,可是資源的膨脹會導致資源占用率的提高,增大布線的難度。
? ? ? ? 1.2、時空變換
? ? ? ? ? ? ? ? 1.2.1、時域優化
? ? ? ? ? ? ? ? ? ? ? ? 邏輯化簡
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 邏輯化簡是最基本的冗余去除利器,無論是針對組合邏輯還是時序邏輯,亦或是針對時域或者空域,邏輯化簡會給所有方面帶來好處。因為邏輯簡化了,實現該功能的邏輯門和觸發器就會減少,因此組合邏輯和時序邏輯中的冗余都被剔除。
? ? ? ? ? ? ? ? ? ? ? ? 空域方面的顛倒現象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 有時候邏輯上的化簡并不會為最終的資源占用帶來好處,例如以下邏輯:
?,化簡得到
化簡后的組合邏輯顯然會消耗更少的邏輯門,但對于4輸入1輸出LUT的FPGA而言,對資源的占用沒有任何影響。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 有時候,邏輯上的化簡甚至會帶來更多的資源消耗。
? ? ? ? ? ? ? ? ? ? ? ? 時域方面的顛倒現象
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 有時候邏輯的化簡并不會為最終的FPGA時序帶來好處,例如
?化簡為
化簡對于FPGA時序指標沒有任何影響。
????????????????????????
? ? ? ? ? ? ? ? ? ? ? ? 結構調整
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 結構調整是提高時序性能的另一種方式,它是在不改變原有組合邏輯功能單元的前提下,通過改變其內部邏輯門之間的連接關系,來達到減少邏輯門級數的目的,進而提高時序。
? ? ? ? 現在有同步輸入總線A B C D ????????:
? ? ? ? HDL code
????????????????
always@( posedge sys_clk )
beginSUM <= A + B + C + D ;
end
? ? ? ? ? ? ? ? 這樣子電路會有三個串聯的adder,時序延時就是3T;
always@( posedge sys_clk )
beginSUM <= (A + B) + (C + D) ;
end
? ? ? ? ? ? ? ? 這樣子 A + B 和 C + D 就會同時運算,時序延時為?2T。
? ? ? ? ? ? ? ? ? ? ? ? 分布調整
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分布調整又叫時間調整(retiming),通過移動工作的時間來提高完成的延時。
? ? ? ? ? ? ? ? 1.2.2、空域優化
? ? ? ? ? ? ? ? 1.2.3、時間換空間
? ? ? ? ? ? ? ? 1.2.4、空間換時間
? ? ? ? ? ? ? ? ? ? ? ? 模塊復制
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 同頻模塊復制
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 降頻模塊復制
? ? ? ? ? ? ? ? ? ? ? ? 流水線
????????????????