国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

5.2 FPGA:基于verilog的LED流水燈設計(多種方法)

這篇具有很好參考價值的文章主要介紹了5.2 FPGA:基于verilog的LED流水燈設計(多種方法)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

設計目標:8個LED燈以每0.5s的速率進行循環(huán)閃爍

方法1:移位法實現(xiàn)

設計模塊

仿真代碼

實驗結(jié)果

?方法2:循環(huán)移位方法

?設計模塊

方法3:使用三八譯碼器實現(xiàn)流水燈

頂層模塊

底層模塊


設計目標:8個LED燈以每0.5s的速率進行循環(huán)閃爍

當仿真時時間長,可以減小設計代碼的計數(shù)次數(shù),對分析移位功能沒有影響。

方法1:移位法實現(xiàn)

設計模塊

module led_run(
    Clk,
    Reset_n,
    led
);
    input Clk;
    input Reset_n;
    output reg [7:0]led;
    
    reg [24:0] counter;

    always@(podedge Clk or negedge Reset_n)
    if(!Reset_n)
        counter <= 0;
    else if(counter == 24999999)
        counter <= 0;
    else
        counter <= counter + 1'd1;

    always@(podedge Clk or negedge Reset_n)
    if(!Reset_n)
        led <= 8'b0000_0001;
    else if(counter == 24999999)begin
        if(led == 8'b1000_0000)
            led <= 8'b0000_0001;
        else
            led <= led << 1;
    end
    else
        led = led;
        

endmoduule

仿真代碼

`timescale 1ns/1ns

module led_run_tb();

    reg Clk;
    reg Reset_n;
    wire [7:0]led;

    led_run led_run(
        .Clk(Clk),
        .Reset_n(Reset_n),
        .led(led)
    );

    initial Clk = 1;
    always #10 Clk = ~Clk;

    initial begin
        Reset_n = 0;
        #201;
        Reset_n = 1;
        #4000000000; //延時4s
        $stop;
    end

endmodule

實驗結(jié)果

5.2 FPGA:基于verilog的LED流水燈設計(多種方法),FPGA,fpga開發(fā)

?方法2:循環(huán)移位方法

知識點:位拼接

5.2 FPGA:基于verilog的LED流水燈設計(多種方法),FPGA,fpga開發(fā)

?設計模塊

module led_run1(
    Clk,
    Reset_n,
    led
);
    input Clk;
    input Reset_n;
    output reg [7:0] led;
    
    reg [24:0] counter;
    
    always@(posedge Clk or negedge Reset_n)
    if(!Reset_n)
        counter <= 0;
//    else if(counter == 24999999)
    else if(counter == 24999) //500us
        counter <= 0;
    else
        counter <= counter + 1'd1;
        
    always@(posedge Clk or negedge Reset_n)
    if(!Reset_n)
        led = 8'b0000_0001;
 //   else if(counter == 24999999)begin
    else if(counter == 24999)
        led <= {led[6:0],led[7]};    //位拼接
    else
        led <= led;
    
endmodule

方法3:使用三八譯碼器實現(xiàn)流水燈

知識點:1.計數(shù)器記滿清零。2. 模塊間的調(diào)用。

在當前模塊中調(diào)用三八譯碼器模塊,將38譯碼器的設計模塊添加到當前文件夾中,在led_run2.v中通過接口調(diào)用三八譯碼器。

將led_run2.v中的 led 接到三八譯碼器的 out 端口上時,led 不能再定義為 reg 型,因為三八譯碼器底層已經(jīng)將out定義為reg型。底層已經(jīng)定義了reg型,頂層就不能再定義reg型。 led是由底層模塊驅(qū)動的,頂層只能定義為wire型。

頂層模塊

module led_run2(
    Clk,
    Reset_n,
    led
);
    input Clk;
    input Reset_n;
    output  [7:0] led;
    
    reg [24:0] counter;
    reg [2:0] counter1; //二進制8個狀態(tài),3位
    
    always@(posedge Clk or negedge Reset_n)
    if(!Reset_n)
        counter <= 0;
//    else if(counter == 24999999)
    else if(counter == 24999) //500us
        counter <= 0;
    else
        counter <= counter + 1'd1;
        
    always@(posedge Clk or negedge Reset_n)
    if(!Reset_n)
        counter1 <= 0;
 //   else if(counter == 24999999)
    else if(counter == 24999)
        counter1 <= counter1 + 1'b1;

    decoder_3_8 decoder_3_8(
        .a(counter1[2]),    //counter1[2] 是最高位
        .b(counter1[1]),
        .c(counter1[0]),
        .out(led)       //底層已將out定義為reg型,所以頂層不能再定義成reg型
    );
    
endmodule

底層模塊

module decoder_3_8(
    a,
    b,
    c,
    out
);

input a;
input b;
input c;
output reg [7:0] out;
// 2種寫法:reg [7:0] out;

//以always塊描述的信號賦值,被賦值對象必須定義為reg類型
//{a,b,c}拼接成了一個三位信號

always@(*)begin
    case({a,b,c})
        3'b000: out = 8'b0000_0001;
        3'b001: out = 8'b0000_0010;
        3'b010: out = 8'b0000_0100;
        3'b011: out = 8'b0000_1000;
        3'b100: out = 8'b0001_0000;
        3'b101: out = 8'b0010_0000;
        3'b110: out = 8'b0100_0000;
        3'b111: out = 8'b1000_0000;
    endcase
end

endmodule

defparam寫法不能在testbench中生效文章來源地址http://www.zghlxwxcb.cn/news/detail-741425.html

到了這里,關于5.2 FPGA:基于verilog的LED流水燈設計(多種方法)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • FPGA入門————LED流水燈(超詳細教程)

    FPGA入門————LED流水燈(超詳細教程)

    本文使用軟件為vivado,其實用哪個軟件都是一樣的,主要是掌握核心編程思想。 如有需要下載vivado軟件下載可以參考: vivado及ISE各版本軟件下載方法、鏈接及詳細步驟,官方網(wǎng)頁下載_ise軟件下載_千尋xun的博客-CSDN博客 目錄 一、新建工程及設計文件 二、編寫LED流水燈程序

    2024年02月08日
    瀏覽(16)
  • FPGA學習分享--01 led流水燈的實現(xiàn)

    FPGA學習分享--01 led流水燈的實現(xiàn)

    需求 : 博宸電子的ZYNQ7020DEV開發(fā)板 Vivado 2018.3 一定的verilog語言基礎 博主目前學習的是 博宸電子的ZYNQ7020DEV開發(fā)板 ,下面是關于本次分享led流水燈的原理圖 圖1 涉及本次led流水燈的電路 首先,從圖1來看,每個led端口都和一個阻值為4.7k的電阻和一個發(fā)光二極管相連,并且發(fā)光

    2024年02月04日
    瀏覽(20)
  • FPGA學習——verilog實現(xiàn)流水燈

    FPGA學習——verilog實現(xiàn)流水燈

    學習芯片: EP4CE6F17C8 verilog代碼如下: 配置引腳,查看芯片的指導書: 燒錄運行結(jié)果如下: 如圖我們可以看見開發(fā)板上四個led燈同時被電亮。 代碼如下: 配置引腳,查看clock和key的引腳: 運行結(jié)果如下圖: 此時可以看見四個led燈同時閃爍。 流水燈代碼實現(xiàn): 實驗效果圖如

    2024年02月16日
    瀏覽(34)
  • FPGA綜合設計實驗:基于PWM脈寬調(diào)制的呼吸流水燈設計

    目錄 一、引言 二、項目準備 1.項目預期目標 2.項目原理及總體實現(xiàn)思路

    2024年02月13日
    瀏覽(23)
  • 基于Verilog HDL的按鍵控制流水燈即打地鼠小游戲的設計

    (1)用4個按鍵key0-key3對應控制4個小燈LED0-LED3;用觸摸按鍵進行模式切換;用一位數(shù)碼管顯示當前控制模式,兩位數(shù)碼管顯示當前得分。 (2)觸摸按鍵沒有按下時處于模式1,按下后處于模式2。用模式數(shù)碼管顯示當前的控制模式。 (3)模式1工作方式:當點亮LED0時,若按下

    2024年02月12日
    瀏覽(47)
  • 多路彩燈控制器LED流水燈花型verilog仿真圖視頻、源代碼

    多路彩燈控制器LED流水燈花型verilog仿真圖視頻、源代碼

    名稱:多路彩燈控制器LED流水燈花型verilog 軟件:Quartus 語言:Verilog 代碼功能: ? ? ?用quartus和modelism,設計一個多路彩燈控制器,能夠使花型循環(huán)變化,具有復位清零功能,并可以選擇花型變化節(jié)奏。具體要求如下:? 1)彩燈控制器由16路發(fā)光二極管構成,當控制開關打開時

    2024年02月04日
    瀏覽(20)
  • 基于51單片機的51單片機的LED彩燈霓虹燈控制器(心形流水燈)設計

    基于51單片機的51單片機的LED彩燈霓虹燈控制器(心形流水燈)設計

    基于51單片機的51單片機的LED彩燈霓虹燈控制器(心形流水燈)設計 必看??!視頻講解 基于51單片機的LED彩燈霓虹燈心形流水燈設計 仿真圖:proteus8.9以上 程序代碼:KEIL4/KEIL5 原理圖:AD 設計編號:A0005 結(jié)合實際情況,基于51單片機設計一個LED彩燈控制器設計。該系統(tǒng)應滿足的功能要

    2024年02月02日
    瀏覽(26)
  • FPGA學習——按鍵控制LED流水燈(附源碼 無按鍵消抖版本)

    FPGA學習——按鍵控制LED流水燈(附源碼 無按鍵消抖版本)

    在博主的cyclone4開發(fā)板上一共有4個按鍵,本次實驗的目的是為了實現(xiàn)每按下一次按鍵,都會使開發(fā)板上的4個LED燈切換一次狀態(tài),博主一共設計了四種狀態(tài),分別是: 按鍵 狀態(tài) 按鍵1按下 自右向左的流水燈 按鍵2按下 自左向右的流水燈 按鍵3按下 四燈常亮 按鍵4按下 四燈閃爍

    2024年02月06日
    瀏覽(19)
  • 【LabVIEW FPGA圖形化】 ngc、edf網(wǎng)表文件的編寫:LED流水燈

    【LabVIEW FPGA圖形化】 ngc、edf網(wǎng)表文件的編寫:LED流水燈

    【LabVIEW FPGA圖形化】 ngc、edf網(wǎng)表文件的編寫:LED流水燈 FPGA圖形化可以提高FPGA的開發(fā)效率,為產(chǎn)品迭代、功能機驗證,產(chǎn)品參數(shù)調(diào)試提供的便捷的編程方式。LabVIEW作為一款圖形化開發(fā)軟件可以為FPGA提供零代碼開發(fā),圖形化界面可以非常直觀的展示出FPGA的并行結(jié)構。LabVIEW的開

    2023年04月27日
    瀏覽(28)
  • 【FPGA】verilog基礎語法與應用:位操作 / 模塊調(diào)用——流水燈(跑馬燈)

    【FPGA】verilog基礎語法與應用:位操作 / 模塊調(diào)用——流水燈(跑馬燈)

    今天的實驗是計數(shù)器實驗的升級,設計讓8個LED燈以每個0.5s的速率循環(huán)閃爍 1 移位法實現(xiàn) 1.1 移位方法1 每個LED燈代表一位,共8位,亮為1,滅為0 如何實現(xiàn)這樣的邏輯呢? 移位操作即可! 怎么樣才能移位呢? 第一個狀態(tài)需滿足最低位為1,然后每次左移1個 源代碼 仿真代碼 功

    2024年01月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包