RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

不用處理器就可以控制FPGA總線的方法你知道嗎?

GReq_mcu168 ? 來源:未知 ? 作者:胡薇 ? 2018-05-02 17:38 ? 次閱讀

許多FPGA設(shè)計使用嵌入式處理器實現(xiàn)控制。典型的解決方案是使用Nios這樣的軟處理器,雖然內(nèi)置硬處理器的FPGASoC也變得很流行了。圖1顯示的是一個典型的Altera FPGA系統(tǒng),其中包含了處理器和通過Altera的Avalon內(nèi)存映射(MM)總線連接的各種外設(shè)。這些處理器極大地簡化了終端應(yīng)用,但要求很強的編程背景和復(fù)雜的工具鏈知識。這將妨礙調(diào)試,特別是當(dāng)硬件工程師不想求助軟件工程師,只需要一種簡單的方式讀寫外設(shè)時。

圖1:使用Avalon內(nèi)存映射總線連接的典型Altera FPGA系統(tǒng)。

本設(shè)計實例使用Altera的SPI Slave to Avalon MM橋?qū)崿F(xiàn)了一種掛接到Avalon總線的簡單方法。這種技術(shù)有兩個優(yōu)勢:它不會影響原始系統(tǒng)設(shè)計,橋可以與嵌入式處理器共存。對于圖1所示的系統(tǒng)來說,這種SPI橋允許工程師直接控制LTC6948小數(shù)分頻鎖相環(huán)的頻率、設(shè)置LTC1668數(shù)模轉(zhuǎn)換器的電壓、讀取LTC2498模數(shù)轉(zhuǎn)換器的電壓或讀取LTC2983的溫度,就像處理器那樣。

圖2:高亮部分+例子代碼+反向工程=Python腳本。

Altera為SPI-Avalon MM橋提供了參考設(shè)計。遺憾的是,相關(guān)文檔非常少,并且將Nios處理器用作SPI主器件。這其實有違使用SPI橋的初衷,因為Nios可以直接連接Avalon MM總線。實用性的SPI主器件是凌力爾特公司的Linduino微控制器,它是Arduino處理器的的克隆版本,不過增加了連接LT演示板的接口等額外功能。其中一個額外功能是電平轉(zhuǎn)換SPI端口。當(dāng)連接電壓低至1.2V的FPGA I/O組時這個電平轉(zhuǎn)換功能特別有用。Linduino固件可以用來接受來自虛擬COM端口的命令,并將命令翻譯成SPI處理內(nèi)容。 在對Altera設(shè)計例子進(jìn)行反向工程后(圖2)就能得到一個Python庫,接著創(chuàng)建SPI橋可以接受的數(shù)據(jù)包。這些數(shù)據(jù)包隨后被翻譯成Linduino命令。Python腳本隨后允許硬件工程師完全控制整個項目,無需重新開發(fā)接口協(xié)議。LinearLabToolsPhython文件夾中提供了幫助LTC1668數(shù)模轉(zhuǎn)換器控制數(shù)字圖案發(fā)生器頻率的Python腳本例子。圖3顯示了演示裝置。

圖3:插入FPGA電路板(左)的DC2459數(shù)模轉(zhuǎn)換器演示板(右)。

圖4顯示了系統(tǒng)框圖。注意,數(shù)字控制振蕩器(NCO)可以由移位寄存器PIO內(nèi)核進(jìn)行控制。移位寄存器用于調(diào)試,因為它可以直接控制NCO。將GPIO線置高將激活SPI-Avalon橋,進(jìn)而控制Avalon總線上的32位PIO端口。PIO輸出隨即用于控制NCO頻率。

圖4:FPGA系統(tǒng)框圖。

借助基本的一些系統(tǒng)操作,可以將額外的外設(shè)內(nèi)核連接到總線上。為了幫助系統(tǒng)設(shè)計,Altera提供了一款名為Qsys的工具,它提供了連接各個IP的圖形用戶界面(GUI)。Qsys可以將GUI設(shè)計的系統(tǒng)(圖5)翻譯為HDL。外設(shè)地址是完全可配置的。在這個案例中,PIO被設(shè)為基地址0x0。

圖5:Qsys GUI。

當(dāng)設(shè)計在FPGA中實現(xiàn)后,LinearLabTools中提供的Python庫包含的兩個函數(shù)就能連接到設(shè)計:

transaction_write(dc2026, base, write_size, data) transaction_read(dc2026, base, read_size)

這些函數(shù)的第一個參數(shù)是Linduino的串口實例。第二個參數(shù)是Avalon總線上的外設(shè)地址。這兩個函數(shù)分別用于接收和返回字節(jié)列表。當(dāng)讀寫IP時這兩個函數(shù)具有一定的靈活性。為了設(shè)置給定例子的NCO,只需要transaction_write一個函數(shù)。公式1用于確定調(diào)節(jié)字。

要將NCO設(shè)為1kHz并具有50MSPS采樣率,調(diào)節(jié)字的值需要設(shè)為85899或0x00014F8B,并按4個字節(jié)一起傳送。這樣,將數(shù)模轉(zhuǎn)換器設(shè)為1kHz的Python代碼是: transaction_write(linduino_serial_instance, 0, 0, [0x0, 0x01, 0x4F, 0x8B])

圖6:Python Avalon總線例子。

圖6中的Python腳本描述了用于配置NCO的簡單文本接口。值得一提的是:SPI橋使用SPI模式3。這是通過不斷的試錯,并通過分析Altera例子中的Nios處理器的SPI接口驗證后才確定的模式。 本設(shè)計實例提供了一種無需使用嵌入式處理器就能控制系統(tǒng)的方法,它能幫助硬件工程師在不打擾軟件工程師的情況下搞定一個項目,并且對硬件設(shè)計的影響最小。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19259

    瀏覽量

    229649
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    602977

原文標(biāo)題:不用處理器控制FPGA總線的方法

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    調(diào)節(jié)多核處理器硬件適應(yīng)軟件設(shè)計方法

    ?! 〖僭O(shè)要用6個處理器構(gòu)成一個兩級流水線。那么現(xiàn)在就需要計算出每一級所需的處理器的數(shù)量;先通過分析來確定每個劃分的周期數(shù),如后再用它去除以周期預(yù)算,
    發(fā)表于 09-25 17:17

    數(shù)字處理器使用步驟

    ,如果有不是0的,先把它們都調(diào)到0位置上,這個電平控制一般在GAIN功能里,DBX的處理器電平是在分頻里面的,用G表示。5、現(xiàn)在就可以接通信號讓系統(tǒng)先發(fā)出聲音了,然后用極性相位儀檢查
    發(fā)表于 01-07 10:24

    【每日一貼日志】親愛的,知道嗎?

    不用為家務(wù)而煩惱。親愛的,知道嗎?如果是兩個人的生活,我能不做家務(wù)嗎?親愛的,也許會說,愿意。可是
    發(fā)表于 09-29 15:18

    FPGA干貨分享六】基于FPGA協(xié)處理器的算法加速的實現(xiàn)

    PowerPC)。大量的邏輯單元使可以實現(xiàn)數(shù)據(jù)處理單元,這些單元與處理器系統(tǒng)一起工作,由處理器對其進(jìn)行
    發(fā)表于 02-02 14:18

    流水線操作,應(yīng)用處理器,應(yīng)用處理器的結(jié)構(gòu)和原理是什么?

    流水線操作,應(yīng)用處理器,應(yīng)用處理器的結(jié)構(gòu)和原理是什么? 與哈佛結(jié)構(gòu)相關(guān),DSP芯片廣泛采用流水線以減少指令執(zhí)行時間.從而增強
    發(fā)表于 03-26 15:03 ?1233次閱讀

    無線充電IC知道嗎

    無線充電IC知道嗎
    發(fā)表于 01-22 19:37 ?47次下載

    6 LX9 FPGA就可以實現(xiàn)開源的“J Core”處理器

    Core”。 我們可以非常容易的在FPGA上實現(xiàn)一個“J Core”的實例,這使得FPGA就像一個J2處理器,并且兼容
    發(fā)表于 02-08 14:14 ?486次閱讀

    不用那么麻煩,從iPhone上就可以知道的電池是否需要更換

    有一種方法可以直接的了解的手機電池是否需要更換。iPhone系統(tǒng)需要在iOS10.2.1或以上才可以
    發(fā)表于 02-28 13:52 ?2.5w次閱讀

    基于FPGA和多DSP的多總線并行處理器設(shè)計

    基于FPGA和多DSP的多總線并行處理器設(shè)計
    發(fā)表于 10-19 13:40 ?4次下載
    基于<b class='flag-5'>FPGA</b>和多DSP的多<b class='flag-5'>總線</b>并行<b class='flag-5'>處理器</b>設(shè)計

    關(guān)于變壓的這些冷知識,知道嗎

    變壓的這些冷知識,知道嗎
    的頭像 發(fā)表于 02-04 15:28 ?4582次閱讀

    關(guān)于STM32的這幾個寄存, 知道嗎

    關(guān)于STM32的這幾個寄存,知道嗎
    的頭像 發(fā)表于 03-06 15:19 ?1w次閱讀

    應(yīng)用處理器芯片行業(yè)科普

    APU市場概述APU(應(yīng)用處理器)概述APU定義APU(Application Processor Unit),又名應(yīng)用處理器芯片,是在低功耗中央處理器的基礎(chǔ)上擴(kuò)展音...
    發(fā)表于 01-25 19:55 ?1次下載
    應(yīng)<b class='flag-5'>用處理器</b>芯片行業(yè)科普

    不使用處理器控制FPGA總線

    許多 FPGA 設(shè)計使用嵌入式處理器進(jìn)行控制。一個典型的解決方案涉及使用 Nios 等軟處理器,盡管帶有內(nèi)置硬處理器
    的頭像 發(fā)表于 04-08 11:08 ?1042次閱讀

    什么是專用處理器?專用處理器的設(shè)計方法和工具介紹

    on some external data source, usually memory or some other data stream”。專用處理器就是針對特定應(yīng)用或者領(lǐng)域的處理器,類似于是我們經(jīng)常說的Domain Specific Architecture的概念
    發(fā)表于 07-17 14:14 ?1476次閱讀
    什么是專<b class='flag-5'>用處理器</b>?專<b class='flag-5'>用處理器</b>的設(shè)計<b class='flag-5'>方法</b>和工具介紹

    LED視頻處理器是怎么工作的,知道嗎

    LED視頻處理器又叫畫面處理器,圖像轉(zhuǎn)換、視頻控制器、圖像處理器畫面轉(zhuǎn)換、視頻格式轉(zhuǎn)換
    的頭像 發(fā)表于 12-13 16:09 ?1401次閱讀
    RM新时代网站-首页