今天給大俠帶來基于 FPGA Vivado 信號(hào)發(fā)生器設(shè)計(jì),開發(fā)板實(shí)現(xiàn)使用的是Digilent basys 3。話不多說,上貨。
本篇掌握基于 FPGA Vivado 信號(hào)發(fā)生器設(shè)計(jì),掌握基于添加文件和IP的Vivado工程設(shè)計(jì)流程,掌握基于Tcl的Vivado工程設(shè)計(jì)流程,學(xué)習(xí)信號(hào)發(fā)生器的基本組成結(jié)構(gòu)。
設(shè)計(jì)原理
信號(hào)發(fā)生器能夠產(chǎn)生頻率波形可調(diào)的信號(hào)輸出,目前僅限于1Hz~4999Hz頻率范圍,波形可選擇三角波,方波,鋸齒波,以及正弦波。本系統(tǒng)在Basys3上構(gòu)建了一個(gè)簡(jiǎn)易信號(hào)發(fā)生器,簡(jiǎn)化框圖如下:
原理:首先,通過按鍵設(shè)置波形的頻率,并通過撥碼開關(guān)設(shè)置波形的種類(一共有正弦波、三角波、方波、鋸齒波四種)。頻率值可以通過數(shù)碼管顯示。片上的輸出時(shí)鐘計(jì)算模塊能夠根據(jù)設(shè)置好的頻率值,計(jì)算波形查找表的輸出時(shí)鐘,以及生成查找表的地址。查找表根據(jù)波形選擇模塊,決定輸出何種波形數(shù)據(jù),并在輸出時(shí)鐘的驅(qū)使下,輸出波形數(shù)據(jù)。最后,片上的DA模塊將波形數(shù)據(jù)發(fā)送給外部DA。本設(shè)計(jì)通過Basys3外接Pmod-DA1模塊,進(jìn)行DA輸出。
操作步驟
基于添加文件和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)目命名為‘lab5’,選擇工程保存路徑,勾選‘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和HDL文件
工程建立完畢,我們將所需的IP文件夾(IP_Catalog)和實(shí)驗(yàn)需要使用的HDL文件復(fù)制到已經(jīng)創(chuàng)建的工程文件夾根目錄下:
源文件位于Basys3_workshopsourceslab5SrcHDL_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è)置2路輸出時(shí)鐘(100MHz和50MHz);
5.3.3 在Enable Optional I/O for MMCM/PLL一項(xiàng)中取消勾選‘reset’和‘locked’選項(xiàng);
5.3.4 Vivado會(huì)創(chuàng)建新的文件夾保存配置完成的IP,點(diǎn)擊OK繼續(xù);
5.3.5 彈出Generate Output Products窗口,在Synthesis Options中選擇‘Global’,點(diǎn)擊‘Generate’繼續(xù)。
5.4 同樣的,在IP Catalog窗口中添加Divider Generator,配置如下圖如下圖所示:
5.5 同樣的,依次在IP Catalog窗口中添加debounce和seg7decimal這兩個(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頁(yè)面中選擇‘Add Files’;
6.4 找到lab5根目錄,選中添加下圖所示的2個(gè)HDL文件;
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頁(yè)面中選擇‘Add Files’;
7.4 找到約束文件路徑Basys3_workshopsourceslab5SrcConstraint,選中并添加‘signal_gen.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工具會(huì)提示沒有已經(jīng)實(shí)現(xiàn)的結(jié)果,點(diǎn)擊‘Yes’,Vivado工具會(huì)依次執(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)行下載。
設(shè)計(jì)驗(yàn)證
1.?基于Analog Discovery2
按照下圖連接方式,首先將Pmod-DA1模塊插入在JC口上方,同時(shí)將Analog Discovery2的示波器CH1的輸出引線1+(橙色)和1-(橙白色)分別與Pmod-DA1模塊的A1和GND相連接。
1)?打開WaveForms軟件,連接Analog Discovery2設(shè)備
2)?在左側(cè)的功能選擇欄選擇‘Scope’,使用示波器
3)?打開示波器,點(diǎn)擊左上角‘Run’按鈕,波形輸出如下圖所示:
2.?基于OpenScope
按照下圖連接方式,首先將Pmod-DA1模塊插入在JC口上方,同時(shí)將OpenScope的示波器CH1的輸出引線1+(橙色)和1-(橙白色)分別與Pmod-DA1模塊的A1和GND相連接。
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è)將Time設(shè)置為2ms,找到并展開Osc Ch1(示波器Ch1),保持默認(rèn)參數(shù)設(shè)置,點(diǎn)擊右上角開關(guān)按鈕,打開示波器。
5)?點(diǎn)擊界面右上角的‘RUN’按鈕,開始運(yùn)行。在左側(cè)的示波器中觀察輸出波形結(jié)果。
通過DIGILENT Basys3開發(fā)板右側(cè)的上下左右鍵進(jìn)行頻率調(diào)節(jié),以及利用低兩位的開關(guān)來選擇輸出波形。
編輯:黃飛
評(píng)論
查看更多