1 概述
隨著大規模集成電路和單片機的迅速發展,復雜可編程邏輯器件(CPLD)具有使用靈活、可靠性高、功能強大的優點,在電子產品設計中得到了廣泛的應用。CPLD 可實現在系統編程,重復多次,而且還兼容IEEE1149.1(JTAG)標準的測試激勵端和邊界掃描能力,使用CPLD 器件進行開發,不僅可以提高系統的集成化程度、可靠性和可擴充性,而且大大縮短產品的設計周期。由于CPLD 采用連續連接結構,易于預測延時,從而使電路仿真更加準確。CPLD 是標準的大規模集成電路產品,可用于各種數字邏輯系統的設計。近年來,隨著采用先進的集成工藝和大批量生產,CPLD 器件成本不斷下降,集成密度、速度和性能都大幅度提高,這樣一個芯片就可以實現一個復雜的數字電路系統;再加上使用方便的開發工具,給設計修改帶來很大方便。
實驗室設計開發了一款無線數據接收平臺,上下行速率可以達到1Mbps。射頻部分采用了Maxim 的射頻套片,基帶部分采用了OMAP 平臺,基帶射頻接口采用了ADI 公司的混合信號前端(MxFE?)基帶傳輸芯片AD9861,系統的邏輯控制和數據的緩沖采用了ALTERA 的CPLD EPM240GT100C3。
2 EPM240GT100C3 實現的功能與總體要求
EPM240GT100C3要完成AD9861的時序控制、AD9861和OMAP之間的數據緩存以及提供網口芯片LAN91C93所需的控制信號。在這幾項功能中,最主要的是數據緩存功能。要想正確地實現緩存功能,就必須要求緩存的收發I、Q數據不丟失,不顛倒,不錯相,同時保證數據的先寫后讀。按照這樣的思想,再結合兩邊的接口時序正確地配置讀寫地址、讀寫時鐘,就可以完成所需功能。
3 CPLD 程序的詳細設計
CPLD的主要功能是完成數據緩存和一些時鐘控制信號的產生。其功能框圖如圖1所示,主要包括雙口RAM存儲體單元,時鐘和控制信號產生單元,OMAP側地址發生單元,AD9861側地址發生單元。
圖1 CPLD 功能框圖
3.1 雙口RAM 的設計方法
因為OMAP和AD9861兩邊都有讀寫操作,于是選擇了雙口RAM(DPRAM)作為數據的緩存。由于CPLD內部的邏輯資源和布線資源有限,并且沒有獨立的DPRAM區,只能用DFF來完成緩存功能,這就限制了DPRAM的大小。因為系統要求每個DMA中斷讀寫8個數據,為了減小讀寫沖突的可能性,同時盡量地降低FF資源的利用,最終采用了相當于兩個8×8大小乒乓緩沖的16×8雙口RAM緩沖區。DPRAM的外部接口如圖2所示:
圖2 DPRAM 的外部接口
其中dina和douta接OMAP的數據線,dinb和doutb接AD9861的數據線,addra和addrb為內部產生的讀寫地址。Wr_rd_en控制讀寫的方向,和TX_RX相連,即當Wr_rd_en=’1’時,為發射,數據由OMAP寫入,AD讀出,數據流向從dina->doub; 當Wr_rd_en=’0’時,為接收,數據由AD端寫入,AD讀出,數據流向從dinb->doua;wrclk在四種時鐘之間切換,分別為3.2768M,6.4M,75M,84M,由TX_RX和V_D_SEL信號的高低來控制。為了降低布線資源的使用,讀數時沒有用讀時鐘,而是直接把addra和addrb地址上的數據輸出,因為addra和addrb本來就是與讀寫時鐘同步的。
3.2 時鐘產生
CPLD輸入時鐘有來自射頻的16M時鐘,來自外部晶振的32.768M時鐘和來自OMAP接口的75M時鐘CLK。其中16M時鐘用于產生數據應用時AD9861所需要的3.2M、6.4M轉換時鐘,32.768M時鐘用于產生語音應用時AD9861所需要的1.6384M、3.2768M時鐘以及CODEC AIC1110所需要的8K和2.048M時鐘。SDCLK本可以作為OMAP讀寫的主時鐘,但必須要使用CAS信號作為讀寫允許配合使用才行,為了節省布線資源,不用讀寫允許,就直接用CAS作為寫時鐘及OMAP側的地址產生使用,而SDCLK則用于產生一些同步脈沖。這些產生的時鐘除了輸出給外部芯片外,還在CPLD內部作為地址產生的時鐘使用。3.2M和6.4M的時鐘產生是把16M的時鐘從0到4計數,由reset和ad_da_enable給計數器清零,這樣的模5計數器的最低位即為6.4M,次低位為3.2M時鐘。這種時鐘產生的方式只需要三個DFF,節省邏輯資源,而且不會產生毛刺,但產生的時鐘占空比不是50%,實踐證明在低速應用時,AD9861是可以正常工作的。系統的時鐘時序如圖3所示。
圖3 時鐘時序
1.6384M和3.2768M時鐘的方法同理,只是需要把32.768M的時鐘20分頻而已,同樣計數器的清零由reset和ad_da_enable控制,這樣得到的模20計數器的第2位即為3.2768M,第三位為1.6384時鐘,時序跟上圖相似,這里就不再給出。
為了進一步節省資源,可以考慮把模5和模20的計數器共用,方案如圖4所示,BIT1和BIT2即為所需的時鐘,這時前端時鐘源由V_D_SEL選擇,BIT1和BIT2的選擇輸出由TX_RX控制。
圖4 模5 模20 計數器共用的時鐘產生方案
2.048M的時鐘產生由32.768M時鐘16分頻得到,計數器的復位由reset和語音允許audcken控制,這樣得到的模16的計數器的高位即為2.048M時鐘。8K時鐘是對產生的2.048M時鐘256分頻得到。
3.3 地址產生
在使用雙口RAM作為數據緩存時,有兩部分地址產生電路:OMAP側地址產生電路和AD9861側地址產生電路。AD9861側地址產生電路和OMAP側地址產生電路大致相同,但由于這2個地址發生器同時使用,所以不能復用。OMAP的地址發生器框圖如下:
圖5 OMAP 的地址發生器
CAS 時鐘只負責對低3 位地址進行計數,而最高位由于選擇2 個8×8RAM 中的一個,為防止adda 和OMAP 同時讀寫同一個RAM,將OMAP 側的高位地址線取值為AD9861 側的地址最高位的反相。DMA 請求清零信號作用:在AD9861 側每觸發一次DMA 請求,就生成一個DMA 請求清零信號,用于復位OMAP 側地址發生器,避免由于某此誤觸發引起OMAP 讀寫地址混亂。AD9861 側地址發生器如下:
圖6 AD9861 側地址發生器
4位地址總線的低3位用于選擇同一片RAM中的8個地址,最高位用于選擇2個8×8RAM中的一個,收發切換信號用于在收發切換時給地址發生器清零,復位由于邏輯誤觸發導致的地址總線錯誤。
3.4 LAN 控制信號產生
lan91c93是一款嵌入式以太網控制器,和OMAP一起構成了嵌入式的以太網網絡接口卡。OMAP用異步的FLASH接口時序來訪問lan91c93,由于lan91c93沒有片選輸入端,所以把flash的片選和讀寫信號通過作一定處理后輸出給lan91c93。OMAP把CS1空間分配給了lan91c93,當nFLASH_CS1為低時,把nFLASH_WE,nFLASH_OE輸出給nLAN_WE,nLAN_OE,否則nLAN_WE,nLAN_OE為高電平。同時把LAN_RDY信號通過CPLD透傳給OMAP,通知OMAP lan91c93準備好數據的交換。
4 仿真和實測
4.1 數據接收狀態仿真
置V_D_SEL 為高,TX_RX 也為低,表示現在處于數據接收狀態。依據時序關系產生所需的時鐘,復位信號;產生AD9861 數據線上的數據,模擬AD 的輸出; 產生ADA 使能輸入控制信號AD_DA_ENABLE;SDRAM CAS 信號等等。如下圖所示,DINB為AD9861數據線上的數據,WRCLK為內部產生的6.4M鎖存時鐘,用來把DA數據線上的數據寫入雙口RAM中,AD9861側的地址ADDRB是對寫時鐘WRCLK的下降沿計數得到的。當ADDRB為8或0時,產生一DMA中斷,觸發OMAP通過EMIFF接口把數據讀到DSP的MEMORY進行處理,每個DMA請求讀8個數據,產生8個低脈沖的CAS信號,對CAS的脈沖個數進行計數,得到OMAP側地址的低3位,最高位由ADDRB的MSB取反得到,這樣能避免讀寫沖突。可以看出AD的輸出數據能夠被正確地復現在OMAP的EMIFF接口數據線上,并被OMAP正確地讀進去。
圖7 數據接收狀態信號時序
4.2 數據發射狀態仿真
置V_D_SEL 為高,TX_RX 為高,表示現在處于數據發射狀態。依據時序關系產生所需的時鐘,復位信號;產生EMIFF 接口數據線上的數據,模擬OMAP 輸出的發射數據; 模擬產生ADA 使能輸入控制信號AD_DA_ENABLE;SDRAM CAS 信號等等。如下圖所示,ADA_CLK為內部產生的6.4M時鐘,輸出作為ad9861的DA轉換的主時鐘。對ADA_CLK的上升沿計數得到AD9861側的地址ADDRB,當ADDRB為8或0時,產生一DMA中斷,觸發OMAP通過EMIFF接口把發射數據輸出到EMIFF接口數據總線上,每個DMA請求寫8個數據,產生8個低脈沖的CAS信號,對CAS的脈沖個數進行計數,得到OMAP側地址的低3位,最高位由ADDRB的MSB取反得到,這樣能避免讀寫沖突。DINA為EMIFF接口數據線上的數據,用CAS延遲信號的下降沿來鎖存DINA,滿足EMIFF的SDRAM寫時序,可以正確地把數據寫入到雙口RAM中。DOUTB為輸出給DA的數據,同時按照時序要求產生一發射同步信號TX_SYNC,用來指示發射的I和Q,用ADA_CLK的上升沿采樣,正好能采樣到DOUTB和TX_SYNC的中間,確保數據的穩定性。
圖8 數據發射狀態信號時序
4.3 數據實測結果
記錄的頻譜圖,時域波形圖和星座圖如下,頻譜為250K,跟信號源設置的頻偏一致。時域波形I 落后Q 90 度,且I 的最大值對應于Q 的零點,兩者的正交性得到了保證,星座圖是一個圓同樣證明了這一點。
圖9 接收信號頻譜圖
圖10 接收信號時域波形圖
圖11 接收信號星座圖
評論
查看更多