|
原帖由 tshiu 於 2009-3-31 10:51 AM 發表 ![]()
6 w3 x7 r7 g! @0 T$ z, b) G目前我是使用1 of n decoder解碼原本的thermometer code( F' f4 `6 t' V f" ^6 O
再加上rom based將1 of n code解碼成quasi-gray code
! [6 t; }, G- V再將quasi-gray code解碼成我需要的6bit binary code* H7 y! h0 C; H& I) A0 {& j! M- c! [
但是這種解碼方式似乎速度不夠快
4 ?0 h8 H: m# [) `$ v請問還有其他 ...
' D. s$ @6 `' ?& {關於"此解碼方式速度不夠快"這論點應該以latency會變大來解釋會比較恰當。" H. C6 m; D3 Z; `
以flash ADC為例,其速度快的原因,在於每個clock cycle(即1/sampling frequency)都可以進行一次對輸入信號的量化(quantizaiton)工作,同時也可以提供一組新的output data。但這並不代表,此每筆新的output data就是前一個clock cycle所得到的sample data的量化結果。
* `- t6 d+ Z; N! I: g4 e7 i
' T. c5 |& Y2 g舉例來說,假設目前的input signal被sampling clock取到某一個輸入電壓令為S[n],並進行量化工作(comparator array工作 => analog to digital conversion)。
* X" a, r1 y9 o- V' E8 @當下個sampling clock來臨之前,若此flash ADC已將S[n]轉成D[n](此D[n]為output data,且為binary code。)。$ V. H# u* |: a/ T
則我們說,此flash ADC的throughput與latency皆為"1"。
( ^: w( O' t& l( o同理,若S[n]轉成D[n]需要經過3個clock cycle才能完成,此flash ADC的throughput=1,而latency為=3。
4 _2 Q( E1 [( h( O# s
% r L1 @6 Z2 d8 [3 [: h7 n因此,即使thermometer code->1-of-n code->gray code->binary code需要進行三種編碼過程,只要將D-type flip-flop插入其中,進行適當的分配(combination logic若propagation delay > 1個clock cycle, 則可插入D-type flip-flop將combination logic切割成數個區塊進行處理.)其實並不會影響flash ADC throughput。
( n8 B/ V) ]% j; k8 U6 X8 I# ~" F6 B! ~4 G' G2 e, j- v
除非flash ADC是用於回授系統,故對於過大的latency無法接受。(假設,flash ADC是用於回授系統(例如:sigma-delta modulator, 一般僅需4bit Flash ADC即可.),通常要求的解析度也不會太高,故encoder的proppagation dealy不會太長,是可以以滿足lateny=1的要求。)
( B/ Q# y& y. I/ k; u: ]+ L! I( @, k" L0 a, S
通常一般的通訊系統中,ADC只是作為analog front-end與digital baseband之間的一個串聯的資料轉換介面,故對於latency>1是可以允許的。 |
|