日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

一種以LabVIEW FPGA模塊來設(shè)計IP核

出處:wxzh68 發(fā)布于:2011-08-28 16:39:33

  對于利用LabVIEW FPGA實現(xiàn)RIO目標(biāo)平臺上的定制硬件的工程師與開發(fā)人員,他們可以很容易地利用所推薦的組件設(shè)計構(gòu)建適合其應(yīng)用的、可復(fù)用且可擴展的代碼模塊?;谝呀?jīng)驗證的設(shè)計進行代碼模塊開發(fā),將使現(xiàn)有IP在未來應(yīng)用中得到更好的復(fù)用,也可以使在不同開發(fā)人員和內(nèi)部組織之間進行共享和交換的代碼更好服用。

  LabVIEW是一種程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā)的,類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計算機語言的顯著區(qū)別是:其他計算機語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。圖形化的程序語言,又稱為 “G” 語言。使用這種語言編程時,基本上不寫程序代碼,取而代之的是流程圖或框圖。它盡可能利用了技術(shù)人員、科學(xué)家、工程師所熟悉的術(shù)語、圖標(biāo)和概念,因此,LabVIEW是一個面向終用戶的工具。它可以增強你構(gòu)建自己的科學(xué)和工程系統(tǒng)的能力,提供了實現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。使用它進行原理研究、設(shè)計、測試并實現(xiàn)儀器系統(tǒng)時,可以大大提高工作效率。

  代碼模塊

  任一項軟件開發(fā)工作均包括函數(shù)、子例程、對象和代碼模塊,以及其他較大架構(gòu)的基礎(chǔ)構(gòu)建模塊的開發(fā)。當(dāng)設(shè)計一個應(yīng)用時,各個函數(shù)與操作均被識別和實現(xiàn)。然后,這些構(gòu)建模塊被組合與集成以形成更大的應(yīng)用。通過長期開發(fā)不同應(yīng)用的過程,一個開發(fā)小組或團隊將創(chuàng)建表示常見操作的代碼模塊庫,并對其進行復(fù)用以更快速地構(gòu)建未來的應(yīng)用。

  每種編程語言以及某些情況下的編程環(huán)境都有一個優(yōu)選的代碼模塊設(shè)計模型,以便改進代碼模塊的實現(xiàn)與集成。該優(yōu)選設(shè)計可以因具體的開發(fā)人員而異,但通常一個開發(fā)組會根據(jù)共同的需要和考慮確定一組共享的設(shè)計準(zhǔn)則。作為一種編程語言,LabVIEW自身擁有一組供世界各地的程序人員開發(fā)子VI使用的指導(dǎo)方針,以便子VI可以容易理解、而且運用于不同應(yīng)用并由不同開發(fā)人員維護。LabVIEW是一種圖形化的編程語言的開發(fā)環(huán)境,它廣泛地被工業(yè)界、學(xué)術(shù)界和研究實驗室所接受,視為一個標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。LabVIEW集成了與滿足 GPIB、VXI、RS-232 和 RS-485 協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能。它還內(nèi)置了便于應(yīng)用TCP/IP、ActiveX 等軟件標(biāo)準(zhǔn)的庫函數(shù)。這是一個功能強大且靈活的軟件。利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣。LabVIEW FPGA,作為LabVIEW的一個子集,擁有其自身的一組用于利用FPGA特定行為構(gòu)建代碼模塊(子VI)的指導(dǎo)方針,以便它們可以有效運用于廣泛的基于FPGA的應(yīng)用。

  可復(fù)用代碼——知識產(chǎn)權(quán)

  FPGA平臺上的可復(fù)用代碼模塊通常稱為IP(知識產(chǎn)權(quán))核——從傳統(tǒng)芯片設(shè)計長時間演化來的名稱。在LabVIEW FPGA中,這樣的IP核由常用于LabVIEW編程和LabVIEW工具集的子VI組成。為使這樣的子VI可以與不同的重疊需求和架構(gòu)方便地協(xié)同使用,我們需要遵循某些基本指導(dǎo)方針,以確保子VI廣泛可用,而不是專為一項特定應(yīng)用而優(yōu)化。

  為進一步促進和改善LabVIEW FPGA IP的復(fù)用,代碼模塊應(yīng)當(dāng)除子VI源碼以外還包括一些組件。這些組件包括文檔、測試代碼和使用IP的基本范例。

  在LabVIEW FPGA應(yīng)用中,IP代碼模塊典型地用于一些操作的執(zhí)行,如通信協(xié)議(如SPI、I2C等)的編碼與解碼、數(shù)字信號處理、濾波、控制算法的實現(xiàn)、傳感器信號(如PWM、積分信號)的編碼/解碼和基準(zhǔn)標(biāo)定等。如果代碼模塊子VI使用了任何局部變量存儲狀態(tài)信息,那么該子VI應(yīng)當(dāng)設(shè)置為可重入。這樣將在編譯過程中創(chuàng)建多個FPGA之上的子VI的實例,每個實例都擁有其專用存儲空間用于存放狀態(tài)信息。

  開發(fā)LabVIEW FPGA IP的基本指導(dǎo)方針便是,開發(fā)不僅獨立于其主應(yīng)用、而且對其主應(yīng)用不產(chǎn)生影響或不會有顯著要求的代碼模塊。IP代碼模塊與其主應(yīng)用間的需求或依賴性應(yīng)當(dāng)是子VI連接面板的接口。該文檔將闡述如何在LabVIEW FPGA IP中創(chuàng)建這樣的調(diào)用獨立的IP子VI,并展示一些相關(guān)范例。

  I/O與資源的獨立性

  為使LabVIEW FPGA IP便于應(yīng)用于不同的應(yīng)用,它應(yīng)當(dāng)獨立于任何輸入/輸出通道(I/O)或其他硬件資源,如FPGA塊存儲器。根據(jù)具體的應(yīng)用,終應(yīng)用可以使用不同的RIO板卡或其他FPGA目標(biāo)平臺。

  例如對于一個PWM輸出IP模塊,應(yīng)用開發(fā)人員將為PWM輸出信號選用某條數(shù)字輸出線。在此例中,該PWM IP模塊應(yīng)當(dāng)產(chǎn)生并輸出信號的當(dāng)前狀態(tài)。開發(fā)人員將把在更高層次VI中賦值給I/O資源。該I/O資源未嵌入在IP代碼模塊的框圖中。

一個調(diào)用PWM輸出IP代碼模塊

  圖1:一個調(diào)用PWM輸出IP代碼模塊(子VI)的應(yīng)用VI的框圖

  同樣的指導(dǎo)方針應(yīng)用于任意輸入信號。例如,假設(shè)您在使用一個由數(shù)字濾波器設(shè)計工具包創(chuàng)建的模擬濾波器IP子VI,模擬數(shù)值應(yīng)當(dāng)自該濾波器子VI外部采集,然后傳遞給IP代碼模塊。

使用一個模擬濾波器IP子VI

  圖2:使用一個模擬濾波器IP子VI(直接FIR)。模擬數(shù)值在主VI采集并傳遞給濾波器IP。

  獨立于I/O資源的IP代碼模塊的開發(fā),使其使用更為方便和靈活,并支持將其多次集成到一項應(yīng)用,而不必定制該IP代碼模塊的每個實例。

  --------------------------------------------------------------------------------

  塊存儲

  除了I/O通道外,其他可能為LabVIEW FPGA IP使用的資源便是塊(用戶)存儲器。LabVIEW FPGA支持開發(fā)人員利用多個不同的函數(shù)訪問FPGA上的塊存儲器,其中包括存儲器讀/寫、FIFO、查詢表及其他函數(shù)。這些函數(shù)中的大多數(shù)均在塊存儲中創(chuàng)建了一個的地址空間,以避免發(fā)生IP與該應(yīng)用其他IP間的存儲器沖突。

  然而,LabVIEW FPGA 8.0存儲器讀函數(shù)和存儲器寫函數(shù),對于其在作為當(dāng)前FPGA功能特性一部分的任一VI中使用的所有實例,均使用了一個16 kB共有地址空間,這個共有地址空間被當(dāng)前FPGA功能中任一VI的函數(shù)實例所使用。

  在LabVIEW FPGA 8.20中,每個存儲器讀函數(shù)和存儲器寫函數(shù)引用一個特定的存儲塊(地址空間),典型情況下,它在LabVIEW項目中作為一項資源被創(chuàng)建。由于這些存儲塊在項目中被定義,因此,如果您將一個IP代碼模塊VI加載至一項新應(yīng)用,它們不會自動轉(zhuǎn)遞給新的項目。這一VI-Scoped存儲塊可以在IP中創(chuàng)建并使用;對于任一使用該IP的新應(yīng)用,它將被自動創(chuàng)建。

使用LabVIEW FPGA 8.20 VI scoped指定存儲塊

  圖3:使用LabVIEW FPGA 8.20 VI scoped指定存儲塊

  相似地,使用塊存儲器來緩存數(shù)據(jù)的LabVIEW FPGA FIFO函數(shù),是基于一個在LabVIEW項目中創(chuàng)建的FIFO資源。在LabVIEW FPGA 8.0中,如果您決定使用一個IP代碼模塊中的FIFO,該IP的用戶需要在應(yīng)用項目中手動創(chuàng)建相關(guān)的FIFO資源。為免除對IP代碼模塊用戶的這一額外需求,我們建議對于LabVIEW FPGA 8.0中的任何IP代碼模塊避免使用FIFO。

  在LabVIEW 8.20中,您可以選擇創(chuàng)建一個VI-Scoped FIFO配置以一個VI專用FIFO存儲塊。這一操作與指定VI-Scoped存儲塊的方式相同。

使用LabVIEW FPGA 8.20 VI范圍指定FIFO

  圖4:使用LabVIEW FPGA 8.20 VI范圍指定FIFO

  無論存儲器如何被IP代碼模塊或應(yīng)用的其他部分使用,都從FPGA上可用的公共塊存儲器上分配存儲空間,存儲空間的大小取決于目標(biāo)平臺中所使用的特定FPGA。因此,對于IP代碼模塊的使用者,重要的是知道IP使用了多少存儲器。這一信息應(yīng)當(dāng)包含在文檔和上下文感知的幫助文件中。使用IP模塊的開發(fā)人員必須明確了解應(yīng)用中不同部分所使用的塊存儲器的大小,以防止編譯過程中可能的存儲溢出。

  定時獨立性

  為使IP模塊能夠自由運用于LabVIEW FPGA應(yīng)用中,該代碼模塊不應(yīng)對主應(yīng)用的定時產(chǎn)生明顯影響。例如,在處理來自一個積分編碼器的一對數(shù)字輸入信號時,解碼位置信息的代碼模塊不應(yīng)當(dāng)顯著延遲調(diào)用它的應(yīng)用程序。這就意味著,該IP代碼模塊子VI應(yīng)當(dāng)快速、高效地執(zhí)行其操作。在大多數(shù)情況下,這要求子VI中不應(yīng)存在任何循環(huán)結(jié)構(gòu)。下面的框圖展示了一個積分解碼器的實現(xiàn)。該范例使用局部變量存儲IP代碼模塊調(diào)用以及下調(diào)用(其詳細描述見下段)的狀態(tài)信息。

一個積分解碼器IP代碼模塊范例

  圖5:一個積分解碼器IP代碼模塊范例

  使IP代碼模塊定時獨立于調(diào)用者的指導(dǎo)方針,存在一個例外:如果該IP代碼模塊目的在于為其調(diào)用應(yīng)用提供定時功能。此類IP代碼模塊的例子便是一個數(shù)據(jù)采集掃描時鐘例程。下面的框圖展示了一個簡單的IP代碼模塊,它實現(xiàn)了一個具有附加功能特性的掃描時鐘。這一增強的掃描時鐘可以快捷運用于多個不同的應(yīng)用中。在此例中,IP代碼模塊的操作與定時依賴性應(yīng)當(dāng)以文檔的形式詳細描述,以便該IP的用戶了解其應(yīng)用的定時行為將受到怎樣的影響。

一個掃描時鐘IP代碼模塊范例

  圖6:一個掃描時鐘IP代碼模塊范例

  框圖獨立性

  LabVIEW FPGA IP代碼模塊可以運用于使用不同編程模型的廣泛應(yīng)用中。許多LabVIEW FPGA特性采用while循環(huán)和for循環(huán)編寫而成,這些循環(huán)并沒有對代碼、函數(shù)和其中所使用的VI作太多限制。

  避免在您的IP代碼模塊中使用任何循環(huán)。

  使用局部變量存儲您的IP代碼模塊的調(diào)用以及下調(diào)用的狀態(tài)信息。

  避免在您的IP模塊中使用任何定時函數(shù)。

  避免在您的IP代碼模塊中使用與單周期定時循環(huán)不兼容的函數(shù),如商余函數(shù)。

  --------------------------------------------------------------------------------

  一些應(yīng)用或許使用了一個IP代碼模塊的多個拷貝,該代碼模塊應(yīng)當(dāng)無縫支持這樣的操作。如果代碼模塊子VI使用了任何局部變量存儲狀態(tài)信息,那么該子VI應(yīng)當(dāng)設(shè)置為可重入。這樣將在編譯過程中創(chuàng)建多個FPGA之上的子VI的實例,每個實例都擁有其專用存儲空間用于存放狀態(tài)信息。

  文檔、測試與范例

  在IP代碼模塊開發(fā)過程中,文檔、測試和范例構(gòu)造也都應(yīng)當(dāng)成為開發(fā)過程中有意為之的一部分。其他不熟悉該代碼模塊的開發(fā)人員將在其自己的應(yīng)用中使用該代碼并且需要掌握關(guān)于如何正確使用該IP的信息。

  作為實現(xiàn)的一部分,每個將為其他開發(fā)人員使用的子VI都應(yīng)當(dāng)包含有LabVIEW上下文幫助。當(dāng)幫助窗口打開并且鼠標(biāo)光標(biāo)懸浮于子VI上方時,該上下文幫助將顯示在LabVIEW中。該文檔應(yīng)當(dāng)包含關(guān)于VI操作/功能的一個基本描述,以及關(guān)于每個輸入輸出參數(shù)的基本描述。還應(yīng)當(dāng)注意任何其他關(guān)于子VI的編程限制或約束,如在單周期定時循環(huán)中的使用或塊存儲的利用率。關(guān)于VI及其參數(shù)的更詳細描述應(yīng)當(dāng)包含在一個單獨的用戶或參考手冊文檔中。

PWM發(fā)生器IP的上下文幫助范例

  圖7:PWM發(fā)生器IP的上下文幫助范例

  終的IP代碼模塊應(yīng)當(dāng)包括一些基本范例和可能更的范例,以闡述該代碼模塊如何在應(yīng)用中使用。通常,對于圍繞某個特定的IP的一項應(yīng)用,這些范例將成為工作的起點。

展示PWM發(fā)生器IP的使用方法的VI范例

  圖8:展示PWM發(fā)生器IP的使用方法的VI范例

  總結(jié)

  如果創(chuàng)建的IP代碼模塊靈活且易于使用,那么LabVIEW FPGA IP代碼模塊可以在應(yīng)用開發(fā)中提供顯著的優(yōu)勢和節(jié)約。該文檔所介紹的指導(dǎo)方針將有助于確保IP可以方便地復(fù)用并無須為單個應(yīng)用進行定制處理。它主要的方便就是,一個硬件的情況下,可以通過改變軟件,就可以實現(xiàn)不同的儀器儀表的功能,非常方便,是相當(dāng)于軟件即硬件!現(xiàn)在的圖形化主要是上層的系統(tǒng),國內(nèi)現(xiàn)在已經(jīng)開發(fā)出圖形化的單片機編程系統(tǒng)(支持32位的嵌入式系統(tǒng),并且可以擴展的),不斷完善中。

  下面是在開發(fā)任何LabVIEW FPGA IP過程中應(yīng)當(dāng)遵循的指導(dǎo)方針的總結(jié)列表:

  I/O資源不應(yīng)嵌入在IP代碼模塊的框圖中。

  請勿在IP中使用項目引用的存儲器讀寫函數(shù)或FIFO讀寫函數(shù)。如可能,使用一個VI scoped存儲塊或FIFO(LabVIEW 8.20)。

  文檔化表述IP中存儲器(存儲器拓展例程存儲塊、FIFO和查詢表等)的所有使用。在IP的分布中包含任何存儲器拓展例程存儲塊VI。

  不要在IP中包含任何循環(huán)結(jié)構(gòu)或等待/循環(huán)定時器函數(shù),除非這便是該IP的主要目標(biāo)。

  在IP中使用局部變量存儲狀態(tài)信息。

  文檔化表述IP的任何非正常的定時行為。


  
關(guān)鍵詞:FPGA

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!