ETC中FM0解碼器的設計
3.1 同步時鐘信號產生
用16倍數據速率的時鐘信號對輸入信號RDIN采樣得到data_temp1信號,將采樣信號data_temp1延遲一個16倍時鐘周期(0.5μs)得到data_temp2信號,data_temp1與data_temp2相異或得到data_temp3信號,如果信號跳變data_temp3為‘1’,否則為‘0’,得到RDIN跳變時的脈沖clr信號,當clr=‘1’時,清0,當clr=‘0’時,對輸入時鐘信號clk_in進行2、4、8和16分頻,分別產生同步時鐘信號Q0(2 048 kB/s)、Q1(1 024 kB/s)、Q2(512 kB/s)、Q3(256 kB/s)。
16分頻后得到的Q3(256 kB/s)時鐘信號不能直接作為解碼輸出的同步信號,clr信號在輸入信號跳變時產生脈沖,盡管輸入信號RDIN與Q3速率相同,而clr信號發生在Q3高電平或低電平處,使Q3受到影響,輸出的不是完整的256 kB/s時鐘信號。因此為了得到完整的16分頻時鐘信號,需將8分頻時鐘信號再次2分頻得到時鐘信號CLKO。
VHDL源代碼如下:


3.2 在一個碼元時間解碼數據連續兩次跳變檢測
用4分頻信號Q1對data_temp1信號采樣得到data_temp4信號,將采樣信號data_temp4延遲一個輸入信號RDIN的四分之一碼元周期得到data_temp5信號,data_temp4與data_temp5相同或得到data_temp6信號。用時鐘信號CLKO的上升和下降沿同時檢測data_temp6信號,求或。如果求或結果為‘1’則表示時鐘的上升和下降沿有一次得到‘1’電平,即在半個碼元的時間間隔內解碼數據沒有跳變,根據FM0編碼規則此時數據應該是‘1’電平,解碼輸出DEOUT輸出為‘1’電平;否則,如果求或結果為‘0’則表示時鐘的上升和下降沿均得到‘0’電平,即在半個碼元的時間間隔內解碼數據有跳變,根據FM0編碼規則,此時數據應該是‘0’電平,解碼輸出DEOUT輸出為‘0’電平。
評論