ST-BUS總線接口模塊的Verilog HDL設(shè)計(jì)
(1)同步檢測(cè)
if(!f0)beginfile://同步信號(hào)低電平有效
f0_flag=1; file://置同步標(biāo)志
bitcounter=bitsofbyte-1;//時(shí)隙內(nèi)的數(shù)據(jù)位數(shù)減法計(jì)數(shù)器復(fù)位
bytecounter=0; end
file://時(shí)隙數(shù)加法計(jì)數(shù)器復(fù)位
(2)定位計(jì)數(shù)
if(f0_flag) file://判斷同步狀態(tài)
begin case(bitcounter) file://根據(jù)數(shù)據(jù)位計(jì)數(shù)值進(jìn)行時(shí)隙切換
0:begin
bitcounter=bitsofbyte-1;
file://數(shù)據(jù)位計(jì)數(shù)器復(fù)位
bytecounter=bytecounter+1;
file://時(shí)隙通道計(jì)數(shù)器遞增
end
default:bitcounter=bitcounter-1; file://時(shí)隙內(nèi)位計(jì)數(shù)器遞減
endcase end
(3)接收數(shù)據(jù)(含標(biāo)志及使能信號(hào)產(chǎn)生)
if(bytecounter==byte_pos1) begin file://檢查第1通道
din2=8‘bZ;
file://釋放通道2暫存單元
receive2_flag=0;
file://清除通道2接收標(biāo)志
din1=din11;
file://移位準(zhǔn)備接收下一位數(shù)據(jù)
din1[0]=dr; file://讀入數(shù)據(jù)位
if(bitcounter==0) begin receive1_flag=1;end//接收完整通道數(shù)據(jù)置標(biāo)志
end
else if(bytecounter==byte_pos2)
file://多通道接收(同上)
……
else begin
file://當(dāng)前通道不接收數(shù)據(jù),則釋放暫存單元并清除接收標(biāo)志
din1=8‘bZ;din2=8‘bZ;receive1 _flag=0;receive2_flag=0;end
根據(jù)ST-BUS總線收發(fā)規(guī)則及接收模塊基本工作原理,為了31時(shí)隙與0時(shí)隙的可靠切換,設(shè)計(jì)中采用狀態(tài)轉(zhuǎn)換與數(shù)據(jù)接收分開(kāi)的方法,也即以上模塊可由2個(gè)always語(yǔ)句實(shí)現(xiàn),一個(gè)采用C2上升沿實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換,一個(gè)采用C2下降沿實(shí)現(xiàn)數(shù)據(jù)接收。在Altera公司提供的Quartus II 5.0SP1集成開(kāi)發(fā)環(huán)境下,利用MAX7000S系列最低性能的CPLD器件作綜合后的時(shí)序仿真結(jié)果如圖3(a)所示。圖中第一通道為0時(shí)隙,第二通道為31時(shí)隙。本文引用地址:http://cafeforensic.com/article/150876.htm
b)ST-BUS發(fā)送模塊仿真
圖3 ST-BUS收發(fā)模塊綜合后的時(shí)序仿真結(jié)果(C2時(shí)鐘為10MHz)
ST-BUS發(fā)送模塊
ST-BUS發(fā)送模塊主要將控制模塊送來(lái)的數(shù)據(jù)按照所設(shè)置的時(shí)隙進(jìn)行發(fā)送,也就是將一般數(shù)據(jù)信號(hào)轉(zhuǎn)換為ST-BUS總線信號(hào),其原理結(jié)構(gòu)框圖如圖2(b)所示。
發(fā)送模塊可工作于兩種模式,即主動(dòng)模式和被動(dòng)模式。圖中細(xì)的虛線部分(除去相應(yīng)的實(shí)線部分)表示工作于主動(dòng)模式的連接,此時(shí),時(shí)鐘和同步信號(hào)均由模塊內(nèi)部產(chǎn)生;若除去細(xì)的虛線部分,則模塊工作于被動(dòng)模式。在本文涉及的E1接口板設(shè)計(jì)中,系統(tǒng)采用了自動(dòng)模式選擇的工作方式。圖中同步的作用,在主動(dòng)模式時(shí)為同步發(fā)生,在被動(dòng)模式時(shí)為同步檢測(cè)。
被動(dòng)模式下ST-BUS發(fā)送模塊的基本工作原理與接收模塊類似,所不同之處在于數(shù)據(jù)傳輸方向相反。與接收模塊一樣,圖2(b)中的時(shí)隙定位和數(shù)據(jù)位定位也可以合并采用單計(jì)數(shù)器實(shí)現(xiàn)。ST-BUS總線發(fā)送操作的關(guān)鍵之處也在于前一幀31時(shí)隙與當(dāng)前幀0時(shí)隙之間的切換,因?yàn)樾枰瑫r(shí)檢測(cè)同步信號(hào),并且狀態(tài)轉(zhuǎn)換和總線數(shù)據(jù)加載都在C2上升沿完成。發(fā)送模塊的Verilog HDL實(shí)現(xiàn)可劃分為兩部分,與接收模塊劃分不同,這里已把發(fā)送數(shù)據(jù)的操作嵌入到了同步檢測(cè)和定位計(jì)數(shù)當(dāng)中,當(dāng)然也可嚴(yán)格按功能塊劃分。
評(píng)論