【文章內容簡介】
t16:=t16+1。 state=xstart。 end if。 txds=39。039。 開始位輸出 when xwait= if t16 =3 then 計數(shù)器計數(shù)到15跳轉到下一狀態(tài) if bitt=10 then 如果輸出8位完成,就轉到結束傳輸狀態(tài) state=xidle。 bitt:=0。 t16:=0。 else state=xshift。 如果還沒有輸出8位,那么跳轉到輸出狀態(tài) end if。 t16 :=0。 else t16:=t16+1。 state=xwait。 end if。 when xshift= txds=tx_reg(bitt)。 bitt:=bitt+1。 輸出數(shù)據(jù)位的序號自動加1 state=xwait。 轉到保持數(shù)據(jù)的狀態(tài) when others = 容錯設計,其他情況一律跳轉到空閑狀態(tài) state=xidle。 end case。 end if。 end if。 txd=txds。 輸出數(shù)據(jù) end process。 end behavior。前面所介紹的通道選擇控制、A/D轉換控制、串口通信模塊所需的時鐘都需要將系統(tǒng)時鐘50Mhz進行分頻,分別是10000分頻、100分頻、1250分頻。因為分頻原理是一樣,所以這里只給出100分頻模塊的部分代碼,其它分頻不再贅述了。designed by G_XW the fenpin100 blockarchitecture one of fenpin100 is constant m:integer:=50。beginprocess(clk_in)variable count:integer range 0 to 99。beginif(clk_in39。event and clk_in=39。139。)thenif(count=99)then count:=0。elsecount:=count+1。end if。if(countm)thenclk_out=39。039。elseclk_out=39。139。end if。end if。end process。3 仿真與調試 FPGA調試簡介在FPGA硬件語言設計完成之后需要對其進行仿真與調試,成功之后才能制板。在這里用到的調試工具為Altera公司自己推出的Quartus II,該軟件集FPGA設計,仿真,調試于一體。仿真采用嵌入在軟件中的SignalTap II。在FPGA的仿真中進行功能仿真有兩種激勵的輸入方式,一種是傳統(tǒng)的波形輸入,另一種則是使用Testbench。后者是指驗證平臺,它通過編寫代碼,對輸入產生預定的激勵,然后有選擇的觀察輸出,并可以驗證輸出是否符合設計要求。在本次設計中我們采用傳統(tǒng)的波形輸入法對系統(tǒng)各模塊,包括頂層模塊進行仿真。并通過仿真來驗證我們在第三節(jié)所設計模塊的正確性。 通道選擇控制模塊仿真及調試 II軟件進行編譯,順利通過編譯后生成模塊圖。, : ,clk為系統(tǒng)時鐘經(jīng)5000分頻后的時鐘信號,address[1..0]為地址信號輸出,它輸出給通道選擇芯片hcf4052的連個地址信號管腳。從圖中可以看到,、3,使得hcf4052可以周期性地選中四個傳感器。由此我們可以判斷,通道選擇控制模塊設計成功。 A/D轉換控制模塊仿真及調試 II軟件進行編譯,順利通過編譯后生成模塊圖。 ADC0809模塊仿真結果如下圖所示: ADC0809仿真結果 由仿真圖形我們可以看到:clk為ADC0809工作時序,通過對系統(tǒng)時鐘分頻得到。在第一個時鐘上升沿ALE和START變?yōu)楦唠娖?,此時ADC0809將地址信號鎖存,并且將復位。第二個上升沿時ALE和START變?yōu)榈碗娖?,此時ADC0809開始模數(shù)轉換,同時檢測EOC的狀態(tài),當其為高電平時表示轉換結束,所以在第三次和第四次上升沿OE均輸出高電平,第四個上升沿時ADC0809將轉換好的數(shù)據(jù)傳給fpga,因此我們看到這時DOUT為71H。綜上所述,A/D轉換控制模塊設計成功。 II軟件進行編譯,順利通過編譯后生成模塊圖。 圖中bclk為串口發(fā)送數(shù)據(jù)的時鐘信號,需要對系統(tǒng)時鐘進行倍頻再分頻得到。由通信協(xié)議我們知道:下位機頻率與上位機波特率要對應。由于漏磁檢測系統(tǒng)一般數(shù)據(jù)量大,所以上位機設置的波特率為56000bps,故fpga串口發(fā)送的頻率為56000。串口通信本系統(tǒng)串口通信只用到了發(fā)送功能,因此為了檢驗程序的正確與否,我們在程序中先發(fā)常數(shù),然后發(fā)給pc,借助串口調試助手進行調試。 頂層設計仿真及調試系統(tǒng)頂層設計圖如下所示 在Quartus II中將前面介紹過的通道選擇控制模塊、A/D轉換控制模塊、串口通信模塊、分頻與倍頻模塊結合起來,用原理圖的輸入方法設計出了頂層原理圖。最后我們將設計好的頂層綜合編譯,通過下載器下載到目標板上,經(jīng)測試表明,本次設計所設定的要求基本得以實現(xiàn)。從中我們可以看出,系統(tǒng)占用的IO口不多,而底層的邏輯門電路占用的也不大,這表明我們的設計還較合理。 5設計結果與總結 通過Altera數(shù)據(jù)手冊提供的關于Quartusll JTAG配置步驟將編譯并且仿真好的程序代碼文件通過JTAG接口燒寫進FPGA的SRAM中.這里不是先將程序燒寫迸配置芯片EPCS4,目的是為了防止程序不能達到預期的目的時,方便在線調試(CPLD具有帶電擦寫功能,因此CPLD同樣具備此優(yōu)勢)。FPGA的優(yōu)點就是更改程序代碼后可以實時地下載給FPGA觀察運行情況。經(jīng)過幾次調試后修改,終于得到了讓我們比較滿意的結果。前面說道過,這個實驗如果能在一根有缺陷的管道中進行,那么就能看到某個位置的曲線與周圍曲線有明顯不同,技術人員就能分析出管道的缺陷在哪。并且隨著科技的發(fā)展,新傳感器的發(fā)明,新技術的應用,在漏磁檢測上,也一定會有新的創(chuàng)新出現(xiàn)。因此本次設計存在著相當?shù)那熬啊T谧鲇嬎銠C