色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 【從零開始走進(jìn)FPGA】美好開始——我流啊流啊流

          【從零開始走進(jìn)FPGA】美好開始——我流啊流啊流

          作者: 時(shí)間:2015-01-26 來源:網(wǎng)絡(luò) 收藏

            (2)clk_design.v模塊設(shè)計(jì)

          本文引用地址:http://cafeforensic.com/article/268641.htm

            由于系統(tǒng)輸入時(shí)鐘是50Mhz,若以50MHz的速度變換LED等,人眼壓根分辨不出來。因此利用分頻原理,來對(duì)50MHz進(jìn)行分頻,而適應(yīng)人眼。本模塊將50MHz分頻至10Hz,人眼分辨的極限是25Hz,因此10Hz能感覺得到(可以隨機(jī)修改)。Led_en的頻率計(jì)算公式:clk_led_en = 50_000000/(49_000000+1) = 10Hz,具體代碼如下:

            module clk_design

            (

            input clk,

            input rst_n,

            output led_en

            );

            reg [22:0] cnt; //49_99999,100ms

            parameter LED_CNT = 49_999999;

            always@(posedge clk or negedge rst_n)

            begin

            if(!rst_n)

            cnt <= 23'd0;

            else if(cnt < LED_CNT)

            cnt <= cnt + 1'b1;

            else

            cnt <= 23'd0;

            end

            assign led_en = (cnt == 23'd49_99999) ? 1'b1 : 1'b0;

            endmodule

            模塊沒有分頻產(chǎn)生10Hz的頻率,而是生成了10Hz的使能時(shí)鐘,目的是防止時(shí)鐘滿天飛,使得 內(nèi)部布局布線紊亂,影響全局功能。雖然如此簡(jiǎn)單的工程可以不用考慮,但是“習(xí)慣了嚴(yán)謹(jǐn)便成為了一種風(fēng)范”,因此使用使能時(shí)鐘,來對(duì)具體的時(shí)序進(jìn)行操作。具體使能時(shí)鐘、門控時(shí)鐘的異同、優(yōu)劣將會(huì)在后續(xù)章節(jié)中解說。

            (3)led_display.v模塊設(shè)計(jì)

            根據(jù)輸入的led_en使能信號(hào),來操作led燈的效果,此處采用最簡(jiǎn)單的算法——遞增進(jìn)位。代碼如下所示:

            module led_display

            (

            input clk,

            input rst_n,

            input led_en,

            output reg [5:0] led_data

            );

            always@(posedge clk or negedge rst_n)

            begin

            if(!rst_n)

            led_data <= 6'b0;

            else if(led_en)

            led_data <= led_data + 1'b1;

            else

            led_data <= led_data;

            end

            endmodule

            (4)從新修改water_led_design頂層文件,添加相關(guān)例化模塊。最后結(jié)果如下:

            module water_led_design

            (

            input clk, //global clock 50MHz

            input rst_n, //global clock reset

            output [5:0] led_data //user led interface

            );

            //-------------------------

            //generater clock 10Hz

            wire led_en;

            clk_design clk_design_inst

            (

            .clk (clk),

            .rst_n (rst_n),

            .led_en (led_en)

            );

            //-------------------------

            //set the display of led

            led_display led_display_inst

            (

            .clk (clk),

            .rst_n (rst_n),

            .led_en (led_en),

            .led_data (led_data)

            );

            endmodule

          fpga相關(guān)文章:fpga是什么


          c++相關(guān)文章:c++教程




          關(guān)鍵詞: FPGA Quartus II

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉