加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 操作步驟
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于 FPGA Vivado 的數(shù)字鐘設(shè)計(jì)(附源工程)

12/23 12:50
407
閱讀需 13 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大俠好,歡迎來到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。

今天給大俠帶來基于 FPGA Vivado 的數(shù)字鐘設(shè)計(jì),開發(fā)板實(shí)現(xiàn)使用的是Digilent basys 3。話不多說,上貨。

本篇掌握基于diagram的Vivado工程設(shè)計(jì)流程,學(xué)會(huì)使用IP集成器,添加 IP 目錄并調(diào)用其中的IP。本篇實(shí)現(xiàn)了一個(gè)簡單的數(shù)字鐘,能實(shí)現(xiàn)計(jì)時(shí)的功能。由于數(shù)碼管只有4位,因此本數(shù)字鐘只能計(jì)分和秒。本系統(tǒng)的邏輯部分主要由74系列的IP構(gòu)成。

獲取本篇相關(guān)源工程代碼,可在公眾號(hào)內(nèi)回復(fù)“數(shù)字鐘設(shè)計(jì)源工程”,本篇涉及到兩個(gè)操作軟件,分別是“Agent軟件”和“WaveForms軟件”,獲取軟件安裝包,可在公眾號(hào)內(nèi)對(duì)應(yīng)回復(fù)“WaveForms軟件安裝包”,“Agent軟件安裝包”。

操作步驟

1.?創(chuàng)建新的工程項(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)目命名為‘lab2’,選擇工程保存路徑,勾選‘Create project subdirectory’,創(chuàng)建一個(gè)新的工程文件夾,點(diǎn)擊Next繼續(xù);

4)?選擇新建一個(gè)RTL工程,由于本工程無需創(chuàng)建源文件,故將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核

工程建立完畢,我們需要將lab2這個(gè)工程所需的IP目錄文件夾復(fù)制到本工程文件夾下。本工程需要兩個(gè)IP目錄:74LSXX_LIB與Interface。74LSXX_LIB 和Interface都位于Basys3_workshopsourceslab2文件夾下

1)?在Flow Navigator中展開PROJECT MANAGER,選擇‘Settings’。

2)?在Project Settings欄中展開IP項(xiàng),選擇‘Repository’,點(diǎn)擊‘+’添加。

3)?選擇之前復(fù)制的IP文件夾

4)?確認(rèn)彈窗提示一共添加了27個(gè)IP核

3. 創(chuàng)建原理圖,添加IP,進(jìn)行原理圖設(shè)計(jì)。

1)?在Project Navigator下,展開IP INTEGRATOR,選擇‘Create Block Design’創(chuàng)建新的原理圖設(shè)計(jì)。

2)?將新的設(shè)計(jì)命名為‘digital_clock’。

3)?在原理圖設(shè)計(jì)界面中,主要有兩種方式添加IP核:①Diagram窗口上方的快捷鍵;②在原理圖界面中鼠標(biāo)右擊,選擇‘Add IP’。

4)?在IP選擇框中搜索需要添加的IP,例如74LS90。

5)?按Enter鍵,或者鼠標(biāo)雙擊該IP,可以完成添加。本設(shè)計(jì)共需要添加4個(gè)74LS90,以及74LS08、seg7decimal、clk_div各1個(gè)。添加完成后如下圖所示:

6)?添加一個(gè)clock IP,在IP搜索框中搜索‘clock’,選擇‘Clocking Wizard’添加。雙擊IP進(jìn)行配置,在‘Output Clocks’一項(xiàng),設(shè)置輸出時(shí)鐘為兩路100MHz輸出。

7)?在Output Clocks下方,不要勾選‘reset’和‘locked’,點(diǎn)擊OK完成IP配置。

8)?再添加一個(gè)concat IP,在IP搜索欄中搜索‘concat’并添加。雙擊IP進(jìn)行配置,將端口數(shù)設(shè)為16。

9)?同樣的,再添加一個(gè)端口數(shù)為8的concat IP。至此,我們已經(jīng)完成添加本設(shè)計(jì)中所有需要使用的IP。如下圖所示:

10)?創(chuàng)建輸出端口,鼠標(biāo)右鍵選擇8位concat的‘dout[7:0]’引腳,選擇‘Make External’。

11)?完成后,如下圖所示:

12)?同樣的,將seg7decimal IP的clr、a_to_g、an、dp這4個(gè)引腳,以及clock IP的clk_in1引腳,以及任意一個(gè)74ls90 IP的r9_1引腳make external。

13)?修改端口名,雙擊端口‘r9_1’,在左側(cè)的External Port Properties窗格中將其命名為GND。

14)?同樣的,將‘clk_in1’更名為‘clk’,‘dout[7:0]’更名為‘JC[7:0]’,‘a(chǎn)_to_g[6:0]’更名為‘seg[6:0]’,如下圖所示:

15)?按照下圖連線,可以參考‘連線攻略.txt’文件。

16)?點(diǎn)擊圖紙上方的按鍵,驗(yàn)證設(shè)計(jì)的正確性。

17)?通過驗(yàn)證后,點(diǎn)擊OK繼續(xù)。Ctrl+S保存設(shè)計(jì)。

18)?在Sources窗格中鼠標(biāo)右鍵‘digital_clock’,選擇‘Generate Output Products’。

19)?在彈出窗口中,綜合選項(xiàng)選擇‘Global’,點(diǎn)擊‘Generate’繼續(xù)。

20)?完成后,點(diǎn)擊‘OK’繼續(xù)。

21)?在Sources窗格中鼠標(biāo)右鍵‘digital_clock’,選擇‘Create HDL Wrapper’。

22)?使用默認(rèn)選項(xiàng),點(diǎn)擊OK繼續(xù),完成HDL文件的創(chuàng)建。

23)?至此,原理圖的設(shè)計(jì)已經(jīng)完成。

4.?添加約束文件

1)?在Flow Navigator中,展開PROJECT MANAGER,點(diǎn)擊‘Add Sources’。

2)?選擇‘Add or create constraints’,點(diǎn)擊Next繼續(xù)。

3)?選擇‘Add Files’,找到并添加‘Digital_Clock.xdc’文件。注意,要勾選Copy constraints files into project(文件路徑:Basys3_workshopsourceslab2)

5.?綜合、實(shí)現(xiàn)、生成比特流文件

1)?實(shí)驗(yàn)一已經(jīng)介紹過流程了,為了節(jié)省時(shí)間,這里就不一步一步再做贅述了,我們直接在Flow Navigator中展開PROGRAM AND DEBUG,點(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)行下載。

6.?使用邏輯分析儀驗(yàn)證結(jié)果

Analog Discovery2(AD2)

1)?按照下圖接線,將PMOD 1-4口分別連接AD2 0-3數(shù)字I/O口,PMOD 5(GND)口與AD2 GND口連接,PMOD 7-10口分別與AD2 4-7數(shù)字I/O口連接。

2)?連接AD2與電腦,打開WaveForms軟件,獲取WaveForms軟件,可以在公眾號(hào)內(nèi)部回復(fù)“WaveForms軟件安裝包”。

3)?在工具欄選擇Settings>Device Manager,打開設(shè)備管理器。

4)?選擇連接的設(shè)備,點(diǎn)擊‘Select’。

5)?在左側(cè)的功能選擇欄選擇‘Logic’,使用邏輯分析儀。

6)?在窗口中點(diǎn)擊‘Click to Add channels’,選擇‘Bus’。

7)?將DIO 0-3端口添加到Bus1。

8)?同樣的,點(diǎn)擊左上角,將DIO 4-7端口添加到Bus2。完成后,如下圖所示:

9)?點(diǎn)擊‘Run’,觀察數(shù)字時(shí)鐘的秒針輸出。

OpenScope

1)?按照下圖接線,將PMOD 1-4口分別連接OpenScope 1-4數(shù)字I/O口,PMOD 5(GND)口與OpenScope GND口連接,PMOD 7-10口分別與AD2 5-8數(shù)字I/O口連接。

2)?連接OpenScope與電腦,打開Digilent Agent軟件,獲取Agent軟件,可以在公眾號(hào)內(nèi)部回復(fù)“Agent軟件安裝包”。

3)?在Windows工具欄右側(cè),右鍵Digilent Agent圖標(biāo),選擇‘Launch WaveForms Live’,在瀏覽器中打開WaveForms Live。

4)?在瀏覽器頁面中,點(diǎn)擊‘ADD A DEVICE’添加設(shè)備。

5)?選擇AGENT。

6)?輸入設(shè)備的hostname或者IP地址,點(diǎn)擊‘+’按鈕添加。

在本地電腦中,默認(rèn)值為http://localhost:42135

7)?選擇連接OpenScope的串口,點(diǎn)擊Open打開串口。

8)?使用默認(rèn)設(shè)置,在最下方點(diǎn)擊‘DONE’完成添加。

9)?點(diǎn)擊打開添加的設(shè)備,在界面右側(cè)將Time設(shè)置為5s,在Trigger一欄選擇OFF。

10)?在界面右側(cè)找到Digital一項(xiàng),選擇ANALYZER,依次點(diǎn)擊1-8端口。

11)?點(diǎn)擊右上方的‘SINGLE’按鈕運(yùn)行一次,完成后在左側(cè)波形圖中可以觀察秒針的輸出,可以使用鼠標(biāo)拖動(dòng)波形,方便觀察。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

任何技術(shù)的學(xué)習(xí)就好比一個(gè)江湖,對(duì)于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。