FPGA、ARM、DSP成為電子工程技術的市場的核心的控制器。尤其是FPGA,由于它具有處理速度高、可并行執(zhí)行和高靈活性的特點,因此常被用于通信、工業(yè)控制等領域?;贏ctelFpGA的4位ALU的設計方案,為學習FPGA的設計和CPU的設計提供了基礎。它給大學老師和同學們提供了一個很好了解和設計CPU的機會。你想設計自己的CPU嗎?只要使用我們的方案,你就可以!
本文主要介紹采用高可靠性、低成本的Actel FPGA-A3P010來實現(xiàn)一個4位的算術邏輯單元ALU的系統(tǒng),為大家提供一種學習和設計CPU的實現(xiàn)方案。本方案是為了滿足FPGA的教育教學需求而設計的,結合了Actel FpGA單芯片、上電即行、低成本、低功耗、高安全性和高可靠性的優(yōu)點,使得該ALU的系統(tǒng)在教育教學中很容易實現(xiàn)。如果采用I/O資源數(shù)較多的A3P015,該方案可以很容易地擴展為8位總線的ALU,為設計更高性能的CPU提供了基礎。想學習FPGA,就從學習基于ActelFPGA的4位ALU方案開始!
1 概述
(1)功能概述
·支持16種4位數(shù)據(jù)長度的邏輯運算操作,包括與、或、非、異或、同或等邏輯運算功能:
·支持16種4位數(shù)據(jù)長度的算術運算操作,包括加法、減法的算術運算功能:
·算術運算操作支持進位輸入和進位輸出的功能,并支持進位生成輸出和進位傳送輸出的功能;
·支持邏輯運算與算術運算混合的運算操作;
·支持兩操作數(shù)比較大小的功能;
·兼容74HCl81的功能:
·支持擴展功能,可以很容易地實現(xiàn)由4位總線擴展到8、16位總線的ALU:
·資源占用率低??捎肁ctel的A3P010實現(xiàn)4位總線的ALU,如果擴展為8位總線功能可用A3P015及以上器件實現(xiàn),具體占用資源情況與實際的功能有關;
·FPGA的可編程性使得功能設計非常靈活,可以根據(jù)用戶需求定制特殊功能:
·真正完美的單芯片、低成本、低功耗解決方案:
·ActelFPGAS的FlashLock加密,保護您的設計:
·Acrel FPGA的固件錯誤免疫使得系統(tǒng)可以工作于較惡劣的環(huán)境中,可靠性極高。
(2)系統(tǒng)框圖
如圖1所示。這是ALu的硬件系統(tǒng)框圖。該ALU由六個功能模塊組成。分別為邏輯運算模塊、算術運算模塊、進位模塊、比較模塊、16選1的多路選擇器模塊和2選1的多路選擇器模塊。信號端口的功能說明見表1所示。
ALU按照接口類別劃分,可以把整個系統(tǒng)的接口分為:控制接口、數(shù)據(jù)接口。詳細的接口信息,如表1所示。
(3)ALU的邏輯功能表
ALU的邏輯功能表,如表2所示。ALU在模式控制輸入端mode control的控制下,可以選擇邏輯運算功能或算術運算功能。當mode control為高電平1時,ALU執(zhí)行4位邏輯運算操作;當mode control為低屯平0時,它執(zhí)行4位算術運算操作,具體執(zhí)行的操作可由功能選擇輸入端select_input[3:0]控制。例如,當mode_control=1,select input[3:0]=“0000”時執(zhí)行的是邏輯運算function output=的操作。
2 各功能模塊介紹
(1)邏輯運算功能模塊
ALU的第一大功能就是可以進行邏輯運算。當ALU執(zhí)行邏輯運算操作時,模式控制輸入端mode control=1,輸入輸出端carry,JnPuh generate output、propagate output、carry output、cmp_output不影響邏輯運算結果,operand_a[3:0],operand_b[3:0]是兩個4位輸入的操作數(shù),select_input[3:O]是選擇輸入控制端,function output[3:0]是4位邏輯運算結果的輸出端,具體的邏輯運算時序如圖2所示。
(2)算術運算功能模塊
ALU的第二大功能就是可以執(zhí)行算術運算。當ALU執(zhí)行算術運算時,橫式控制輸入端mode control=O,進位輸入端carry,input對算術運算的結果有影響,generate_output、propagateoutput、carry output、crop output根據(jù)運算的結果而變化,operand_a[3:0],operand_b[3:0]是兩個4位輸入的操作數(shù),select_input[3:0]是4位選擇輸入控制端,function_output[3:0]是4位算術運算結果的輸出端。具體的時序如圖3所示。
(3)比較功能模塊
ALU的第三大功能就是可以執(zhí)行比較大小運算功能。當ALU執(zhí)行兩操作數(shù)比較大小時,橫式控制輸入端mode control=0,進位輸入端carry_input=1,選擇輸入端select_input[3:0]=“0110”,operand_a[3:0]、operand_b[3:0]是兩個4位將要比較大小的操作數(shù)。比較大小輸出端crop output與進位輸出端carryoutput共同確定兩操作數(shù)比較大小的結果。
3 市場應用
基于Actel FPGA實現(xiàn)4位ALU的解決方案,主要是為了滿足FPGA的教育教學需求而設計的。本公司為了提高大學生對FPGA的學習興趣,并改善FPGA傳統(tǒng)教學方式,特意設計了此方案。由FPGA設計的ALu擴展的靈活性大,可以很容易地擴展為8位總線的ALu,為設計高性能的CPU提供了基礎。
4 小結
本文主要介紹了基于Actel FPGA的4I~ALU系統(tǒng)的功能和應用。敬請關注周立功公司的網站www.zlgmcu.com以獲得更多的信息。我們有著一個接近30人的FPGA團隊提供強有力的售后服務和技術支持,解決用戶在產品使用和研發(fā)過程中遇到的困難。若有更多的需求可以與我們聯(lián)系,我們將會竭誠為您服務,并請關注下期的FPGA專題技術講座。