0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 2023-07-29 10:06 ? 次閱讀

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

需要源工程可以在以下資料獲取里獲取。

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

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

操作步驟

1.創(chuàng)建新的工程項目

1)雙擊桌面圖標打開Vivado 2017.2,或者選擇開始>所有程序>Xilinx Design Tools> Vivado 2017.2>Vivado 2017.2;

2)點擊‘Create Project’,或者單擊File>New Project創(chuàng)建工程文件;

3)將新的工程項目命名為‘lab2’,選擇工程保存路徑,勾選‘Create project subdirectory’,創(chuàng)建一個新的工程文件夾,點擊Next繼續(xù);

4)選擇新建一個RTL工程,由于本工程無需創(chuàng)建源文件,故將Do not specify sources at this time(不指定添加源文件)勾選上。點擊 Next繼續(xù);

da48431c-2d97-11ee-815d-dac502259ad0.png

5)選擇目標FPGA器件:xc7a35tcpg236-1或Basys3;

6)最后在新工程總結(jié)中,檢查工程創(chuàng)建是否有誤。沒有問題,則點擊Finish,完成新工程的創(chuàng)建;

2.添加已經(jīng)設(shè)計好的IP核

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

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

2)在Project Settings欄中展開IP項,選擇‘Repository’,點擊‘+’添加。

da6f8cd8-2d97-11ee-815d-dac502259ad0.png

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

da8edb24-2d97-11ee-815d-dac502259ad0.png

4)確認彈窗提示一共添加了27個IP核

daae61e2-2d97-11ee-815d-dac502259ad0.png

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

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

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

dadebe8c-2d97-11ee-815d-dac502259ad0.png

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

db05e610-2d97-11ee-815d-dac502259ad0.png

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

db272f6e-2d97-11ee-815d-dac502259ad0.png

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

db44b2be-2d97-11ee-815d-dac502259ad0.png

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

db63f69c-2d97-11ee-815d-dac502259ad0.png

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

db9ed898-2d97-11ee-815d-dac502259ad0.png

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

dbb6d902-2d97-11ee-815d-dac502259ad0.png

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

dbe4c0e2-2d97-11ee-815d-dac502259ad0.png

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

dc0ee3a4-2d97-11ee-815d-dac502259ad0.png

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

dc3fbaf6-2d97-11ee-815d-dac502259ad0.png

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

dc584a94-2d97-11ee-815d-dac502259ad0.png

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

dc755b98-2d97-11ee-815d-dac502259ad0.png

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

dc9c0c02-2d97-11ee-815d-dac502259ad0.png

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

dcd95f30-2d97-11ee-815d-dac502259ad0.png

16)點擊圖紙上方的按鍵,驗證設(shè)計的正確性。

17)通過驗證后,點擊OK繼續(xù)。Ctrl+S保存設(shè)計。

dcf250f8-2d97-11ee-815d-dac502259ad0.png

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

dd10b0c0-2d97-11ee-815d-dac502259ad0.png

19)在彈出窗口中,綜合選項選擇‘Global’,點擊‘Generate’繼續(xù)。

dd3bd3b8-2d97-11ee-815d-dac502259ad0.png

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

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

dd62748c-2d97-11ee-815d-dac502259ad0.png

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

dd86ccba-2d97-11ee-815d-dac502259ad0.png

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

4.添加約束文件

1)在Flow Navigator中,展開PROJECT MANAGER,點擊‘Add Sources’。

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

ddb57056-2d97-11ee-815d-dac502259ad0.png

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

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

1)實驗一已經(jīng)介紹過流程了,為了節(jié)省時間,這里就不一步一步再做贅述了,我們直接在Flow Navigator中展開PROGRAM AND DEBUG,點擊Generate Bitstream。Vivado工具會提示沒有已經(jīng)實現(xiàn)的結(jié)果,點擊‘Yes’,Vivado工具會依次執(zhí)行綜合、實現(xiàn)和生成比特流文件。

ddce970c-2d97-11ee-815d-dac502259ad0.png

2)完成后,選擇‘Open Hardware Manager’打開硬件管理器。

ddfb6ade-2d97-11ee-815d-dac502259ad0.png

3)連接Basys3開發(fā)板,點擊‘Open target’,選擇‘Auto connect’。

de2ae5d4-2d97-11ee-815d-dac502259ad0.png

4)連接完成后,點擊‘Program device’。

de589ba0-2d97-11ee-815d-dac502259ad0.png

5)檢查彈出框中所選中的bit文件,然后點擊Program進行下載。

de6ef56c-2d97-11ee-815d-dac502259ad0.png

6.使用邏輯分析儀驗證結(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口連接。

de949c7c-2d97-11ee-815d-dac502259ad0.png

dec9355e-2d97-11ee-815d-dac502259ad0.png

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

df068314-2d97-11ee-815d-dac502259ad0.png

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

df30770a-2d97-11ee-815d-dac502259ad0.png

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

df6eab9c-2d97-11ee-815d-dac502259ad0.png

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

df8f3a4c-2d97-11ee-815d-dac502259ad0.png

6)在窗口中點擊‘Click to Add channels’,選擇‘Bus’。

dfb962e0-2d97-11ee-815d-dac502259ad0.png

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

dfd817b2-2d97-11ee-815d-dac502259ad0.png

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

dffde37a-2d97-11ee-815d-dac502259ad0.png

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

e0318036-2d97-11ee-815d-dac502259ad0.png

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口連接。

e04e2cd6-2d97-11ee-815d-dac502259ad0.png

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

e080f7ce-2d97-11ee-815d-dac502259ad0.png

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

e0a350b2-2d97-11ee-815d-dac502259ad0.png

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

e0c755f2-2d97-11ee-815d-dac502259ad0.png

5)選擇AGENT。

e0e40da0-2d97-11ee-815d-dac502259ad0.png

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

在本地電腦中,默認值為http://localhost:42135

e0fe29ec-2d97-11ee-815d-dac502259ad0.png

7)選擇連接OpenScope的串口,點擊Open打開串口。

e11a0342-2d97-11ee-815d-dac502259ad0.png

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

e142cfa2-2d97-11ee-815d-dac502259ad0.png

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

e1609f5a-2d97-11ee-815d-dac502259ad0.png

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

e185d9aa-2d97-11ee-815d-dac502259ad0.png

11)點擊右上方的‘SINGLE’按鈕運行一次,完成后在左側(cè)波形圖中可以觀察秒針的輸出,可以使用鼠標拖動波形,方便觀察。

e1b66d90-2d97-11ee-815d-dac502259ad0.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21540

    瀏覽量

    600533
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4838

    瀏覽量

    96855

原文標題:基于 FPGA Vivado 的數(shù)字鐘設(shè)計(附源工程)

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于FPGA vivado 17.2 的數(shù)字鐘設(shè)計

    基于FPGA vivado 17.2 的數(shù)字鐘設(shè)計
    的頭像 發(fā)表于 06-08 09:41 ?1.1w次閱讀
    基于<b class='flag-5'>FPGA</b> <b class='flag-5'>vivado</b> 17.2 的<b class='flag-5'>數(shù)字鐘</b>設(shè)計

    基于FPGA數(shù)字鐘設(shè)計

    基于FPGA數(shù)字鐘設(shè)計
    發(fā)表于 03-16 10:07

    基于FPGA數(shù)字鐘設(shè)計(Verilog語言)源碼

    最近寫了個數(shù)字鐘的程序,可走時,可校時,內(nèi)部模塊化設(shè)計,許多小模塊例如數(shù)碼管掃描,按鍵消抖,系統(tǒng)時鐘分頻等可移植到其他工程,需要的可以下下來看看
    發(fā)表于 08-07 22:26

    基于FPGA的LCD12864顯示的數(shù)字鐘

    求一個基于FPGA的LCD12864顯示的數(shù)字鐘 VHDL或verilog都行
    發(fā)表于 08-22 14:50

    基于FPGA vivado 17.2 的數(shù)字鐘設(shè)計

    基于FPGA vivado 17.2 的數(shù)字鐘設(shè)計目的:熟悉vivado 的開發(fā)流程以及設(shè)計方法附件:
    發(fā)表于 12-13 10:16

    基于FPGA Vivado的流水燈樣例設(shè)計資料分享

    【流水燈樣例】基于 FPGA Vivado數(shù)字鐘設(shè)計前言模擬前言Vivado 設(shè)計流程指導(dǎo)手冊——2013.4密碼:5txi模擬
    發(fā)表于 02-07 08:02

    基于 FPGA Vivado 信號發(fā)生器設(shè)計(工程

    、書籍、源碼、技術(shù)文檔…(2023.07.09更新) 本篇掌握基于 FPGA Vivado 信號發(fā)生器設(shè)計(工程),掌握基
    發(fā)表于 08-15 19:57

    基于 FPGA Vivado 示波器設(shè)計(工程

    今天給大俠帶來基于 FPGA Vivado 示波器設(shè)計,開發(fā)板實現(xiàn)使用的是Digilent basys 3,話不多說,上貨。 需要工程可以在以下資料獲取里獲取。 資料匯總|
    發(fā)表于 08-17 19:31

    基于 FPGA Vivado數(shù)字鐘設(shè)計(工程

    今天給大俠帶來基于 FPGA Vivado數(shù)字鐘設(shè)計,開發(fā)板實現(xiàn)使用的是Digilent basys 3。話不多說,上貨。 需要工程
    發(fā)表于 08-18 21:18

    MicroBlaze串口設(shè)計(工程

    今天給大俠帶來 MicroBlaze 串口設(shè)計,開發(fā)板實現(xiàn)使用的是Digilent basys 3,。話不多說,上貨。需要工程可以在以下資料獲取里獲取。資料匯總|FPGA軟件安裝包、書籍、源碼
    發(fā)表于 08-24 20:13

    基于FPGA和Quartus II的多功能數(shù)字鐘設(shè)計與實現(xiàn)

    本文以FPGA平臺為基礎(chǔ),在QuartusⅡ開發(fā)環(huán)境下設(shè)計開發(fā)多功能數(shù)字鐘。數(shù)字鐘實現(xiàn)計時\校時\整點報時\世界時鐘功能.
    發(fā)表于 12-18 11:51 ?3.6w次閱讀

    華清遠見FPGA代碼-基于NIOSII處理器的數(shù)字鐘設(shè)計

    華清遠見FPGA代碼-基于NIOSII處理器的數(shù)字鐘設(shè)計
    發(fā)表于 10-27 18:07 ?14次下載

    fpga數(shù)字鐘介紹_fpga數(shù)字鐘設(shè)計

    數(shù)字鐘實際上是一個對標準頻率(1HZ)進行計數(shù)的計數(shù)電路。由于計數(shù)的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路,同時標準的1HZ時間信號必須做到準確穩(wěn)定,通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘。
    發(fā)表于 01-15 15:37 ?1.1w次閱讀
    <b class='flag-5'>fpga</b><b class='flag-5'>數(shù)字鐘</b>介紹_<b class='flag-5'>fpga</b><b class='flag-5'>數(shù)字鐘</b>設(shè)計

    FPGA Vivado】基于 FPGA Vivado 的流水燈樣例設(shè)計

    【流水燈樣例】基于 FPGA Vivado數(shù)字鐘設(shè)計前言模擬前言Vivado 設(shè)計流程指導(dǎo)手冊——2013.4密碼:5txi模擬
    發(fā)表于 12-04 13:21 ?26次下載
    【<b class='flag-5'>FPGA</b> <b class='flag-5'>Vivado</b>】基于 <b class='flag-5'>FPGA</b> <b class='flag-5'>Vivado</b> 的流水燈樣例設(shè)計

    FPGA多功能數(shù)字鐘系統(tǒng)原理

    FPGA(可編程邏輯門陣列)是一種集成電路芯片,具有可編程的數(shù)字邏輯功能。多功能數(shù)字鐘系統(tǒng)利用FPGA技術(shù)實現(xiàn)了時鐘的顯示、計時、報時等功能。本文將詳細介紹
    的頭像 發(fā)表于 01-02 16:50 ?1012次閱讀