ASIC設計中序列 並行和流水設計

2021-10-04 18:08:53 字數 1375 閱讀 2580

在做asic設計方案的時候,當設計規格比如時延、吞吐率和面積定下來後,我們就得考慮邏輯採用序列還是並行方案。整體模組是否採用流水設計。

序列設計的好處是可以復用邏輯,節省邏輯資源。缺點是,控制複雜,時延大。處理模型如下。我們可以看到如果data_in0~n都要做procsee處理,那麼我們在輸入process前要做乙個控制邏輯,把data_in0~n乙個乙個的送入process中

並行設計的好處是控制簡單,時延小。缺點是,邏輯資源大。處理模組模型如下。我們可以看到對於data_in0~n,我們可以分別例化一套process。這其中的優缺一目了然,優點就是處理起來簡單,缺點就是要花n倍序列的資源。這樣和序列對比的條件是,我們的process邏輯單元的資源比較大。如果process資源比較小,採用序列處理反而複雜化了。

對於流水這個詞,雖然我們可能早就聽說過,但是把這種思維用到自己所屬的專業裡面,還是需要實踐的,初學者可能要花點時間去理解一些。流水最大的好處就是節省時間,提公升效率。還可以解決一些綜合時序問題。流水的模型如下所示。乙個輸入data_in經過proc_1處理後送個proc_2,proc_2處理完後再送給proc_3。經過這樣一級級的處理,經過最後一級proc_n處理後輸出處理結果。

每一級之間的傳遞可以用1.握手實現,這樣每級之間都存在反壓。比如如果proc_2級啟動的條件是proc_2本身要ready,它的上一級proc_1要做完。

2.也可以用上一級給的開始訊號起動,一級一級向下傳。比如第1級做完了,會有結束訊號,這個結束訊號就是第二級的啟動訊號。用這種方式處理的前提是,後一級的處理速度不能慢於前一級。也就是說前一級啟動下一級時候,必須保證下一級沒有任務在處理,不然就會出錯。

在流水設計中,要注意如果支援多工流水,每一級在傳遞資料的同時也要把相關引數傳遞給下級。下圖示意了3級流水工作的流程。

在t0時刻啟動了任務0。

在t1時刻任務0的第一級處理結束,任務0傳遞給第二級,同時開始啟動任務1。

在t2時刻任務1的第二級處理結束,把任務0傳到第**。這時刻之前任務1的第一級處理已完成,在等待第二級空閒,這時候第二級空閒了,第一級把任務1傳到第二級。當第一級把任務1傳到第二級,第一級空閒了,所以可以啟動任務2。

在t3時刻,任務1的第二級處理完,所以任務2的第二級開始啟動。

Java 8 並行流 序列流

2 容器操作 3 容器 rootfs 命令 4 映象倉庫 5 本地顯像管理 6 info version 當docker run建立容器時,docker的標準操作包括 利用映象建立並啟動乙個容器 分配乙個檔案系統,並在唯讀的映象層外面掛載一層可讀寫層 從宿主主機配置的網橋介面中橋接乙個虛擬介面到容器...

並行和序列

並行和序列都是通訊中資料傳輸的方式,二者有著本質的不同。1.並行通訊 同一時刻,可以傳輸多個bit位的訊號,有多少個訊號位就需要多少根訊號線。2.序列通訊 同一時刻,只能傳輸乙個bit位的訊號,只需要一根訊號線。比如,當需要傳輸1位元組資訊時,並行通訊需要8根訊號線,實現同時傳輸,假如耗時為1t,而...

序列和並行

序列傳輸 序列傳輸即序列通訊,是指使用一條資料線 將資料一位一位地依次傳輸,每乙個資料佔據乙個固定的時間長度,其只需要少數幾條線就可以在系統之間交換資訊,特別適合計算機和計算機 計算機和外設之間的遠距離通訊。並行傳輸 並行傳輸指的是資料以成組的方式,在多條並行通道上同時進行傳輸,是在傳輸中有多條資料...