天天看點

2.1 開發概述和FPGA邏輯設計2.1.1 從參考設計開始2.1.2 頂層子產品和複位子產品2.1.3 引腳配置設定2.1.4 時鐘信号

\qquad 在HD-GR接收機中,微處理器是軟核類型的(NIOS II),在一片Altera FPGA (U1)中配置設定。NIOS II軟核及其軟體與基帶硬體邏輯一道共享這片FPGA資源。是以,HD-GR接收機中的很大一部分可以在一個公共平台上進行建立和程式設計。Altera為FPGA硬體邏輯設計和NIOS II軟體程式設計這兩個緊密聯系的領域提供了一個基于PC的開發環境:

  • Altera Quartus II FPGA開發包,包括:邏輯綜合、布局和走線、時序分析、信号跟蹤機制、等等。這是一個功能豐富的系統,為設計者提供了一個從HDL源碼到矽片産生的內建平台。
  • NIOS II內建開發環境(IDE),它的前身是許多軟體開發員熟悉的Eclipse平台。它允許編譯和調試嵌入式處理器NIOS的C和C++源代碼。

使用這些開發工具,你可以對HD-GR接收機的參考設計進行編譯、連接配接、邏輯/軟體仿真;如果你擁有一套HD-GR接收機闆卡,還可以對參考設計進行實際調試、優化、修改,甚至徹底重新設計。凡此種種,就是本章所稱的開發。

\qquad Altera還在其網站www.altera.com上提供了大量文檔和支援。了解Quartus II軟體的起點是下載下傳并閱讀手冊(Altera Corporation Inc,2008)。NIOS軟體開發環境也提供了類似的手冊(Altera Corporation Inc,2008)。本章對如何将這些工具應用于HD-GR接收機闆卡上予以一般性說明,但不涉及建立、配置Quartus II項目和建構、添加元件的具體步驟。

\qquad 另外,本章不讨論基帶數字化硬體(即2.3.4小節中的外圍元件“GNSS基帶子產品”)的實作細節,也不讨論運作在NIOS II CPU中的基帶控制軟體和導航軟體的具體實作,它們作為重點内容,将分别安排在随後兩章讨論。

2.1.1 從參考設計開始

\qquad Altera Quartus II FPGA軟體為邏輯設計提供了開發環境,包括設計、綜合、布局、走線、時序分析、仿真、以及器件程式設計。有許多選項可以通過JTAG端口和I/O引腳來進行跟蹤和調試設計。

\qquad Quartus II軟體允許使用者建立項目,所有邏輯檔案(包括NIOS CPU和外圍裝置)都能以一種容易使用的層次結構指派到項目中。

\qquad HD-GP接收機提供了一個預先建構和經過測試的Quartus II項目。這個參考設計旨在展示如何将各種外圍裝置連接配接和內建到NIOS CPU中。它們可以加載到闆中按原樣運作,也可以複制和修改以添加或删除功能。有關如何通過JTAG口(JTAG)使用USB blaster将編譯後的圖像下載下傳到Cyclone-IV FPGA (U1)中的資訊,請參閱Quartus II開發手冊。

\qquad 這個參考設計的工程名為AGRS_GP_1,工程檔案為AGRS_GP_1.qpf。AGRS_GP_1包含了HD-GP接收機能夠連接配接到一個NIOS CPU中去的幾乎所有信号選項,參見SOPC Builder配置界面(圖2-1)中顯示的系統元件。

\qquad 硬體設計師使用SOPC Builder建立NIOS II系統CPU、外圍裝置、以及存儲器,并為它們提供完善的軟體描述資訊。SOPC Builder所生成的軟體開發包(SDK) 包括一個名為System.h的頭檔案,其中包含了這些描述資訊以及相應的宏指令。軟體通過使用這些宏指令對硬體進行通路。有關NIOS II系統設計和實踐的細節可參考“NIOS II設計和實踐”、“NIOS II軟體開發”等文檔。

\qquad SOPC Builder使用“元件”這個詞描述系統中的硬體子產品。在NIOS II軟體開發文檔中,SOPC Builder元件指的是器件,如:外圍裝置或存儲器。每個外圍裝置或存儲器用一個軟體元件來描述,以允許描述一個通過Avalon總線連接配接到NIOS II CPU的使用者接口。對此,“NIOS II外圍元件”一節進行了更較長的描述,并用GNSS基帶子產品給出了一個自定義外圍元件的示例。

\qquad 在圖2-1所示的SOPC系統中,除主角NIOS II CPU和通用元件[System ID、定時器、時鐘管理單元(ALTPLL) 、JTAG UART、以及EPCS控制器]外,還包括元件SDRAM控制器、GNSS基帶子產品、UART(RS232 Serial Port)、SPI (3 Wire Serial)、PIO等,“NIOS II外圍元件”一節将專門讨論它們。

2.1 開發概述和FPGA邏輯設計2.1.1 從參考設計開始2.1.2 頂層子產品和複位子產品2.1.3 引腳配置設定2.1.4 時鐘信号

圖2-1 AGRS_GP_1項目中的SOPC系統元件

2.1.2 頂層子產品和複位子產品

\qquad AGRS_GP_1工程的頂層子產品為AGRS_GP_1(檔案名AGRS_GP_1.v),複位子產品為sys_ctrl(檔案名sys_ctrl.v)。頂層子產品AGRS_GP_1執行個體化了包括NIOS II CPU和sys_ctrl在内的次一級子產品,實作了FPGA (U1)與外部信号的接口,并對子產品信号進行了互連。複位子產品sys_ctrl實作了系統延遲複位的邏輯。參見圖2-2。

2.1 開發概述和FPGA邏輯設計2.1.1 從參考設計開始2.1.2 頂層子產品和複位子產品2.1.3 引腳配置設定2.1.4 時鐘信号

圖2-2 頂層子產品AGRS_GP_1原理圖

2.1.3 引腳配置設定

\qquad 圖2-3中的引腳配置設定指定了HD-GR-1底闆上的FPGA晶片(U1)的I/O引腳(第3列,Location)與頂層子產品AGRS_GP_1接口信号(第1列,To)的連接配接關系,進而指定了接口信号與布線到晶片I/O引腳的那些底闆信号之間的連接配接關系;其中,每個接口信号的名稱對應于底闆上某個器件的一個信号。

2.1 開發概述和FPGA邏輯設計2.1.1 從參考設計開始2.1.2 頂層子產品和複位子產品2.1.3 引腳配置設定2.1.4 時鐘信号

圖2-3 EP4CE22晶片引腳配置設定

2.1.4 時鐘信号

\qquad AGRS_GP_1項目使用來自射頻前端HD-2769-2RF-2的16.368 MHz時鐘信号(圖2-3中的引腳max2769_1_clk)作為SOPC系統的輸入時鐘(clk)(參見圖2-1中的Clock Settings)。雖然可以選擇來自HD-GR-1底闆的其它時鐘作為SOPC系統的輸入時鐘,如:圖2-3中的引腳clk1或clk2,但對于我們的基帶邏輯而言,必須使用來自射頻前端的正确時鐘。在AGRS_GP_1項目中,FPGA内部的時鐘連接配接情況如圖2-4所示。16.368 MHz輸入時鐘也被饋送到使用向導工具SOPC Builder定義的一個FPGA片上鎖相環(atlpll_0) 中。這個鎖相環有三個輸出(atlpll_0_c0, atlpll_0_c1, atlpll_0_c2),項目中都設定為輸入的6倍(98.208MHz)。atlpll_0_c0用于驅動NIOS CPU和除SDRAM控制器(sdram)外的外圍元件。atlpll_0_c1和atlpll_0_c2分别用于為sdram元件和底版上的SDRAM晶片(U72)提供時鐘信号。atlpll_0_c1和atlpll_0_c2必須同頻,但通常不同相(具有相位延遲),以保證NIOS CPU能夠正确讀/寫SDRAM。項目中将atlpll_0_c2相對atlpll_0_c1的相位延遲設定為210°,這是對項目進行時序限制和分析後調整的數值。

2.1 開發概述和FPGA邏輯設計2.1.1 從參考設計開始2.1.2 頂層子產品和複位子產品2.1.3 引腳配置設定2.1.4 時鐘信号

圖2-4 FPGA時鐘系統

繼續閱讀