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

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

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

基于FPGA點(diǎn)亮LED燈

CHANBAEK ? 來(lái)源:小小研究生 ? 作者:xxyjs2020 ? 2023-05-11 17:31 ? 次閱讀

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

設(shè)計(jì)規(guī)劃--波形繪制--編寫代碼--代碼編譯--編寫testbench--對(duì)比波形--綁定管腳--全編譯--上板驗(yàn)證

設(shè)計(jì)規(guī)劃

使用用戶手冊(cè),了解硬件資源,這個(gè)示例中需要用到按鍵和LED燈:

1、按鍵

在沒有按鍵按下時(shí),輸出高電平(紅色); 當(dāng)按鍵按下的時(shí)候,被按下的按鍵端會(huì)輸出低電平(藍(lán)色)。

圖片

2、LED燈

當(dāng) FPGA 輸出低電平時(shí),LED 點(diǎn)亮,當(dāng) LED 輸出高電平時(shí),沒有電位差,LED 燈熄滅。

圖片

由上可知:需要實(shí)現(xiàn)的功能是,當(dāng)按下按鍵時(shí)(key_in=0,PIN_M16管腳),LED燈要被點(diǎn)亮(led_out=0,PIN_A2管腳)。 此處波形非常簡(jiǎn)單,省略畫波形的步驟,對(duì)于復(fù)雜電路還是需要畫波形來(lái)理清思路。 這里波形應(yīng)該是key與led波形一致。

打開quartus,新建工程。

圖片

圖片

編寫代碼

編寫.v文件,代碼如下:

module led
(
input wire key_in , //輸入按鍵
output wire led_out //輸出控制led燈
);
//led_out:led燈輸出的結(jié)果為key_in按鍵的輸入值
assign led_out = key_in;
endmodule

將.v文件添加到文件目錄下,右鍵Files文件夾選擇添加.v文件,添加完成后可以在Files下看到添加的.v文件:

圖片

代碼編譯

點(diǎn)擊如圖所示的圖標(biāo),可以檢查語(yǔ)法是否有錯(cuò),綜合器將代碼解釋為電路的形式。 綠色表示通過(guò)。

圖片

圖片

點(diǎn)擊RTL viewer可以查看設(shè)計(jì)的硬件電路結(jié)構(gòu),和我們?cè)O(shè)計(jì)所表達(dá)的意思相同

圖片

編寫testbench

Testbench是測(cè)試電路功能和性能的腳本。 在線邏輯分析雖然好用但是每次修改代碼都需要綜合一次,而使用testbench做仿真的速度就很快,所以一開始就應(yīng)該編寫testbench以便后面大型電路的驗(yàn)證。

testbench就是產(chǎn)生輸入波形,加入到被測(cè)模塊上并觀測(cè)其輸出,和我們之前畫好的波形進(jìn)行比對(duì)。

編寫.v文件

`timescale 1ns/1ns    //時(shí)間尺度/時(shí)間精度,時(shí)間精度<=時(shí)間尺度
module tb_led();    


wire led_out ;
reg key_in ;
//初始化輸入信號(hào)
initial key_in <= 1'b0;


//key_in:產(chǎn)生輸入隨機(jī)數(shù),模擬按鍵的輸入情況
always #10 key_in <= {$random} % 2; /*取模求余數(shù),產(chǎn)生非負(fù)隨機(jī)數(shù)0、1
每隔10ns產(chǎn)生一次隨機(jī)數(shù)*/


//\\* Instantiate \\//
led led_inst
(
.key_in (key_in ), //input key_in


.led_out(led_out) //output led_out
);


endmodule

tb_led模塊中,首先定義初始的輸入信號(hào)為低電平(一般時(shí)序電路使用非阻塞賦值<=),延遲10個(gè)時(shí)間單位(ns)產(chǎn)生隨機(jī)數(shù)0或1賦值給輸入,就完成了輸入信號(hào)的波形設(shè)計(jì)。 根據(jù)上一節(jié)中實(shí)例化的講解,第2-5行和第14-19行完成的功能是將上一個(gè)led.v文件中l(wèi)ed模塊與tb_led模塊相連。 這樣隨機(jī)生成的輸入信號(hào)就被加到led模塊上,并得到輸出led_out,通過(guò)驗(yàn)證led_out與我們期望的輸出是否一致,就知道我們的設(shè)計(jì)是否正確。

圖片

和之前的操作一樣,將這個(gè)tb_led.v文件添加到Files文件下。 然后在quartus的菜單欄中找到assignments-setting,如圖所示。

圖片

圖片

對(duì)比波形

設(shè)置完成后,點(diǎn)擊菜單欄的tools-run simulation tool-RTL simulation,能自動(dòng)打開modelsim說(shuō)明之前的關(guān)聯(lián)操作是成功的,如果不成功,在上一節(jié)中看怎么關(guān)聯(lián)。 得到波形如圖,觀察得知led_out波形與key_in波形一致。

圖片

分配管腳

圖片

在開發(fā)板用戶手冊(cè)中就有對(duì)應(yīng)管腳,按鍵有三個(gè),我們選擇M16的S0作為key_in,LED有四個(gè),我們選擇A2的LED0作為led_out。

圖片

全編譯

全編譯需要進(jìn)行布局布線,管腳綁定后就可以對(duì)全局進(jìn)行布局布線了。 沒有錯(cuò)誤就可以上板了,有錯(cuò)誤的話根據(jù)提示改。

圖片

上板驗(yàn)證

圖片

上板是需要安裝USB_blaster驅(qū)動(dòng)的,在設(shè)備管理器中如果USB-blaster有黃色感嘆號(hào)需要右鍵更新,文件在安裝文件quartus-drivers-USBblaster或USBblaster ii中。 安裝完成后感嘆號(hào)消失。

圖片

再點(diǎn)start,右上角的progress到100%,開發(fā)板就下載完成了。

圖片

按著按鍵A0不放,LED0一直被點(diǎn)亮,松手就關(guān)閉。

圖片

這樣最簡(jiǎn)單的小設(shè)計(jì)就實(shí)現(xiàn)了,堅(jiān)持到這里就成功了一半哦。

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

    關(guān)注

    1625

    文章

    21628

    瀏覽量

    601261
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

    107754
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7879

    瀏覽量

    263738
  • 按鍵
    +關(guān)注

    關(guān)注

    4

    文章

    223

    瀏覽量

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

    關(guān)注

    25

    文章

    4900

    瀏覽量

    97070
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    點(diǎn)亮STM32、FPGA和Liunx板子的LED

    摘要:你點(diǎn)亮過(guò)多少板子的LED呢?有很多小伙伴要求講一下STM32、FPGA、Liunx三者之間有什么不同。其實(shí)不同點(diǎn)很多,口說(shuō)無(wú)憑,今天就來(lái)點(diǎn)亮
    的頭像 發(fā)表于 04-18 11:16 ?9209次閱讀

    匯編點(diǎn)亮LED——極簡(jiǎn)的魅力

    介紹4句匯編語(yǔ)言點(diǎn)亮LED
    的頭像 發(fā)表于 04-27 08:58 ?78.8w次閱讀
    匯編<b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>——極簡(jiǎn)的魅力

    FPGA點(diǎn)亮led

    從網(wǎng)上下載的一個(gè)例子,作為菜鳥的我,希望大家能夠喜歡!
    發(fā)表于 05-02 10:52

    怎樣通過(guò)FPGA點(diǎn)亮開發(fā)板上的LED?

    怎樣去設(shè)計(jì)V0開發(fā)板LED部分的電路?怎樣通過(guò)FPGA點(diǎn)亮開發(fā)板上的LED?
    發(fā)表于 07-26 06:46

    使用STM32點(diǎn)亮LED的方法

    摘要:不知道小伙伴們點(diǎn)亮過(guò)多少板子的LED,有很多小伙伴留言說(shuō)講一下stm32、fpga、liunx他們之間有什么不同,不同點(diǎn)很多,口說(shuō)無(wú)憑,今天就來(lái)
    發(fā)表于 11-29 06:14

    FPGA開發(fā)板中點(diǎn)亮LED實(shí)現(xiàn)時(shí)序邏輯電路的設(shè)計(jì)

    時(shí)電路狀態(tài)的影響。在本篇文章中,我們通過(guò)兩個(gè)實(shí)例介紹如何點(diǎn)亮LED實(shí)現(xiàn)流水燈來(lái)講解時(shí)序邏輯電路。如何點(diǎn)亮LED
    發(fā)表于 07-22 15:25

    LED點(diǎn)亮程序

    LED點(diǎn)亮程序,適合初學(xué)者使用,單片機(jī)c語(yǔ)言程序。
    發(fā)表于 03-15 10:42 ?6次下載

    如何使用單片機(jī)點(diǎn)亮LED

    我們學(xué)單片機(jī),第一個(gè)程序就是點(diǎn)亮一盞LED,那么我單片機(jī)開啟面向?qū)ο蠓绞降牡谝徊揭彩?b class='flag-5'>點(diǎn)亮一盞LED
    發(fā)表于 07-16 17:39 ?4次下載
    如何使用單片機(jī)<b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    如何使用寄存器點(diǎn)亮LED

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用寄存器點(diǎn)亮LED
    發(fā)表于 04-15 17:00 ?10次下載
    如何使用寄存器<b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    點(diǎn)亮LED的源代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是點(diǎn)亮LED的源代碼免費(fèi)下載。
    發(fā)表于 09-14 08:00 ?1次下載
    <b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>的源代碼免費(fèi)下載

    史上最全的LED點(diǎn)燈程序—使用STM32、FPGA、Linux點(diǎn)亮你的LED

    摘要:不知道小伙伴們點(diǎn)亮過(guò)多少板子的LED,有很多小伙伴留言說(shuō)講一下stm32、fpga、liunx他們之間有什么不同,不同點(diǎn)很多,口說(shuō)無(wú)憑,今天就來(lái)
    發(fā)表于 11-19 13:36 ?20次下載
    史上最全的<b class='flag-5'>LED</b>點(diǎn)燈程序—使用STM32、<b class='flag-5'>FPGA</b>、Linux<b class='flag-5'>點(diǎn)亮</b>你的<b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    51單片機(jī)——點(diǎn)亮一個(gè)LED

    51單片機(jī)——點(diǎn)亮一個(gè)LED文章目錄51單片機(jī)——點(diǎn)亮一個(gè)LED一、原理圖二、
    發(fā)表于 11-23 18:06 ?16次下載
    51單片機(jī)——<b class='flag-5'>點(diǎn)亮</b>一個(gè)<b class='flag-5'>LED</b><b class='flag-5'>燈</b>

    使用STM32、SFPGA和I.MX6ULL IO點(diǎn)亮LED

    摘要:你點(diǎn)亮過(guò)多少板子的LED呢?有很多小伙伴要求講一下STM32、FPGA、Liunx他們之間有什么不同。不同點(diǎn)很多,口說(shuō)無(wú)憑,今天就來(lái)點(diǎn)亮
    的頭像 發(fā)表于 03-12 09:24 ?2897次閱讀

    點(diǎn)亮LED條開源分享

    電子發(fā)燒友網(wǎng)站提供《點(diǎn)亮LED條開源分享.zip》資料免費(fèi)下載
    發(fā)表于 11-18 09:17 ?4次下載
    <b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>條開源分享

    簡(jiǎn)單的LED電路并點(diǎn)亮

    電子發(fā)燒友網(wǎng)站提供《簡(jiǎn)單的LED電路并點(diǎn)亮.zip》資料免費(fèi)下載
    發(fā)表于 02-03 09:23 ?1次下載
    簡(jiǎn)單的<b class='flag-5'>LED</b><b class='flag-5'>燈</b>電路并<b class='flag-5'>點(diǎn)亮</b>