2014-02-20 39 views
2

請給我一些方法,我可以實現流水線來實現6階多項式。多項式流水線

我的想法:
執行三個加法同時即:

aox^0 + a1x^1 = sa10; 
a2x^2 + a3x^3 = sa32; 
a4x^4 + a5x^5 = sa54; 

同樣的sa10sa32的值存儲在flipflop1。

下一頁添加sa10 + sa32 = sa3210儲存於flipflop2,還可以存儲在sa54 flipflop2

下一頁添加sa3210 + sa54得到的結果。

有關上述邏輯的想法?

回答

2

我建議,首先嚐試在一個時鐘週期內不進行流水線操作,然後將其分成多個階段。

的設計取決於以下幾個因素:

  • 多少要分配資源(影響面積/功率)
  • 什麼是你的時鐘週期的時間?由於乘數很慢並且很貴,所以你不想將它們中的許多連接回去。
  • 您的吞吐量是多少?你想要每個時鐘週期的結果,還是每N個時鐘週期的結果(這樣你就可以進行資源共享)。

下面是一個例子: 讓我們假設你能容忍每個時鐘週期只有兩個連續乘法器的延遲,和你想的吞吐量,每個時鐘週期一個多項式。您的管道結構可以是這樣的:

階段1:輸入:{A5,...,A0,X}

Combination circuit: 

{a5,...,a0,x}---------------------->{a5,...,a0,x} 
         |-->------->x^2 
      x->[mult]->x^2->[mult]->x^3 

階段2:輸入:{A5,... A0,X,X^2中,x^3}

Combination circuit: 
{a5,...,a0,x,x^2,x^3}------------------------>{a5,...,a0,x,x^2,x^3} 
            |-->------->x^4 
        x^3->[mult]->x^4->[mult]->x^5 

階段3:輸入:{A5,...,A0,X,X^2,X^3中,x^4, x^5}

Combination circuit: 
(a0,x^0)->[mult]->a0x^0--\  
(a1,x^1)->[mult]->a1x^1--\ 
(a2,x^2)->[mult]->a2x^2-->[sum]-> a0x^0+a1x^1+...+a5x^5  
(a3,x^3)->[mult]->a3x^3--/  
(a4,x^4)->[mult]->a4x^4--/  
(a5,x^5)->[mult]->a5x^5--/  

請注意,我們正在使用大量資源(乘法器)以實現每個週期吞吐量的一個結果。

如果每個階段不能有多個乘數,則需要將階段1和階段2分成兩個階段。