www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

介紹

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

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

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

XADC (Xilinx模數轉換器)

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

XADC的主要特性:

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

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

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

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

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

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

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

Vivado:賽靈思的FPGA設計軟件

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

下載安裝程序

訪問AMD/Xilinx官方網站并導航到下載部分。

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

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

安裝過程

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

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

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

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

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

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

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

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

單擊Next繼續(xù)。

步驟2:選擇項目類型

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

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

單擊Next繼續(xù)。

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

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

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

步驟4:選擇FPGA板

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

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

單擊Next,然后單擊Finish以完成設置。

配置XADC

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

步驟1:添加XADC IP核

在Vivado的左側,找到并單擊IP Catalog。

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

選擇“XADC向導”,然后雙擊打開其配置設置。

步驟2:自定義XADC IP

將出現一個對話框,允許您配置XADC核心。

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

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

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

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

步驟3:生成XADC IP核

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

單擊OK關閉自定義窗口。

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

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

代碼

ConstrainFile

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

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

七段模塊

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

高層模塊

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

頂層模塊的角色

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

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

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

初始化模塊實例

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

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

時鐘輸入(用于同步)

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

輸出控制七段顯示

實例化XADC模塊

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

實例化七段顯示模塊

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

數據處理和路由

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

為了顯示有意義的值,我們對16位數據進行切片,只提取高階位,它們代表ADC轉換結果的最高有效數字。

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

構建和編程

一旦編碼階段完成,我們就進入構建和編程過程,在此過程中,設計被合成、實現并轉移到FPGA硬件。

步驟1:生成比特流

?在Vivado中,找到左側面板中的“構建和調試”部分。

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

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

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

此過程可能需要一些時間,具體取決于設計的復雜性和系統的性能。

步驟2:連接FPGA板

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

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

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

步驟3:FPGA編程

?在列表中找到您的FPGA設備。

?右鍵單擊設備,選擇“程序設備”。

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

?點擊“Program”將設計加載到FPGA上。

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

布線

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

連接七段顯示器

?根據您的設計將7段LED段連接到IO0-IO13。

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

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

自定義Pin分配

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

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

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

連接XADC電位器

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

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

本文編譯自hackster.io

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