基于VHDL的通信編碼波形的設(shè)計(jì)與仿真
程序在QUARTUSII環(huán)境中編譯仿真波形如圖11所示。
圖11 NRZ-S碼波形
RZ(單極性歸零碼)
在歸零碼RZ中,碼元中間的信號(hào)回歸到0電平,因此任意兩個(gè)碼元之間被0電平隔開(kāi)。當(dāng)為“1”時(shí)為“0”,當(dāng)為“0”時(shí)則為“0”,即輸入datain信號(hào)中間隔開(kāi),時(shí)鐘clk是2分頻,在上升沿遇“1”跳變,其它為“0”,輸出信號(hào)encoder-out。
具體VHDL模塊圖如圖12所示。
圖12 RZ(單極性歸零碼)的模塊圖
程序在QUARTUSII環(huán)境中編譯仿真波形如圖13所示。
圖13 RZ碼波形
積分曼徹斯特碼
曼徹斯特編碼是一種雙相碼。除了中間發(fā)生跳變外,當(dāng)為“0”時(shí)相鄰碼元電平極性改變,“1”時(shí)相鄰碼元電極性不改變,由于要將輸入datain信號(hào)中間跳變,故需兩個(gè)時(shí)鐘clk1、clk2,且clk1是4分頻,clk2是2分頻,都在兩時(shí)鐘上升沿遇“0”跳變,遇“1”保持,輸出信號(hào)encoder-out。
其具體VHDL模塊圖如圖14所示。
圖14 積分曼徹斯特碼的模塊圖
程序在QUARTUSII環(huán)境中編譯仿真波形如圖15所示。
圖15 積分曼徹斯特碼波形
雙相-M碼
雙相-M碼:除了相鄰碼元電平極性發(fā)生跳變外,當(dāng)為“1”時(shí)中間發(fā)生跳變,當(dāng)為“0”時(shí)中間不發(fā)生跳變,即時(shí)鐘clk1為4分頻,輸入信號(hào)datain相鄰碼元極性跳變,遇“1”時(shí)在時(shí)鐘clk1的上升、下降沿跳變,輸出信號(hào)encoder-out。
具體VHDL模塊圖如圖16所示。
圖16 雙相-M碼的模塊圖
程序在QUARTUSII環(huán)境中編譯仿真波形如圖17所示。
圖17 雙相-M碼波形
雙相-L碼
雙相-L碼,除了中間發(fā)生跳變外,當(dāng)為“1”時(shí)相鄰碼元電平極性改變,“0”時(shí)相鄰碼元電極性不改變,即需要2分頻時(shí)鐘clk1,datain信號(hào)中間遇時(shí)鐘clk1上升沿跳變外,且遇“1”相鄰碼元極性改變,“0”時(shí)不變,輸出信號(hào)encoder-out。
具體VHDL模塊圖如圖18所示。
圖18 雙相-L
程序在QUARTUSII環(huán)境中編譯仿真波形如圖19所示。
圖19 雙相-L碼波形
雙相-S碼
雙相-S碼,除了相鄰碼元電平極性發(fā)生跳變外,當(dāng)為“0”時(shí)中間發(fā)生跳變,當(dāng)為“1”時(shí)中間不發(fā)生跳變,即與雙相-L碼相反,clk1為4分頻。
具體VHDL模塊圖如圖20所示。
圖20 雙相-S碼的模塊圖碼的模塊圖
程序在QUARTUSII環(huán)境中編譯仿真波形如圖21所示。
圖21 雙相-S碼波形
整體程序調(diào)試
整體程序在MAX-plusII環(huán)境中的編譯仿真波形如圖22所示。
圖22 八種編碼波形
總結(jié)
1) 運(yùn)用VHDL編寫以上八種編碼是可行的。
2) 經(jīng)過(guò)觀察各模塊的仿真波形,符合各個(gè)編碼的特性。
3) 通過(guò)整體程序的調(diào)試仿真,并在FPGA上實(shí)現(xiàn)了波形的鍵選。
分頻器相關(guān)文章:分頻器原理
評(píng)論