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