<noscript id="jftie"></noscript>
    <style id="jftie"><mark id="jftie"><dfn id="jftie"></dfn></mark></style>
  1. <span id="jftie"></span>
    • 国产成人精品久久一区二区,韩国精品久久久久久无码,国产精品国产高清国产av,欧美99久久无码一区人妻a片,亚洲高清码在线精品av,午夜人妻久久久久久久久,伊人热热久久原色播放www ,亚洲女教师丝祙在线播放
      你的位置:首頁 > 測試測量 > 正文

      不用處理器控制FPGA總線的方法

      發布時間:2016-08-10 責任編輯:wenwei

      【導讀】許多FPGA設計使用嵌入式處理器實現控制。典型的解決方案是使用Nios這樣的軟處理器,雖然內置硬處理器的FPGASoC也變得很流行了。圖1顯示的是一個典型的Altera FPGA系統,其中包含了處理器和通過Altera的Avalon內存映射(MM)總線連接的各種外設。這些處理器極大地簡化了終端應用,但要求很強的編程背景和復雜的工具鏈知識。這將妨礙調試,特別是當硬件工程師不想求助軟件工程師,只需要一種簡單的方式讀寫外設時。
       
      不用處理器控制FPGA總線的方法
      圖1:使用Avalon內存映射總線連接的典型Altera FPGA系統。
       
      本設計實例使用Altera的SPI Slave to Avalon MM橋實現了一種掛接到Avalon總線的簡單方法。這種技術有兩個優勢:它不會影響原始系統設計,橋可以與嵌入式處理器共存。對于圖1所示的系統來說,這種SPI橋允許工程師直接控制LTC6948小數分頻鎖相環的頻率、設置LTC1668數模轉換器的電壓、讀取LTC2498模數轉換器的電壓或讀取LTC2983的溫度,就像處理器那樣。
       
      不用處理器控制FPGA總線的方法
      不用處理器控制FPGA總線的方法
      圖2:高亮部分+例子代碼+反向工程=Python腳本。
       
      Altera為SPI-Avalon MM橋提供了參考設計。遺憾的是,相關文檔非常少,并且將Nios處理器用作SPI主器件。這其實有違使用SPI橋的初衷,因為Nios可以直接連接Avalon MM總線。實用性的SPI主器件是凌力爾特公司的Linduino微控制器,它是Arduino處理器的的克隆版本,不過增加了連接LT演示板的接口等額外功能。其中一個額外功能是電平轉換SPI端口。當連接電壓低至1.2V的FPGA I/O組時這個電平轉換功能特別有用。Linduino固件可以用來接受來自虛擬COM端口的命令,并將命令翻譯成SPI處理內容。 在對Altera設計例子進行反向工程后(圖2)就能得到一個Python庫,接著創建SPI橋可以接受的數據包。這些數據包隨后被翻譯成Linduino命令。Python腳本隨后允許硬件工程師完全控制整個項目,無需重新開發接口協議。LinearLabToolsPhython文件夾中提供了幫助LTC1668數模轉換器控制數字圖案發生器頻率的Python腳本例子。圖3顯示了演示裝置。
       
      不用處理器控制FPGA總線的方法
      圖3:插入FPGA電路板(左)的DC2459數模轉換器演示板(右)。
       
      圖4顯示了系統框圖。注意,數字控制振蕩器(NCO)可以由移位寄存器或PIO內核進行控制。移位寄存器用于調試,因為它可以直接控制NCO。將GPIO線置高將激活SPI-Avalon橋,進而控制Avalon總線上的32位PIO端口。PIO輸出隨即用于控制NCO頻率。
       
      不用處理器控制FPGA總線的方法
      圖4:FPGA系統框圖。
       
      借助基本的一些系統操作,可以將額外的外設內核連接到總線上。為了幫助系統設計,Altera提供了一款名為Qsys的工具,它提供了連接各個IP的圖形用戶界面(GUI)。Qsys可以將GUI設計的系統(圖5)翻譯為HDL。外設地址是完全可配置的。在這個案例中,PIO被設為基地址0x0。
       
      不用處理器控制FPGA總線的方法
      圖5:Qsys GUI。
       
      當設計在FPGA中實現后,LinearLabTools中提供的Python庫包含的兩個函數就能連接到設計:
       
      transaction_write(dc2026, base, write_size, data) transaction_read(dc2026, base, read_size)
       
      這些函數的第一個參數是Linduino的串口實例。第二個參數是Avalon總線上的外設地址。這兩個函數分別用于接收和返回字節列表。當讀寫IP時這兩個函數具有一定的靈活性。為了設置給定例子的NCO,只需要transaction_write一個函數。公式1用于確定調節字。
       
      不用處理器控制FPGA總線的方法
       
      要將NCO設為1kHz并具有50MSPS采樣率,調節字的值需要設為85899或0x00014F8B,并按4個字節一起傳送。這樣,將數模轉換器設為1kHz的Python代碼是: transaction_write(linduino_serial_instance, 0, 0, [0x0, 0x01, 0x4F, 0x8B])
       
      不用處理器控制FPGA總線的方法
      不用處理器控制FPGA總線的方法
      圖6:Python Avalon總線例子。
       
      圖6中的Python腳本描述了用于配置NCO的簡單文本接口。值得一提的是:SPI橋使用SPI模式3。這是通過不斷的試錯,并通過分析Altera例子中的Nios處理器的SPI接口驗證后才確定的模式。 本設計實例提供了一種無需使用嵌入式處理器就能控制系統的方法,它能幫助硬件工程師在不打擾軟件工程師的情況下搞定一個項目,并且對硬件設計的影響最小。
       
       
       
      【推薦閱讀】

      相移零電壓開關全橋DC/DC轉換器中的MOSFET行為
      智能手機如何實現環境光感測?
      高速PCB設計之抗EMI干擾九大規則
      行家告訴你如何解決醫療設備的EMC問題?
      電磁波能量比吸收率SAR評估的過去、現在和未來




       
      要采購轉換器么,點這里了解一下價格!
      特別推薦
      技術文章更多>>
      技術白皮書下載更多>>
      熱門搜索
      ?

      關閉

      ?

      關閉

      主站蜘蛛池模板: 无码成人h免费视频在线观看| 久久综合婷婷成人网站| 亚洲国产日韩在线人高清| 日韩欧美在线观看一区二区视频| 亚洲国产成人无码影片在线播放| 亚洲日韩久热中文字幕| 亚洲色无码一区二区三区| 亚洲a∨天堂男人无码| 小雪尝禁果又粗又大的视频| 2023国产精品一卡2卡三卡4卡| 成 人色 网 站 欧美大片在线观看| 国产a∨天天免费观看美女| 日本巨大的奶头在线观看| 亚洲va中文字幕不卡无码| 伊人久久大香线蕉av仙人| 欧美极品video粗暴| 精品一区二区三区波多野结衣| 日产一区日产2区| 992tv精品视频tv在线观看| 国产精品污www一区二区三区| 亚洲热线99精品视频| 熟女人妻高清一区二区三区| 欧美又大粗又爽又黄大片视频| 无码专区一va亚洲v专区在线| 狠狠色噜噜狠狠狠狠777米奇| 久热这里只精品99国产6-99re视…| 动漫精品视频一区二区三区| 亚洲狠狠婷婷综合久久久久图片| 神马影院午夜dy888| 成人毛片无码一区二区三区 | 中文字幕乱码人妻二区三区| 免费无码毛片一区二区app| 国产亚洲精品久久久久久国| 中文字幕乱码人妻一区二区三区| 日韩欧美在线观看一区二区视频| 国产欠欠欠18一区二区| 国产精品人成视频免费vod| 国产精品a久久777777| 国产女精品视频网站免费蜜芽 | 亚洲色大成网站www永久男同| 色婷婷五月综合亚洲小说|