|
原帖由 tshiu 於 2009-3-31 10:51 AM 發表
( |* Y* D! k! @1 W+ s$ [* S目前我是使用1 of n decoder解碼原本的thermometer code1 u" b' U! d G9 q6 ~& T4 ~
再加上rom based將1 of n code解碼成quasi-gray code, Y/ ^0 a" x7 i& Y/ s- h% _
再將quasi-gray code解碼成我需要的6bit binary code* C+ L, S4 [6 Y- E7 P1 b
但是這種解碼方式似乎速度不夠快
) U$ _7 `1 C7 c1 E ~1 B0 H2 Z' w/ ~請問還有其他 ...
: w9 y X% B2 L) p* t" | l! ^$ T關於"此解碼方式速度不夠快"這論點應該以latency會變大來解釋會比較恰當。- m9 ?/ V4 K } x/ `/ i2 K+ [
以flash ADC為例,其速度快的原因,在於每個clock cycle(即1/sampling frequency)都可以進行一次對輸入信號的量化(quantizaiton)工作,同時也可以提供一組新的output data。但這並不代表,此每筆新的output data就是前一個clock cycle所得到的sample data的量化結果。
; X0 r) F" N! s5 |! S P9 b- ?/ _8 h }* z2 N- a
舉例來說,假設目前的input signal被sampling clock取到某一個輸入電壓令為S[n],並進行量化工作(comparator array工作 => analog to digital conversion)。
+ }- H. c5 X: T5 e7 S3 _當下個sampling clock來臨之前,若此flash ADC已將S[n]轉成D[n](此D[n]為output data,且為binary code。)。 Y% v& \8 f$ ^5 f L* I9 M ~
則我們說,此flash ADC的throughput與latency皆為"1"。
" L2 D0 I, V& g) h: Q: R# m同理,若S[n]轉成D[n]需要經過3個clock cycle才能完成,此flash ADC的throughput=1,而latency為=3。3 F. T* [3 V2 ~+ V u1 Z
) m7 a4 `3 L' u( g3 q! `& [
因此,即使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。
( ?4 O; ^7 e" g, W) N" {
; E* d# ?1 z1 {( x6 L- E/ [8 E除非flash ADC是用於回授系統,故對於過大的latency無法接受。(假設,flash ADC是用於回授系統(例如:sigma-delta modulator, 一般僅需4bit Flash ADC即可.),通常要求的解析度也不會太高,故encoder的proppagation dealy不會太長,是可以以滿足lateny=1的要求。)
O' W" h; @% l- Y- O2 g- [# H- v9 Y! G9 Q/ ~2 g1 D2 J
通常一般的通訊系統中,ADC只是作為analog front-end與digital baseband之間的一個串聯的資料轉換介面,故對於latency>1是可以允許的。 |
|