久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6325|回復: 1
收起左側

FPGA學習-高性能計數器IP核調用與驗證

[復制鏈接]
ID:108531 發表于 2016-3-12 22:42 | 顯示全部樓層 |閱讀模式

1、利用Quartus II自帶的計數器IP核來熟悉怎么使用Quartus II的IP核。

2、使用計數器IP核的步驟(具體過程參考視頻,這里貼出幾張比較重要的步驟以及解釋)

 

 

 

這一步不能勾選,否則會出現其他問題(暫時還不明白是咋回事)

 

 

3、生成的原理圖(看不懂、略)

4、仿真程序

/* 實驗名稱:計數器IP核驗證

 * 程序功能:每5個時鐘周期計數一次,當計數10次后輸出一個高電平

 */

 

`timescale 1ns/1ns

`define clock_period    20

 

module count_ip_tb;

 

    reg cin;           

    reg clk;

    wire cout;

    wire[3:0] q;

   

    count_ip count_ip0(

    .cin(cin),        // cin 給一次高電平,計數一次并通過 q 輸出

    .clock(clk),    // 時鐘頻率

    .cout(cout),    // 當計數器溢出或者計數到指定的數值會輸出一個時鐘周期的高電平

    .q(q)                // cin 為高電平是,更新計數器的值并通過 q 輸出

    );

   

    initial clk = 1;

    always #(`clock_period/2) clk = ~clk;    // 產生時鐘

   

    initial begin

        repeat(20)begin                // 循環 20 次

            // 為了方便理解,這部分是我改寫的代碼

            cin = 0;                       

            #(`clock_period * 5);    //cin 維持5個時鐘的低電平   

            cin = 1;

            #(`clock_period);            //cin 維持1個時鐘的高電平

                   

        end

       

        cin = 0;        // 為避免計數器繼續計數輸出,需要將 cin 設置為低電平

       

        #(`clock_period * 200);            // 延時200個時鐘周期

        $stop;                                // 停止執行

   

    end

 

endmodule 

 

5、輸出的波形



6、兩個4位計數器IP核級聯為8位計數器


 

7、源程序(注意,這里需要將計數器IP核設置為 Plain binary 即計數到最大值

/* 實驗名稱:級聯計數器IP核

 * 程序功能:將兩個4位計數器IP核級聯實現8位計數器

 */

module mytest(cin, clk, cout, q);

    input cin;       

    input clk;

    output cout;

    output[7:0] q;

   

    wire cout0;        // 線網類型,暫時理解為導線

    // 計數器0

    count_ip count_ip0(

    .cin(cin),        // cin 觸發計數

    .clock(clk),        // 時鐘

    // 計數器0的 count 通過 cout0 與計數器1的 cin 鏈接

    .cout(cout0),        // 當計數器溢出了,cout就會觸發一個時鐘的高電平

    .q(q[3:0])        // 輸出計數器的值為低4位,即表示計數了多少次

    );

    // 計數器1

    count_ip count_ip1(

    // cin 的觸發由計數器0的cout輸出觸發

    .cin(cout0),        // 當計數器0溢出1次這里才計數1次

    .clock(clk),        // 時鐘

    .cout(cout),        // 當計數器1溢出了,就會輸出一個時鐘的高電平

    .q(q[7:4])        // 輸出計數器的值為高4位,即表示多少個計數器0溢出

    );

endmodule   

 

 

8、仿真源程序

/* 實驗名稱:級聯計數器IP核驗證

 * 程序功能:測試級聯過后的計數器是否為8位

 */

`timescale 1ns/1ns

`define clock_period    20

 

module mytest_tb;

    reg cin;           

    reg clk;

    wire cout;

    wire[7:0] q;

   

    mytest count_ip(

    .cin(cin),        // cin 給一次高電平,計數一次并通過 q 輸出

    .clk(clk),        // 時鐘頻率

    .cout(cout),        // 當計數器溢出或者計數到指定的數值會輸出一個時鐘周期的高電平

    .q(q)            // cin 為高電平是,更新計數器的值并通過 q 輸出

    );

   

    initial clk = 1;

    always #(`clock_period/2)  clk = ~clk;    // 產生時鐘

   

    initial begin

        repeat(300)begin                    // 循環 20 次

            // 為了方便理解,這部分是我改寫的代碼

            cin = 0;                       

            #(`clock_period * 5);            //cin 維持5個時鐘的低電平   

            cin = 1;

            #(`clock_period);                //cin 維持1個時鐘的高電平

                   

        end

       

        cin = 0;        // 為避免計數器繼續計數輸出,需要將 cin 設置為低電平

       

        #(`clock_period * 200);                // 延時200個時鐘周期

        $stop;                            // 停止執行

   

    end

 

endmodule   

 

 

9、波形圖(圖中 q 顯示的值是無符號十進制)

 

10、電路圖

 

11、級聯8位的好處是可以將兩個計數器的值進行分離。舉個例子,我們要將兩位計數的數字顯示在兩個數碼管中,那么就可以將計數器0的輸出端q直接輸出給表示個位的數碼管,而計數器1的輸出端q直接輸出給表示十位的數碼管即可。

 

12、波形圖(設置計數器計數到9,十六進制)

回復

使用道具 舉報

ID:108615 發表于 2016-3-14 00:29 | 顯示全部樓層
教程很好,收藏保存了,51黑論壇有你更精彩!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日av| 欧美视频第二页 | 亚洲精品成人av久久 | 夜夜久久 | 国产精品一区二区三区在线 | 在线观看国产91 | 日韩国产在线 | av黄色免费在线观看 | 日韩午夜电影在线观看 | 久久婷婷av| 精品欧美激情精品一区 | 日韩视频中文字幕 | 99精品99| 欧美一区二区免费 | 国产乱码精品一区二区三区中文 | 精品亚洲一区二区三区四区五区 | 特级生活片 | 狠狠av | 国产成人精品久久 | 欧美一区永久视频免费观看 | 特级a欧美做爰片毛片 | 97偷拍视频 | 91精品国产高清一区二区三区 | 久久精品黄色 | 黄色片在线免费看 | 免费观看一级特黄欧美大片 | 在线观看日本高清二区 | 精品国产女人 | 五月综合久久 | 久久久精品一区 | 久久久高清 | 性高湖久久久久久久久aaaaa | 国产av毛片 | 久久大陆| 亚洲区中文字幕 | 黄网站涩免费蜜桃网站 | 国产日韩精品一区二区 | 亚洲精品久久久久久下一站 | 久久精品视频91 | 精品福利一区二区三区 | 国产精品乱码一区二区三区 |