新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Leon2處理器IP核的結構、技術特點及其軟硬件開發過程

        Leon2處理器IP核的結構、技術特點及其軟硬件開發過程

        作者: 時間:2015-05-09 來源:網絡 收藏

          2.2 AMBA

        本文引用地址:http://www.104case.com/article/273876.htm

          AMBA(Advanced Microntroller Bus Architecture)規范,是一種已制定的、開放的規范,充當著SoC設計的架構,正迅速成為SoC和IP庫開發事實上的標準,為高性能嵌入式微控制器設計定義了一種片上通信標準.AMBA規范中定義了三種不同的總線,即AHB、ASB和APBAHB是為高性能、高時鐘頻率的系統模塊提供的,擔任著高性能系統的背板總線、支持多處理器、片上各種存儲器和片外外部存儲器接口連接到低功耗輔助宏單元。ASB也是為高性能系統模塊提供,當AHB的高性能特點無需要時,就可以用ASB來代替;它也支持多處理器、片上各種存儲器和片外外部存儲器接口連接到低功耗輔助宏單元。APB是為低功耗的外圍設備提供的,它優化到為最小功耗和減小接口的復雜性來支持輔助功能。

          圖3是AMBA總線微控制器的典型結構。它含有一套高性能的背板總線,AHB或ASB;它能支撐外部存儲器帶寬,在這套總線掛接著CPU、片上存儲器和其他DMA設備。通過一個橋接器,可以把AHB和APB總線連接起來。APB上面連接著大多數的輔助設備,如UART、定時器、PIO等。

          

         

          2.3 容錯問題

          為了適用于航空航天的高可靠性應用,采用多層次的容錯策略;奇偶校驗、TMR(三模冗余)寄存器、片上EDAC(檢錯和糾錯)、流水線重啟、強迫Cache不命中等.盡管現在幾乎所有CPU都有一些常規的容錯措施,如奇偶校驗、流水線重啟等,像IBM S/390 G5還采用了寫階段以前的全部流水線復制技術.IntelItanium采用的混合ECC和校驗編碼等技術;但遠沒有那樣,采用如此全面的容錯措施。

          將時序(存儲)單元的狀態翻轉作為數字容錯的主要內容,根據時序邏輯的不同特點和性質,采用了不同的容錯技術和手段.

          ①Cache的容錯。大的Cache對高性能CPU來說是至關重要的,而且位于處理器的關鍵(時間)通路上。為了減少復雜性和時間開銷,錯誤檢測的方法采用2位的奇偶校驗位,l位用作奇校驗,l位偶校驗,因此可以檢查所有的錯誤情況,在讀Cache的同時進行校驗。當校驗出錯誤,強制Cache丟失,并從外部存儲去獲取數據。

          ②處理器寄存器文件的錯誤保護。寄存器文件是處理器內部的寄存器堆,內部的寄存器對于指令的運行速度和用戶程序設計的靈活程度都是很重要的。內部寄存器的使用頻率很大,其狀態的正確性是也很關鍵。Leon2采用1、2奇偶校驗位和(32.7)BCH校驗和進行容錯。

          ③觸發器的錯誤保護。處理器的2500個觸發器均采用三模冗余的方式進行容錯,通過表決器來決出正確的輸出。

          ④外部存儲器的錯誤保護。采用掛上的EDAC單元實現。EDAC:采用標準的(32.7)BCH碼,每32位字可糾正1位錯誤和檢測2位錯誤。

          ⑤主檢測模式。是指兩個相同的處理器同時并行執行相同的指令,只讓其中的主模式處理器輸出結果,不讓檢測模式的處理器輸出結果。在內部,將檢測模式處理器的輸出同主模式處理器輸出進行比較,以檢查錯誤是否存在。這種工作模式,可以應用于要求更高可靠性的情況。

          ⑥在軟件上,還要考慮Cache的清洗問題。因為上面介紹的五種方法,只有在對相應的單元進行訪問時才進行錯誤檢查。如果存儲單元的數據不常使用,這些單元的錯誤會逐漸增加,因此必須使用一些軟件的方法來實現。

          2.4 編碼風格

          Leon2的VHDL編碼風格,同傳統以并發執行的并發進程(或并發語句)作為模塊、所謂的“數據流”編碼風格不一樣,采用的是“二進程”的設計方法。這種編碼風格克服了“數據流”編碼方式的可讀性差、抽象級低、仿真時間長等缺點。“二進程”編碼風格的具體措施是:①所有的端口和信號聲明采用記錄的形式進行說明,如按輸入輸出分類進行記錄說明;②每個實體只有兩個進程,一個組合進程和一個時序進程;③在組合進程中全部采用變量(而不是信號),以使用結構化的順序編碼方式;④在時序進程中通過時鐘同步,進行狀態的轉換。

          “二進程”的編碼風格的模型可用圖4來表示。它基本與狀態機模型一樣,只是組合進程部分,采用變量形式進行結構化順序編碼,來完成下一個時鐘周期的輸出和下一個狀態進行計算。時序進程部分是在時鐘的作用下,完成狀態轉換和輸出驅動。

          

         

          3 軟硬件開發

          3.1 VHDL

          Leon2除了VHDL源代碼外,還提供了頂層Makefile文件、Modelsim仿真器支持文件、Boot-monitor文件、VHDL測試文件、綜合支持文件、Leon2調試用的C語言源文件等,便于對Leon2進行硬件和軟件方面的測試。

          Leon2的內部結構可以通過模塊配置,使處理器具有不同的功能結構。配置的方式可以采用tkconfig腳本進行圖形界面的方式進行,也可以直接對包文件device.vhd進行手動編輯來完成。配置主要是通過修改一系列的常數的聲明值來實現的。Leon2中許多模塊功能是可以進行配置的,這些配置信息是在包文件Target.vhd里進行聲明的。

          Leon2可配置的內容包括:①所采用的綜合工具和目標庫。綜合的技術可以是:Synplify、Synopsys-DC、Synopsys-FC2、XST和Leonardo等,目標技術可以是Xilinx的Virtex和Virtex II(FPGA)、Atmel的ATC35和ACT25(0.35/0.25μm CMOS)、TSMC 0.25μm CMOS、UMC 0.25/0.18μm CMOS、以及Actel的ProAsie(FPGA)和Axeellerator(反熔絲FPGA)等。②整數單元IU的寄存器窗口、乘法器、除法器、快速跳轉和觀察點的配置。寄存器窗口可以設置為2~32個,但為了同交叉編譯器LECCS兼容必須配置為8個窗口,乘法器可以配置成迭交、16×16加流水寄存器、16×16、32×8.32×16、32×32等形式。③浮點處理單元FPU的配置,可以配置為使用meiko或是lth兩種浮點處理器之一。④Cache。Cache組的有效大小可以配置為1~64 KB,但必須是2的次冪,每行可以設置成4~8個字,組的數量可以是1~4。替換算法可以是隨機、LRR或LRU,并且指令Cache和數據Cache是獨立進行配置的。⑤存儲器控制器。⑥Debug配置。⑦片上外設的配置,如中斷控制器、看門狗等。⑧引導配置。⑨AMHB總線的相關配置。⑩PCI配置。

          Leon2有四個可綜合的頂層文件;

          ◇leon.vhd一一標準的Leon2頂層;

          ◇leon_pci.vhd一一標準的Leon2加上PCI接口構成的頂層;

          ◇leon_eth.vhd一一標準的Leon2加上一個10/100 Mbps以太網MAC構成的頂層;

          ◇leon_etn_pci.vhd一一標準的Leon2加上一個10/100 Mbps以太網MAC以及PCI接口構成的頂層。

          在上述四個頂層的下面,可以很容易地集成用戶自己的功能模塊。

          3.2 系統軟件開發

          同一般的嵌入式系統的軟件開發一樣,Leon2應用系統的軟件開發需要采用交叉編譯環境來進行。Leon2應用系統軟件開發主要采用LECCS(Leon/ERC32 GUN交叉編譯系統)。LECCS是由Cynus、OAR和Gaisler研究公司開發的多平臺開發系統,是基于GNU系列的可以自由獲取的、并帶有一系列附加“點”工具的開發系統。LECCS可以在Linux(-2.2.x或更高)、Solaris(-2.7或更高)和windows(Cygwin-1.1.7更高)等多種平臺上運行。要在Windows平臺上運行LECCS,必須安裝Cygwin。它一個是Unix層面模擬器。

          LECCS包括如下程序包:GCC--3.2.3C/C++編譯器、RTEMS--4.6.0-βC/C++實時核、獨立C庫、GDB-5.3SPARC交叉調試器、遠程調試監視器、GDB的DDD圖形前端(僅對Unix)、GDB的GDB-TK圖像前端(僅對Windows)、引導PROM的builder以及Leon調試支持單元監視器等。還包括一些工具,如交叉匯編器、匯編預處理器、GNU連接器、二進制轉換器等等。

          采用LECCS進行Leon2應用系統軟件開發的過程如下:

          ①利用GCC編譯和鏈接程序;

          ②利用仿真器了SIM調試程序;

          ③在遠程目標系統上調試程序;

          ④為獨立應用產生引導PROM程序。

          LECCS支持兩種類型的應用:一種是通常的順序CC++程序,一種是基于R了EMS核的多任務實時CC++程序。

          軟件仿真工具可以采用丁SIM。它是一個通用的SPARC架構仿真器,可以對基于ERC-32和Leon的計算系統進行仿真,性能和使用方法可以參見TSIM用戶指南。Leon2為應用系統的調試在硬件上作了極大的支持,那就是它的調試支持單元(DSU)和跟蹤緩沖器。具體使用時可參見Leon2用戶手冊和leon DSU Monitor用戶手冊。

          4 Leon2的應用

          Leon2在國內外都有應用。

          國外應用很多,如基于Leon的數字聽寫機、指紋安全系統、GPS處理機、BIST(內建自測試)等方面的產品。這里簡單介紹洛杉磯加州大學的ThumbPod指紋安全系統,以及Nemerix公司的NJ1030型GPS基帶產品。ThumbPod安全系統,是將人的指紋作為身份認證(數字身份)的安全系統。其原型的硬件系統由Xilinx的FPGA(XC2V1000)、Micron的 256 MHz-DDR-SDRAM、Authentec的AF-S2型手指感應器等構成。CPU采用Leon2處理器核,并通過Leon2的協處理器接口(CPI)掛接了AES(高級加密系統)協處理器來執行AES算法,以加快加密速度.系統的最大工作時鐘頻率可以達100 MHz,工作電壓可以是3.3/2.5/1.8/1.5 V等多種電壓。NJl030型GPS基帶產品,目標是GPS的L1載波C/A碼處理,并提供對WAAS和EGNOS兩種增強系統的支持,可以和世界上領先的第三方的GPS-RF前端設備兼容。

          國內,航天部771所和中科院國家天文臺都正在或計劃研制基于Leon2的星載數據處理系統。這種數據處理系統,不再采用體積大、笨重而又功耗巨大的處理器芯片(如DSP),而是直接將Leon2放進FPGA。系統將大部分的處理功能硬件化,利用FPAG的豐富資源,將整個系統放入一片FPGA芯片內。其中的Leon2只進行控制管理和一些必須的計算處理。國家天文臺正計劃研制基于Leon2的星載系統,系統將處理每日采集到的1780 GB數據。這些數據通過預處理(圖像積分、輻射校正、幾何校正、磁圖處理)、小波壓縮、圖像格式等,使圖像壓縮到10GB左右,并下傳到地面站。

          結 語

          本文介紹了Leon2開源處理核的技術特點、軟硬件開發過程、國內外的應用實例。技術特點主要是SPARCV8規范、AMBH2.0總線結構、容錯設計方法和VHDL編程風格;對Leon2應用系統的軟硬件開發工具和方法進行了介紹;在應用實例中,介紹兩種國外的應用和兩種國內的應用,其中包括作者正在進行研制的星載圖像處理系統。

        存儲器相關文章:存儲器原理



        上一頁 1 2 下一頁

        關鍵詞: Leon2 IP核

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 荔波县| 德安县| 南宁市| 浏阳市| 阳曲县| 福建省| 株洲县| 新宁县| 长泰县| 宿迁市| 平阴县| 杭州市| 察哈| 汕头市| 突泉县| 兰坪| 贵港市| 阿拉善左旗| 喀喇沁旗| 玛多县| 宁国市| 若羌县| 兰西县| 沿河| 盘山县| 安化县| 田阳县| 叶城县| 河津市| 奉贤区| 靖宇县| 利津县| 乐至县| 怀化市| 巫溪县| 莆田市| 张家港市| 清水河县| 五大连池市| 庆安县| 壶关县|