跳上Avalon總線:一種簡化的FPGA接口
引言
許多新式FPGA設(shè)計采用了一些用于控制的嵌入式處理器。一種典型解決方案需要使用諸如NIOS等嵌入式軟處理器。另一種解決方案則使用包含一個內(nèi)置硬處理器的SoC(片上系統(tǒng))器件。圖1所示為一個典型的Altera FPGA系統(tǒng),該系統(tǒng)包含處理器和一系列通過Avalon內(nèi)存映射(MM)總線連接的外設(shè)。這些處理器極大地簡化了最終應(yīng)用,但是要求開發(fā)人員擁有堅實的編程背景和精細復(fù)雜工具鏈的相關(guān)知識。這會阻礙調(diào)試工作的推進,特別是如果硬件工程師需要一種不會煩擾軟件工程師即可完成外設(shè)讀寫的簡單方法。
圖1 通過Avalon內(nèi)存映射(MM)總線連接的典型Altera FPGA系統(tǒng)
1 SPI-Avalon MM橋接器
該設(shè)計思想運用了Altera(2015年被英特爾收購,成為其下的可編程解決方案事業(yè)部)的SPI從端至Avalon MM橋接器,以提供一種跳上Avalon總線的簡單方法。采用這種方法有兩項優(yōu)勢:它并未損害原始系統(tǒng)設(shè)計,而且該橋接器能夠與嵌入式處理器共存。對于圖1中所示的系統(tǒng),SPI-Avalon MM橋接器將允許設(shè)計師直接控制LTC6948分數(shù)N PLL的頻率,設(shè)定LTC1668 DAC電壓,從LTC2498讀取一個電壓,或者從LTC2983讀取溫度,就像處理器一樣。
圖2 熒光筆+示例代碼+反向工程=Python腳本
Altera 提供了一款針對SPI-Avalon MM橋接器的參考設(shè)計。不幸的是,文檔較為稀少,并且使用一個NIOS處理器作為SPI主控器。這實際上違背了SPI橋接器的初衷,因為NIOS處理器可直接連接至Avalon MM總線。一款實用的SPI主控器是凌力爾特的Linduino?微控制器,它是具有附加特性的Arduino克隆產(chǎn)品,以與LT演示板相連接。附加特性之一是電平移位SPI端口。當連接至具有低至1.2V電壓的FPGA I/O塊時,這種電平移位功能是特別有幫助的。Linduino固件可用于通過一個虛擬COM端口接受命令并把命令轉(zhuǎn)化為SPI事務(wù)處理。
在對Altera實例設(shè)計實施了反向工程之后(圖2的左側(cè)),開發(fā)一個Python庫以生成橋接器將要接受的數(shù)據(jù)包。這些數(shù)據(jù)包隨后被轉(zhuǎn)化為Linduino命令。這樣,一個簡單的Python腳本使得硬件工程師能夠全面地控制項目,并不需要徹底改變接口協(xié)議。在 LinearLabTools Python文件夾中提供了一個控制用于LTC1668 DAC的數(shù)字圖形發(fā)生器之頻率的Python腳本實例。圖3所示為演示設(shè)置。
圖3 DC2459在工作中
圖4給出了FPGA的系統(tǒng)方框圖。請注意,數(shù)控振蕩器(DCO)可由移位寄存器或PIO內(nèi)核來控制。內(nèi)置移位寄存器用于調(diào)試,因為它提供了NCO的直接控制。把GPIO線邏輯電平設(shè)定為“高”將使能SPI-Avalon MM橋接器,該橋接器接著通過Avalon MM總線控制一個32位PIO端口。然后,PIO輸出控制NCO頻率。
圖4 DC2459A FPGA系統(tǒng)方框圖
2系統(tǒng)集成工具Qsys
當最基本的系統(tǒng)運行時,可以把額外的Avalon外設(shè)IP內(nèi)核連接至Avalon MM總線。為了設(shè)計系統(tǒng),Altera提供了一款被稱為Qsys的系統(tǒng)集成工具。這款工具提供一個GUI以相互連接IP。Qsys隨后被用于把GUI系統(tǒng)轉(zhuǎn)化為硬件描述語言(HDL)Verilog。圖5所示為GUI。最后,系統(tǒng)將被添加至用于實施的頂層。IP的地址是完全可配置的。就給出的實例而言,PIO被設(shè)定在一個0x0的基地址單元。
圖5 Qsys GUI
一旦在 FPGA 中實現(xiàn)了設(shè)計,則LinearLabTools中提供的Python庫包含兩個函數(shù)以與設(shè)計接口:
transaction_write(dc2026, base, write_size, data)
transaction_read(dc2026, base, read_size)
這些函數(shù)的第一個參數(shù)是Linduino串行端口實例。第二個參數(shù)是外設(shè)在Avalon總線上的地址。這些函數(shù)分別接受和返還字節(jié)列表。編寫這兩個函數(shù)以在讀和寫IP時提供靈活性。如欲設(shè)定用于所提供實例的NCO,則所需的就是transaction_write函數(shù)。式(1)用于確定頻率控制字。
頻率控制字 = (期望的頻率/系統(tǒng)時鐘頻率) x 232 (1)
如要把NCO設(shè)定至1kHz和一個50Msps采樣速率,則頻率控制字數(shù)值設(shè)為85899。該數(shù)值用十六進制來表示即為 0x00014F8B,其作為一個4字節(jié)列表進行傳遞。于是,用于把DAC設(shè)定至1kHz的Python代碼為:
transaction_write(linduino_serial_instance, 0, 0, [0x0,0x01,0x4F, 0x8B])
注:根據(jù)邏輯設(shè)計,PIO 的基地址為零。
圖6 Python Avalon總線示例
3 Python Avalon總線示例
本文提供一個如圖6所示的簡單Python腳本,以演示FPGA設(shè)計和Python腳本的接口。它包含一個簡單的文本接口以配置NCO。一個重要提示是Avalon SPI橋接器采用SPI Mode 3。這是痛苦地通過反復(fù)試驗而確定正確模式;并通過分析Altera實例中的NIOS處理器SPI接口進行驗證。
4 結(jié)論
該實例項目展示了完全無需“接觸”嵌入式處理器便可控制系統(tǒng)的能力。這讓硬件工程師不必麻煩軟件工程師就能在項目方面取得進展。這種方法的好處可以悄然地添加至 FPGA,并不會影響原始設(shè)計。硬件工程師可以把精力集中在硬件上。
您可能也感興趣:
今日熱點
為您推薦
一季度社保基金新進14只個股 養(yǎng)老金賬戶新進9只個股
一季度廣東保險業(yè)總資產(chǎn)增長9.99% 面向服務(wù)業(yè)加大風(fēng)險保障力度
丹東發(fā)布工傷保險費率調(diào)整方案 將惠及1萬多戶參保單位
更多
- 年產(chǎn)240萬片12英寸外延片!中欣晶圓項目將試生產(chǎn)
- 三星加入韓國元老級創(chuàng)業(yè)公司DoubleMe的2500萬美元融資計劃
- 石墨烯的量子魔法帶來了新超導(dǎo)材料
- Mendix公司與ValueMomentum升級合作關(guān)系,為客戶創(chuàng)造更大價值
- 軟通動力首款SwanLinkOS商顯發(fā)行版通過認證
- 康普觀點:智能網(wǎng)絡(luò)是成功之道
- Codasip擴大汽車處理器團隊并任命Jamie Broome為負責(zé)該業(yè)務(wù)的副總裁
- 我國全球創(chuàng)新指數(shù)排名升至第12位 5年來發(fā)明專利達253.1萬件
排行
最近更新
- 跳上Avalon總線:一種簡化的FPGA接口
- 發(fā)光二極管壓降
- 你知道嗎?單片機中程序存儲器的作用
- 青島:“花瓣雨”迷人眼
- 沙坪壩區(qū)體育局調(diào)研基地學(xué)校訓(xùn)練情況,推進射擊攀巖項目新布...
- 巴南體育健身微課堂 | 教你快速學(xué)會恰恰舞原地換重心
- 青島李滄區(qū):紫荊盛放 美不勝收
- 山東棗莊:接駁證明就近辦 服務(wù)群眾零距離
- 影響光伏電站發(fā)電量的主要因素
- 山東棗莊:榴園鎮(zhèn)以“五有”促“五化”做實公益崗
- Postmates創(chuàng)始人Bastian將成立加密貨幣公司
- IPX啟動官方NFT項目“OOZ”
- Mad Realities完成600萬美元種子輪融資,Paradigm領(lǐng)投
- WTI原油日內(nèi)大跌5.00%,現(xiàn)報96.40美元/桶
- 三菱日聯(lián):馬克龍贏得大選不足以扭轉(zhuǎn)歐元弱勢
- 波卡域名服務(wù)PNS將于4月26日上線 支持MetaMask錢包和GLMR代幣支付
- 美股跌幅擴大,標普500指數(shù)跌1%
- 藥明康德:一季度歸母凈利潤增速不及營收增速
- 胃出血的癥狀 4個癥狀暗示你的胃開始出血了
- 脂肪粒的原因 常做這5件事會增加面部脂肪粒
- 蓮藕的好處 想不到它是美容養(yǎng)顏的小能手
- 如何預(yù)防痤瘡 日常這樣做能避免痤瘡出現(xiàn)
- 金針菇的好處 多吃金針菇6個好處會找上門
- 胃痛如何止痛 5種止痛妙招快速趕走胃痛癥狀
- 雞蛋的好處 這6個好處會讓雞蛋身價倍漲
- 痛經(jīng)如何調(diào)理 4種止痛妙招讓你安全度過經(jīng)期
- 尿酸高怎么調(diào)理 為你揭秘6種降低尿酸的方法
- 脂肪肝如何改善 這份超實用的降脂公式建議收好
- 雞蛋給鴿子吃有什么好處
- 低血糖的癥狀 有這4個癥狀是體內(nèi)血糖降低了