<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA嵌入式的多比特自相關(guān)器設(shè)計(jì)

          基于FPGA嵌入式的多比特自相關(guān)器設(shè)計(jì)

          作者: 時(shí)間:2009-11-11 來源:網(wǎng)絡(luò) 收藏

          從表1中可以看出:在存儲(chǔ)器中存儲(chǔ)的N個(gè)數(shù)值中僅有N-1-k個(gè)數(shù)據(jù)進(jìn)行了自相關(guān)運(yùn)算,超出這個(gè)范圍的數(shù)據(jù)應(yīng)視為無效數(shù)據(jù)被舍棄。因此如果N的長(zhǎng)度過短或者k的數(shù)值過大,存儲(chǔ)器中的數(shù)據(jù)將有相當(dāng)一部分?jǐn)?shù)據(jù)被舍棄,并且隨著k值的增加被舍棄的數(shù)據(jù)量將在整個(gè)存儲(chǔ)數(shù)據(jù)量中的比例越來越大;但是由于信號(hào)的自相關(guān)性隨著延遲k增加而降低,在做自相關(guān)運(yùn)算時(shí)一般采用較小的k值。為此,如果采用較大的RAM存儲(chǔ)器和較小的k值,在一組存儲(chǔ)數(shù)據(jù)中舍棄的數(shù)據(jù)其實(shí)是占比例很小的。例如在k=3的情況下,即延時(shí)為3個(gè)A/D轉(zhuǎn)換周期,CyclmleⅡ中存儲(chǔ)器的最大存儲(chǔ)長(zhǎng)度為65 536個(gè)8 b存儲(chǔ)單元,舍棄記錄數(shù)據(jù)為3個(gè)8 b,舍棄數(shù)據(jù)量?jī)H占存儲(chǔ)數(shù)據(jù)量的0.004%,在自相關(guān)處理時(shí)是能夠接受的。如圖6所示。
          2.2 累加器及1/N相乘單元實(shí)現(xiàn):
          如果使用2的N階次冪數(shù)據(jù)用作自相關(guān)計(jì)算,在二進(jìn)制下可以通過向右移位N個(gè)bit位實(shí)現(xiàn)除法功能。在設(shè)計(jì)中采用了2×16個(gè)采樣數(shù)據(jù)組成的數(shù)組完成自相關(guān)計(jì)算,其算法具體流程圖如圖7所示。

          3 微處理器的設(shè)計(jì)實(shí)現(xiàn)
          微處理器的設(shè)計(jì)包括3個(gè)部分:利用SoPCBuilder定制的軟核CPU,在Quartus II環(huán)境下設(shè)計(jì)的電路和Nios II編程。
          Nios II的軟件編程主要基于操作系統(tǒng)μC/OS-Ⅱ。μC/OS-Ⅱ是一個(gè)完整的、可移植、固化和剪裁的占先式實(shí)時(shí)多任務(wù)核(Kernel)。從1992年發(fā)布至今,μC/OS-II已經(jīng)有上百個(gè)的商業(yè)應(yīng)用案例,在40多種處理器上成功移植。其中Altera提供對(duì)μC/OS-II的完整支持,非常容易使用。
          μC/OS―II提供以下系統(tǒng)服務(wù):任務(wù)管理(Task Management);事件標(biāo)志(Event Flag);消息傳遞(Mes-sage Passing);內(nèi)存管理(Memory Management);信號(hào)量(Semaphores);時(shí)間管理(Time Management)。在應(yīng)用程序中,用戶可以方便地使用這些系統(tǒng)調(diào)用實(shí)現(xiàn)目標(biāo)功能。
          在該設(shè)計(jì)中,建立了一個(gè)主任務(wù)和兩個(gè)子任務(wù)(任務(wù)1,任務(wù)2):主任務(wù)主要是負(fù)責(zé)啟動(dòng)子任務(wù);任務(wù)1主要負(fù)責(zé)數(shù)據(jù)的采集和采集數(shù)據(jù)的存儲(chǔ),任務(wù)2主要負(fù)責(zé)調(diào)用存儲(chǔ)器中存儲(chǔ)的采集數(shù)據(jù)控制外圍計(jì)算模塊進(jìn)行自相關(guān)計(jì)算??傮w軟件算法流程圖如圖8所示。圖9為由SoPC實(shí)現(xiàn)的Nios II處理器圖。

          在Nios II系統(tǒng)中,首先,通過main()主函數(shù)調(diào)用OSTaskCreateExt()函數(shù)創(chuàng)建任務(wù)1,即數(shù)據(jù)采集任務(wù)。
          由于AD7822作為AVALON的從外設(shè)掛接在了AVALON總線上,通過在任務(wù)1中通過調(diào)用IORD_16DIRECT()端口查詢函數(shù)實(shí)時(shí)發(fā)起A從端口傳輸啟動(dòng)AD7822,獲取采集數(shù)據(jù),然后使能外圍RAM的wren端口存儲(chǔ)。當(dāng)存儲(chǔ)到該設(shè)計(jì)中存儲(chǔ)器長(zhǎng)度的數(shù)據(jù)以后,通過“尾觸發(fā)”方式啟動(dòng)任務(wù)2,即自相關(guān)計(jì)算任務(wù),并且調(diào)用延遲函數(shù)OSTimeDlyHMSM(),交出CPU的使用權(quán)。程序要點(diǎn)如下:


          在任務(wù)2中,首先關(guān)閉兩個(gè)存儲(chǔ)器的寫入使能,使之只能讀出數(shù)據(jù);然后輸出相應(yīng)的兩個(gè)地址碼:兩個(gè)地址碼之間有相對(duì)k的延時(shí),并且同時(shí)使能18×18乘法器,累加器及1/N相乘單元,當(dāng)循環(huán)完成后,自動(dòng)刪除任務(wù)2,交CPU使用權(quán)給數(shù)據(jù)采集任務(wù)。程序要點(diǎn)如下:



          4 結(jié) 語
          首先,該設(shè)計(jì)采用操作系統(tǒng)實(shí)時(shí)控制外圍運(yùn)算邏輯電路的方式。實(shí)現(xiàn)了多乘加的DSP運(yùn)算,由于嵌入式操作系統(tǒng)的靈活性和廣泛的可移植性,使得該設(shè)計(jì)的可讀性和移植性增強(qiáng);其次,本設(shè)計(jì)采用天生并行結(jié)構(gòu)的處理器完成多乘加運(yùn)算,有利于提高運(yùn)算速度和處理的穩(wěn)定度;再次,將必要的外設(shè)作為AVALON總線器件,采用總線查詢傳輸?shù)姆绞竭M(jìn)行訪問,不必在嵌入式操作系統(tǒng)中過多的考慮底層硬件的驅(qū)動(dòng)和時(shí)序,這樣提高電路的穩(wěn)定性且也增強(qiáng)了程序的通用性。

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

          上一頁 1 2 3 下一頁

          關(guān)鍵詞: FPGA 嵌入式 比特

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();