RM新时代网站-首页

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

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

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

通過(guò)Altera FPGA系統(tǒng)實(shí)現(xiàn)FPGA接口的簡(jiǎn)化設(shè)計(jì)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-09-27 08:54 ? 次閱讀

許多新式 FPGA 設(shè)計(jì)采用了一些用于控制的嵌入式處理器。一種典型解決方案需要使用諸如 NIOS 等嵌入式軟處理器。另一種解決方案則使用包含一個(gè)內(nèi)置硬處理器的 SoC 器件。圖 1 示出了一個(gè)典型的 Altera FPGA 系統(tǒng),該系統(tǒng)包含處理器和一系列通過(guò) Avalon 內(nèi)存映射 (MM) 總線(xiàn)連接的外設(shè)。這些處理器極大地簡(jiǎn)化了最終應(yīng)用,但是要求開(kāi)發(fā)人員擁有堅(jiān)實(shí)的編程背景和精細(xì)復(fù)雜工具鏈的相關(guān)知識(shí)。這會(huì)阻礙調(diào)試工作的推進(jìn),特別是如果硬件工程師需要一種不會(huì)煩擾軟件工程師即可完成外設(shè)讀寫(xiě)的簡(jiǎn)單方法。

圖 1:通過(guò) Avalon 內(nèi)存映射 (MM) 總線(xiàn)連接的典型 Altera FPGA 系統(tǒng)

該設(shè)計(jì)思想運(yùn)用了 Altera 的 SPI 從端至 Avalon MM 橋接器,以提供一種跳上 Avalon 總線(xiàn)的簡(jiǎn)單方法。采用這種方法有兩項(xiàng)優(yōu)勢(shì):它并未損害原始系統(tǒng)設(shè)計(jì),而且該橋接器能夠與嵌入式處理器共存。對(duì)于圖 1 中所示的系統(tǒng),SPI-Avalon MM 橋接器將允許設(shè)計(jì)師直接控制 LTC6948 分?jǐn)?shù) N PLL 的頻率,設(shè)定 LTC1668 DAC 電壓,從 LTC2498 讀取一個(gè)電壓,或者從 LTC2983 讀取溫度,就像處理器一樣。

圖 2:熒光筆 + 示例代碼 + 反向工程 = Python 腳本

Altera 提供了一款針對(duì) SPI-Avalon MM 橋接器的參考設(shè)計(jì)。不幸的是,文檔充其量是稀少的,并且使用一個(gè) NIOS 處理器作為 SPI 主控器。這實(shí)際上違背了 SPI 橋接器的初衷,因?yàn)?NIOS 處理器可直接連接至 Avalon MM 總線(xiàn)。一款實(shí)用的 SPI 主控器是凌力爾特的 Linduino?微控制器,它是具有附加特性的 Arduino 克隆產(chǎn)品,以與 LT 演示板相連接。附加特性之一是電平移位 SPI 端口。當(dāng)連接至具有低至 1.2V 電壓的 FPGA I/O 塊時(shí),這種電平移位功能是特別有幫助的。Linduino 固件可用于通過(guò)一個(gè)虛擬 COM 端口接受命令并把命令轉(zhuǎn)化為 SPI 事務(wù)處理。

在對(duì) Altera 實(shí)例設(shè)計(jì)實(shí)施了反向工程之后 (圖 2 的左側(cè)),開(kāi)發(fā)一個(gè) Python 庫(kù)以生成橋接器將要接受的數(shù)據(jù)包。這些數(shù)據(jù)包隨后被轉(zhuǎn)化為 Linduino 命令。這樣,一個(gè)簡(jiǎn)單的 Python 腳本使得硬件工程師能夠全面地控制項(xiàng)目,并不需要徹底改變接口協(xié)議。在 LinearLabTools Python 文件夾中提供了一個(gè)控制用于 LTC1668 DAC 的數(shù)字圖形發(fā)生器之頻率的 Python 腳本實(shí)例,可登錄獲取。圖 3 示出了演示設(shè)置。

圖 3:DC2459 在工作中

圖 4 給出了 FPGA 系統(tǒng)的方框圖。請(qǐng)注意,數(shù)控振蕩器 (DCO) 可由移位寄存器PIO 內(nèi)核來(lái)控制。內(nèi)置移位寄存器用于調(diào)試,因?yàn)樗峁┝?NCO 的直接控制。把 GPIO 線(xiàn)邏輯電平設(shè)定為“高”將使能 SPI-Avalon MM 橋接器,該橋接器接著通過(guò) Avalon MM 總線(xiàn)控制一個(gè) 32 位 PIO 端口。然后,PIO 輸出控制 NCO 頻率。

通過(guò)Altera FPGA系統(tǒng)實(shí)現(xiàn)FPGA接口的簡(jiǎn)化設(shè)計(jì)

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

當(dāng)最基本的系統(tǒng)運(yùn)行時(shí),可以把額外的 Avalon 外設(shè) IP 內(nèi)核連接至 Avalon MM 總線(xiàn)。為了設(shè)計(jì)系統(tǒng),Altera 提供了一款被稱(chēng)為 Qsys 的系統(tǒng)集成工具。這款工具提供一個(gè) GUI 以相互連接 IP。Qsys 隨后被用于把 GUI 系統(tǒng)轉(zhuǎn)化為硬件描述語(yǔ)言 (HDL) Verilog。圖 5 示出了該 GUI。最后,系統(tǒng)將被添加至用于實(shí)施的頂層。IP 的地址是完全可配置的。就給出的實(shí)例而言,PIO 被設(shè)定在一個(gè) 0x0 的基地址單元。

圖 5:Qsys GUI

一旦在 FPGA 中實(shí)現(xiàn)了設(shè)計(jì),則 LinearLabTools 中提供的 Python 庫(kù)包含兩個(gè)函數(shù)以與設(shè)計(jì)接口:

transaction_write(dc2026, base, write_size, data)

transaction_read(dc2026, base, read_size)

這些函數(shù)的第一個(gè)參數(shù)是 Linduino 串行端口實(shí)例。第二個(gè)參數(shù)是外設(shè)在 Avalon 總線(xiàn)上的地址。這些函數(shù)分別接受和返還字節(jié)列表。編寫(xiě)這兩個(gè)函數(shù)以在讀和寫(xiě) IP 時(shí)提供靈活性。如欲設(shè)定用于所提供實(shí)例的 NCO,則所需的就是 transaction_write 函數(shù)。

公式 1 用于確定頻率控制字。

公式 1:頻率控制字 = (期望的頻率/系統(tǒng)時(shí)鐘頻率) x 232

如欲把 NCO 設(shè)定至 1kHz 和一個(gè) 50Msps 采樣速率,則頻率控制字?jǐn)?shù)值 = 85899。該數(shù)值用十六進(jìn)制來(lái)表示即為 0x00014F8B,其作為一個(gè) 4 字節(jié)列表進(jìn)行傳遞。于是,用于把 DAC 設(shè)定至 1kHz 的 Python 代碼為:

transaction_write(linduino_serial_instance, 0, 0, [0x0,0x01,0x4F, 0x8B])

注:根據(jù)邏輯設(shè)計(jì),PIO 的基地址為零。

圖 6:Python Avalon 總線(xiàn)示例

提供了一個(gè)圖 6 所示的簡(jiǎn)單 Python 腳本,以演示 FPGA 設(shè)計(jì)和 Python 腳本的接口。它包含一個(gè)簡(jiǎn)單的文本接口以配置 NCO。一個(gè)重要提示是 Avalon SPI 橋接器采用 SPI Mode 3。這是痛苦地通過(guò)反復(fù)試驗(yàn)而確定正確模式;并通過(guò)分析 Altera 實(shí)例中的 NIOS 處理器 SPI 接口進(jìn)行驗(yàn)證。

總括來(lái)說(shuō),該實(shí)例項(xiàng)目展示了完全無(wú)需“接觸”嵌入式處理器便可控制系統(tǒng)的能力。這讓硬件工程師不必麻煩軟件工程師就能在項(xiàng)目方面取得進(jìn)展。這種方法的好處可以悄然地添加至 FPGA,并不會(huì)影響原始設(shè)計(jì)。硬件工程師可以把精力集中在硬件上。

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

    關(guān)注

    68

    文章

    19259

    瀏覽量

    229651
  • FPGA
    +關(guān)注

    關(guān)注

    1629

    文章

    21729

    瀏覽量

    602986
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304803
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    怎樣為自己的設(shè)計(jì)選擇Altera Cyclone V FPGA

    Altera的Cyclone V FPGA目前是業(yè)界系統(tǒng)總成本和功耗最低的FPGA,那我們?cè)撛鯓訛樽约旱脑O(shè)計(jì)選擇Altera Cyclone
    發(fā)表于 02-26 10:34 ?2551次閱讀

    Altera發(fā)布面向FPGA的OpenCL解決方案 簡(jiǎn)化FPGA開(kāi)發(fā)

    Altera公司近日發(fā)布其面向FPGA的OpenCL (開(kāi)放計(jì)算語(yǔ)言)早期使用計(jì)劃(EAP),支持客戶(hù)提前了解Altera面向FPGA的OpenCL解決方案。采用這一開(kāi)放標(biāo)準(zhǔn),設(shè)計(jì)團(tuán)隊(duì)
    發(fā)表于 09-04 08:47 ?850次閱讀

    基于FPGA的多路PWM輸出接口設(shè)計(jì)

    使用Altera公司FPGA產(chǎn)品開(kāi)發(fā)工具QuartusⅡ,設(shè)計(jì)了6路PWM輸出接口,并下載到FPGA,實(shí)現(xiàn)與CPU的協(xié)同工作。在嵌入式
    發(fā)表于 05-06 09:18

    通過(guò)FPGA實(shí)現(xiàn)溫控電路接口及其與DSP通信接口的設(shè)計(jì)

    地址總線(xiàn)對(duì) FPGA的片內(nèi)資源尋址??刂菩盘?hào)主要包括復(fù)位信號(hào),中斷信號(hào)和讀寫(xiě)信號(hào)。(3)與232接口芯片的通信接口 FPGA與 232接口
    發(fā)表于 08-19 09:29

    Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)

    Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)》結(jié)合作者多年工作經(jīng)驗(yàn),深入地討論了Altera FPGA/CPLD的設(shè)計(jì)、優(yōu)化技巧。在討論FPGA
    發(fā)表于 02-12 09:19 ?4806次下載
    <b class='flag-5'>Altera</b> <b class='flag-5'>FPGA</b>/CPLD設(shè)計(jì)(高級(jí)篇)

    利用FPGA平臺(tái)解決接口的速度瓶頸

    通過(guò)使用Sigma Design 公司的EM8560 嵌入式數(shù)字圖像處理器及AlteraFPGA 與Lattice 的CPLD,解決處理器外部總線(xiàn)接口速度對(duì)
    發(fā)表于 04-15 09:01 ?13次下載

    altera fpga/cpld設(shè)計(jì)

    altera fpga/cpld設(shè)計(jì) 基礎(chǔ)篇結(jié)合作者多年工作經(jīng)驗(yàn),系統(tǒng)地介紹了FPGA/CPLD的基本設(shè)計(jì)方法。在介紹FPGA/CPLD概念
    發(fā)表于 07-10 17:35 ?58次下載
    <b class='flag-5'>altera</b> <b class='flag-5'>fpga</b>/cpld設(shè)計(jì)

    簡(jiǎn)化Xilinx和Altera FPGA調(diào)試過(guò)程

    簡(jiǎn)化Xilinx和Altera FPGA調(diào)試過(guò)程:通過(guò)FPGAViewTM 解決方案,如混合信號(hào)示波器(MSO)和邏輯分析儀,您可以在Xil
    發(fā)表于 11-20 17:46 ?27次下載

    Altera新Cyclone IV FPGA拓展了Cyclo

    Altera新Cyclone IV FPGA拓展了Cyclone FPGA系列 Altera拓展其成功的Cyclone FPGA系列并延續(xù)
    發(fā)表于 11-04 08:46 ?1376次閱讀

    AS下載和調(diào)試接口電路(Altera FPGA開(kāi)發(fā)板)

    AS下載和調(diào)試接口電路(Altera FPGA開(kāi)發(fā)板)如下圖所示:
    發(fā)表于 08-15 14:29 ?5864次閱讀
    AS下載和調(diào)試<b class='flag-5'>接口</b>電路(<b class='flag-5'>Altera</b> <b class='flag-5'>FPGA</b>開(kāi)發(fā)板)

    高速SDRAM存儲(chǔ)器接口電路設(shè)計(jì)(Altera FPGA開(kāi)發(fā)板)

    高速SDRAM存儲(chǔ)器接口電路設(shè)計(jì)(Altera FPGA開(kāi)發(fā)板)如下圖所示:
    發(fā)表于 08-15 14:33 ?3462次閱讀
    高速SDRAM存儲(chǔ)器<b class='flag-5'>接口</b>電路設(shè)計(jì)(<b class='flag-5'>Altera</b> <b class='flag-5'>FPGA</b>開(kāi)發(fā)板)

    Altera FPGA的選型及開(kāi)發(fā)

    本資料是關(guān)于Altera FPGA的選型及開(kāi)發(fā),內(nèi)容大綱是:AlteraFPGA體系結(jié)構(gòu)簡(jiǎn)介;Altera
    發(fā)表于 08-15 14:48 ?104次下載
    <b class='flag-5'>Altera</b> <b class='flag-5'>FPGA</b>的選型及開(kāi)發(fā)

    Altera公司SoC FPGA 簡(jiǎn)介

    本文是關(guān)于Altera公司SoC FPGA 的用戶(hù)手冊(cè)(英文版) 。文中主要介紹了什么是SoC FPGA、SoC FPGA相關(guān)知識(shí)介紹、為什么要使用SoC
    發(fā)表于 09-05 14:03 ?153次下載
    <b class='flag-5'>Altera</b>公司SoC <b class='flag-5'>FPGA</b> 簡(jiǎn)介

    Altera_FPGA系統(tǒng)設(shè)計(jì)及應(yīng)用

    介紹Altera_FPGA的選型及開(kāi)發(fā),感興趣的可以看看。
    發(fā)表于 03-28 18:04 ?12次下載

    Altera FPGA CPLD學(xué)習(xí)筆記

    Altera FPGA CPLD學(xué)習(xí)筆記(肇慶理士電源技術(shù)有限)-Altera FPGA CPLD學(xué)習(xí)筆記? ? ? ? ? ? ? ? ?
    發(fā)表于 09-18 10:54 ?82次下載
    <b class='flag-5'>Altera</b> <b class='flag-5'>FPGA</b> CPLD學(xué)習(xí)筆記
    RM新时代网站-首页