今天給大俠帶來基于 FPGA Vivado 的數字鐘設計,開發板實現使用的是Digilent basys 3。話不多說,上貨。
需要源工程可以在以下資料獲取里獲取。
本篇掌握基于diagram的Vivado工程設計流程,學會使用IP集成器,添加 IP 目錄并調用其中的IP。本篇實現了一個簡單的數字鐘,能實現計時的功能。由于數碼管只有4位,因此本數字鐘只能計分和秒。本系統的邏輯部分主要由74系列的IP構成。
獲取本篇相關源工程代碼,可在公眾號內回復“數字鐘設計源工程”,本篇涉及到兩個操作軟件,分別是“Agent軟件”和“WaveForms軟件”,獲取軟件安裝包,可在公眾號內對應回復“WaveForms軟件安裝包”,“Agent軟件安裝包”。
操作步驟
1.創建新的工程項目
1)雙擊桌面圖標打開Vivado 2017.2,或者選擇開始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2;
2)點擊‘Create Project’,或者單擊File>New Project創建工程文件;
3)將新的工程項目命名為‘lab2’,選擇工程保存路徑,勾選‘Create project subdirectory’,創建一個新的工程文件夾,點擊Next繼續;
4)選擇新建一個RTL工程,由于本工程無需創建源文件,故將Do not specify sources at this time(不指定添加源文件)勾選上。點擊 Next繼續;
5)選擇目標FPGA器件:xc7a35tcpg236-1或Basys3;
6)最后在新工程總結中,檢查工程創建是否有誤。沒有問題,則點擊Finish,完成新工程的創建;
2.添加已經設計好的IP核
工程建立完畢,我們需要將lab2這個工程所需的IP目錄文件夾復制到本工程文件夾下。本工程需要兩個IP目錄:74LSXX_LIB與Interface。74LSXX_LIB 和Interface都位于Basys3_workshopsourceslab2文件夾下
1)在Flow Navigator中展開PROJECT MANAGER,選擇‘Settings’。
2)在Project Settings欄中展開IP項,選擇‘Repository’,點擊‘+’添加。
3)選擇之前復制的IP文件夾
4)確認彈窗提示一共添加了27個IP核
3. 創建原理圖,添加IP,進行原理圖設計。
1)在Project Navigator下,展開IP INTEGRATOR,選擇‘Create Block Design’創建新的原理圖設計。
2)將新的設計命名為‘digital_clock’。
3)在原理圖設計界面中,主要有兩種方式添加IP核:①Diagram窗口上方的快捷鍵;②在原理圖界面中鼠標右擊,選擇‘Add IP’。
4)在IP選擇框中搜索需要添加的IP,例如74LS90。
5)按Enter鍵,或者鼠標雙擊該IP,可以完成添加。本設計共需要添加4個74LS90,以及74LS08、seg7decimal、clk_div各1個。添加完成后如下圖所示:
6)添加一個clock IP,在IP搜索框中搜索‘clock’,選擇‘Clocking Wizard’添加。雙擊IP進行配置,在‘Output Clocks’一項,設置輸出時鐘為兩路100MHz輸出。
7)在Output Clocks下方,不要勾選‘reset’和‘locked’,點擊OK完成IP配置。
8)再添加一個concat IP,在IP搜索欄中搜索‘concat’并添加。雙擊IP進行配置,將端口數設為16。
9)同樣的,再添加一個端口數為8的concat IP。至此,我們已經完成添加本設計中所有需要使用的IP。如下圖所示:
10)創建輸出端口,鼠標右鍵選擇8位concat的‘dout[7:0]’引腳,選擇‘Make External’。
11)完成后,如下圖所示:
12)同樣的,將seg7decimal IP的clr、a_to_g、an、dp這4個引腳,以及clock IP的clk_in1引腳,以及任意一個74ls90 IP的r9_1引腳make external。
13)修改端口名,雙擊端口‘r9_1’,在左側的External Port Properties窗格中將其命名為GND。
14)同樣的,將‘clk_in1’更名為‘clk’,‘dout[7:0]’更名為‘JC[7:0]’,‘a_to_g[6:0]’更名為‘seg[6:0]’,如下圖所示:
15)按照下圖連線,可以參考‘連線攻略.txt’文件。
16)點擊圖紙上方的按鍵,驗證設計的正確性。
17)通過驗證后,點擊OK繼續。Ctrl+S保存設計。
18)在Sources窗格中鼠標右鍵‘digital_clock’,選擇‘Generate Output Products’。
19)在彈出窗口中,綜合選項選擇‘Global’,點擊‘Generate’繼續。
20)完成后,點擊‘OK’繼續。
21)在Sources窗格中鼠標右鍵‘digital_clock’,選擇‘Create HDL Wrapper’。
22)使用默認選項,點擊OK繼續,完成HDL文件的創建。
23)至此,原理圖的設計已經完成。
4.添加約束文件
1)在Flow Navigator中,展開PROJECT MANAGER,點擊‘Add Sources’。
2)選擇‘Add or create constraints’,點擊Next繼續。
3)選擇‘Add Files’,找到并添加‘Digital_Clock.xdc’文件。注意,要勾選Copy constraints files into project(文件路徑:Basys3_workshopsourceslab2)
5.綜合、實現、生成比特流文件
1)實驗一已經介紹過流程了,為了節省時間,這里就不一步一步再做贅述了,我們直接在Flow Navigator中展開PROGRAM AND DEBUG,點擊Generate Bitstream。Vivado工具會提示沒有已經實現的結果,點擊‘Yes’,Vivado工具會依次執行綜合、實現和生成比特流文件。
2)完成后,選擇‘Open Hardware Manager’打開硬件管理器。
3)連接Basys3開發板,點擊‘Open target’,選擇‘Auto connect’。
4)連接完成后,點擊‘Program device’。
5)檢查彈出框中所選中的bit文件,然后點擊Program進行下載。
6.使用邏輯分析儀驗證結果
Analog Discovery2(AD2)
1)按照下圖接線,將PMOD 1-4口分別連接AD2 0-3數字I/O口,PMOD 5(GND)口與AD2 GND口連接,PMOD 7-10口分別與AD2 4-7數字I/O口連接。
2)連接AD2與電腦,打開WaveForms軟件,獲取WaveForms軟件,可以在公眾號內部回復“WaveForms軟件安裝包”。
3)在工具欄選擇Settings>Device Manager,打開設備管理器。
4)選擇連接的設備,點擊‘Select’。
5)在左側的功能選擇欄選擇‘Logic’,使用邏輯分析儀。
6)在窗口中點擊‘Click to Add channels’,選擇‘Bus’。
7)將DIO 0-3端口添加到Bus1。
8)同樣的,點擊左上角,將DIO 4-7端口添加到Bus2。完成后,如下圖所示:
9)點擊‘Run’,觀察數字時鐘的秒針輸出。
OpenScope
1)按照下圖接線,將PMOD 1-4口分別連接OpenScope 1-4數字I/O口,PMOD 5(GND)口與OpenScope GND口連接,PMOD 7-10口分別與AD2 5-8數字I/O口連接。
2)連接OpenScope與電腦,打開Digilent Agent軟件,獲取Agent軟件,可以在公眾號內部回復“Agent軟件安裝包”。
3)在Windows工具欄右側,右鍵Digilent Agent圖標,選擇‘Launch WaveForms Live’,在瀏覽器中打開WaveForms Live。
4)在瀏覽器頁面中,點擊‘ADD A DEVICE’添加設備。
5)選擇AGENT。
6)輸入設備的hostname或者IP地址,點擊‘+’按鈕添加。
在本地電腦中,默認值為http://localhost:42135
7)選擇連接OpenScope的串口,點擊Open打開串口。
8)使用默認設置,在最下方點擊‘DONE’完成添加。
9)點擊打開添加的設備,在界面右側將Time設置為5s,在Trigger一欄選擇OFF。
10)在界面右側找到Digital一項,選擇ANALYZER,依次點擊1-8端口。
11)點擊右上方的‘SINGLE’按鈕運行一次,完成后在左側波形圖中可以觀察秒針的輸出,可以使用鼠標拖動波形,方便觀察。
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605976 -
開發板
+關注
關注
25文章
5121瀏覽量
98187
原文標題:基于 FPGA Vivado 的數字鐘設計(附源工程)
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論