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

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

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

教你學(xué)Vivado—以2選1多路選擇器為例

冬至子 ? 來(lái)源:電子技術(shù)實(shí)驗(yàn)XJTU ? 作者:孫敏 ? 2023-10-02 15:58 ? 次閱讀

設(shè)計(jì)任務(wù)

在EGO1開發(fā)板上實(shí)現(xiàn)2選1多路選擇器。

設(shè)計(jì)分析

(1)設(shè)計(jì)電路邏輯關(guān)系如下圖,明確輸入、輸出信號(hào)

圖片

▲ 2選1多路選擇器

(2)確定信號(hào)與FPGA引腳關(guān)系。(將在第6步添加設(shè)計(jì)約束中用到)

圖片

根據(jù)絲印標(biāo)識(shí)可知如下對(duì)應(yīng)關(guān)系。(可參考硬件原理圖或EGO1用戶手冊(cè))

a→P4 //SW6

b→P5 //SW7

sel→R1 //SW0

out→F6 //LD2-7

設(shè)計(jì)流程

1. 創(chuàng)建FPGA設(shè)計(jì)工程

(1)雙擊桌面圖標(biāo)啟動(dòng)vivado。

圖片

(2)創(chuàng)建一個(gè)FPGA工程。

圖片

(3)進(jìn)入新建工程向?qū)А?/p>

圖片

(4)填寫工程名稱和路徑,選擇“Create project subdirectory”。

圖片

(5)選擇創(chuàng)建“RTL Project”。勾選復(fù)選框“Do not specify sources at this time”(不在當(dāng)前階段創(chuàng)建源程序)。

圖片

(6)選擇設(shè)計(jì)所用的具體FPGA型號(hào),可以根據(jù)器件系列,封裝,速度等級(jí)以及溫度級(jí)別進(jìn)行篩選,也可以直接填入器件型號(hào)進(jìn)行搜索。EGO1開發(fā)板所用芯片為Xilinx公司xc7a35tcsg324-1 ,屬于Artix-7系列,封裝為csg324,速度等級(jí)為-1。

圖片

(7)工程信息概覽,單擊“Finish”,完成工程創(chuàng)建。

圖片

2. 添加源文件

(1)有四種方式可以打開源程序添加窗口。

圖片

可以創(chuàng)建約束文件,設(shè)計(jì)源文件和仿真文件。這里選擇創(chuàng)建設(shè)計(jì)源文件Add or create design sources。

圖片

(2)選擇“Create File”,彈出對(duì)話框中輸入文件名“mux2_1”。

圖片

圖片

圖片

(3)模塊端口定義,可以添加模塊的端口信號(hào)。也可以選擇不添加,待后續(xù)直接在源程序界面輸入程序。

圖片

設(shè)計(jì)主界面中sources窗口下出現(xiàn)了如下圖所示的mux2_1.v源程序文件,雙擊打開文件,添加代碼。

圖片

(4)添加Verilog HDL描述。對(duì)同一個(gè)電路可以有多種描述方式,以下給大家提供了2類主要功能定義的方法,4種不同的語(yǔ)句描述。請(qǐng)選擇1種添加到源程序中。

1.jpg

1.jpg

(5)編輯完成后,保存源文件。

3. RTL分析

用Verilog語(yǔ)言描述電路的時(shí)候,可能出現(xiàn)語(yǔ)法或邏輯上的錯(cuò)誤。一般語(yǔ)法錯(cuò)誤在編寫程序的過(guò)程中,vivado會(huì)自動(dòng)檢測(cè)并在程序界面中有所提示,在Messages中也會(huì)提示“Error”。對(duì)于邏輯錯(cuò)誤軟件是不會(huì)提示的,最多在Messages中的“Warning”提示中找到一些蛛絲馬跡。而設(shè)計(jì)者可以利用RTL分析進(jìn)行邏輯和功能檢查。

(1)點(diǎn)擊左側(cè)流程向?qū)冢‵low Navigator)中的“Open Elaborated Design”,彈出提示框,點(diǎn)“OK”。

圖片

圖片

(2)RTL原理圖查看。下圖即打開的RTL原理圖。該原理圖是根據(jù)HDL描述生成的,可以根據(jù)原理圖檢查設(shè)計(jì)是否符合要求。

圖片

4.行為仿真

檢驗(yàn)設(shè)計(jì)是否滿足功能要求。如果直接在FPGA芯片上測(cè)試,可能因?yàn)槎啻尉C合、實(shí)現(xiàn)而浪費(fèi)時(shí)間。

(1)創(chuàng)建仿真文件sim_mux2_1.v。添加方法與添加源程序方法相同,但選擇的是Add or Create Simulation Sources選項(xiàng)。

圖片

(2)按下圖操作,直接點(diǎn)擊“OK”→“Yes”,不添加端口定義。

圖片

(3)sources窗口中雙擊打開仿真文件sim_mux2_1.v,輸入代碼。這里提供兩種測(cè)試代碼供大家參考比較。

參考代碼a:

圖片

參考代碼b:

圖片

(4)保存。保存文件后,sim_mux2_1.v自動(dòng)變成頂層文件(品字形圖標(biāo)標(biāo)識(shí)),否則,右鍵選擇“Set as Top”。mux2_1.v為下層模塊,模塊名為uut。

圖片

(5)運(yùn)行仿真。單擊左側(cè)Flow Navigator中Run Simulation,選擇Run Behavioral Simulation。

圖片

(6)觀察仿真波形。

圖片

代碼a仿真結(jié)果:

圖片

代碼b仿真結(jié)果:

圖片

5.設(shè)計(jì)綜合

綜合: 將較高層次邏輯設(shè)計(jì)代碼或原理圖等設(shè)計(jì)輸入轉(zhuǎn)化為較低層次的由FPGA芯片中底層基本單元表示的電路網(wǎng)表。

(1)單擊左側(cè)Flow Navigator中的Run Synthesis。

圖片

綜合運(yùn)行時(shí),在軟件右上角會(huì)顯示當(dāng)前狀態(tài),如下圖所示。

圖片

(2)運(yùn)行完畢,彈出對(duì)話框,選擇Open Synthesized Design,會(huì)自動(dòng)打開Device窗口,顯示的是芯片內(nèi)部構(gòu)架。

圖片

圖片

▲ Artix-7 FPGA器件的內(nèi)部結(jié)構(gòu)圖

(3)打開Schematic,可以看到綜合后的原理圖,采用的是FPGA中基本單元搭建的,如本實(shí)驗(yàn)使用了一個(gè)LUT3查找表。

圖片

圖片

(4)在Sources窗口下方Cell Properties窗口中,選擇Truth Table,可以看到邏輯表達(dá)式和真值表。

圖片

(5)單擊Report Utilization,可以查看當(dāng)前設(shè)計(jì)的資源利用率的詳細(xì)報(bào)告。

圖片

圖片

可以看到本設(shè)計(jì)使用了 1個(gè)LUT ,總共20800個(gè),利用率小于0.01%; 4個(gè)I/O ,總共120個(gè),利用率為1.90%。

圖片

6.添加設(shè)計(jì)約束

(1)在Window下拉菜單中選擇I/O Ports。

圖片

(2)按照下圖修改電壓標(biāo)準(zhǔn),添加端口對(duì)應(yīng)的FPGA引腳編號(hào)。

圖片

(3)保存。Sources視圖中可以看到Constraints目錄下生成的mux2_1.xdc文件。打開可以看到自動(dòng)生成的約束代碼,如下圖所示:

圖片

(4)在Window下拉菜單中選擇Package,可以打開I/O規(guī)劃視圖,如下圖所示。可以看到設(shè)計(jì)所占用的FPGA引腳分布(圖中用紅色圓圈標(biāo)識(shí))。

圖片

添加約束的快捷方式:新建空白約束文件,打開EGO1官方提供的約束文件“EGo1.xdc”,選擇相應(yīng)的約束語(yǔ)句,直接拷貝,并修改端口名稱即可。

7.設(shè)計(jì)實(shí)現(xiàn)

實(shí)現(xiàn): 將綜合后的電路網(wǎng)表針對(duì)具體指定器件以及相關(guān)物理與性能約束進(jìn)行優(yōu)化、布局、布線并生成最終可以下載到FPGA芯片內(nèi)的配置文件的過(guò)程。

(1)單擊左側(cè)Flow Navigator中的Run Implementation。

圖片

(2)實(shí)現(xiàn)過(guò)程結(jié)束后彈出對(duì)話框,可以選擇Open Implemented Design,也可以選擇Generate Bitstream(生成配置FPGA的比特流文件)。這里選擇Open Implemented Design。

圖片

可以看到在器件結(jié)構(gòu)圖中設(shè)計(jì)所用到的器件,如圖中紅色圓圈標(biāo)識(shí)部分,可以放大查看。

圖片

點(diǎn)擊工具欄中布線圖標(biāo),放大視圖,可以看到器件之間的連線(圖中綠色部分)。

圖片

圖片

8.時(shí)序仿真

時(shí)序仿真: 之前的行為仿真是功能仿真,并未涉及毛刺、競(jìng)爭(zhēng)冒險(xiǎn)等時(shí)序問題。實(shí)現(xiàn)執(zhí)行后器件完成了布局布線,在此階段后的仿真可得到各種時(shí)序所導(dǎo)致的延時(shí)問題。

(1)單擊Run Simulation,在浮動(dòng)菜單中單擊Run Post-Implementation Timing Simulation。

圖片

(2)仿真波形如下,調(diào)整波形,可以觀察信號(hào)延時(shí)。下圖中,輸入信號(hào)a在100ns處由0變?yōu)?,而輸出信號(hào)out在108.590ns處才發(fā)生變化,時(shí)延約8.6ns。

圖片

9.比特流文件的生成與下載

(1)實(shí)現(xiàn)結(jié)束后直接選擇Generate Bitstream,或單擊左側(cè)Flow Navigator中Generate Bitstream。

圖片

(2)將開發(fā)板與電腦連接,并確保電源開關(guān)打開。點(diǎn)擊Open target,單擊Auto Connect。

圖片

(3)點(diǎn)擊Program device,在出現(xiàn)的對(duì)話框中直接點(diǎn)擊Program,比特流文件就配置到器件中了。

圖片

圖片

10.實(shí)驗(yàn)現(xiàn)象觀察

將SW0置0,撥動(dòng)SW6,則最左側(cè)LED燈隨SW6的狀態(tài)變化;將SW0置1,則LED燈隨SW7的狀態(tài)變化。

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

    關(guān)注

    1

    文章

    385

    瀏覽量

    59665
  • FPGA芯片
    +關(guān)注

    關(guān)注

    3

    文章

    246

    瀏覽量

    39746
  • 時(shí)序仿真
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    7400
  • HDL語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    8905
  • 多路選擇器
    +關(guān)注

    關(guān)注

    1

    文章

    22

    瀏覽量

    6507
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問有stm32控制41多路選擇器的程序嗎

    求大神提供stm32控制41多路選擇器的程序參考,單片機(jī)9,10引腳控制多路選擇器
    發(fā)表于 01-16 06:35

    EDA四多路選擇器的設(shè)計(jì)

    ’=“01”時(shí),輸出Y=D1;令A(yù)A‘=“10”時(shí),輸出Y=D2;令A(yù)A’=“11”時(shí),輸出Y=D3;真值表如下:2、方案實(shí)施(1)設(shè)計(jì)思路四
    發(fā)表于 04-12 09:17

    41多路選擇器是什么?

    Verilog數(shù)字系統(tǒng)設(shè)計(jì)三簡(jiǎn)單組合邏輯實(shí)驗(yàn)2文章目錄Verilog數(shù)字系統(tǒng)設(shè)計(jì)三前言一、41多路選擇器是什么?二、編程
    發(fā)表于 02-09 06:00

    基于FPGA的多路選擇器設(shè)計(jì)(附代碼)

    1 :二多路選擇器模型 根據(jù)上述功能,列出真值表。 圖2 :二
    發(fā)表于 03-01 17:10

    多路選擇器Verilog代碼及仿真結(jié)果MUX_8

    多路選擇器 Verilog代碼 附仿真結(jié)果(modelsim仿真)
    發(fā)表于 03-28 15:27 ?33次下載

    VHDL例程41選擇器

    VHDL例程 41選擇器,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-10 17:12 ?2次下載

    多路選擇器有哪些_多路選擇器分類介紹

    本文開始介紹了多路選擇器的分類與多路選擇器的41原理圖,其次介紹了
    的頭像 發(fā)表于 04-27 09:13 ?3.5w次閱讀
    <b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>有哪些_<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>分類介紹

    41多路選擇器電路圖(四款多路選擇器電路)

    本文主要介紹了四款41多路選擇器電路圖。多路選擇器是數(shù)據(jù)
    發(fā)表于 04-27 09:37 ?14w次閱讀
    4<b class='flag-5'>選</b><b class='flag-5'>1</b><b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路圖(四款<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路)

    設(shè)計(jì)一個(gè)1位的二多路選擇器及其VHDL描述

    本文首先介紹了二多路選擇器真值表,其次介紹了1位二多路
    的頭像 發(fā)表于 04-27 09:52 ?3.1w次閱讀
    設(shè)計(jì)一個(gè)<b class='flag-5'>1</b>位的二<b class='flag-5'>選</b>一<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>及其VHDL描述

    eda四多路選擇器的設(shè)計(jì)

    本文開始對(duì)多路選擇器進(jìn)行了詳細(xì)介紹,其中包括了多路選擇器功能、典型芯片及應(yīng)用,另外還詳細(xì)介紹了eda四
    發(fā)表于 04-27 10:13 ?3.4w次閱讀
    eda四<b class='flag-5'>選</b>一<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>的設(shè)計(jì)

    81多路選擇器電路圖(五款81多路選擇器電路)

    多路選擇器又稱數(shù)據(jù)選擇器。81數(shù)據(jù)選擇器(型號(hào)有74151、74LS151、74251、74L
    發(fā)表于 04-28 17:25 ?12.9w次閱讀
    8<b class='flag-5'>選</b><b class='flag-5'>1</b><b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路圖(五款8<b class='flag-5'>選</b><b class='flag-5'>1</b><b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>電路)

    Verilog HDL之多路選擇器設(shè)計(jì)

    在數(shù)字信號(hào)的傳輸過(guò)程中,有時(shí)需要從多路輸入數(shù)據(jù)中選出某一路數(shù)據(jù),完成此功能的邏輯器件稱為數(shù)據(jù)選擇器,即所謂多路開關(guān),簡(jiǎn)稱MUX(Multiplexer)。2
    發(fā)表于 07-20 08:56 ?4540次閱讀
    Verilog HDL之<b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>設(shè)計(jì)

    使用Verilog語(yǔ)言實(shí)現(xiàn)持續(xù)賦值方式定義21多路選擇器的程序

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用Verilog語(yǔ)言實(shí)現(xiàn)持續(xù)賦值方式定義的21多路選擇器程序免費(fèi)下載。
    發(fā)表于 10-28 16:54 ?14次下載
    使用Verilog語(yǔ)言實(shí)現(xiàn)持續(xù)賦值方式定義<b class='flag-5'>2</b><b class='flag-5'>選</b><b class='flag-5'>1</b><b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>的程序

    使用Verilog語(yǔ)言實(shí)現(xiàn)持續(xù)賦值方式定義21多路選擇器的程序

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用Verilog語(yǔ)言實(shí)現(xiàn)持續(xù)賦值方式定義的21多路選擇器程序免費(fèi)下載。
    發(fā)表于 10-28 16:54 ?6次下載
    使用Verilog語(yǔ)言實(shí)現(xiàn)持續(xù)賦值方式定義<b class='flag-5'>2</b><b class='flag-5'>選</b><b class='flag-5'>1</b><b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>的程序

    Verilog數(shù)字系統(tǒng)設(shè)計(jì)——簡(jiǎn)單組合邏輯2(41多路選擇器

    Verilog數(shù)字系統(tǒng)設(shè)計(jì)三簡(jiǎn)單組合邏輯實(shí)驗(yàn)2文章目錄Verilog數(shù)字系統(tǒng)設(shè)計(jì)三前言一、41多路選擇器是什么?二、編程
    發(fā)表于 12-05 19:06 ?15次下載
    Verilog數(shù)字系統(tǒng)設(shè)計(jì)——簡(jiǎn)單組合邏輯<b class='flag-5'>2</b>(4<b class='flag-5'>選</b><b class='flag-5'>1</b><b class='flag-5'>多路</b><b class='flag-5'>選擇器</b>)