# Pipeline ###### tags: `Digital IC Design` [回到主頁面](https://hackmd.io/@derek8955/BkK2Nb5Jo/https%3A%2F%2Fhackmd.io%2FdpcBlBL8TlShpQ-wSi9Quw) ### <font color = "blue">What is pipeline </font> Example: 小田洗衣店  - 小田的洗衣店因為空間有限,店內只有一台二合一機器(洗+烘衣機),其中洗衣服需要10分,烘衣需要10分,整個洗加烘耗時20分。 - 有一天有 3 位客人(小明、小王、小李)送洗,小王必須等待小明使用完畢,小李必須等待小王使用完畢,如此將非常耗時,總共得耗時 60 分才可以將三位客人送洗的衣服處理完畢。 - 於是此時小田就在思考有沒有辦法在有限範圍內讓整個送洗的效率上升 - ( Pipeline 的技術就派上用場了 ) - 將原先洗加烘衣機獨立,一台專門洗衣服,另一台專門烘衣服  - 見下表,可以發現只需要 40min 就完成 | | 0min | 10min | 20min | 30min | 40min | | -------- | --- | --- | --- | -------- | -------- | | 洗衣機 | 小明 | 小王 | 小李 | | | | 烘衣機 | | 小明 | 小王 | 小李 | | | 完成 | | | 小明 | 小王 | 小李 | :::info - 雖然面積上升了一些,但因為效率提升了很多,所以多一點面積是可以接受的 - pipeline 一般會設計在電路中最花費時間的 path ( 這條 path 稱做 critical path ) ::: ### <font color = "blue">Example in circuit </font> ```verilog= // Original always @( posedge clk ) begin result <= ( a + b + c ) * d; end // Pipeling always @( posedge clk ) begin tmp_0 <= a + b; tmp_1 <= tmp_0 + c; result <= tmp_1 * d; end ``` || |:---:| |<font color="aixs">critical path : </font> 2 adder + 1 mult => 1 mult| ### <font color = "blue"> Reference Image </font> https://ixintu.com/sucai/0yVUeWeje.html https://616pic.com/sucai/1kxi5dmg2.html https://ixintu.com/all/guntongshixiyiji.html
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up