今天給大俠帶來基于 FPGA Vivado 信號發生器設計,開發板實現使用的是Digilent basys 3。話不多說,上貨。
本篇掌握基于 FPGA Vivado 信號發生器設計,掌握基于添加文件和IP的Vivado工程設計流程,掌握基于Tcl的Vivado工程設計流程,學習信號發生器的基本組成結構。
設計原理
信號發生器能夠產生頻率波形可調的信號輸出,目前僅限于1Hz~4999Hz頻率范圍,波形可選擇三角波,方波,鋸齒波,以及正弦波。本系統在Basys3上構建了一個簡易信號發生器,簡化框圖如下:
原理:首先,通過按鍵設置波形的頻率,并通過撥碼開關設置波形的種類(一共有正弦波、三角波、方波、鋸齒波四種)。頻率值可以通過數碼管顯示。片上的輸出時鐘計算模塊能夠根據設置好的頻率值,計算波形查找表的輸出時鐘,以及生成查找表的地址。查找表根據波形選擇模塊,決定輸出何種波形數據,并在輸出時鐘的驅使下,輸出波形數據。最后,片上的DA模塊將波形數據發送給外部DA。本設計通過Basys3外接Pmod-DA1模塊,進行DA輸出。
操作步驟
基于添加文件和IP
1.?新建工程項目
1)?雙擊桌面圖標打開Vivado 2017.2,或者選擇開始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2;
2)?點擊‘Create Project’,或者單擊File>New Project創建工程文件;
3)?將新的工程項目命名為‘lab5’,選擇工程保存路徑,勾選‘Create project subdirectory’,創建一個新的工程文件夾,點擊Next繼續;
4)?選擇新建一個RTL工程,勾選Do not specify sources at this time(不指定添加源文件),先不添加源文件。點擊 Next繼續;
5)?選擇目標FPGA器件:xc7a35tcpg236-1或Basys3;
6)?最后在新工程總結中,檢查工程創建是否有誤。沒有問題,則點擊Finish,完成新工程的創建。
2.?添加已經設計好的IP和HDL文件
工程建立完畢,我們將所需的IP文件夾(IP_Catalog)和實驗需要使用的HDL文件復制到已經創建的工程文件夾根目錄下:
源文件位于Basys3_workshopsourceslab5SrcHDL_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’,設置2路輸出時鐘(100MHz和50MHz);
5.3.3 在Enable Optional I/O for MMCM/PLL一項中取消勾選‘reset’和‘locked’選項;
5.3.4 Vivado會創建新的文件夾保存配置完成的IP,點擊OK繼續;
5.3.5 彈出Generate Output Products窗口,在Synthesis Options中選擇‘Global’,點擊‘Generate’繼續。
5.4 同樣的,在IP Catalog窗口中添加Divider Generator,配置如下圖如下圖所示:
5.5 同樣的,依次在IP Catalog窗口中添加debounce和seg7decimal這兩個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 找到lab5根目錄,選中添加下圖所示的2個HDL文件;
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_workshopsourceslab5SrcConstraint,選中并添加‘signal_gen.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進行下載。
設計驗證
1.?基于Analog Discovery2
按照下圖連接方式,首先將Pmod-DA1模塊插入在JC口上方,同時將Analog Discovery2的示波器CH1的輸出引線1+(橙色)和1-(橙白色)分別與Pmod-DA1模塊的A1和GND相連接。
1)?打開WaveForms軟件,連接Analog Discovery2設備
2)?在左側的功能選擇欄選擇‘Scope’,使用示波器
3)?打開示波器,點擊左上角‘Run’按鈕,波形輸出如下圖所示:
2.?基于OpenScope
按照下圖連接方式,首先將Pmod-DA1模塊插入在JC口上方,同時將OpenScope的示波器CH1的輸出引線1+(橙色)和1-(橙白色)分別與Pmod-DA1模塊的A1和GND相連接。
1)?打開Digilent Agent;
2)?在Windows工具欄右側,右鍵Digilent Agent圖標,選擇‘Launch WaveForms Live’,在瀏覽器中打開WaveForms Live;
3)?選擇在實驗二中已經添加的設備,點擊連接該設備;
4)?在界面右側將Time設置為2ms,找到并展開Osc Ch1(示波器Ch1),保持默認參數設置,點擊右上角開關按鈕,打開示波器。
5)?點擊界面右上角的‘RUN’按鈕,開始運行。在左側的示波器中觀察輸出波形結果。
通過DIGILENT Basys3開發板右側的上下左右鍵進行頻率調節,以及利用低兩位的開關來選擇輸出波形。
編輯:黃飛
評論
查看更多