在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>帶有初始化信號的0-9加/減計數(shù)器

帶有初始化信號的0-9加/減計數(shù)器

2023-06-16 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

目標:該項目的主要目標是展示高級綜合設(shè)計流程在實現(xiàn)數(shù)字系統(tǒng)中的能力和能力。

由于這是我在 hackster 中的第一個項目,因此我嘗試逐步解釋所有細節(jié)。如果您有興趣學(xué)習(xí)高級合成技術(shù)來設(shè)計數(shù)字系統(tǒng),請參閱此處

項目描述:在這個項目中,我將設(shè)計一個帶有初始化信號的 0-9 加/減計數(shù)器。圖 1 顯示了該項目的概覽。

?
poYBAGN6wVCAOB5iAABrgwsi9yE138.png
圖1
?

為了實現(xiàn)這個項目,我使用了 Vivado Design Suite – HLx Editions 提供的 Xilinx HLS 平臺。此外,我將使用 Basys 3 評估板作為目標 FPGA 平臺。圖 2 顯示了板上最終遞增/遞減計數(shù)器的布局。右側(cè)的 7 段顯示計數(shù)器。UP 按鈕用于向上計數(shù),DOWN 按鈕用于向下計數(shù)。INIT 按鈕初始化計數(shù)器。用“INIT value”表示的四個滑動開關(guān)用于輸入初始化編號。此外,四個 LED 顯示該值。

?
pYYBAGN6wVWAeoq_AALP5clvVuw339.png
圖 2
?

我們分三個階段來實施這個項目:C/C++ 描述邏輯綜合電路板編程

第 1 階段:C/C++ 描述(Vivado-HLS 項目)

1- 運行 Vivado-HLS IDE 并創(chuàng)建一個新項目。

?
pYYBAGN6wVeAFRcCAACPUwUZDus670.png
圖 3
?

2- 在創(chuàng)建新項目向?qū)У牡谝豁撝校迦搿癱ounter-vhls”作為項目名稱,并為項目文件選擇適當?shù)奈恢谩?/font>

?
poYBAGN6wVmACRJNAABWdYlrjic637.png
圖 4
?

3-選擇“計數(shù)器”作為頂級功能名稱。

?
poYBAGN6wVuAPGkiAABhFpuH9As097.png
圖 5
?

4- 在“解決方案配置”頁面中,單擊省略號按鈕選擇 FPGA 平臺。

?
pYYBAGN6wV2Abus6AABgpYGWUQo175.png
圖 6
?

5- 設(shè)備選擇對話框?qū)⒋蜷_。點擊Boards,找到digilent vendor,選擇Basys3 board,點擊OK。

?
poYBAGN6wWCAM403AAB-PVTSncQ952.png
圖 7
?

6- 在 Source 文件夾下創(chuàng)建兩個名為“counter.cpp”和“counter.h”的新文件。

7- 在 Test Bench 文件夾下創(chuàng)建兩個名為“counter-tb.cpp”和“counter-tb.h”的新文件。

?
poYBAGN6wWKATxoQAACSUzsSpHE174.png
圖 8
?

8-讓我們編寫設(shè)計頭文件如下。如下圖所示,該文件中的代碼分為三個部分:

1- 首先,由于我們要使用 HLS 任意精度數(shù)據(jù)類型,我們應(yīng)該包含“ap_int.h”頭文件。2- 其次,我們定義了一些稍后在設(shè)計中使用的數(shù)據(jù)類型 3- 最后,我們定義了一個常量數(shù)組,用于保存對應(yīng)于從 0 到 9 的數(shù)字的 7 段代碼。

?
pYYBAGN6wWSAaI_2AACAG-Zfjkw249.png
圖 9
?

9- 設(shè)計源文件包含頂層功能描述。它由八個部分組成。

1-頂級函數(shù)參數(shù):該函數(shù)包含三個輸入和兩個輸出參數(shù)

init_value變量包含計數(shù)器初始值。

reset_counter變量確定何時應(yīng)該初始化計數(shù)器。當它為 1 時,計數(shù)器獲取init_value參數(shù)中的值。

push_buttons變量確定向上或向下計數(shù)

Seven_segments_data變量包含對應(yīng)于計數(shù)器狀態(tài)的 7 段代碼

Seven_segments_enable變量啟用目標 7 段。

2-端口接口:本節(jié)定義與頂級函數(shù)參數(shù)對應(yīng)的端口接口。這些接口定義了實現(xiàn)參數(shù)數(shù)據(jù)事務(wù)的硬件結(jié)構(gòu)。由于我們有一個簡單的設(shè)計,并且我們希望簡單的電線實現(xiàn)參數(shù),我選擇了ap_none作為接口模式。

3-聲明變量:在這里,我聲明了一些要在設(shè)計中使用的變量。如果按下 UP 按鈕,up_count 變量將為1 如果按下 DOWN 按鈕,則 down_count 將為1 up_presseddown_pressed被聲明為靜態(tài)變量以保存按鈕的歷史記錄。number變量保持計數(shù)器狀態(tài),因此定義為靜態(tài)變量。

4-設(shè)置輸出:此部分將 INIT 值發(fā)送到 LED 并啟用右側(cè) 7 段。

5-初始化:如果reset_counter信號被激活,這個if 語句初始化計數(shù)器狀態(tài)。

6-向上計數(shù):這部分由兩個if 語句組成第一個檢查是否按下了向上按鈕。第二個if檢查 UP 按鈕是否已被釋放。

7-向下計數(shù):這部分與向上計數(shù)部分非常相似。

8- 7 段碼:最后一段發(fā)出計數(shù)器狀態(tài)對應(yīng)的 7 段碼。

?
poYBAGN6wWaAT6AnAAEgqfPg46o486.png
圖 10
?

10- 現(xiàn)在,我們需要一個 C/C++ 測試平臺來測試設(shè)計。可以在此處找到測試臺文件測試臺分為三個步驟:

— 生成測試向量, — 將測試向量應(yīng)用于設(shè)計, — 最后,將硬件輸出與黃金模型的輸出進行比較并報告任何差異

11- 現(xiàn)在我們可以通過單擊工具欄中的圖標來運行 C 模擬

?
pYYBAGN6wWmAI7s4AACEkfmnmYI440.png
圖 11
?

12-成功完成C-Simulation后,我們可以運行高級綜合。

?
poYBAGN6wWuAKa0QAACEDBZt4xo391.png
圖 12
?

圖 13 顯示了綜合報告的部分內(nèi)容。它有三個主要部分:

1- 時序信息 2- 資源利用 3- 端口接口

?
poYBAGN6wW2Ae2EkAAEoBcMcA6w782.png
圖 13
?

13- 最后,我們應(yīng)該通過單擊其圖標來生成和導(dǎo)出設(shè)計 RTL-IP。

?
pYYBAGN6wW-AOefpAACC4k6zbDg667.png
圖 14
?

第 2 階段:邏輯綜合(Vivado 項目)

現(xiàn)在,我們已準備好進行邏輯綜合和生成 FPGA 比特流。

1-創(chuàng)建一個名為counter-vivado的新Vivado項目。請注意,該項目沒有任何源文件。

?
pYYBAGN6wXKAM-uSAACBt012Prs576.png
圖 15
?

2- 不要忘記選擇 Basys-3 板作為目標 FPGA。

?
pYYBAGN6wXSADRCKAACeY22hizo218.png
圖 16
?

3-創(chuàng)建一個新的塊設(shè)計

?
poYBAGN6wXaAf3XUAAB0b0FhqgI338.png
圖 17
?

4-右鍵單擊圖表區(qū)域內(nèi)的某處并選擇“IP設(shè)置...”選項

5-然后單擊設(shè)置對話框中IP下的存儲庫選項。然后點擊右側(cè)的加號,瀏覽到counter HLS項目文件夾。Vivado 在文件夾中搜索任何可能的 IP 并將其添加到其存儲庫中。

?
poYBAGN6wXiAGe2xAAC-yGE6pLc013.png
圖 18
?

6- 右鍵單擊??圖表區(qū)域內(nèi)的某處并選擇“添加..”選項。然后搜索計數(shù)器 IP 并將其添加到 vivado 項目中。

?
poYBAGN6wXuAKGrLAABCezyevzM476.png
圖 19
?

17- 單擊圖表區(qū)域頂部的“運行連接自動化”。

?
pYYBAGN6wX2Acn7EAADBculMvVI988.png
圖 20
?

18- 再次單擊圖表區(qū)域頂部的“運行連接自動化”。

?
poYBAGN6wX-AZC5AAAB75I6KA3E852.png
圖 21
?

9- 在我們的計數(shù)器 IP 上選擇未連接的端口并將它們設(shè)為外部(右鍵單擊端口名稱,您將在下拉菜單中看到“設(shè)為外部”選項)。

10-您可以通過選擇端口并使用“外部端口屬性”窗口來重命名端口。

?
pYYBAGN6wYGAIp-8AAB8kHG2S3g802.png
圖 22
?
init_counter_V_0 -----------> init_counter
push_buttons_V_0------------> push_buttons
init_value_V_0--------------> init_value
init_counter----------------> init_counter
leds_V_0--------------------> leds
seven_segments_data_V_0 ----> seven_segments_data
seven_segments_enable_V_0---> seven_segments_enable
?
poYBAGN6wYSAO6dKAABXyS6la4w542.png
圖 23
?

11- 現(xiàn)在創(chuàng)建一個約束文件,并添加以下約束以將 IP 端口連接到具有適當 I/O 標準的 FPGA 引腳。

## Switches
set_property PACKAGE_PIN V17 [get_ports {init_value[0]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {init_value[0]}]
set_property PACKAGE_PIN V16 [get_ports {init_value[1]}] 
set_property IOSTANDARD LVCMOS33 [get_ports {init_value[1]}]
set_property PACKAGE_PIN W16 [get_ports {init_value[2]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {init_value[2]}]
set_property PACKAGE_PIN W17 [get_ports {init_value[3]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {init_value[3]}]

# LEDs
set_property PACKAGE_PIN U16 [get_ports {leds[0]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {leds[0]}]
set_property PACKAGE_PIN E19 [get_ports {leds[1]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {leds[1]}]
set_property PACKAGE_PIN U19 [get_ports {leds[2]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {leds[2]}]
set_property PACKAGE_PIN V19 [get_ports {leds[3]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {leds[3]}]

#7 segment display
set_property PACKAGE_PIN W7 [get_ports {seven_segments_data[0]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_data[0]}]
set_property PACKAGE_PIN W6 [get_ports {seven_segments_data[1]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_data[1]}]
set_property PACKAGE_PIN U8 [get_ports {seven_segments_data[2]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_data[2]}]
set_property PACKAGE_PIN V8 [get_ports {seven_segments_data[3]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_data[3]}]
set_property PACKAGE_PIN U5 [get_ports {seven_segments_data[4]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_data[4]}]
set_property PACKAGE_PIN V5 [get_ports {seven_segments_data[5]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_data[5]}]
set_property PACKAGE_PIN U7 [get_ports {seven_segments_data[6]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_data[6]}]
set_property PACKAGE_PIN V7 [get_ports seven_segments_data[7]]?
set_property IOSTANDARD LVCMOS33 [get_ports seven_segments_data[7]]
set_property PACKAGE_PIN U2 [get_ports {seven_segments_enable[0]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_enable[0]}]
set_property PACKAGE_PIN U4 [get_ports {seven_segments_enable[1]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_enable[1]}]
set_property PACKAGE_PIN V4 [get_ports {seven_segments_enable[2]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_enable[2]}]
set_property PACKAGE_PIN W4 [get_ports {seven_segments_enable[3]}]?
set_property IOSTANDARD LVCMOS33 [get_ports {seven_segments_enable[3]}]

#Buttons
set_property PACKAGE_PIN T18 [get_ports push_buttons[0]]?
set_property IOSTANDARD LVCMOS33 [get_ports push_buttons[0]]
set_property PACKAGE_PIN W19 [get_ports init_counter[0]]?
set_property IOSTANDARD LVCMOS33 [get_ports init_counter[0]]
set_property PACKAGE_PIN U17 [get_ports push_buttons[1]]?
set_property IOSTANDARD LVCMOS33 [get_ports push_buttons[1]]

12- 現(xiàn)在右鍵單擊圖表區(qū)域內(nèi)的某處并選擇“驗證設(shè)計”選項。

13-成功驗證設(shè)計后,右鍵單擊“Design Sources”文件夾下的“ design_1 ”并選擇“Generate Output Products...”

?
pYYBAGN6wYeAJ8H3AADEt3_bpS8664.png
圖 24
?

14- 然后,再次右鍵單擊“Design Sources”文件夾下的“design_1”并選擇“Create HDL Wrapper...”

15- 現(xiàn)在單擊左側(cè) Flow Navigator 中 PROGRAM and DEBUG 下的“Generate Bitstream”選項。

?
poYBAGN6wYmAYYabAAGJcB8K-mc927.png
圖 25
?

第 3 階段:電路板編程

1- 最后,對電路板進行編程并檢查設(shè)計。

?
pYYBAGN6wYyAPpPRAAH73j_PlSk272.png
圖 26
?
如果您對使用 HLS 進行設(shè)計感興趣,請查看具有FPGA 高級合成的數(shù)字系統(tǒng)設(shè)計:組合電路

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 一区二区三区四区视频在线观看 | 欧美高清一级| 日本www色| 毛片网站网址| 国产精品欧美一区二区| 一夜七次郎久久综合伊人| 天天干天天在线| 蜜色网| 亚洲hh| 欧美成人看片一区二区三区| 日本黄色爽| 精品三级在线观看| 91成人免费观看| 色综合88| 欧美国产三级| 99久久精品费精品国产一区二| 天堂视频网| 免费国产zzzwww色| bt种子在线www天堂官网| 天天摸天天舔天天操| 国产午夜视频| 亚洲国产欧美在线人成aaa | 日本护士69xx00| 欧美不卡在线视频| 天堂资源在线bt种子8| 欧美午夜影视| xx在线| 久久精品国产免费| 亚洲综合色在线观看| 亚州 色 图 综合| 你懂的网址在线观看| bt天堂电影| 国产黄色录像视频| 老师我好爽再深一点好大| 深爱激情成人| 国产一级做a爰片久久毛片| 天天色综合4| hd性欧美| 视频色版| 97影院理论午夜论不卡| 国产午夜精品福利|