1. 程式人生 > >ASIC設計中一種通用型並行設計方法

ASIC設計中一種通用型並行設計方法

我是個“低調”的人,總不喜歡錶達出來,對異性如此,對工作也是如此。在翔哥的鼓勵下,決定把自己工作的一些經驗和思考寫下來,和同道們一起分享。

ASIC設計中一種通用型並行設計方法:

1)流水網的概念提出

    IC設計中的控制有序列和並行兩種思想。狀態機方法反應了序列控制思想,有軟體的思路,比較好理解,新手比較喜歡用。流水線方法是並行處理的思想,比較抽象,因為其效率高,老手喜歡用。從“流水線“的名字就容易知道,它只是一維的一條線,一個設計中可以有很多條。小設計中可能很容易設計,但對於大設計,流水線會很多條,條與條之間還有交叉,給同步帶來很大的麻煩。顯然還用流水線的思想去考慮並行的硬體設計顯然就力不從心了。因而我們提出二維的流水網的概念,以完善並行設計思想。

2)流水級的概念提出及實現

   一條流水線就像一個產品代理線。例如我是一件產品中間的一級代理,我有我的上級代理,我也有我的下級代理。對於很大的一個代理系統中,我只需要和我的上級和下級打交道就可以了,而不會跨級(例如我的上上級或者下下級)。只有我倉庫有貨,我就可以往下出貨,出貨成功的條件是剛好下級也要貨。一方面只要倉庫沒有滿,我就可以向上級要貨,另一方面,即使我的倉庫滿了,但現在剛好會出貨,我也可以向上級要貨,入貨成功的條件是剛好上級也有貨。入貨和出貨同時進行,正是並行系統的體現。這是典型的網際網路分散式設計思想。因而我們可以提出流水級的概念。在流水級中,我們用upen表示上級可以出貨,uprdy

本級可以入貨,dnen表示本級可以出貨,dnrdy表示下級可以入貨。本級入貨成功的條件是上級可以出貨並且本級可以入貨(upen&uprdy),本級出貨成功的條件是本級可以出貨,下級可以入貨(dnen&dnrdy)。

3)流水節點的概念的提出及實現

   一條流水線裡面的流水級的上下級都只有一個,但在兩端的流水級則可能有多個在其他流水線上的上下級。流水節點實現他們之間的同步,從而形成流水網路。需要同步的每個流水級都有一組輸入和輸出訊號(可能是upenuprdy的一組訊號,也可以dnendnrdy的一組訊號),本組輸出訊號就是除本組輸入訊號外的所有輸入訊號求與。

4)流水級,流水線,流水節點流水網的關係

流水級是一個點,多個流水級首尾相連可以形成流水線,多條流水線通過流水節點同步形成流水網。流水網可以實現任何的並行任務。