文章編號:1672-5913(2008)16-0059-01
摘要:本文針對計算機專業學生的特點,提出將Verilog HDL語言引入到數字邏輯電路教學中,并通過實例講解闡述了使用Verilog HDL語言教學的優勢。
關鍵詞:數字邏輯電路;Verilog HDL;硬件設計
中圖分類號:G642
文獻標識碼:B
引言
隨著微電子技術、計算機技術、半導休技術的發展,很多傳統的數字門電路的設計已經被可編程邏輯器件替代。可編程邏輯器件的通用性能夠大大縮短產品的上市時間。可編程邏輯器件的開發語言Verilog HDL具有類似于通用C語言的風格,因此被不少CPLD/FPGA開發者所推崇。
1硬件描述語言——Verilog HDL
目前,國際最流行的、并成為IEEE標準的兩種硬件描述語言是VHDL和Verilog HDL。兩種HDL各具特色,由于Verilog HDL早在1983年就已推出,至今已有25年的歷史,因此Verilog HDL擁有更廣泛的設計群體,資源也比VHDL豐富。與VHDL相比,Verilog HDL的最大優點為:它是一種非常容易掌握的硬件描述語言,只要具有C語言的編程基礎,通過20學時的學習,再加上實際操作,一般可在2~3個月內掌握這種設計技術。而掌握VHDL設計技術就比較困難,因為VHDL不是很直觀,需要Ada編程基礎,一般需要半年以上的培訓才能基本掌握設計技術,而且國內外90%的電子公司都把Verilog HDL作為企業標準設計語言。所以,對計算機系的學生來說,Verilog HDL比VHDL更容易入門和掌握。在數字電路邏輯設計教學中結合Verilog語言教學,對學生來說是一種知識的綜合運用。
2Verilog HDL在數字邏輯電路教學中的應用
在教學過程中,學生經常對利用器件來設計邏輯電路的方法感到無從下手。例如,當講到3-8譯碼器時,要求學生結合計數器,實現跑馬燈的邏輯。這時,學生往往把大部分時間花在如果利用計數器實現時鐘分頻,什么時候選用8 count計數器,又什么時候使用74163計數器,以及
如何設定這些器件的工作方式,引入Verilog HDL來設計跑馬燈的邏輯,實現思想比較簡單,在時鐘的分頻設計上不需要太復雜的邏輯,只需要設計一個計數器。當需要將系統時鐘分任意頻率時,只需改變計數器就可以,可讀性比較強。對于習慣了程序編程思想的計算機類學生,理解Verilog HDL的設計邏輯要比用調用器件實現的邏輯要容易。跑馬燈的邏輯實現如下所示:
module ledwater (ledout,clk);
output [7:0] ledout;//定義LED輸出口
input clk;//定義系統輸入時鐘
reg[7:0] ledout;//定義輸出寄存器
reg[7:0] x=1;
reg[24:0] buffer;
//系統時鐘是24.576MHz,時鐘分頻1Hz輸出
always@(posedge clk)
begin
buffer=buffer+1;
if(buffer==25'd24576000)
begin
x=x<<1;
if(x==8'b00000000)
begin
x=8'b1;
end
end
ledout=~x;
end
endmodule
在一些綜合的課程設計上,使用Verilog HDL語言設計方法更有優勢。例如要求學生課程設計做串口發送和接收的程序,如果使用傳統的電路原理圖輸入法,學生在理解了串口通信協議的基礎上也比較難實現,像要實現9600的波特率,也只有幾個同學可以做出。引進Verilog語言輸入法,學生更容易理解,而且實現也比較簡單。實現9600波特率的代碼如下所示:
parameter cout = 325;
//時鐘是50M所以16*9600的分頻數為325.5,這里取//整數
/************波特率發生進程************/
always@(posedge clk)
begin
if(clk_equ)
cnt = 16'd0;
else
cnt=cnt+1'b1;
end
assign clk_equ = (cnt == cout);
在數字邏輯電路設計中,分頻邏輯是最常用的邏輯之一。對于2的任意冪次分頻,調用器件可以實現,但是要實現任意分頻時就比較復雜,需要列出狀態圖然后利用器件或者器件加邏輯門來實現,學生要理解比較困難,一般的學生難以實現。使用Verilog HDL進行分頻設計則容易得多。從上面的分頻和波特率設計可以看到,在Verilog HDL實現分頻只需要實現一個計數器。需要修改邏輯時,比修改傳統的電路原理圖要簡單,這對于計算機專業的學生來說,設計數字電路邏輯時使用語言更容易理解。在數字邏輯電路的教學中引入Verilog HDL語言教學,使得學生在一些復雜的邏輯電路設計上能更好地理解和掌握。
3小結
軟件實現硬件設計早已不是時髦的話題。翻開任何一個與電子設計相關的企業,數字電路相關的職業都是招聘的熱點。數字電路與邏輯設計是計算機、計算機系統的硬件基礎,把語言教學引入到這門課程當中,會顯著提升數字電路的應用性,更好地發揮這門課程的作用,讓學生能夠緊跟市場和技術的前沿。
參考文獻:
[1] 鄧元慶,關宇,賈鵬. 數字設計基礎與應用[M]. 北京: 清華大學出版社,2005.
[2] 江國強. 數字電路的Verilog HDL設計[M]. 北京: 機械工業出版社,2007.
[3] 江國強. EDA技術與應用[M]. 北京: 電子工業出版社,2004.
[4] 夏宇聞. 復雜數字電路與系統的Verilog HDL設計技術[M].北京航空航天大學出版社,2002.