練習一.簡單的組合邏輯設計
目的: 掌握基本組合邏輯電路的實現方法。
這是一個可綜合的數據比較器,很容易看出它的功能是比較數據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