資料介紹
描述
這是一個(gè)由 5 部分組成的博客:
第 2 部分:在 Spartan 6 FPGA 上使用 Xilinx ISE 的組合邏輯
第 3 部分:在 Cyclone-IV FPGA 上使用 Quartus Prime 的順序邏輯
第 4 部分:在 Artix-7 FPGA 上使用 Vivado 的組合邏輯與順序邏輯
第 5 部分:最終項(xiàng)目 - DE0 Nano 開(kāi)發(fā)板上的 Pong 游戲
目標(biāo):
比較和分析使用在 Artix-7 FPGA 上實(shí)現(xiàn)的組合邏輯和順序邏輯的移位器的性能
順序邏輯:移位寄存器
我們都知道什么是移位寄存器,以及為什么要使用它們——對(duì)寄存器中的位進(jìn)行移位嗎?
但是 CPU 或微控制器內(nèi)部的應(yīng)用程序非常廣泛,并且在算術(shù)和邏輯單元中發(fā)揮著至關(guān)重要的作用,尤其是在如今的 ARM 處理器中。
下面給出的設(shè)計(jì)專(zhuān)門(mén)用于右移。但為什么?此操作在老式8086微處理器中用于實(shí)現(xiàn) ROR 指令。
8 位移位寄存器設(shè)計(jì):


Verilog 實(shí)現(xiàn):

有沒(méi)有其他方法可以移動(dòng)位?
- 是的,桶形移位器。
組合邏輯:桶形移位器

真值表:

在這篇博客中,我將討論使用多路復(fù)用器的 8 位桶形移位器的設(shè)計(jì)和實(shí)現(xiàn)。
我要遵循的建模是 Verilog HDL 中的結(jié)構(gòu)設(shè)計(jì)。
首先,讓我們?cè)O(shè)計(jì)一個(gè) 2:1 Mux


結(jié)構(gòu)模型中 2:1 Mux 的 Verilog 代碼非常簡(jiǎn)單,我們有 2 個(gè)與門(mén)、1 個(gè)非門(mén)和 1 個(gè)或門(mén)。
除了常規(guī)的輸入和輸出外,還為門(mén)輸出聲明了三根線,并根據(jù)結(jié)構(gòu)進(jìn)行連接。
8位桶形移位器的設(shè)計(jì):


通過(guò)使用結(jié)構(gòu)設(shè)計(jì),我們可以確保設(shè)計(jì)以我們想要的方式實(shí)現(xiàn)。
Verilog 實(shí)現(xiàn):

桶形移位器的工作:

這就是桶形移位器如何根據(jù)選擇線移動(dòng)位。

在 Artix-7 FPGA 上的實(shí)現(xiàn):
我將使用 USB104-A7 FPGA 開(kāi)發(fā)板來(lái)實(shí)現(xiàn)。這是幾個(gè)月前的路試。在此處閱讀評(píng)論:USB104 A7:Artix-7 FPGA 開(kāi)發(fā)板 - 評(píng)論

定制 Pmod 的制作:
由于按鈕和 LED 等用戶(hù) I/O 外設(shè)非常少,因此要制造定制 Pmod(外設(shè)模塊)以實(shí)現(xiàn)數(shù)字設(shè)計(jì)。
讓我們看一下制造的示意圖。
使用 NI Multisim 進(jìn)行的設(shè)計(jì):
從原理圖中可以看出,使用 10k 電阻器將用于上拉和下拉目的。
由于已經(jīng)有一個(gè) 200 歐姆的電阻串聯(lián)到 Pmod GPIO 上,以防止意外將輸入驅(qū)動(dòng)為輸出時(shí)損壞 FPGA,
僅 100 歐姆電阻與 LED 串聯(lián)使用。所有開(kāi)關(guān)均處于高電平有效。電路圖如下:


這是上面制作的 Pmod 的一般約束文件:
## Pmod Header JA
#set_property -dict { PACKAGE_PIN F4 IOSTANDARD LVCMOS33 } [get_ports { led[0] }]; #IO_L13P_T2_MRCC_35 Sch=ja[1]
#set_property -dict { PACKAGE_PIN F3 IOSTANDARD LVCMOS33 } [get_ports { led[1] }]; #IO_L13N_T2_MRCC_35 Sch=ja[2]
#set_property -dict { PACKAGE_PIN E2 IOSTANDARD LVCMOS33 } [get_ports { led[2] }]; #IO_L14P_T2_SRCC_35 Sch=ja[3]
#set_property -dict { PACKAGE_PIN D2 IOSTANDARD LVCMOS33 } [get_ports { led[3] }]; #IO_L14N_T2_SRCC_35 Sch=ja[4]
#set_property -dict { PACKAGE_PIN H2 IOSTANDARD LVCMOS33 } [get_ports { led[4] }]; #IO_L15P_T2_DQS_35 Sch=ja[7]
#set_property -dict { PACKAGE_PIN G2 IOSTANDARD LVCMOS33 } [get_ports { led[5] }]; #IO_L15N_T2_DQS_35 Sch=ja[8]
#set_property -dict { PACKAGE_PIN C2 IOSTANDARD LVCMOS33 } [get_ports { led[6] }]; #IO_L16P_T2_35 Sch=ja[9]
#set_property -dict { PACKAGE_PIN C1 IOSTANDARD LVCMOS33 } [get_ports { led[7] }]; #IO_L16N_T2_35 Sch=ja[10]
### Pmod Header JB
#set_property -dict { PACKAGE_PIN C4 IOSTANDARD LVCMOS33 } [get_ports { sw_b[0] }]; #IO_L7P_T1_AD6P_35 Sch=jb[1]
#set_property -dict { PACKAGE_PIN B2 IOSTANDARD LVCMOS33 } [get_ports { sw_b[1] }]; #IO_L10N_T1_AD15N_35 Sch=jb[2]
#set_property -dict { PACKAGE_PIN B3 IOSTANDARD LVCMOS33 } [get_ports { sw_b[2] }]; #IO_L10P_T1_AD15P_35 Sch=jb[3]
#set_property -dict { PACKAGE_PIN B4 IOSTANDARD LVCMOS33 } [get_ports { sw_b[3] }]; #IO_L7N_T1_AD6N_35 Sch=jb[4]
#set_property -dict { PACKAGE_PIN B1 IOSTANDARD LVCMOS33 } [get_ports { sw_b[4] }]; #IO_L9P_T1_DQS_AD7P_35 Sch=jb[7]
#set_property -dict { PACKAGE_PIN A1 IOSTANDARD LVCMOS33 } [get_ports { sw_b[5] }]; #IO_L9N_T1_DQS_AD7N_35 Sch=jb[8]
#set_property -dict { PACKAGE_PIN A3 IOSTANDARD LVCMOS33 } [get_ports { sw_b[6] }]; #IO_L8N_T1_AD14N_35 Sch=jb[9]
#set_property -dict { PACKAGE_PIN A4 IOSTANDARD LVCMOS33 } [get_ports { sw_b[7] }]; #IO_L8P_T1_AD14P_35 Sch=jb[10]
### Pmod Header JC
#set_property -dict { PACKAGE_PIN C5 IOSTANDARD LVCMOS33 } [get_ports { sw_a[0] }]; #IO_L1N_T0_AD4N_35 Sch=jc[1]
#set_property -dict { PACKAGE_PIN C6 IOSTANDARD LVCMOS33 } [get_ports { sw_a[1] }]; #IO_L1P_T0_AD4P_35 Sch=jc[2]
#set_property -dict { PACKAGE_PIN B6 IOSTANDARD LVCMOS33 } [get_ports { sw_a[2] }]; #IO_L2N_T0_AD12N_35 Sch=jc[3]
#set_property -dict { PACKAGE_PIN C7 IOSTANDARD LVCMOS33 } [get_ports { sw_a[3] }]; #IO_L4N_T0_35 Sch=jc[4]
#set_property -dict { PACKAGE_PIN A5 IOSTANDARD LVCMOS33 } [get_ports { sw_a[4] }]; #IO_L3N_T0_DQS_AD5N_35 Sch=jc[7]
#set_property -dict { PACKAGE_PIN A6 IOSTANDARD LVCMOS33 } [get_ports { sw_a[5] }]; #IO_L3P_T0_DQS_AD5P_35 Sch=jc[8]
#set_property -dict { PACKAGE_PIN B7 IOSTANDARD LVCMOS33 } [get_ports { sw_a[6] }]; #IO_L2P_T0_AD12P_35 Sch=jc[9]
#set_property -dict { PACKAGE_PIN D8 IOSTANDARD LVCMOS33 } [get_ports { sw_a[7] }]; #IO_L4P_T0_35 Sch=jc[10]
Vivado 入門(mén):

如果您計(jì)劃使用 FPGA 板上的按鈕,請(qǐng)確保在移位寄存器項(xiàng)目的約束文件中添加命令,因?yàn)橛捎?a href='http://m.xsypw.cn/tags/時(shí)鐘/' target='_blank' class='arckwlink_none'>時(shí)鐘專(zhuān)用路由錯(cuò)誤,實(shí)現(xiàn)將無(wú)法完成。

Artix-7 FPGA 上的 8 位移位寄存器:
Artix-7 FPGA 上的 8 位桶形移位器:
實(shí)施后的最終比較:

謝謝閱讀!
- XILINX ARTIX7系列FPGA芯片產(chǎn)品目錄 27次下載
- Artix-7 FPGA數(shù)據(jù)表下載 10次下載
- 使用Matlab實(shí)現(xiàn)組合邏輯電路的設(shè)計(jì)與仿真 23次下載
- FPGA時(shí)序邏輯和組合邏輯的入門(mén)基礎(chǔ)教程 12次下載
- Xilinx 7系列FPGA可配置邏輯塊的用戶(hù)指南 6次下載
- 組合邏輯電路和時(shí)序邏輯電路的學(xué)習(xí)課件免費(fèi)下載 31次下載
- 組合邏輯電路的學(xué)習(xí)教程課件免費(fèi)下載 15次下載
- XA ARTIX-7 FPGA的數(shù)據(jù)手冊(cè)免費(fèi)下載 9次下載
- XA Artix-7 FPGA芯片的選型手冊(cè)免費(fèi)下載 17次下載
- Multisim在組合邏輯電路設(shè)計(jì)中的常用元件和詳細(xì)作用分析 10次下載
- 組合邏輯設(shè)計(jì)實(shí)例_國(guó)外 24次下載
- 組合邏輯電路設(shè)計(jì)基礎(chǔ) 0次下載
- 組合邏輯電路電子教案 0次下載
- 組合邏輯電路設(shè)計(jì)實(shí)驗(yàn) 0次下載
- 組合邏輯電路.ppt
- 組合邏輯電路之與或邏輯 1809次閱讀
- 組合邏輯電路和時(shí)序邏輯電路的區(qū)別和聯(lián)系 6856次閱讀
- 組合邏輯電路的分析和設(shè)計(jì) 4237次閱讀
- 組合邏輯生成的時(shí)鐘有哪些危害 4259次閱讀
- 什么是組合邏輯電路 如何使用verilog描述組合邏輯電路 5939次閱讀
- FPGA電路組合邏輯設(shè)計(jì)中的毛刺如何解決 3706次閱讀
- digilent Nexys 4:Artix-7 FPGA訓(xùn)練板介紹 8408次閱讀
- xilinx7系列FPGA的7種邏輯代碼配置模式 3124次閱讀
- 采用Artix-7 XCA75T FPGA的高速多通道數(shù)字轉(zhuǎn)換器 2621次閱讀
- 組合邏輯電路和時(shí)序邏輯電路比較_組合邏輯電路和時(shí)序邏輯電路有什么區(qū)別 9.3w次閱讀
- 組合邏輯電路實(shí)驗(yàn)原理 6.6w次閱讀
- 組合邏輯電路設(shè)計(jì)步驟詳解(教程) 12.2w次閱讀
- 組合邏輯電路的特點(diǎn)詳解 3.9w次閱讀
- FPGA中組合邏輯和時(shí)序邏輯的區(qū)別 8880次閱讀
- 什么是組合邏輯電路,組合邏輯電路的基本特點(diǎn)和種類(lèi)詳解 7.5w次閱讀
下載排行
本周
- 1U盤(pán)一鍵制作
- 23.84 MB | 3次下載 | 免費(fèi)
- 2ch341驅(qū)動(dòng)
- 0.18 MB | 1次下載 | 免費(fèi)
- 3貼片電阻阻值代號(hào)
- 0.08 MB | 1次下載 | 1 積分
- 4DS-CM5A H24-CN-V2
- 524.28 KB | 1次下載 | 免費(fèi)
- 5基于Linux的液晶顯示屏驅(qū)動(dòng)技術(shù)的研究與應(yīng)用
- 14.59 MB | 次下載 | 1 積分
- 6研華AIMB-218工控主板用戶(hù)手冊(cè)
- 4.45 MB | 次下載 | 1 積分
- 7研華AIMB-275工控主板用戶(hù)手冊(cè)
- 3.11 MB | 次下載 | 1 積分
- 8ST NPI 新上架產(chǎn)品【DCP0606Y】
- 1.35 MB | 次下載 | 免費(fèi)
本月
- 1人形機(jī)器人電機(jī)驅(qū)動(dòng)和傳感報(bào)告
- 4.27 MB | 60次下載 | 免費(fèi)
- 2晶體三極管的電流放大作用詳細(xì)說(shuō)明
- 0.77 MB | 32次下載 | 2 積分
- 3九陽(yáng)豆?jié){機(jī)高清原理圖
- 2.47 MB | 31次下載 | 1 積分
- 4雙極型三極管放大電路的三種基本組態(tài)的學(xué)習(xí)課件免費(fèi)下載
- 4.03 MB | 25次下載 | 1 積分
- 5多級(jí)放大電路的學(xué)習(xí)課件免費(fèi)下載
- 1.81 MB | 21次下載 | 2 積分
- 6Altium Designer元件庫(kù)
- 17.11 MB | 11次下載 | 免費(fèi)
- 7STM32F10xxx單片機(jī)編程手冊(cè)
- 0.29 MB | 5次下載 | 免費(fèi)
- 8HT8691R內(nèi)置BOOST升壓模塊的D類(lèi)音頻功率放大器中文手冊(cè)
- 1.77 MB | 4次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191382次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183339次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81586次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73814次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論