摘 要:介紹了一種使用可編程邏輯器件FPGA和VHDL語言進(jìn)行ALU設(shè)計的方法。并在加法器模塊的設(shè)計中使用了超前進(jìn)位的方法。使得所設(shè)計的ALU具有很好的穩(wěn)定性和較高的速度。<!--摘要CH(結(jié)束)←-->
<!--→關(guān)鍵CH(開始)--> 關(guān)鍵詞:FPGA VHDL;算術(shù)邏輯單元;超前進(jìn)位
<!--關(guān)鍵EN(結(jié)束)←-->1 引 言
隨著可編程邏輯器件的發(fā)展,F(xiàn)PGA的應(yīng)用已經(jīng)越來越廣泛,且用可編程邏輯器件代替?zhèn)鹘y(tǒng)的普通集成電路已成為一種發(fā)展的趨勢?删幊踢壿嬈骷﨔PGA以其高集成度、高速度、開發(fā)周期短、穩(wěn)定性好而受到了人們的青睞,并得到了廣泛的應(yīng)用。由于算術(shù)邏輯單元(ALU)在運(yùn)算中對系統(tǒng)性能要求很高,而采用中小規(guī)模的集成電路設(shè)計的系統(tǒng)既龐大又存在穩(wěn)定性的問題。因此,用可編程邏輯器件FPGA來實(shí)現(xiàn)算術(shù)邏輯單元是一個很好的選擇。而硬件描述語言(HDL)是使用可編程邏輯器件的不可缺少的工具,所以本文選用VHDL語言。并以設(shè)計4位算術(shù)邏輯單元為例,來實(shí)現(xiàn)算術(shù)邏輯單元的功能,又通過純組合邏輯電路和超級進(jìn)位方法的應(yīng)用,使得在高速可編程邏輯器件FPGA的基礎(chǔ)上,實(shí)現(xiàn)了算術(shù)邏輯單元在速度上的進(jìn)一步優(yōu)化。
2 電路設(shè)計
本算術(shù)邏輯運(yùn)算單元可實(shí)現(xiàn)與、或、非、異或、邏輯左移、邏輯右移的邏輯運(yùn)算和加、減、乘、除的算術(shù)運(yùn)算等10種功能,也可以根據(jù)需要進(jìn)行功能的增
減,這也體現(xiàn)出了用VHDL語言設(shè)計硬件系統(tǒng)的靈活性。
2.1 設(shè)計思想
該ALU單元采用模塊化設(shè)計。共劃分了4個模塊:控制與邏輯運(yùn)算電路模塊(Control)、加減法電路模塊(Addsub)、乘法電路模塊(Mul)和除法電路模塊(div)。總體構(gòu)成如圖1所示。
ALU模塊圖如圖2所示。圖中A,B為2個4位的輸入;Command為功能選擇輸入;CIN為加減法的進(jìn)位和借位輸入;COUT為加減法的進(jìn)位和借位的輸出;Resulta和Resultb為2個4位的輸出,乘法時Resultb存放積的高4位,Resulta存放積的低4位,除法時Resulta 存放商,Resultb存放余數(shù)。
2.2 各模塊分析
。1)控制模塊(Control) 該模塊對系統(tǒng)的工作進(jìn)行總體控制。根據(jù)對Command輸入的信號分析來決定ALU執(zhí)行的功能,并進(jìn)行加減法模塊、乘法模塊、除法模塊的選擇和輸出的控制。在程序中使用3個CASE語句來實(shí)現(xiàn)。第1個CASE語句控制邏輯運(yùn)算的實(shí)現(xiàn),第2個CASE語句控制加減法模塊、乘法模塊、除法模塊的選擇,第3個CASE語句控制輸出的選擇。
。2)加減法模塊(Addsub) 本設(shè)計中減法運(yùn)算通過加補(bǔ)碼的方式由加法器實(shí)現(xiàn),這樣可以簡化系統(tǒng) 前進(jìn)位(有關(guān)超前進(jìn)位的內(nèi)容可參閱文獻(xiàn)[1]的應(yīng)用,使得加法器速度受進(jìn)位限制的問題得到解決。



源程序如下:


。3)乘法模塊和除法模塊(Mul,Div) 乘法、除法模塊也采用了純組合邏輯電路的設(shè)計。比時序邏輯構(gòu)成的乘除法器在速度上具有優(yōu)勢。編程原理采用通過逐位相加減的方法來實(shí)現(xiàn)。乘法模塊源程序如下:

2.3 系統(tǒng)仿真
最后采用VHDL語言中的例化語句對上述各模塊進(jìn)行整合,并對其進(jìn)行仿真,得到了預(yù)期的效果。實(shí)現(xiàn)了ALU的各項功能。仿真圖如圖3所示。

3 結(jié) 語
隨著EDA技術(shù)的發(fā)展,可編程邏輯器件FPGA和VHDL語言在硬件電路設(shè)計中,越來越顯示出其優(yōu)越性,本設(shè)計即是一個很好的驗證。通過實(shí)際的應(yīng)用和日常的實(shí)驗中的使用,該ALU系統(tǒng)體現(xiàn)出了良好的穩(wěn)定性,在速度上也能很好的滿足系統(tǒng)的要求。
<!--→參考文獻(xiàn)CH(開始)-->
[2] 潘松,王國棟.VHDL實(shí)用教程[M].成都:電子科技大學(xué)出版社,2002.
[3] 盧毅,賴杰.VHDL與數(shù)字電路設(shè)計[M].北京:科學(xué)出版社,2002.





