精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

基于FPGA的流水燈設計

CHANBAEK ? 來源:小小研究生 ? 作者:xxyjs2020 ? 2023-06-23 16:54 ? 次閱讀

設計規劃

依次點亮4個LED燈,實現流水燈的效果,兩燈之間點亮間隔為0.5s,LED燈一次點亮持續時間0.5s。

LED燈低電平點亮,因此流水燈應該是1110-1101-1011-0111-1110-1101-...

圖片

首先是時鐘信號、復位信號,由于需要計時,我們還要產生一個計數器cnt。然后還需要產生一個cnt_flag脈沖標志信號作為流水切換的標志,每當計數器計數到24_999_998時拉高并只產生一個時鐘的高電平(高電平出現LED狀態就開始切換)。最重要的是,流水燈的實現是通過左移操作,無法直接通過led_out的左移實現,因此需要定義一個led_out_reg(led_out從1110左移一次是1100,會有兩個燈點亮,而led_out_reg是LED的位反0001,左移一次是0010,取反后led_out是1101,就能實現流水的需求)。

編寫代碼

module water_led
#(
parameter CNT_MAX = 25'd24_999_999
)
(
input wire sys_clk , 
input wire sys_rst_n , 
output wire [3:0] led_out 
 );


 //reg define
 reg [24:0] cnt ;
 reg cnt_flag ;
 reg [3:0] led_out_reg ;


 //cnt:計數器計數500ms
 always@(posedge sys_clk or negedge sys_rst_n)
 if(sys_rst_n == 1'b0)
 cnt <= 25'b0;
 else if(cnt == CNT_MAX)
 cnt <= 25'b0;
 else
 cnt <= cnt + 1'b1;


 //cnt_flag:計數器計數滿500ms標志信號
 always@(posedge sys_clk or negedge sys_rst_n)
 if(sys_rst_n == 1'b0)
 cnt_flag <= 1'b0;
 else if(cnt == CNT_MAX - 1)
 cnt_flag <= 1'b1;
 else
 cnt_flag <= 1'b0;


 //led_out_reg:led循環流水
 always@(posedge sys_clk or negedge sys_rst_n)
 if(sys_rst_n == 1'b0)
 led_out_reg <= 4'b0001;
 else if(led_out_reg == 4'b1000 && cnt_flag == 1'b1)
 led_out_reg <= 4'b0001;
 else if(cnt_flag == 1'b1)
 led_out_reg <= led_out_reg < < 1'b1; //左移
 assign led_out = ~led_out_reg;
 endmodule

三個中間信號的定義:cnt,cnt_flag,led_out_reg。

1、cnt:計數器變化的條件是時鐘上升和復位有效(復位下降),復位信號有效時cnt變為低電平;計滿時清零;其他時刻+1。

2、cnt_flag:計數器計滿的脈沖標志信號,變化條件和cnt一樣,復位有效時變為低電平;計滿前一個時鐘拉高;其他時刻都為0,這樣就能成為一個脈沖信號,并在計滿前拉高,標志led要左移。

3、led_out_reg:暫存led燈狀態,可以直接對這個信號進行操作來控制LED燈。復位和初始時是最右邊的燈亮,反推出led_out_reg=0001;當最左邊的燈亮且計滿標志信號拉高時,令最右邊的燈亮led_out_reg=0001;當計滿標志信號拉高時,led_out_reg左移。而控制LED電平的輸出信號led_out是led_out_reg的按位取反。

image.png

編寫testbench

`timescale 1ns/1ns
module tb_water_led();
//wire define
wire [3:0] led_out ;
 //reg define
 reg sys_clk ;
 reg sys_rst_n ;
 //初始化系統時鐘、全局復位
 initial begin
 sys_clk = 1'b1;
 sys_rst_n <= 1'b0;
 #20
 sys_rst_n <= 1'b1;
 end


 //sys_clk:模擬系統時鐘,每10ns電平翻轉一次,周期為20ns,頻率為50MHz
 always #10 sys_clk = ~sys_clk;
 //-------------------- water_led_inst --------------------
 water_led
 #(
 .CNT_MAX (25'd24)
 )
 water_led_inst
 (
 .sys_clk (sys_clk ), //input sys_clk
 .sys_rst_n (sys_rst_n ), //input sys_rst_n
 .led_out (led_out ) //output [3:0] led_out
 );
 endmodule

testbench代碼是非常熟悉的,信號定義,初始化,實例化。

對比波形

圖片

圖片

1110-1101-1011-0111分別對應了十六進制的e,d,b,7

由于在testbench模塊,為了節省時間將CNT_MAX設置成24,因此24個時鐘脈沖LED的狀態就會發生變化,波形和我們預想的一致。

分配管腳

圖片

圖片

圖片

圖片

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

    關注

    1626

    文章

    21667

    瀏覽量

    601849
  • led燈
    +關注

    關注

    22

    文章

    1592

    瀏覽量

    107837
  • 計數器
    +關注

    關注

    32

    文章

    2253

    瀏覽量

    94353
  • 流水燈
    +關注

    關注

    21

    文章

    432

    瀏覽量

    59637
  • 時鐘信號
    +關注

    關注

    4

    文章

    445

    瀏覽量

    28510
收藏 人收藏

    評論

    相關推薦

    基于Verilog FPGA 流水燈設計

    流水廣告燈主要應用于LED燈光控制。通過程序控制LED的亮和滅, 多個LED燈組成一個陣列,依次逐個點亮的時候像流水一樣,所以叫流水燈。由于其形成美觀大方的視覺效果,因此廣泛應用于店鋪招牌、廣告、大型建筑夜間裝飾、景觀裝飾等
    發表于 08-09 15:14 ?1.7w次閱讀
    基于Verilog <b class='flag-5'>FPGA</b> <b class='flag-5'>流水燈</b>設計

    FPGA流水燈的設計流程

    完成項目需求分析、電路圖分析以及方案設計后,接下來可以進行FPGA設計了。如果用戶的計算機已安裝云源軟件GOWIN FPGA Designer,雙擊桌面上的程序圖標,即可打開GOWIN FPGA
    發表于 10-13 14:36 ?1377次閱讀

    基于FPGA的音樂流水燈控制系統設計

    介紹一種基于 FPGA的音樂流水燈控制器, 采用硬件描述語言對其進行描述, 分別實現樂曲的播放和同步流水燈的閃爍。并構建一個 SOPC系統, 集成 LCD模塊來顯示實時音樂的音階值和頻率強度
    發表于 10-20 17:21 ?4476次閱讀

    #硬聲創作季 實驗2 流水燈實驗

    fpga流水燈
    Mr_haohao
    發布于 :2022年08月29日 20:05:15

    #硬聲創作季 FPGA技術應用:流水燈設計

    fpga流水燈
    Mr_haohao
    發布于 :2022年10月19日 17:23:48

    #硬聲創作季 數字設計FPGA應用:51.1流水燈的關鍵設計

    fpga流水燈數字設計
    Mr_haohao
    發布于 :2022年10月24日 03:10:25

    #硬聲創作季 數字設計FPGA應用:51.2流水燈工程實現與測試

    fpga流水燈數字設計
    Mr_haohao
    發布于 :2022年10月24日 03:11:14

    FPGA流水燈實驗

    FPGA初級實驗 verilog let's start (流水燈實驗)module countpro(sys_clk,rst_n,led); //接口定義input sys_clk,rst_n
    發表于 02-08 16:28

    求分享一個用simulink編的altera FPGA流水燈的simulink程序

    有大神能給我分享一個用simulink編的altera FPGA流水燈的simulink程序嗎?我想學通過simulink來給FPGA編程,但是苦于沒有教程或案例,求好心人給我分享一個程序吧,供我研究研究,感激不盡[qq]91
    發表于 08-05 11:06

    基于Verilog FPGA 流水燈設計_流水燈源碼_明德揚資料

    LED流水廣告燈工程說明在本案例中,使用常用的verilog語言完成該程序,設計并控制8個燈的花式或循環點亮;即上電后,實現左移和右移交替的流水燈。案例補充說明在FPGA電路設計中,盡管流水燈
    發表于 08-02 17:56

    數字設計FPGA應用:流水燈的設計

    LED流水燈這篇采用最簡單的就是點亮一個燈延時一定時間,然后關閉,接下去點亮下一個燈,依次類推形成流水燈的效果
    的頭像 發表于 12-04 07:09 ?3588次閱讀
    數字設計<b class='flag-5'>FPGA</b>應用:<b class='flag-5'>流水燈</b>的設計

    使用FPGA實現流水燈的詳細資料說明

    本文檔的主要內容詳細介紹的是使用FPGA實現流水燈的詳細資料說明。流水燈模塊對于發展商而言,動土儀式無疑是最重要的任務。為此,流水燈實驗作為低級建模II的動土儀式再適合不過了。廢話少說
    發表于 07-11 16:45 ?27次下載
    使用<b class='flag-5'>FPGA</b>實現<b class='flag-5'>流水燈</b>的詳細資料說明

    使用FPGA實現流水燈設計的資料合集

    本文檔的主要內容詳細介紹的是使用FPGA實現流水燈設計的資料合集免費下載。
    發表于 01-18 08:00 ?30次下載

    如何通過FPGA實現一個流水燈

    流水燈,有時候也叫跑馬燈,是一個簡單、有趣又經典的實驗,基本所有單片機的玩家們在初期學習的階段都做過。本次我們也來介紹一下如何通過小腳丫FPGA實現一個流水燈
    的頭像 發表于 06-06 10:42 ?8110次閱讀
    如何通過<b class='flag-5'>FPGA</b>實現一個<b class='flag-5'>流水燈</b>?

    基于FPGA開發板流水燈的設計實現

    流水燈,有時候也叫跑馬燈,是一個簡單、有趣又經典的實驗,基本所有單片機的玩家們在初期學習的階段都做過。本次我們也來介紹一下如何通過小腳丫FPGA實現一個流水燈
    發表于 06-20 17:10 ?1270次閱讀
    基于<b class='flag-5'>FPGA</b>開發板<b class='flag-5'>流水燈</b>的設計實現