串并轉換與并串轉換是高速數據流處理的重要技巧之一。其實現方法多種多樣,根據數據的順序和數量的不同要求,可以選用移位寄存器、雙口RAM(Dual RAM)、SRAM、SDRAM或者FIFO 等實現。
帶有高速收發器或LVDS等串行收發器的應用都包含了典型的串并轉換與并串轉換設計。以筆者在《XilinxFPGA伴你玩轉USB3.0與LVDS》一書的第8章介紹的LVDS收發實驗為例。如圖3.21所示,FPGA接收到LVDS串行時鐘s_clk和串行數據s_data,s_data是逐位傳輸的,每個s_clk時鐘周期傳輸4bit數據。每2個s_clk時鐘周期共傳輸8bit數據,這8bit數據就是實際應用中有具體意義的有效數據。因此,串并轉換后,1bit位寬的s_data在2個s_clk時鐘周期中累計送入的8bit數據,最終要轉換為FPGA的并行時鐘p_clk所同步的8bit位寬的并行數據p_data上。
圖3.21 串并轉換波形
由于LVDS的傳輸基于FPGA的硬件物理層結構,因此FPGA開發工具上通常都有配套支持的IP核供直接配置使用,串并轉換(LVDS接收)或并串轉換(LVDS發送)的工作都由IP核完成了,無需設計者自己寫代碼實現。
筆者在實際設計中,使用較多的是基于FIFO的串并轉換或并串轉換設計。如圖3.22所示,左右兩個FIFO,除了起到了數據緩存的作用,也起到了位寬變換,即串并轉換(16bit轉換為64bit)和并串轉換(64bit轉換為16bit)的作用。
圖3.22 串并轉換與并串轉換應用
審核編輯:湯梓紅
-
FPGA
+關注
關注
1629文章
21759瀏覽量
604272 -
收發器
+關注
關注
10文章
3438瀏覽量
106067 -
寄存器
+關注
關注
31文章
5357瀏覽量
120656 -
Xilinx
+關注
關注
71文章
2168瀏覽量
121675 -
lvds
+關注
關注
2文章
1043瀏覽量
65851
原文標題:經典設計思想:串并轉換與并串轉換
文章出處:【微信號:FPGA快樂學習,微信公眾號:FPGA快樂學習】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論