新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 針對(duì)FPGA的完全可配置嵌入式32位RISC處理器

針對(duì)FPGA的完全可配置嵌入式32位RISC處理器

作者: 時(shí)間:2010-12-19 來(lái)源:網(wǎng)絡(luò) 收藏

  這些選項(xiàng)能夠不同的應(yīng)用定制LatticeMico32。帶寬范圍從小的和片內(nèi)或片外存儲(chǔ)器面積優(yōu)化的控制器到具有多個(gè)接口的全功能平臺(tái),以及訪問(wèn)更大的存儲(chǔ)器(可能是片外)。從訪問(wèn)其他的邏輯模塊還允許系統(tǒng)和專用模塊之間的密切互動(dòng),以便進(jìn)一步改進(jìn)性能。取消了傳統(tǒng)上使用并行于的外部控制器的復(fù)雜訪問(wèn)機(jī)制。    

  可擴(kuò)展性

  由于代碼是可讀的Verilog RTL代碼,用戶可以輕松識(shí)別IP功能塊,諸如取指令單元,指令譯碼或ALU,以及各種流水線階段。因此,通過(guò)定制指令,這些也可以修改和增強(qiáng)。用戶也可以執(zhí)行操作碼。因此,在指令字中,LatticeMico32提供了備用的操作碼域。

  遵照以下一些基本的步驟,可以構(gòu)建自定義指令:

  •   增強(qiáng)的指令譯碼器。這是一個(gè)簡(jiǎn)單的情況,提取內(nèi)部操作碼的功能,并生成需要整合此命令至LatticeMico32的所有必須的控制信號(hào)。
  •   寫(xiě)功能的實(shí)現(xiàn)并將其整合至LatticeMico32 的ALU。
  •   對(duì)于多周期命令,構(gòu)建必要的拖延信號(hào),以便妥善處理流水線。
  •   如果需要其他的專門(mén)邏輯(例如額外的專用寄存器),這可以單獨(dú)的添加到核。

  通過(guò)定制指令和添加定制外設(shè),擴(kuò)展處理器核是一個(gè)非常有效的方式,用來(lái)定制處理器的核以便實(shí)現(xiàn)系統(tǒng)的性能要求。通常情況下,一些專門(mén)的功能用硬件實(shí)現(xiàn)比軟件更好?;虿⑿刑幚砜梢垣@得額外的性能。這種機(jī)制能夠無(wú)縫集成硬件加速模塊至處理器架構(gòu)。這將保持用同樣的方式處理這些部件的功能,如同正常的軟件代碼或使用標(biāo)準(zhǔn)外設(shè)。

  對(duì)于需要數(shù)據(jù)/信號(hào)處理功能的應(yīng)用,往往需要組合處理器的功能和DSP,以達(dá)到系統(tǒng)的性能和吞吐量。添加擴(kuò)展和定制元件還可以包括信號(hào)處理單元。可以用硬件非常有效地實(shí)現(xiàn),使用專用的DSP塊,諸如乘/累加,用各種FPGA的硬件都可以實(shí)現(xiàn)這些功能。

  設(shè)計(jì)環(huán)境

  LatticeMico32系統(tǒng)擁有三個(gè)集成工具:

  •   MicoSystem Builder(MSB)

  硬件實(shí)現(xiàn),MSB產(chǎn)生平臺(tái)描述和相關(guān)的硬件描述語(yǔ)言(HDL)代碼。設(shè)計(jì)人員可以選擇連接到微處理器的外圍組件,以及指定它們之間的連接。

  •   C/C++軟件工程環(huán)境(SPE)

  C/C++ SPE調(diào)用編譯器,匯編器和連接器,使代碼的開(kāi)發(fā)運(yùn)行于用MSB構(gòu)建的平臺(tái)??梢酝ㄟ^(guò)C/C++ SPE來(lái)完成,用MSB構(gòu)建的平臺(tái)可以作為參考?!?ul>

  •   調(diào)試器和Reveal邏輯分析器
  •   在C/C + +源代碼調(diào)試器提供匯編中的調(diào)試功能,并能夠觀察處理器的寄存器和存儲(chǔ)器。設(shè)計(jì)人員還可以使用萊迪思的Reveal邏輯分析器觀察和控制硬件中代碼的執(zhí)行情況。

      所有的工具和IP已納入萊迪思的ispLEVER FPGA軟件設(shè)計(jì)環(huán)境,這使得通過(guò)整個(gè)FPGA設(shè)計(jì)流程快速的進(jìn)行設(shè)計(jì)。這些工具也有利于有效地使用FPGA的資源。

      在構(gòu)建過(guò)程中,用可讀的RTL Verilog源代碼創(chuàng)建處理器的代碼及其外圍設(shè)備。提供用于綜合和仿真的腳本,約束文件關(guān)注硬件的設(shè)置和引腳。

      目前有3種操作系統(tǒng): Theobroma Systems的uClinux 和U-Boot、Micriμm的μC/OS-II RTOS和TOPPERS/JSP的μITRON RTOS。

      LatticeMico32提供了一個(gè)開(kāi)放源碼許可證。萊迪思的開(kāi)放IP核許可協(xié)議將與MSB工具生成的HDL代碼一起使用。大部分圖形用戶界面將在Eclipse的授權(quán)許可下使用,同時(shí)對(duì)軟件的內(nèi)部運(yùn)作,如編譯器、匯編器,連接器和調(diào)試器,許可協(xié)議將遵循GNU-GPL。

      因?yàn)檫@是開(kāi)放源碼軟IP,這個(gè)處理器的IP核還可以免費(fèi)遷移到其他技術(shù)并加以實(shí)現(xiàn)。

      性能和資源利用

      LatticeMico32提供高性能和盡可能高的資源利用率。對(duì)于關(guān)心資源的設(shè)計(jì)人員,基本不使用任何指令或數(shù)據(jù)高速緩存,單周期移位器,也沒(méi)有乘法器。對(duì)于那些更關(guān)注性能的設(shè)計(jì)人員,全使用8KB的指令高速緩存,8K字節(jié)的數(shù)據(jù)高速緩存,3個(gè)周期的移位器和一個(gè)乘法器。對(duì)于需要采用折衷方法的用戶,標(biāo)準(zhǔn)配置類(lèi)似于完整的配置,但沒(méi)有8K字節(jié)的高速數(shù)據(jù)緩存。表1展示了針對(duì)LatticeECP3 FPGA的資源利用率和性能。

    表1 LatticeMico32資源利用率和使用LatticeECP3的性能

    LatticeMico32資源利用率和使用LatticeECP3的性能

      總結(jié)

      LatticeMico32是一個(gè)完整的微處理器設(shè)計(jì)方案。它提供了一個(gè)靈活的架構(gòu),并允許用戶定制處理器系統(tǒng)以滿足系統(tǒng)的要求(性能、成本、功耗)。處理器的IP和專用硬件的密切配合提供了一個(gè)易于使用的環(huán)境,這也可顯著提升系統(tǒng)的性能,使設(shè)計(jì)擁有很大的靈活性。

      LatticeMico32開(kāi)發(fā)工具可以很容易地在FPGA中實(shí)現(xiàn)一個(gè)微處理器和與之連接的外圍元件。易用性確保最少的設(shè)計(jì)時(shí)間,從而使得產(chǎn)品能夠更快的上市。 

      根據(jù)開(kāi)放源代碼許可證和軟件開(kāi)發(fā)工具各自的開(kāi)放源代碼許可證,如Eclipse和GNU - GPL,提供生成的HDL,萊迪思可以讓用戶控制其設(shè)計(jì)。開(kāi)放源代碼為設(shè)計(jì)人員提供所需要的可視性,靈活性和便攜性。 

    linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

    上一頁(yè) 1 2 3 下一頁(yè)

    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉