當前位置:首頁 > 工業(yè)控制 > 電路設(shè)計項目集錦
[導讀]與傳統(tǒng)的微控制器相比,F(xiàn)PGA(現(xiàn)場可編程門陣列)是獨一無二的,因為它們不執(zhí)行順序指令。相反,它們由一組可配置的邏輯塊組成,這些邏輯塊可以被重新編程以執(zhí)行自定義的數(shù)字邏輯功能。這使得FPGA可以并行執(zhí)行多個操作,使其在信號處理、數(shù)據(jù)處理和實時控制等特定任務(wù)中非常高效。

介紹

與傳統(tǒng)的微控制器相比,FPGA(現(xiàn)場可編程門陣列)是獨一無二的,因為它們不執(zhí)行順序指令。相反,它們由一組可配置的邏輯塊組成,這些邏輯塊可以被重新編程以執(zhí)行自定義的數(shù)字邏輯功能。這使得FPGA可以并行執(zhí)行多個操作,使其在信號處理、數(shù)據(jù)處理和實時控制等特定任務(wù)中非常高效。

為了定義FPGA的功能,我們使用硬件描述語言(HDL),它指定了邏輯元素應(yīng)該如何配置和互連。在這個項目中,我將使用SystemVerilog,這是Verilog的高級版本,它引入了額外的特性,如增強的類型安全、斷言和面向?qū)ο缶幊坦δ?,使其更適合FPGA設(shè)計。

對于硬件,我使用的是Arty S7-25,這是一個基于Xilinx Spartan-7 FPGA的開發(fā)板。它在尺寸、性能和可負擔性之間提供了一個很好的平衡,使其成為初學者的絕佳選擇。該板具有雙Arduino頭,便于原型設(shè)計,以及PMOD頭,允許擴展額外的外設(shè)。當我使用這個特定的板時,如果您遵循這個項目,任何來自Spartan-7家族或更高版本的Xilinx FPGA都應(yīng)該兼容。

XADC (Xilinx模數(shù)轉(zhuǎn)換器)

XADC是Xilinx FPGA中的集成模數(shù)轉(zhuǎn)換器(ADC),使其能夠處理模擬信號和數(shù)字邏輯。該功能對于電壓監(jiān)測、傳感器數(shù)據(jù)采集和實時模擬信號處理等應(yīng)用特別有用。通過將ADC直接集成到FPGA中,減少了對外部ADC組件的需求,簡化了硬件設(shè)計并提高了系統(tǒng)集成度。

XADC的主要特性:

?雙12位adc能夠以高達1 MSPS(每秒百萬采樣)的速度采樣,允許高速數(shù)據(jù)采集。

?支持多達16個外部模擬輸入通道(根據(jù)FPGA封裝不同而不同),支持多個傳感器或信號連接。

?用于FPGA溫度監(jiān)測和電源電壓跟蹤的片上傳感器,有助于系統(tǒng)可靠性和熱管理。

?靈活的接口選項:支持AXI Lite,動態(tài)重新配置端口(DRP)或直接寄存器控制,允許與不同的FPGA設(shè)計集成。

?支持單極(0V至1V)和雙極(-0.5V至0.5V)輸入模式,適應(yīng)各種模擬信號范圍。

?可配置報警閾值,使自動警報電壓或溫度異常。

XADC通過彌合模擬和數(shù)字域之間的差距,增強了FPGA的多功能性,使其成為需要在基于FPGA的系統(tǒng)中進行實時模擬信號處理的應(yīng)用的理想選擇。

Vivado:賽靈思的FPGA設(shè)計軟件

Vivado是Xilinx的綜合FPGA設(shè)計套件,用于設(shè)計、模擬、合成和編程基于FPGA的系統(tǒng)。它為HDL開發(fā)提供了一個完整的工具鏈,包括邏輯分析儀、IP集成器和調(diào)試工具,使其成為FPGA開發(fā)必不可少的工具。無論您是實現(xiàn)簡單的邏輯電路還是復雜的數(shù)字系統(tǒng),Vivado都可以通過其高級合成(HLS),基于塊的設(shè)計方法和硬件調(diào)試工具簡化設(shè)計流程。

下載安裝程序

訪問AMD/Xilinx官方網(wǎng)站并導航到下載部分。

下載最新版本的統(tǒng)一安裝程序,選擇與您的操作系統(tǒng)(Windows或Linux)兼容的版本。

注意:您需要登錄或創(chuàng)建一個免費的AMD/Xilinx帳戶才能訪問下載。

安裝過程

運行安裝程序并按照屏幕上的說明操作。

在安裝過程中,您可以選擇完全安裝或自定義安裝,這取決于您是否需要額外的工具,如Vitis(用于嵌入式開發(fā))或僅用于FPGA設(shè)計的Vivado。

準備好大量下載(幾gb),因此建議使用穩(wěn)定且快速的互聯(lián)網(wǎng)連接。

創(chuàng)建第一個項目

一旦安裝了Vivado,下一步就是在AMD Vivado設(shè)計套件中創(chuàng)建一個新項目。本項目將作為工作空間,您將在其中編寫,模擬和合成您的FPGA設(shè)計。

步驟1:創(chuàng)建項目

打開Vivado并從歡迎屏幕中選擇Create New Project。

選擇一個項目名稱(例如,DisplayXADC)并選擇一個方便的位置來保存項目文件。

單擊Next繼續(xù)。

步驟2:選擇項目類型

當提示項目類型時,選擇RTL項目(注冊-傳輸級別),因為這允許您使用SystemVerilog編寫設(shè)計。

啟用“此時不指定源”復選框,除非您已經(jīng)準備好了源文件。

單擊Next繼續(xù)。

步驟3:創(chuàng)建源文件和約束文件

進入項目后,創(chuàng)建一個新的源文件:選擇create file→選擇SystemVerilog作為文件類型。將其命名為任何您喜歡的名稱(例如,xadc_display.sv)。

創(chuàng)建空約束文件:選擇“創(chuàng)建文件”→確保文件類型為XDC (Xilinx Design Constraints)。將其命名為您喜歡的任何名稱(例如,constraints.xdc)。稍后將使用該文件定義引腳映射、時鐘約束和定時設(shè)置。

步驟4:選擇FPGA板

將出現(xiàn)一個對話框,提示您在零件和電路板之間進行選擇。

選擇Boards選項卡并鍵入您的FPGA板型號(例如,Arty S7-25)。如果沒有顯示您的單板,請單擊“刷新”或確保安裝了單板文件。

單擊Next,然后單擊Finish以完成設(shè)置。

配置XADC

要在FPGA設(shè)計中使用XADC (Xilinx模數(shù)轉(zhuǎn)換器),需要在Vivado中添加和配置XADC IP核。按照以下步驟正確設(shè)置:

步驟1:添加XADC IP核

在Vivado的左側(cè),找到并單擊IP Catalog。

在搜索欄中,輸入“XADC”。

選擇“XADC向?qū)А保缓箅p擊打開其配置設(shè)置。

步驟2:自定義XADC IP

將出現(xiàn)一個對話框,允許您配置XADC核心。

選擇接口類型:配置接口模式為DRP (Dynamic Reconfiguration Port)。這允許通過寄存器實時訪問ADC轉(zhuǎn)換。

選擇轉(zhuǎn)換模式:在模式選擇下,選擇“單通道”,設(shè)置為“連續(xù)模式”。這確保了ADC連續(xù)采樣單個模擬輸入,而不是通過多個通道循環(huán)。

禁用告警(本項目不需要):導航到“告警”頁簽。禁用所有警報,因為此應(yīng)用程序不需要它們。這些告警通常用于監(jiān)控電源電平和FPGA溫度。

選擇模擬輸入引腳:在單通道選項卡下,找到外部模擬輸入部分。為A0引腳(或FPGA上相應(yīng)的ADC引腳)選擇VAUXP0/VAUXN0。確切的引腳映射可能因FPGA板而異,因此請檢查約束文件(.xdc)以驗證正確的引腳。

步驟3:生成XADC IP核

保留所有其他設(shè)置為默認值,除非您的應(yīng)用程序需要進一步定制。

單擊OK關(guān)閉自定義窗口。

在下一個對話框中,選擇“生成輸出產(chǎn)品”,然后單擊“生成”。

此時,將生成XADC IP核并準備將其集成到您的設(shè)計中。該模塊將允許您的FPGA與模擬信號接口,例如從電位器或其他傳感器讀取電壓電平。

代碼

ConstrainFile

約束文件(.xdc)在FPGA設(shè)計中至關(guān)重要,因為它定義了項目的I/O引腳映射、時鐘約束和時序要求。該文件告訴FPGA使用哪個物理引腳進行輸入和輸出,確保您的設(shè)計與外部硬件(如按鈕,led,傳感器或通信接口)正確交互。

每個FPGA板都有一個唯一的約束文件,因為不同的板有不同的引腳分配和硬件配置。

七段模塊

該子模塊設(shè)計用于一次控制單個七段LED顯示屏。它需要一個輸入時鐘信號來同步顯示更新和一個輸入數(shù)字(十六進制0-F)。

高層模塊

主模塊被指定為源文件層次結(jié)構(gòu)中的“頂層”模塊。這個頂層模塊作為設(shè)計的入口,類似于C語言編程中的主要功能。通過用清晰的層次結(jié)構(gòu)構(gòu)建設(shè)計,頂層模塊確保所有組件有效地協(xié)同工作,使調(diào)試和擴展系統(tǒng)更容易。

頂層模塊的角色

?它充當集成和連接設(shè)計中所有其他子模塊的最高級模塊。

?它定義了與FPGA外部引腳接口的I/O端口。

?它實例化其他模塊的實例,在它們之間傳遞信號以確保正確的通信。

初始化模塊實例

在頂部模塊中,您將創(chuàng)建項目中定義的其他模塊的實例。這些實例的行為類似于軟件編程中的函數(shù)調(diào)用,但它們不是按順序執(zhí)行,而是并行操作。

我們首先定義它的輸入和輸出端口,這決定了FPGA如何與外部硬件組件交互。

時鐘輸入(用于同步)

模擬輸入(用于從XADC讀取數(shù)據(jù))

輸出控制七段顯示

實例化XADC模塊

接下來,我們實例化XADC模塊,該模塊連續(xù)采樣模擬輸入信號并將其轉(zhuǎn)換為16位數(shù)字值。然后對這些數(shù)據(jù)進行處理,以提取相關(guān)信息進行顯示。

實例化七段顯示模塊

由于我們正在使用兩個七段顯示,因此我們創(chuàng)建了sevenSegment模塊的兩個實例。這些實例接收處理過的數(shù)據(jù)并驅(qū)動相應(yīng)的顯示段。

數(shù)據(jù)處理和路由

來自XADC的原始數(shù)據(jù)是16位寬,但是一個7段的顯示器通常一次只顯示一個數(shù)字。

為了顯示有意義的值,我們對16位數(shù)據(jù)進行切片,只提取高階位,它們代表ADC轉(zhuǎn)換結(jié)果的最高有效數(shù)字。

切片后的數(shù)據(jù)被發(fā)送到七段模塊,在那里被轉(zhuǎn)換成二進制編碼格式(BCD)顯示。

構(gòu)建和編程

一旦編碼階段完成,我們就進入構(gòu)建和編程過程,在此過程中,設(shè)計被合成、實現(xiàn)并轉(zhuǎn)移到FPGA硬件。

步驟1:生成比特流

?在Vivado中,找到左側(cè)面板中的“構(gòu)建和調(diào)試”部分。

?點擊“生成比特流”來啟動這個過程。

?如果出現(xiàn)提示,單擊“Yes”繼續(xù)。

該過程包括三個主要步驟:綜合:將SystemVerilog代碼轉(zhuǎn)換為門級表示。實現(xiàn):將邏輯映射到FPGA的物理資源上。比特流生成:創(chuàng)建將加載到FPGA上的最終二進制文件。

此過程可能需要一些時間,具體取決于設(shè)計的復雜性和系統(tǒng)的性能。

步驟2:連接FPGA板

?一旦比特流成功生成,轉(zhuǎn)到“打開硬件管理器”。

?現(xiàn)在,使用微型USB電纜將FPGA板連接到計算機。確保單板已上電。

?在硬件管理器中,點擊“自動連接”。這將掃描連接的FPGA設(shè)備。將出現(xiàn)檢測到的硬件設(shè)備列表。

步驟3:FPGA編程

?在列表中找到您的FPGA設(shè)備。

?右鍵單擊設(shè)備,選擇“程序設(shè)備”。

?將出現(xiàn)一個對話框,確認要使用的比特流文件(.bit)。

?點擊“Program”將設(shè)計加載到FPGA上。

該程序在FPGA中是臨時的,一旦電源被切斷,它就會回到工廠或以前燒毀的程序。如果您想將程序刻錄到FPGA中,則選擇“程序eFUSE寄存器”,這將刻錄程序,并且在電源周期后不會丟失。

布線

在這個項目中,我使用IO0到IO13引腳連接兩個七段LED顯示屏。這些引腳被分配來控制單個LED段。

連接七段顯示器

?根據(jù)您的設(shè)計將7段LED段連接到IO0-IO13。

?應(yīng)相應(yīng)地連接公共地(用于公共陰極顯示器)或公共電源(VCC)(用于公共陽極顯示器)。

?確保顯示模塊的地與FPGA的地相連,完成電路。

自定義Pin分配

?可以根據(jù)項目需要更改這些pin分配。

?如果修改了pin分配,則必須相應(yīng)地更新約束文件(.xdc)以反映新的連接。

?驗證七段顯示器與FPGA的I/O電壓水平的電壓兼容性(例如,3.3V邏輯用于Arty S7-25)。

連接XADC電位器

?您可以使用任何通用的10K電位器作為模擬輸入設(shè)備。

?連接方式:一端接VCC (3.3V)。另一端到GND。中間(雨刷)引腳到XADC輸入引腳(VAUXP0/VAUXN0,如約束文件中定義)。

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉