<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 專(zhuān)題 > 跳上Avalon總線(xiàn):一種簡(jiǎn)化的FPGA接口

跳上Avalon總線(xiàn):一種簡(jiǎn)化的FPGA接口

作者: 時(shí)間:2017-03-15 來(lái)源:電子產(chǎn)品世界 收藏

  引言

本文引用地址:http://dyxdggzs.com/article/201703/345268.htm

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

  圖1 通過(guò)Avalon內存映射(MM)總線(xiàn)連接的典型Altera 系統

  1 SPI-MM橋接器

  該設計思想運用了Altera(2015年被英特爾收購,成為其下的可編程解決方案事業(yè)部)的SPI從端至MM橋接器,以提供一種跳上Avalon總線(xiàn)的簡(jiǎn)單方法。采用這種方法有兩項優(yōu)勢:它并未損害原始系統設計,而且該橋接器能夠與嵌入式處理器共存。對于圖1中所示的系統,SPI-MM橋接器將允許設計師直接控制LTC6948分數N PLL的頻率,設定LTC1668 DAC電壓,從LTC2498讀取一個(gè)電壓,或者從LTC2983讀取溫度,就像處理器一樣。

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

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

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

  圖3 DC2459在工作中

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

  圖4 DC2459A FPGA系統方框圖

  2系統集成工具Qsys

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

  圖5 Qsys GUI

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

  transaction_write(dc2026, base, write_size, data)

  transaction_read(dc2026, base, read_size)

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

  頻率控制字 = (期望的頻率/系統時(shí)鐘頻率) x 232 (1)

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

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

  注:根據邏輯設計,PIO 的基地址為零。

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

  3 Python Avalon總線(xiàn)示例

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

  4 結論

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



關(guān)鍵詞: FPGA Avalon

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>