歡迎您光臨本站 登入註冊首頁

verilog HDL設計練習進階(一)

admin @ 2014-03-26 , reply:0

概述

練習一.簡單的組合邏輯設計目的:掌握基本組合邏輯電路的實現方法。   這是一個可綜合的數據比較器,很容易看出它的功能是比較數據a與數據b,如果兩個數據相同,則給出結果1,……

練習一.簡單的組合邏輯設計
目的: 掌握基本組合邏輯電路的實現方法。

    這是一個可綜合的數據比較器,很容易看出它的功能是比較數據a與數據b,如果兩個數據相同,則給出結果1,否則給出結果0。在Verilog HDL中,描述組合邏輯時常使用assign結構。注意equal=(a==b)?1:0,這是一種在組合邏輯實現分支判斷時常使用的格式。

    模塊源代碼:

    //--------------- compare.v -----------------

    module compare(equal,a,b);

    input a,b;

    output equal;

    assign equal=(a==b)?1:0; //a等於b時,equal輸出為1;a不等於b時,

                                       //equal輸出為0。

    endmodule

    測試模塊用於檢測模塊設計得正確與否,它給出模塊的輸入信號,觀察模塊的內部信號和輸出信號,如果發現結果與預期的有所偏差,則要對設計模塊進行修改。

    測試模塊源代碼:

    `timescale 1ns/1ns //定義時間單位。

    `include "./compare.v" //包含模塊文件。在有的模擬調試環境中並不需要此語句。

                                   //而需要從調試環境的菜單中鍵入有關模塊文件的路徑和名稱

    module comparetest;

    reg a,b;

    wire equal;

    initial //initial常用於模擬時信號的給出。

    begin a=0;

            b=0;

    #100 a=0;

            b=1;

    #100 a=1;

            b=1;

    #100 a=1;

            b=0;

    #100 $stop; //系統任務,暫停模擬以便觀察模擬波形。

    end

    compare compare1(.equal(equal),.a(a),.b(b)); //調用模塊。

    endmodule

    模擬波形(部分):

   

    練習: 設計一個位元組(8位)比較器。

    要求:比較兩個位元組的大小,如a[7:0]大於 b[7:0]輸出高電平,否則輸出低電平,改寫測試模型,使其能進行比較全面的測試 。
 


[admin via 研發互助社區 ] verilog HDL設計練習進階(一)已經有18166次圍觀

http://cocdig.com/docs/show-post-43490.html