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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于FPGA的并行多通道激勵信號產(chǎn)生模塊

          基于FPGA的并行多通道激勵信號產(chǎn)生模塊

          作者: 時間:2010-07-06 來源:網(wǎng)絡(luò) 收藏

            3 多通道波形控制器

            3.1 結(jié) 構(gòu)

            波形產(chǎn)生控制器是整個模塊正常運行的核心,主要完成信號產(chǎn)生控制、信號增益控制以及同步控制。多通道波形產(chǎn)生控制器主要由異步、同步邏輯與信號產(chǎn)生和調(diào)理輸出組成,圖2為波形產(chǎn)生控制器的結(jié)構(gòu)框圖。用戶控制命令經(jīng)PCI控制器傳輸至Nios II嵌入式軟核后,首先經(jīng)過譯碼處理,將控制命令按通道進(jìn)行分類,而后傳輸至波形產(chǎn)生控制器中的異步進(jìn)行緩沖。此刻各通道的控制命令主要包括同步命令、信號產(chǎn)生控制字以及增益控制命令,經(jīng)過串/并轉(zhuǎn)換后的同步命令控制著通道間的同步時序關(guān)系,而信號產(chǎn)生控制字和增益控制字則以并行方式輸出至外圍電路中,完成信號產(chǎn)生和調(diào)理輸出。

            3.2 實 現(xiàn)

            3.2.1 異步

            多通道信號產(chǎn)生控制器中具有4個獨立的FIFO,主要用于緩沖PCI控制器與波形產(chǎn)生控制器2個異步時鐘域的數(shù)據(jù)傳輸,主要包括讀/寫時鐘信號、讀/寫請求信號、數(shù)據(jù)輸入/輸出信號和空/滿標(biāo)志位。讀請求信號(rdreq)有效時,在讀時鐘(rdclk)的上升沿處FIFO輸出數(shù)據(jù);寫請求信號(wrreq)有效時,在寫時鐘(wrclk)的上升沿處FIFO寫入信號;空/滿標(biāo)志位決定了數(shù)據(jù)能夠?qū)懭牖蜃x出,模塊中采用寫滿標(biāo)志位(wrfull)來表示FIFO內(nèi)部存儲空間的使用情況。圖3為16×256位的異步FIFO工作仿真圖。

            3.2.2 同步邏輯

            同步邏輯實現(xiàn)多通道波形產(chǎn)生控制模塊的同步控制。信號產(chǎn)生通道的工作狀態(tài)有閑置、異步工作和同步工作3種狀態(tài),由用戶提供的同步控制命令決定。當(dāng)波形產(chǎn)生控制命令加載到輸出寄存器后,在接收到“準(zhǔn)備好”命令后同步邏輯控制指定通道同步的輸出控制命令。設(shè)計要求各通道具有獨立產(chǎn)生信號的能力,且任意通道間可實現(xiàn)同步操作。首先由同步邏輯產(chǎn)生2分頻、3分頻和4分頻電路分別同步2路、3路和4路的信號輸入,只有1路信號輸出時采用串行時鐘即可。然后根據(jù)用戶同步通道控制命令,控制多路選擇通道輸出相應(yīng)的同步時鐘。采用同步時鐘選擇方法設(shè)計的多路同步時鐘仿真圖如圖4所示。

            從圖中可見,2位的同步時鐘控制地址s1、s0控制著同步時鐘clk的輸出。當(dāng)?shù)刂肺籹1和s0分別為00、01、10和11時,同步時鐘clk分別輸出了串行時鐘和串行時鐘2分頻、3分頻與4分頻。其中2分頻和4分頻通過對串行時鐘計數(shù)跳轉(zhuǎn)即可實現(xiàn),方法簡單且效果良好。對于3分頻的實現(xiàn)則要復(fù)雜一點,方法是通過將2個占空比不為50%的3分頻信號相與得到1個占空比為50%的時鐘輸出,如圖中div3:inst10/b與div:inst10/c相與得到的3分頻時鐘輸出div3output。



          評論


          相關(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); })();