【正文】
AB,因為要產(chǎn)生正弦和余弦信號,用MATLAB來生成比較簡單,在產(chǎn)生的一路正弦信號當中包括512的等間距的點,如果我取512來產(chǎn)生正弦信號,工作量比較大,為了合適,我在其中等間距的抽取9個點來產(chǎn)生信號。在取完值之后產(chǎn)生的正弦信號并不是太理想,突然間想到在512點當中取的是9個點,可能存在一定的問題,9個點需要9位,我按照一般的原則取的是【8:0】這9位,在詢問老師之后才了解,因為在FPGA中我們經(jīng)常使用的是32位,為了實現(xiàn)累加進位的方便,我取【31::23】高9位,把address(accum1[8:0])改為address(accum1[31:23]),再次觀察波形就比較正常,最后再把等到的采樣信號輸出,此時用到了最簡單的語句cos = b_q ? cos1 : cos1和sin = b_q ? sin1 : sin1,根據(jù)b_q信號的高低位判斷,為1的時候不做變化,為0的時候翻轉信號 。輸入程序后編譯成功。設計本來就是對輸入信號的調制,載波調制相加模塊主要是將原始信號差分出去的2路信號經(jīng)過加權后相加到一起,組成一個新的信號。在經(jīng)過信號加權之后,這里就用到了ROM核文件以及乘法器。剛開始,對題目沒有分析清楚,在編寫該模塊時遇到了困難,經(jīng)過查找資料和問老師,知道要用宏模塊。建立宏模塊需要定制LPM_ROM元件。在該設計中,LPM_ROM元件只要選擇ROM1PORT和乘法器,在之前的實驗和實訓中我都沒有用到過LPM_ROM元件,所以現(xiàn)在用起來還比較難,ROM創(chuàng)建各種查找表,從而簡化電路設計,提高電路的處理速度和穩(wěn)定性。真正意義上的ROM應具有掉電后信息不丟失的特性,因此利用FPGA實現(xiàn)的ROM只能認為器件處于用戶狀態(tài)時ROM具備的功能,在建立ROM的時候,選擇比特那里,因為之前沒有用到過就選擇了8,為了精確和保險起見,查閱了資料才知道,對于ROM是要選擇1512,而乘法器是要選擇112。按照資料上的步驟建好了宏模塊,再編譯就成功了。 頂層模塊傳統(tǒng)的電子設計技術通常是自底向上的,即首先確定構成系統(tǒng)的最底層的電路模塊或元件的結構和功能,然后根據(jù)主系統(tǒng)的功能要求,將它們組合成更大的功能模塊,使它們的結構和功能滿足高層系統(tǒng)的要求。在FPGA設計應用中,自頂向下的設計方法,就是在整個設計流程中各級設計環(huán)節(jié)逐步求精的過程。在該FPGA的設計,是一種自頂向下的設計方法。所以必須有一個頂層模塊來把各個模塊聯(lián)系起來,用到了最基本的例化語句,元件例化語句由兩部分組成,第一部分是將一個現(xiàn)成的設計實體定義為一個元件,語句的功能是對待調用的元件做出的調用聲明。這一部分可以稱為是元件定義語句,相當于對一個現(xiàn)成的設計實體進行封裝,使其只留出對外的接口界面。第二部分則是此元件與當前設計實體中元件間及端口的連接說明。該模塊就是把差分模塊、加權模塊、載波調制相加模塊進行一個整合。因為在其他的3個模塊中都有自己的輸入輸出口,定義自己的信號,在使用FPGA時鐘方面也有比較特殊的講究,因為是在一個大環(huán)境下,所用時鐘就要統(tǒng)一,根據(jù)時鐘再轉換成頻率字,按照遞進關系(差分、加權、調制相加)分別做好各自的模塊信息,三個模塊都一起編譯成功之后,實例化三個模塊,使其成為頂層模塊的一個元件,在頂層模塊中也用到了累加器,主要是產(chǎn)生1M和2M信號,因為用到的是100M的輸入信號,我就按照常理,取累加50為1M,累加25為2M,在編寫好程序之后編譯,發(fā)現(xiàn)不成功,顯示是3個例化的模塊不能成為頂層的元件,在查閱實例化的相關資料才知道,在引用實例化的時候要把模塊的輸入輸出都寫清楚,不然的話找不到相應的語句來實現(xiàn),在完善實例化的語句之后再編譯,通過了。再仿真波形,發(fā)現(xiàn)波形不對,相位挪位了,回頭檢查用100M來生成1M和2M信號的語句,語句是沒有錯,經(jīng)過跟同學分析發(fā)現(xiàn),累加器的累加次數(shù)不對,生成1M的時候,我們應該累加49次就可以,多加的一次就把信號相位偏移了,修改相關數(shù)據(jù)之后,編譯通過。在一般的設計當中,設計層次比較多,在實現(xiàn)的過程中比較麻煩,主要是輸入輸出口比較多,之前總是因為不匹配而沒有成功,所以我們要用到RTL電路圖,是在各個模塊都成功的情況下,首先各自生成模塊圖,利用FPGA自帶的軟件把模塊都連接起來,在畫了RTL電路圖之后就好多了,RTL電路圖反應了多模塊的連接形式。最終能夠實現(xiàn)功能。 硬件調試對于FPGA的內(nèi)部邏輯測試是應用設計可靠性的重要保證。由于設計的復雜性,內(nèi)部邏輯測試面臨越來越多的問題。設計者通常不可能考慮周全,這就需要在設計時加入用于測試的部分邏輯,即進行可測性設計(Design For Test,DFT),在設計完成后用來測試關鍵邏輯。在差分和加權模塊中都用到了邏輯器件,多以對這些邏輯器件的測試還是很有必要的,只有通過測試的才能保證底層的準確。該設計的最后輸出是波形,最原始的是用示波器來顯示,主要是將生成的數(shù)字信號通過D/A模塊轉化成模擬信號,硬件的調試是在軟件調試的基礎之上來進行的,因為所用的開發(fā)板上面沒有D/A模塊,無法用示波器來顯示,所以改用邏輯分析儀采集數(shù)據(jù)來顯示。我用的是QuartusⅡ軟件編的程序,所以用Altera公司的FPGA 開發(fā)板。用到了QuartusⅡ中SignalTapⅡ。連接好開發(fā)板自后,下載程序到板子,各項模塊編譯成功,打開SignalTapⅡ編輯窗口、調入待測信號、SignalTapⅡ參數(shù)設置、文件存盤、編譯下載、啟動SignalTapⅡ進行采樣,觀察1個信號,結果正確,若再加一路觀察信號,則時序中有錯誤。好像是signaltapⅡ對原來的邏輯造成了影響,又或者是signaltapⅡ采樣出來并傳上電腦來的數(shù)據(jù)出錯。SignaltapⅡ的原理是在設計的網(wǎng)表中插入觸發(fā)邏輯和存儲邏輯以及用于和PC機通訊的虛擬JTAG鏈路實現(xiàn)嵌入式邏輯分析儀功能的。這一插入過程是由QUARTUS軟件完成的,對用戶是不可見的。由于用戶無法控制和約束這一過程,加入signaltapⅡ后的電路功能與用戶設計初衷相違背也是可能的。被觀察的信號扇出變大,造成設計的時序余量發(fā)生變化。實現(xiàn)觸發(fā)邏輯需要在信號路徑上加入觸發(fā)器和組合邏輯,這樣一來必然造成被觀察信號的扇出變大,信號的輸出延時增大。如果被觀察信號的時序很緊張的話,加大信號的延時可能使時序關系變好,也可能惡化其時序。由于“搶占”的存在,造成設計的時序余量發(fā)生變化。由于觸發(fā)邏輯和存儲邏輯的加入,F(xiàn)PGA的資源要重新分配。原設計在FPGA內(nèi)的布局位置和布線資源會發(fā)生變化,時序也會受到影響。往往加入signaltapⅡ后,布局布線后的時序分析結果會比原來差。 我解決上述矛盾的方法是盡可能少地添加被觀察信號。我常用的幾個方法是:在每次重新編譯之前,對信號的保留做一個評估,如果被觀察信號被證明與要查找的問題無關,就刪除這個信號。在每次編譯成功之后,要查看編譯報告,如果系統(tǒng)的邏輯資源利用比例在95%以上,就要考慮去除一些被觀察信號或去除幾個觸發(fā)級別,或者減小采樣深度。如果有必要的話,把僅需要作為觸發(fā)條件的信號的采樣使能關閉也能顯著減少邏輯資源的占用。系統(tǒng)存儲資源的占用比例也要考慮在內(nèi),不可占用太多。與此相關的選項是采樣深度、信號個數(shù)、信號的采樣使能是否關閉。編譯成功后,要查看時序分析報告。如果系統(tǒng)時序下降很大或者被觀察信號的時序不能滿足,要考慮采用上面的方法減少對邏輯資源的占用。另外,采樣時鐘的選擇對系統(tǒng)的整體時序影響也很大。選取的原則是:盡可能從設計的頂層選擇信號作為采樣時鐘,而不是隨便把哪個module的輸入時鐘作為采樣時鐘,以利于QUARTUS優(yōu)化全局時鐘資源的利用。在保證觀察精度的前提下,選擇較低頻率的時鐘。采樣時鐘本質上是觸發(fā)條件之一(最基本的觸發(fā)條件),如果恰當?shù)倪x取非時鐘信號(沒有確定頻率的信號)作為采樣時鐘,可以起到事半功倍的效果。 數(shù)字信號:signaltapⅡ檢測信號:7 總結根據(jù)收集來的資料,進行本設計要用到verilog寫程序,對于verilog 我沒有接觸過,以前的課程設計用的都是VHDL,于是我在網(wǎng)上下載了一些視頻教程學習。在熟悉了verilog的語法之后就開始了設計。本設計主要是調制,就是加載一個新的頻率進去。把余弦信號分解cos(a+b)=cosacosbsinasinb,倒推過去就是要有兩路信號,而兩路信號就是由一路輸入信號差分而來,這就是基本思想。在整體設計的時候要有一定的思路,設計必須文檔化,要將設計思路,詳細實現(xiàn)等寫入文檔,然后經(jīng)過嚴格評審通過,后才能進行下一步的工作。這樣做乍看起來很花時間,但是從整個項目過程來看絕對要比一上來就寫代碼要節(jié)約時間,且這種做法可以使項目處于可控、可實現(xiàn)狀態(tài)。端口信號排列要統(tǒng)一,一個信號只占一行,最好按從哪個模塊來到哪個模塊去的關系排列。信號的命名要清晰、明了,有明確含義,同時使用完整的單詞或大家基本可以理解的縮寫,避免使人產(chǎn)生誤解。一個模塊盡量只用一個時鐘,這里的一個模塊是指一個module 。在多時鐘域的設計中涉及到跨時鐘的設計最好有專門一個模塊做時鐘的隔離。這樣做可以讓綜合器綜合出更優(yōu)的結果。盡量在底層模塊上做邏輯,在高層盡量做例化,頂層模塊只到做例化。一般來說,進入FPGA的信號必須先同步,所有模塊的輸出都要寄存器化,以提高工作頻率,這對設計做到時序收斂也是極有好處的。在調試FPGA硬件電路時要遵循一定的原則和技巧,才能減少調試時間,避免誤操作損壞電路。首先在焊接硬件電路時,只焊接電源部分。使用萬用表進行測試,排除電源短路等情況后,上電測量電壓是否正確。然后焊接FPGA及相關的下載電路。再次測量電源地之間是否有短路現(xiàn)象,上電測試電壓是否正確,然后將手排除靜電后觸摸FPGA有無發(fā)燙現(xiàn)象。如果此時出現(xiàn)短路,一般是去耦電容短路造成,所以在焊接時一般先不焊去耦電容。FPGA的管腳粘連也可能造成短路,這時需要對比電路圖和焊接仔細查找有無管腳粘連。如果出現(xiàn)電壓值錯誤,一般是電源芯片的外圍調壓電阻焊錯,或者電源的承載力不夠造成的。若是后者,則需要選用負載能力更強的電源模塊進行替換。如果FPGA的I/O管腳與電源管腳粘連,也可能出現(xiàn)電壓值錯誤的現(xiàn)象。如果出現(xiàn)FPGA發(fā)燙,一般是出現(xiàn)總線沖突的現(xiàn)象。這種情況下需要仔細檢查外圍總線是否出現(xiàn)競爭問題。特別是多片存儲器共用總線時候。以上步驟均通過后,將電路板上電運行。然后把下載電纜接到JTAG接口上,在主機中運行Quartus II軟件,并打開Programmer編程器,單擊其中的“Auto Detect”按鈕進行FPGA下載鏈路自動檢測。若能正確檢測到FPGA,說明配置電路是正確連接的。焊接時鐘電路、復位電路及數(shù)碼管電路,并向FPGA下載一個數(shù)碼管跑馬燈程序。若程序能夠正確運行,說明FPGA已經(jīng)可以正常工作了。最后焊接所有其他電路,并進行整體功能測試參考文獻[1] 張輝,曹麗娜.現(xiàn)代通信原理與技術.西安:西安電子科技大學出版社,2003.[2] 陳如明.信號系統(tǒng)與高速無線數(shù)字傳輸.科學出版社,2000,1.[3] Theodore ,蔡濤譯.無線通信原理與應用.電子工業(yè)出版社,1999,11[4] 鄭智勤.Simulink電子通信仿真與應用.北京:國防工業(yè)出版社,2002.[5] 彭偉軍,宋文濤,羅漢文.GMSK在跳頻通信中的應用及其性能分析.通信學報,P4147,[6] 2000,11.鄭繼禹,萬心平,張厥盛.鎖相環(huán)路原理與應用.北京:人民郵電出版社,1984.[7] 萬福。 . 通信與廣播電視, 2003 .[8] . 南通職業(yè)大學學報, 2010 .[9] 汪敏。. 通信技術, 2011. [10] 熊文彬。 . 液晶與顯示, 2011 .[11] 陳淑融。. 電子測試, 2010 .[12] 楊力生。. 中國新通信, 2010 .[13] 陳亮。. 微計算機信息 ,2007 .[14] 黃玉琴。. 黑龍江科技學院學報 ,2008 .[15] 婁莉。GMSK數(shù)字調制的仿真與分析. 現(xiàn)代電子技術, 2004 .[16] 曹志剛,錢亞生.現(xiàn)代通信原理.北京:清華大學出版社,2002.[17] Rodger and Carl .Minimumshift keyed modem implementations for high data rates.IEEE Communications Magazine, VT21(4)2837, October 1983.[18] Turkmani and P .P .S .Carter..Software investigation of cochannel interference in a digital cellular radio system. Technical report.The University of Liverpool, UK, 1990.[19] Dornstertter D.Cellular efficiency with slow frequency hopping: analysis of the digital SFH900 mobile system. IEEE Journal on Selected Areas in Commun, 1987.[20] Carl Erik Sundberg.Continuous phase modulation. IEEE Communication Magazine, VT24(2)5666, April 1986.[21] Masahiko Hirono, Toshio Miki, and Kazuaki Murota.Multilevel decision method for bandlimited digital FM withlimiterdiscriminator detection. IEEE Transactions On Vehicular Technology, VT33(3)1 14122, August 1984.[22] John ,張力軍 等譯.數(shù)字通信(第三版) .電子工業(yè)出版社,2001年4月.[23] Domstetter J, Verhulst D.Cellular