這邊文章會介紹 T 值的估計。一般 T 值表示從開始輸入訊號的時間到運算結果全部輸出所需的總時長,我們將它記為 $t_{all}$。而這個時間又可以被表示為 $t_{all}=n\times{}t_{period}$,其中 $n$ 就是所需要的總 cycle 數,而 $t_{period}$ 是一個週期的長度。大部分的人對於 $n$ 的估計相當熟悉,也可以設計好的方法來優化它。然而,大部分的人會忽略了 $t_{period}$ 的重要性。

優化總週期數 $n$ 與 $t_{period}$

由於我們都會需要時間讀取資料,而這段時間又佔大部分的時間,因此對於優化 datapath 上的周期數通常就沒有那麼重要。例如,現在要連續讀取 500 個資料點,你需要對每 15 個點的總和輸出。這種情況最簡單的就是做一個有 15 個數值的加法器 (如下圖)。

sum filter 15

然而,如果我們可以做 pipeline 成下面的電路,輸出時間只多了一個 cycle,這對於 $n$ 的影響的微乎其微。但是,在這個架構下,我們的 $t_{period}$ 就會因為 critical path 變短而變小。整體而言 $t_{all}$ 就能有很可觀的減少。

pipelined sum filter 15

當然,在這個架構中,我們因為以下原因需要付出額外的 A 值做為代價

  1. 需要使用額外的 register
  2. 加法器會由於被 register 隔開,而無法被合成到更好的面積

如果評量標準是 AT 值的情況下並不見得划算。因此我們會需要更深入了解 A 值估計,才有辦法在看到問題的當下想出最好的架構。在 2022 IC競賽決賽實作的文章中,我們將會看到 $t_{period}$ 會多大的影響我們的 AT 值。