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