一種基于CPLD的聲發(fā)射信號(hào)傳輸系統(tǒng)設(shè)計(jì)
3.3 控制程序設(shè)計(jì)
pci9054單周期讀、寫和dma讀的vhdl語言時(shí)序控制狀態(tài)機(jī)設(shè)計(jì)如圖4所示。圖中,s0為空閑狀態(tài)。當(dāng)本地總線請(qǐng)求信號(hào)lhold被置1時(shí)轉(zhuǎn)到s1,否則留在s0。s1為總線保持狀態(tài),此狀態(tài)下應(yīng)將本地總線響應(yīng)信號(hào)lholda置1。如ads信號(hào)為0且lw/r為1則轉(zhuǎn)到s3,如ads信號(hào)為1且lw/r和blast為0則轉(zhuǎn)到s4,這種狀態(tài)表明此次讀操作為單周期讀。s2為dma讀狀態(tài),在此狀態(tài)下應(yīng)將ready信號(hào)和fifo讀使能信號(hào)ren1置0。如blast為1,則表明此次dma讀取還未完成,應(yīng)繼續(xù)留在s2,如blast為0,則表明此次dma讀取完成,可轉(zhuǎn)到s4。s3為單周期寫狀態(tài),此狀態(tài)下也要置ready信號(hào)為0以表示寫數(shù)據(jù)有效,并在blast為0時(shí)轉(zhuǎn)到s4。s4為讀寫操作完成狀態(tài),當(dāng)lhold被置0時(shí),表明pci9054不再請(qǐng)求本地總線,此時(shí)應(yīng)轉(zhuǎn)到s0,當(dāng)blast為0且lhold為1時(shí),表明pci9054還要進(jìn)行數(shù)據(jù)讀寫,故應(yīng)轉(zhuǎn)到s1繼續(xù)操作。
3.4 控制程序邏輯的仿真結(jié)果
max+plusⅱ是開發(fā)aletra公司的fpga/CPLD系列產(chǎn)品的軟件工具,本設(shè)計(jì)利用此工具提供的設(shè)計(jì)環(huán)境和設(shè)計(jì)工具來對(duì)cpld控制程序進(jìn)行開發(fā)和調(diào)試。其功能時(shí)序如圖5所示。
cpld的設(shè)計(jì)是用vhdl編程實(shí)現(xiàn)的。本設(shè)計(jì)的操作代碼都已經(jīng)過仿真,并在實(shí)際調(diào)試中得到應(yīng)用。
評(píng)論