看板 Electronics 關於我們 聯絡資訊
前輩們好 我正在將一個電路管線化 這個電路是由很多加法 減法 乘法組成 原電路沒有插入dff(我自己寫的延遲module) 插入後的電路有加入延遲元件 在合成後time path的確是變少了 可是加了延遲元件再合成後area 還有power 居然變少了 好煩惱 不知道問題出在哪 有沒有前輩有遇過 實驗結果跑不出來 急需幫助 拜託各位前輩了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.115.73.204 ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1435055456.A.ECE.html
Baneling: 用primetime px去跑power比較準吧 @@ 06/23 18:53
windsfk: 那也是design complier的功能嗎? 06/23 18:54
windsfk: 可是我多加了延遲元件Area居然變小 百思不得其解 06/23 18:55
windsfk: 或是我未加延遲元件前合成被亂加東西? 06/23 18:58
Baneling: 你就直接report_area去看comb跟seq各自的面積不就好了? 06/23 19:04
Baneling: 照理來說你加入dff做retiming, seq的面積(數量)應該是會 06/23 19:05
Baneling: 增加, 但要是如果comb的面積有大幅度的變動 那area跟pow 06/23 19:05
Baneling: er會有改善也是有可能的(但還是要看你架構怎麼寫) 06/23 19:06
Baneling: 另外面積不要看繞線的部分 因為很不準 -.- 06/23 19:06
windsfk: 面積部分我只看cell area 但加了45個DFF 面積居然下降2W 06/23 19:20
照前輩說的分comb seq來看 加延遲前 122973 + 0 =122973 加延遲後 83891 + 23524 =107416 這樣來看是因為加了延遲 把原本comb的部分併成seq 然後面積優化過才會產生這結果摟 這樣我看面積差別 122973 跟 122973+23524 這樣比較合理嗎? ※ 編輯: windsfk (140.115.73.204), 06/23/2015 19:37:10
Baneling: 為何是122973+23524? XD 06/23 21:30
windsfk: 未加延遲的comb 加上 上延遲後的seq? 06/23 21:52
windsfk: 這種情況面積還有功耗該怎麼比較呢 06/23 21:53
Baneling: 應該是122973比107416吧~ 你原本一整塊comb就必須要在 06/23 21:55
Baneling: 1個clock之內運算完畢, 你切pipeline之後 假設切成N級完 06/23 21:56
Baneling: 成運算 那你的comb的運算時間就有可能大幅增加 自然area 06/23 21:57
Baneling: 就有可能會下降(不用這麼高速的運算單元) 你也可以用 06/23 21:57
Baneling: report_design這個指令去確認你的設計使用到的DW librar 06/23 21:58
Baneling: y中的運算單元 架構或者總量都可以比對 06/23 21:59
前輩請問有辦法 調整模擬方法 讓加延遲後 變成 122973 + XXX 嗎? 我感覺前輩的意思是加了延遲元件 於是加法乘法那些comb元件可以使用較慢的(小面積) 有辦法不改變這些comb元件 只多加延遲元件面積嗎 ※ 編輯: windsfk (140.115.73.204), 06/23/2015 22:21:59
Baneling: 我沒有這樣試過 XD 為何有效能較好的電路不用 用比較不 06/23 22:29
Baneling: 好的電路呢... 06/23 22:29
我的研究題目是再不同的critical path限制下插入不同數量的暫存元件(pipeline) 然後假如限制70單位時間 那有演算法作成68單位時間 然後盡量用少的暫存元件 我是假設插入暫存元件越多會導致面積成長(不好) 但現在居然插入暫存元件 面積還變小 有點完蛋了.......該怎麼辦哪.... ※ 編輯: windsfk (140.115.73.204), 06/23/2015 22:34:23
Baneling: 我有點不太懂你的意思 不過聽起來你的研究方向是EDA? 06/23 22:42
windsfk: 是的...EDA.. 06/23 22:44
windsfk: 簡單來說就是 我限制time 盡量少用暫存器 想省area 06/23 22:44
windsfk: 沒想到用了暫存器的架構面積還比較小... 06/23 22:45
Baneling: 我不太懂你的意思 你是比較 1.完全沒使用暫存器的設計 06/23 22:49
Baneling: 2. 有使用暫存器的pipeline架構? 06/23 22:50
windsfk: 對 沒用暫存 比上 有用暫存 其他部分完全相同 06/23 22:55
windsfk: 有用暫存cell面積小... 06/23 22:56
Baneling: ㄜ 應該說你的訴求是什麼 @@ 我有點不太懂 06/23 23:10
windsfk: 訴求是希望減少AREA POWER (從減少暫存器作起) 06/23 23:13
Baneling: 減少哪裡的暫存器? 如果是純comb電路 他是沒有暫存器呀 06/23 23:18
原本設計是沒暫存器 但隨著critical path 的限制會需要進行管線化(插暫存器) 我的演算法會盡量以critical path 為限制 盡量切少層pipeline(插少一些暫存器) 藉以減少面積 功率成本 ※ 編輯: windsfk (140.115.73.204), 06/23/2015 23:30:46
Baneling: 那根據你的演算法所最佳化的設計需要比較對象是? 06/23 23:34
windsfk: 未加入暫存前的電路<-- 和這個比 06/23 23:39
Baneling: 那面積跟功耗都變好不是很好嗎? XD 06/23 23:41
Baneling: pipeline跟邏輯最佳化通常是一起進行的 而你的問題應該 06/23 23:42
windsfk: 不可能阿QQ 我再C平台設計的 盡量用少暫存器完成管線化 06/23 23:42
windsfk: 但合成後卻加了暫存面積沒變大 那我fully pipeline就好 06/23 23:42
Baneling: 是希望只進行pipeline而不做邏輯最佳化 這有點怪異 @@ 06/23 23:42
windsfk: 我verilog code的加法乘法都用assign寫 我正再試著用 06/23 23:44
windsfk: gate level的寫法試試 這樣加了暫存器它應該也不會改我 06/23 23:44
windsfk: 架構 06/23 23:45
Baneling: 我剛也有想到說你直接去改合成好的gate-level netlist 06/23 23:45
Baneling: 不過這樣很怪異... XD 建議先跟指導教授討論一下 06/23 23:45
windsfk: Q__Q 感謝您了 7月想口試阿 嗚嗚嗚嗚 06/23 23:47
bxxl: 我覺得你看到的現象是正常的,原本的假設錯了吧 06/24 08:33
bxxl: 這也不代表fully pipeline最好,可是加上前幾級pipe效果最好 06/24 08:37
bxxl: 後來就邊際效應遞減,但是dff的area線性增加. 06/24 08:38
bxxl: 所以最佳點會是中間的某一點 06/24 08:38
windsfk: 謝bxxl大 合成40多次的確有這樣的感覺 隨著層數增加 06/24 13:33
windsfk: 面積也變大 我有些鑽牛角尖了 必須要解釋這一現象才是 06/24 13:34
昨天真是有些絕望了 萬幸有來PTT發問 版上高手多且熱心 感謝你們 ※ 編輯: windsfk (140.115.73.204), 06/24/2015 13:36:59
mmonkeyboyy: 你是改hdl來實現嗎? 如果是這樣的話 n.... 06/25 01:35
mmonkeyboyy: 很有可能是你寫code問題或是一開始假設就錯了 06/25 01:35
mmonkeyboyy: 你可以google hdl compiler結果的一些討論 06/25 01:36
mmonkeyboyy: 會有告訴你為什麼有些時候你寫code少gate多 06/25 01:36
mmonkeyboyy: 寫code多 gate少 pipeline竟然很神奇的沒效 06/25 01:37
weop388: 你的timing constraint可以提供一下嗎 06/29 19:00