看板 Electronics 關於我們 聯絡資訊
※ 引述《acelp (未來,一直來一直來)》之銘言: : 可能眾網友得思考一下 什麼是同步設計跟非同步設計 : 同步跟非同步設計的差異性在哪? 為什麼現在幾乎所有的數位都圍繞在clock? : 一般業界再用的幾乎都是同步設計 : 所以才有Maddulin網友說的cycle間的東西不處理 : (不過事實上還是可以處理:p gate level上就可以作 : 但是這就脫離了RTL了) : 有些人習慣用#的原因 : 我聽說是為了rtl simulation能從waveform判斷訊號是combination還是DFF : 同步設計有非常多的缺點 耗電 area大等等 : 但是為什麼design幾乎都走上同步設計? : 因為同步設計容易控制timing EDA也比較好發展 : (這也是為什麼很多祇要懂邏輯的人都可以做數位設計 : 但是這種人一遇上問題 常常是de不完啊:p : 因為電路設計不只是靠邏輯觀念) : 不過在走入90nm以下 慢慢非同步設計的觀念也開始越受重視 : 搞不好 下一個世代另一個synopsys就是靠非同步的EDA起家:p acelp 網友說的不錯 不過我有一些不同的見解, 提出來討論 首先談一下同步非同步的設計 談這些問題我一定從理論,背景精神切入,這樣視野才廣 digital circuit 必然以實現處理 DSP 為發展, 這點無庸至疑 DSP 的運算精神就是 clock-based 亦即 sampling 當然電路的完全同步,當設計的複雜度提升, 過度的同步要求便對電路的實現造成瓶頸 雖然我們可見到非同步設計的確非常有他的必要性 不過非同步設計必需建立在同步設計之上 因為clock 是 DSP 理論的基礎 因此小弟認為若設計牽扯非同步, 設計的精神還是在於同步設計 進一步談到 area, power 的問題, 我提出一個我自身研究的實例做為印證 同樣的spec. (multimedia 應用), 同樣的 processing capability JSSC'04 250kgate/10mW (.18 1.2v) TCSVT'07 300kgate/4mW (.18 1.3v) 我們的設計 100k/0.7mw (.13 1.2v) (dyn. power 0.3mW) 同時我們的設計有更好的system performance,特別在於某些環境,greatly 這些數據都是極客觀比較, 沒有背後隱藏的事實 我們也沒有使用太特別的演算法,但就是比目前學術界最頂尖的設計好上數個order 看來不可思議? 何故? 如同我曾說過, 電路設計者必需有一定程度的理論基礎 硬體設計是門藝術,非常強調天分,同樣的理論,在某些人手上就是像變魔術 在那些成熟的工業 例如建築,航空 ... 都是如此 我想談的事,許多的設計是要看設計者的功力, 功力不是做做黑手 隨便寫寫 code 就會出來 欠缺嚴僅的分析 設計者的功力絕對是天差地遠, 所以同步設計是否真的 more area/power cost? 我想未必, 還是要看設計者的能力而定, 某此設計者就是用一些簡單的設計技巧就能端出滿漢全席 另外一個問題我想進一步討論的就是為何我關於放 # 的問題 為何我如此排斥? 我那時的說法只是把我的想法簡略的表達出來 以下我只從 cell-based 的角度切入 數位電路的設計的演進及間題的切割有其背景及必要性 cell-based flow 目前的理論將巨大的設計問題做有效的垂直切割 每個層級所考慮的問題或是層級間的 interfact, 或是跨 domain 都有其背景及必要性, 理論與應用就在這樣的環境底下孕育發展 以RTL為例, 它是 cell-based flow 設計垂直切割中可說是最重要的一個層次 系統的設計目前仍主要由 RTL 所述描, 在某方面, 專注於 RTL 層級的設計 能給系統設計者帶來非常主要的正面價值 特別是讓我們能站在巨人肩膀的那些動輒數億 CADs 便是基於這樣的切割而發展 即然我們已有效的 切割這些問題 (基於發展背景或精神), 代表某程度而言, 我們必需學習更高 abstraction 的體會, 在此層級下學習信任的遵從那些設計限制 限制就字義看來, 或許沒有必要, 例如為何 RTL 不處理 cycle 內的 timing? (暫且先將 RTL 視為一種邏輯描述的方法, 如果你喜歡 就叫它 ABC) 但這些發展都是包含處理這些限制最佳與期望最佳解, 或是正確的說是"限制"由此而生 若能跨 domian 而有效率,或是更佳解, 那問題的切割就並非如此 理論不斷進步,看問題的角度也可能改變, 例如 RTL 邏輯描述某程度而言並不是那麼有效, 我們可以將問題的abstraction 提升至 algorithm/system level, 抽離 時鐘-based description (按: 我個人持保留的態度, 一定行為的描述抽離了時鐘的scheduling 在此 abstraction 下, 不同時脈而同樣的邏輯結果是完全 equivalency 而此過程某些適度包含時序的邏輯就因此被剝離, 但這些邏輯合成的演算法 絕不可能超越人的思考與分析能力, 因此我個人認為要以 system/algorighm level 的行為描述取代 RTL 是完全不可能的事, 除非我們只在乎東西會不會動) 回到 RTL, 這一層級的邏輯描述只專注在 register transfer 換言之, 所有系統的運算/邏輯的行為描述是看不見 cycle 這數字 在一個 clock edge 下, 同時轉換, 這就是 DSP 的主要基礎 既然沒有 timing 的 information, 加 # 有何意義? 希望有這習慣的人思考這問題 如同a網友說 有些人這樣做是為幫助閱讀,分辦 comb. logic/ seq. logic 這樣應該在 naming 去解決, 而不是破壞 RTL 的架構 會有這樣想去的人, 我認為他不能融入 RTL 存在的精神與目的 這樣真的很難設計出有水準的電路 另外,有人回說 fpga 內部有 cell 可呼叫 只要是 cell-based flow 都有 cell 可做為 instance 可是這就不屬於 RTL 層級下的設計, 你的 RTL synthesis對於這樣的設計 不會有更好的合成能力, 除非非有不得已的原因否則沒有這樣設計的餘地 我已經證明,我們"專注"在 RTL 設計, 將有非常大的 benefits 超越事必恭親的 design vision, 我們應該朝向設計的藝術前進, 如何設計出一流的電路 對這問題我的建義是多多培養 對設計正確的認知,包含用心的體會這些設計理論的精神與發展的背景 我想我能表達的都差不多了, 希望能給一些初學者不同的 vision -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.141.232.207
MasterChang:值得給他m起來... 08/01 01:10
Maddulin:謝謝樓上的肯定:) 08/01 01:18
happycompany:推薦 08/01 01:20
Juneje:推推推~~~ 08/01 01:47
arclitetank:受益良多 謝謝! 08/01 01:54
deathcustom:給個M,這系列文章將在週末前收入精華區 08/01 04:02
rickhsu:所言甚是 08/01 06:46
mouein:獲益良多 m(_ _)m 謝謝!!! 08/01 21:21
ckcson:感覺很像不太通順的譯文XDD 還是感謝分享 08/01 23:14
ckcson:SURE,我懷疑現在比較critical的電路部份,根本直接作 08/01 23:17
ckcson:gate-level design , 不曉得有沒有比較清楚業界工作的板友 08/01 23:18
ckcson:個人朋友的interview經驗就包含Novatek,EMC等,直接要會 08/01 23:20
ckcson:gate-level design的人才,而不是純粹的RTL Coding 08/01 23:21
Acme:有些就直接Analog了...gate level不夠用了 08/02 00:29
ckcson:我指涉的當然還是在數位電路的範圍... 08/02 02:22
Maddulin:譯文?網路到是容易使用這些污衊性字眼, 08/02 04:09
Maddulin:即然已經是(timing) critical,就不可能是直接以任何 08/02 04:13
Maddulin:型式的方法逆向STA, synthesizer 自動化處理 syn. 的問題 08/02 04:15
Maddulin:能力讓你望其項背,只擔心你沒用過,當然許多大公司有自已 08/02 04:18
Maddulin:的cell library, 否則採full-custom, 絕大部分情況 08/02 04:21
Maddulin:cb都能處理,問題是誰設計,還是你認為你的能力和別人近似 08/02 04:22
Maddulin:不知c兄是否方便透露自已學歷? 08/02 04:23
※ 編輯: Maddulin 來自: 220.141.101.117 (08/02 06:22)