看板 kinomoto
作者 標題 [轉錄][問題] 數位電路問題
時間 2010年03月29日 Mon. AM 12:44:11
作者 Maddulin (what else do u focus?) 看板 Electronics
標題 Re: [問題] 數位電路問題
時間 Wed Aug 1 01:05:39 2007
※ 引述《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
推 :值得給他m起來...1F 08/01 01:10
→ :謝謝樓上的肯定:)2F 08/01 01:18
推 :推薦3F 08/01 01:20
推 :推推推~~~4F 08/01 01:47
推 :受益良多 謝謝!5F 08/01 01:54
推 :給個M,這系列文章將在週末前收入精華區6F 08/01 04:02
推 :所言甚是7F 08/01 06:46
--
※ 來源: DISP BBS (http://disp.cc)
※ 作者: kinomoto 來自: 140.112.175.128 時間: 2010-03-29 00:44:11
※ 看板: kinomoto 文章推薦值: 0 目前人氣: 0 累積人氣: 1894
回列表(←)
分享