一:PLL
1:組成
輸出時鍾產生器,相位比較器,可變頻率振盪器(VFO),PLL會比較輸入時鍾相位與VFO產生的輸出時鍾之間的差別,並且通過這個差別來調整VFO產生的時鍾頻率。
2:VFO代碼
我們定義比較器給VFO加快頻率的指令是2‘b11,減慢頻率的指令是2’b00.
3:比較器設計
(A)方法一:用一個時鍾來對另一個時鍾的高電平寬度進行計數。如果每次PLLClock高電平時計數都為1,那么說明兩個時鍾是吻合的。
(B)對A改進
首先HiCount計數可能會溢出,技術值重新翻轉到2‘b00。2’b00的作用是加快產生時鍾頻率,這使得頻率的調整方向與真實情況正好相反。如果我們把HiCount的位寬由兩比特擴展至3比特,可以解決這個問題。
接着,來解決調整精度的問題,這可以通過把高電平的計數值在多個時鍾里求平均的辦法來解決;當兩個時鍾同步時,這個計數值應該一直為1。(這點不明白)
4:頂層設計
二:倍頻PLL(以32倍頻為例)
1:電路圖
即在原1倍頻的輸出端加n比特向上計數器,如,32倍頻時,每16個時鍾,輸出端輸出一個時鍾用於與輸入時鍾進行比較,從而起到倍頻PLL。 32=2^5,因此計數器為5.
三:SerDes與PCI Express簡介
1:基本概念
PCI是32比特的並行總線協議;
PCI Express用來取代PCI總線的新的串行總線協議
SerDes:串行/解串器
下面將完成一個符合PCI Express規范的串行/解串器(SerDes)的設計
2:並串轉換器模型
串行協議:每一個時鍾發送一個比特,先發送MSB,同時把信號SerValidFlag拉高;當發送了LSB后,再把SerValidFlag拉低。
主要代碼:ParValid=1,SarValid=1,然后將BusIn[ix]的值循環輸出,最后SarValid拉低。(ParValid是仿真給的值)
3:串行幀編碼器
數據串行輸出之前有一定的幀格式,例如一個並行包32bit,串行輸出,要在每個字節后加一個字節。如下:x代表數據,數據后面為一個字節的幀邊界。