(1、2、3.安順學(xué)院電子與信息工程學(xué)院,貴州 安順561000)
目前衛(wèi)星導(dǎo)航定位系統(tǒng)在全球范圍內(nèi)都備受重視,隨著歐盟、中國(guó)、俄羅斯以及美國(guó)等國(guó)家對(duì)全球衛(wèi)星導(dǎo)航定位系統(tǒng)相關(guān)計(jì)劃的推出,全球?qū)Ш蕉ㄎ幌到y(tǒng)已經(jīng)進(jìn)入了蓬勃發(fā)展全面競(jìng)爭(zhēng)的時(shí)代。近年來(lái)FPGA(Field -Programmable Gate Array)的相關(guān)技術(shù)已經(jīng)有明顯的進(jìn)步,應(yīng)用廣泛,本設(shè)計(jì)通過(guò)內(nèi)嵌綜合器以及仿真器的Quartus II軟件實(shí)現(xiàn)功能。Verilog HDL(Hardware Description Language)具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)[1]。相較于VHDL(Very High Speed Integrated Circuit Hardware Description Language)有較強(qiáng)的生命力,更加具有直觀性。
Nios II嵌入式處理器便于模塊的集成。Quartes II中的SOPC Builder的組件庫(kù)提供了SDRAM(Synchroonous Dynamic Random Access Memory)、FLASH(flash memory)和SRAM(Static Random-Access Memory)等控制器,分別通過(guò)他們實(shí)現(xiàn)對(duì)相應(yīng)模塊的控制。本設(shè)計(jì)分別完成SOPC(System-on-a-Programmable-Chip)系統(tǒng)的搭建,IP核部分的SDRAM_PLL模塊和delay_reset_counter模塊的設(shè)計(jì),并通過(guò)適配器將各個(gè)模塊與主模塊連接起來(lái),生成頂層模塊,通過(guò)仿真驗(yàn)證結(jié)果。GPS系統(tǒng)原理圖如圖1所示。采用Star-III模塊,該模塊的輸出信號(hào)根據(jù)NMEA(National Marine Electronics Association)0183格式標(biāo)準(zhǔn)輸出的,輸出信息主要包括位置測(cè)定系統(tǒng)定位資料GPGGA,偏差信息和衛(wèi)星狀態(tài)GPGSA,導(dǎo)航系統(tǒng)衛(wèi)星相關(guān)資料GPGSV和GNSS信息GPRMC等部分[2]。
搭建SOPC系統(tǒng)需要SDRAM控制器、Flash控制器、EPCS Serial Flash Controller模塊、Avalon 三態(tài)橋、Timer 控制器、UART串口和JTAG_UART接口,分別掛在Avalon總線上,由于在SRAM中,只使用了readdata,writedata兩個(gè)單向信號(hào),而不是雙向的data信號(hào)進(jìn)行信息之間的交互,所以SRAM不需要與三態(tài)橋有聯(lián)結(jié),直接掛在了總線上。在SOPC的搭建環(huán)境下完成各部分的連通從而實(shí)現(xiàn)數(shù)據(jù)的傳輸。
SDRAM稱為動(dòng)態(tài)隨機(jī)存儲(chǔ)器,通過(guò)使用晶體管和電容結(jié)構(gòu)來(lái)實(shí)現(xiàn)所需功能。Flash控制器兼有掉電時(shí)數(shù)據(jù)不會(huì)丟失和在線更改數(shù)據(jù)的特點(diǎn)。EPCS(Erasable programmable configurable serial)串行存儲(chǔ)器,SOPC系統(tǒng)下的Nios II工具所執(zhí)行代碼的存儲(chǔ)位置并非EPCS中,而是在RAM中,即使斷電也不會(huì)影響數(shù)據(jù)的保存,除非有新的數(shù)據(jù)將其覆蓋。Avalon總線是將Nios CPU與所有的外設(shè)相連的工具,通過(guò)總線實(shí)現(xiàn)數(shù)據(jù)的交換。Timer定時(shí)器驅(qū)動(dòng)JTAG-UART實(shí)現(xiàn)串口工作的暫停。而JTAG-UAR串口模塊,用于連接計(jì)算機(jī),實(shí)現(xiàn)信息互換和數(shù)據(jù)的傳輸。SRAM(static ram)靜態(tài)存儲(chǔ)器具有靜止存取功能,無(wú)需自我刷新即可保存它內(nèi)部存儲(chǔ)的數(shù)據(jù)。
在一個(gè)Nios系統(tǒng)中有多個(gè)存儲(chǔ)器,雖都有存儲(chǔ)功能,但是存儲(chǔ)的內(nèi)容多有不同。FLASH多用于存儲(chǔ)應(yīng)用程序;SDRAM作為Nios處理器的RAM和程序運(yùn)行空間;SDRAM相對(duì)于SRAM操作較為復(fù)雜SRAM用于高速存取,如顯示器緩存。
圖1 GPS通信系統(tǒng)原理圖
搭建完成后的SOPC系統(tǒng)稱為CPU軟核,是進(jìn)行信號(hào)處理時(shí)所離不開的環(huán)境,也是GPS通信系統(tǒng)的核心。采用的Quartus II軟件是由嵌入式軟件開發(fā)設(shè)計(jì)、可編程邏輯功能設(shè)計(jì)、集成系統(tǒng)硬件平臺(tái)設(shè)計(jì)組合的綜合性開發(fā)平臺(tái)[3]。
SOPC系統(tǒng)設(shè)計(jì)中的重要技術(shù)之一為IP核(知識(shí)產(chǎn)權(quán)核),不僅可由廠商提供,也可以通過(guò)用戶自定義。用戶在設(shè)計(jì)電路時(shí)可根據(jù)實(shí)際需要直接調(diào)用IP核或自主生成。本設(shè)計(jì)使用的IP核看不見程序,只能看見端口信息。仿真驗(yàn)證的過(guò)程中與自設(shè)構(gòu)件SRAM大有不同,首先在自主設(shè)計(jì)的過(guò)程中應(yīng)該先在IP核的庫(kù)文件中添加相應(yīng)的庫(kù),完成庫(kù)的建立后對(duì)IP核的參數(shù)進(jìn)行設(shè)置,從而完成IP核的創(chuàng)建。通過(guò)以上GPS通信系統(tǒng)的設(shè)計(jì)需要添加SRAM-PLL(SDRAM-Phase Locked Loop)模塊和復(fù)位模塊的IP核。
SDRAM-PLL是用于整合時(shí)脈訊號(hào)的鎖相環(huán)路又稱為鎖相環(huán),工作原理為讓高頻器件能進(jìn)行正常工作,其必要條件為外部的激勵(lì)信號(hào)與內(nèi)部的振蕩信號(hào)同步。SDRAM的時(shí)鐘輸入是由SDRAM-PLL時(shí)鐘輸出。
復(fù)位信號(hào)是一種能夠使電路恢復(fù)到初始狀態(tài)的信號(hào)。功能都是使程序的執(zhí)行回到原點(diǎn),重新進(jìn)行操作,類似于計(jì)算機(jī)的清零作用。計(jì)算器清零需要手動(dòng)進(jìn)行清零,而復(fù)位與其的差別就是復(fù)位是在對(duì)電路通電后進(jìn)行操作,還可通過(guò)手動(dòng)進(jìn)行操作。所需IP核按照上述的方法進(jìn)行庫(kù)的建立和仿真。
1940年以后,系統(tǒng)仿真是一門新興的學(xué)科,計(jì)算機(jī)技術(shù)的蓬勃發(fā)展,對(duì)于人們的生活有了很大的改變,各個(gè)行業(yè)都有了新的突破,在電子器件設(shè)計(jì)方面也不例外,仿真這門學(xué)科也在不斷進(jìn)步。實(shí)驗(yàn)在研究過(guò)程中所通過(guò)建立系統(tǒng)模型并利用所建模型對(duì)實(shí)際系統(tǒng)進(jìn)行分析的過(guò)程就稱為仿真,再對(duì)仿真結(jié)果的試驗(yàn)和分析。
由于SRAM為自設(shè)構(gòu)件,需要通過(guò)Quartus II軟件開發(fā)環(huán)境使用Verilog語(yǔ)言編寫代碼,編譯通過(guò)后生成波形文件,在波形文件的空白處雙擊進(jìn)行端口的設(shè)定,添加端口到波形文件,為輸入端口設(shè)置激勵(lì)信號(hào),可通過(guò)編寫testbench測(cè)試文件的方法添加激勵(lì)信號(hào)。
圖2 SRAM模塊仿真結(jié)果
該模塊端口定義分為主機(jī)端和SRAM 端的,由主機(jī)端作為輸入端,SRAM作為接收端。在主機(jī)端和SRAM端分別定義時(shí)鐘、片選、寫使能、讀使能和地址等端口,使得SOPC系統(tǒng)與主機(jī)端相連從而獲得輸入信號(hào)。SRAM在運(yùn)行時(shí)首先通過(guò)地址總線將要讀取的地址傳到地址引腳,激活片選信號(hào)進(jìn)而選擇SRAM芯片,再激活讀使能或?qū)懯鼓苄盘?hào),使得SRAM能進(jìn)行讀或?qū)懙牟僮鳌T赟OPC系統(tǒng)中所創(chuàng)建的自設(shè)構(gòu)件SRAM對(duì)端口定義后,與主機(jī)端的相應(yīng)端口互連,在所生成的波形文件中設(shè)置輸入端也就是主機(jī)端的信號(hào),完成激勵(lì)信號(hào)后進(jìn)行仿真,其仿真圖如圖2所示。由圖可得SRAM端的輸出信號(hào)與主機(jī)端的輸入信號(hào)波形一致,驗(yàn)證SRAM模塊設(shè)計(jì)正確。搭建完成的SOPC系統(tǒng)如圖3所示。
圖3 SOPC系統(tǒng)
在仿真軟件中添加所需的庫(kù),再在仿真的時(shí)候調(diào)用該庫(kù)進(jìn)行仿真。該模塊為反饋控制電路,使用外部的參考信號(hào)控制環(huán)路內(nèi)部振蕩信號(hào)的頻率和相位,使得能為系統(tǒng)提供穩(wěn)定的工作狀態(tài)。應(yīng)用于通信的接收機(jī)中,對(duì)接收到的信息進(jìn)行處理。利用外部的時(shí)鐘輸入作為參考信號(hào)來(lái)控制輸出信號(hào)C0、C1、C2的頻率和相位。對(duì)該IP核進(jìn)行參數(shù)設(shè)置,手動(dòng)設(shè)置C0頻率為100MHz,C1頻率為40MHz,C2頻率為10MHz,進(jìn)行仿真的過(guò)程中添加時(shí)鐘為激勵(lì)信號(hào),觸發(fā)模塊,使得模塊處于工作狀態(tài)。仿真圖如圖4所示。
圖4 SDRAM-PLL仿真
該模塊屬于FPGA 所提供的IP核。作用為消除電路運(yùn)行過(guò)程中所產(chǎn)生的抖動(dòng),系統(tǒng)上電時(shí)提供復(fù)位信號(hào),到電路穩(wěn)定之后撤銷復(fù)位信號(hào),其中使能信號(hào)高電平時(shí)啟動(dòng),而aclr(異步清零)信號(hào)是低電平時(shí)啟動(dòng),當(dāng)二者信號(hào)都處于工作信號(hào)時(shí),只要時(shí)鐘上升沿觸發(fā),即對(duì)q輸出信號(hào)有作用,從而進(jìn)行數(shù)據(jù)更新。復(fù)位模塊的仿真如圖5所示。
圖5 復(fù)位仿真
通過(guò)對(duì)各模塊的設(shè)計(jì)和仿真驗(yàn)證,證明了各個(gè)部分設(shè)計(jì)正確。再通過(guò)Quartus II 軟件生成原理圖,進(jìn)行模塊連線完成GPS通信系統(tǒng)的頂層設(shè)計(jì)。編寫程序使得GPS的頂層模塊實(shí)例化,使得端口之間的連接實(shí)現(xiàn)信息的交互,通過(guò)模塊之間的調(diào)用實(shí)現(xiàn)功能的轉(zhuǎn)換。從而證明該系統(tǒng)的正確性。整個(gè)設(shè)計(jì)由外部的復(fù)位模塊和鎖相環(huán)來(lái)提供SOPC系統(tǒng)穩(wěn)定工作的時(shí)鐘信號(hào),為GPS通信系統(tǒng)能正常運(yùn)行提供信號(hào)。
在FPGA的開發(fā)環(huán)境下,使用Verilog硬件描述語(yǔ)言設(shè)計(jì)GPS通信系統(tǒng),大大縮短了設(shè)計(jì)的周期,提高設(shè)計(jì)的正確性,在編譯或仿真時(shí)對(duì)系統(tǒng)功能進(jìn)行驗(yàn)證,若出現(xiàn)錯(cuò)誤,可直接修改再進(jìn)行后續(xù)操作直至系統(tǒng)完全正確。這使得本設(shè)計(jì)較于市場(chǎng)上電子器件的設(shè)計(jì)有著一定的優(yōu)勢(shì),擁有更好的應(yīng)用前景。