
今天給大俠帶來基于 FPGAVivado 示波器設計,開發板實現使用的是Digilent basys 3,話不多說,上貨。
(資料圖片)
需要源工程可以在以下資料獲取里獲取。
資料匯總|FPGA軟件安裝包、書籍、源碼、技術文檔…(2023.07.09更新)
原理介紹
數字存儲示波器能夠將模擬信號進行采樣、存儲以及顯示。本系統在DIGILENT Basys3上構建了一個簡易數字存儲示波器,簡化框圖如下:
原理:首先,AD模塊對模擬信號進行采樣,觸發電路根據采樣信號判斷觸發條件(例如:上升沿觸發)。滿足觸發條件后,連續采樣一定數量的點(本系統中為640個點),存儲到RAM中。峰峰值、頻率計算模塊對RAM中儲存的波形數據進行計算,得到波形的頻率以及峰峰值;VGA模塊將波形顯示出來,并顯示計算得到的峰峰值和頻率數值。
本篇通過調用DIGILENT Basys3板上芯片中的ADC模塊,對外部電壓信號進行采樣、存儲,并通過VGA顯示器將波形顯示出來。在DIGILENT Basys3上電之前,需要提前將DIGILENT Basys3與VGA連接好,并準備好一臺信號發生器。
操作步驟
一、基于添加文件和IP
1.新建工程項目
1)雙擊桌面圖標打開Vivado 2017.2,或者選擇開始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2;
2)點擊‘Create Project’,或者單擊File>New Project創建工程文件;
3)將新的工程項目命名為‘lab4’,選擇工程保存路徑,勾選‘Create project subdirectory’,創建一個新的工程文件夾,點擊Next繼續;
4)選擇新建一個RTL工程,勾選Do not specify sources at this time(不指定添加源文件),先不添加源文件。點擊 Next繼續;
5)選擇目標FPGA器件:xc7a35tcpg236-1或Basys3;
6)最后在新工程總結中,檢查工程創建是否有誤。沒有問題,則點擊Finish,完成新工程的創建。
2.添加已經設計好的IP和源文件
工程建立完畢,我們將設計所需的IP文件夾(IP_Catalog)和實驗需要使用的HDL(Verilog)文件復制到已經創建的工程文件夾根目錄下:
源文件位于Basys3_workshopsourceslab4SrcHDL_source
復制完成后,如下圖所示:
1)在Vivado界面左側Flow Navigator中展開PROJECT MANAGER,選擇‘Settings’;
2)彈出窗口中,在左側Project Settings中展開IP一項,選擇‘Repository’,點擊右側的添加IP;
3)選擇復制到工程文件夾根目錄下的IP文件夾;
4)點擊OK完成添加。
5)添加IP至工程
5.1 在Flow Navigator中展開PROJECT MANAGER,選擇IP Catalog;
5.2 在右側IP Catalog窗口的搜索框中搜索‘clocking’,雙擊‘Clocking Wizard’開始配置IP;
5.3配置IP
5.3.1將IP的名字由‘clk_wiz_0’修改為‘clock’
5.3.2選擇‘Output Clocks’,設置7路輸出時鐘(100MHz、25MHz、12.5MHz、25MHz、50MHz、75MHz、100MHz)
5.3.3在Enable Optional I/O for MMCM/PLL一項中取消勾選‘reset’和‘locked’選項
5.3.4Vivado會創建新的文件夾保存配置完成的IP,點擊OK繼續
5.3.5 彈出GenerateOutput Products窗口,在Synthesis Options中選擇‘Global’,點擊‘Generate’繼續。
5.4 同樣的,依次在IP Catalog窗口中添加debounce、vga和xadc三個IP,使用默認IP設置,無需另外配置,并且Generate Output Products,完成后Sources窗格中如下圖所示:
6)添加HDL文件至工程
6.1在Flow Navigator中展開PROJECT MANAGER,選擇Add Sources
6.2在導向窗口中選擇‘Add or create design sources’,點擊Next繼續
6.3在Add or Create Design Sources頁面中選擇‘Add Files’
6.4 找到lab4根目錄,選中添加所有9個Verilog文件。
6.5 勾選‘Copy sources into project’,點擊Finish完成添加。
6.6 完成后Sources窗格中如下圖所示:
7)添加物理約束(XDC)文件
7.1 在Flow Navigator中展開PROJECT MANAGER,選擇Add Sources;
7.2 在導向窗口中選擇‘Add or create constraints’,點擊Next繼續;
7.3 在Add or Create Design Sources頁面中選擇‘Add Files’;
7.4 找到約束文件路徑Basys3_workshopsourceslab4SrcConstraint,選中并添加‘oscilloscope.xdc’文件;
7.5 勾選‘Copy sources into project’,點擊Finish完成添加。
3.綜合、實現、生成比特流文件
1)在左側Flow Navigator中依次點擊‘Run Synthesis’、‘Run Implementation’和‘Generate Bitstream’執行綜合、實現和生成比特流文件操作。或者,可以直接點擊‘Generate Bitstream’,Vivado工具會提示沒有已經實現的結果,點擊‘Yes’,Vivado工具會依次執行綜合、實現和生成比特流文件。
2)完成后,選擇‘Open Hardware Manager’打開硬件管理器。
3)連接Basys3開發板,點擊‘Open target’,選擇‘Auto connect’。
4)連接完成后,點擊‘Program device’。
5)檢查彈出框中所選中的bit文件,然后點擊Program進行下載。
二、基于Tcl
1.運行Tcl,創建新的工程
1)打開Vivado 2017.2,在界面底部Tcl命令框輸入命令;
2)使用‘cd’命令,進入Oscilloscope.tcl文件所在路徑。參考路徑:C:Basys3_workshopsourceslab4SrcTcl,在Tcl命令框輸入:cd C:/Basys3_workshop/sources/lab4/Src/Tcl (注意:Vivado使用‘/’);
3)在Tcl命令框中,輸入命令:source ./ Oscilloscope.tcl。輸入完畢按回車,運行Tcl;
4)等待Tcl綜合、實現、生成比特流文件;
5)在Flow Navigator中,展開PROGRAM AND DEBUG,點擊Open Hardware Manager,點擊Open target>Auto Connect 連接Basys3;
6)點擊Program device,選擇生成的比特流文件開始下載。
設計驗證
待比特流文件下載完成后,可以將信號發生器的探頭連接至Basys3 的JXADC的P極,并將JXADC的N極連接信號發生器的地。本實驗,簡易示波器的可測電壓范圍為 0-1V,頻率為 4KHz 以下。可以在VGA上觀測波形。如果波形顯示比較密集,那就需要更改采樣時鐘,通過按Basys3開發板上的BTNC按鍵來改變采樣時鐘,以此來改變波形顯示密集程度。
1.基于AnalogDiscovery2
按照下圖連接方式,將Analog Discovery2的波形發生器的輸出引線W1(黃色)和W2(黃白色)與Basys3的JXADC的pin1和pin7相連接。
1)打開WaveForms軟件,連接Analog Discovery2設備
2)在左側的功能選擇欄選擇‘Wavegen’,使用波形發生器。
3)根據本實驗示波器設計的輸入標準,將波形幅值設置為400mV,直流偏移量設置為500mV,輸入的頻率可以選擇為100H~5kHz之間
4)點擊左上角‘Run All’開始運行。按下Basys3開發板上BTNC按鈕進行采樣頻率調節,在VGA顯示器上觀察輸出結果
2.基于OpenScope
按照下圖連接方式,將OpenScope的波形發生器的輸出引線W1(黃色)與Basys3的JXADC的pin1相連接。
1)打開Digilent Agent
2)在Windows工具欄右側,右鍵Digilent Agent圖標,選擇‘Launch WaveForms Live’,在瀏覽器中打開WaveForms Live。
3)選擇在實驗二中已經添加的設備,點擊連接該設備
4)在右側找到并展開Wavegen(波形發生器),按以下參數進行配置:
選擇正弦波
Frequency:2 kHz
Amplitude:1 Vpp
DC Offset:1.4 V
5)點擊右上角開關按鈕,打開波形發生器。
6)在VGA顯示器上觀察輸出結果,可以使用Basys3開發板上BTNC按鈕進行采樣頻率調節。
編輯:黃飛
標簽: