MC8051單片機(jī)IP核的FPGA實(shí)現(xiàn)與應(yīng)用
2.3.5 并行I/O端口
為了便于IC設(shè)計(jì),MC805l IP核的I/0口不提供復(fù)用功能,包括4個(gè)8位輸入輸出口、串行接口、計(jì)數(shù)器輸入端和擴(kuò)展存儲(chǔ)器接口。如果要想將。MC8051 IP核的并行I/O端口改為雙向I/0端口,設(shè)計(jì)時(shí)可以添加一些外圍邏輯電路來(lái)實(shí)現(xiàn)。其基本電路結(jié)構(gòu)如圖5所示。圖中的2個(gè)D觸發(fā)器起同步輸入信號(hào)的作用(mc805l_core的輸入I/O不做同步處理),也可以不用。上拉電阻是必要的,因?yàn)镮/0端口輸出高電平是靠上拉電阻實(shí)現(xiàn)的。
2.4 MC8051其他說(shuō)明
(1)MC8051 IP核的定時(shí)器和串口波特率的計(jì)算與標(biāo)準(zhǔn)8051一樣,由系統(tǒng)時(shí)鐘經(jīng)12倍分頻獲得計(jì)數(shù)時(shí)鐘。
(2)外部中斷信號(hào)是經(jīng)兩級(jí)寄存器做同步處理后輸入的。
(3)MC805l_core的輸入I/0不做同步處理,必要時(shí)可自行添加,如圖5所示。
(4)寫應(yīng)用程序時(shí),I/O端口如果沒有做成雙向端口,而是輸入和輸出分開的,應(yīng)特別注意諸如Pl=一P1、P1^O=P1^0這樣的I/0取反操作是無(wú)效的,因?yàn)樽x回的值不是I/O寄存器的值,而是輸入引腳的狀態(tài)。
3 MC8051的RTL封裝
利用綜合工具Synplify Pro軟件實(shí)現(xiàn)對(duì)MC8051核的RTL封裝,從而生成最終所需的MC8051 IP核(.vqm文件)。
3.1 MC8051存儲(chǔ)模塊生成
MC8051中所需的存儲(chǔ)模塊:內(nèi)部RAM、擴(kuò)展RAM和ROM。其中內(nèi)部RAM和ROM是必要的,內(nèi)部RAM固定為128字節(jié),ROM最大可選64 K字節(jié),鑒于FPGA片上RAM資源有限,這里選用4 K字節(jié)(可根據(jù)需要修改);擴(kuò)展RAM是可選,最大也可以達(dá)到64 K字節(jié),這里選用2 K字節(jié)。
由于采用Altera公司的FPGA來(lái)實(shí)現(xiàn),所以可以利用Al―tera公司的集成開發(fā)環(huán)境Quartus II來(lái)創(chuàng)建ROM、RAM模塊。在具體的FPGA實(shí)現(xiàn)中,可根據(jù)不同廠家的器件,用廠家提供的工具來(lái)生成ROM和RAM,或者采用HDL描述實(shí)現(xiàn)。
3.2 MC8051 IP核RTL封裝
由于用的MC8051 IP核源代碼頂層設(shè)計(jì)文件中的存儲(chǔ)模塊(RAM、ROM)是仿真時(shí)使用的,實(shí)際應(yīng)用設(shè)計(jì)時(shí),必須改成實(shí)際應(yīng)用中用到的RAM、ROM模塊(也就是前面生成的RAM、ROM模塊)。
(1)打開源代碼中的mc805l_p.vhd程序包文件,將原文件中的RAM(包括內(nèi)部RAM、擴(kuò)展RAM)、ROM元件例化語(yǔ)句全部替換成實(shí)際應(yīng)用設(shè)計(jì)的程序代碼;
(2)打開源代碼中的mc805l_top_stru.vhd文件,將原文件中的RAM(包括內(nèi)部RAM、擴(kuò)展RAM)ROM元件端口映射語(yǔ)句全部修改成應(yīng)用設(shè)計(jì)的端口映射。因?yàn)閷?shí)際應(yīng)用中RAM、ROM的容量與MC8051核中存儲(chǔ)器容量不一致及控制信號(hào)的差異,需要修改實(shí)際應(yīng)用中RAM、ROM的地址線及控制信號(hào)線的端口映射。
(3)新建Synplify Pro工程,將修改后的MC8051 IP核的VHDL文件添加到工程中。選擇綜合的目標(biāo)FPGA器件,設(shè)置相關(guān)綜合參數(shù),生成MC8051 IP核的RTL封裝文件.vqm,其綜合后的RTL圖如圖6所示。
(4)因?yàn)閂HDL文件編譯是有順序的,所以在向SynplifyPro工程添加VHDL源代碼文件時(shí),應(yīng)注意的是:首先添加MC805l_p.vhd文件,然后添加其他文件,最后添加mc805l_top_.vhd和mc8051_top_strut.vhd文件。注意文件名后為_cfg.vhd的配置文件可以不添加到工程中,前面生成的RAM、ROM源代碼文件也不必添加到工程里面。
(5)綜合編譯成功后,需要檢查頂層設(shè)計(jì)是否正確,這時(shí)可通過(guò)RTL圖來(lái)檢查。在RTL圖中可看到MC8051 IP核的頂層結(jié)構(gòu)圖。在RTL圖中主要檢查ROM、RAM模塊的連線是否正確,是否符合實(shí)際應(yīng)用設(shè)計(jì)。
4 MC8051 IP核應(yīng)用構(gòu)建
采用Ahera公司的FPGA實(shí)現(xiàn),可以利用Ahera公司的集成開發(fā)環(huán)境0uartus II構(gòu)建實(shí)際應(yīng)用系統(tǒng)。
4.1 MC8051硬件系統(tǒng)構(gòu)建
在QuartusⅡ中新建應(yīng)用工程,創(chuàng)建頂層圖形設(shè)計(jì)文件并保存。
(1)將MC8051 IP核進(jìn)行RTL封裝時(shí)用Quartus II創(chuàng)建的RAM、ROM模塊文件添加到工程中;
(2)在工程中調(diào)用FPGA自帶的PLL數(shù)字鎖相環(huán)模塊,將目標(biāo)系統(tǒng)板上的時(shí)鐘調(diào)整到MC805l IP核的應(yīng)用時(shí)鐘頻率。MC805l IP核經(jīng)Quartus II綜合編譯后,查看時(shí)序分析報(bào)告,其最高運(yùn)行頻率為18.96 MHz(每次編譯都可能不同,I/0分配不同結(jié)果可能不同),因此系統(tǒng)時(shí)鐘不能超過(guò)時(shí)序報(bào)告的時(shí)鐘最高頻率(即fmax)。可以選擇18 MHz,利用PLL對(duì)目標(biāo)系統(tǒng)板上的時(shí)鐘進(jìn)行分頻;
(3)將Synplifyr Pro綜合生成的RTL封裝文件.vqm拷貝到Quartus II工程文件目錄下,并添加到工程中。然后再將添加.vqm文件生成MC8051_top.bsf圖形文件;
(4)打開創(chuàng)建的應(yīng)用設(shè)計(jì)頂層圖形設(shè)計(jì)文件,將前面生成的PLL模塊、MC8051_top模塊添加到頂層設(shè)計(jì)文件中。添加輸入/輸出引腳,并對(duì)引腳命名,連接引腳與各模塊.設(shè)置相關(guān)編譯參數(shù)。生成FPGA的配置文件*.sof。其實(shí)際應(yīng)用系統(tǒng)頂層原理圖如圖7所示。
可將并行I/O端口設(shè)計(jì)成雙向I/O端口,以節(jié)約FPGA的引腳資源,其方法參見圖5。根據(jù)實(shí)際應(yīng)用的需要,利用FPGA剩余的資源,添加其他邏輯模塊,與MC8051 core模塊、PLL模塊一起構(gòu)成應(yīng)用系統(tǒng)。這里只討論MC8051 IP核的FPGA實(shí)現(xiàn)。
4.2 MC8051應(yīng)用程序創(chuàng)建
在MC8051應(yīng)用系統(tǒng)建立后,根據(jù)具體應(yīng)用編寫應(yīng)用程序??梢允荂語(yǔ)言程序,也可以是匯編語(yǔ)言程序。MC8051的應(yīng)用程序與標(biāo)準(zhǔn)的8051應(yīng)用程序完全兼容,可以采用熟悉的開發(fā)工具進(jìn)行應(yīng)用程序的編寫。在編寫完成、仿真調(diào)試通過(guò)后,利用編譯工具編譯生成.hex文件,供固化ROM使用。
4.3 MC8051實(shí)際應(yīng)用系統(tǒng)實(shí)現(xiàn)
將生成的.hex應(yīng)用程序文件拷貝到Quartus II工程文件目錄下,替代原創(chuàng)建ROM存儲(chǔ)器模塊時(shí)使用的初始化.hex文件。然后重新編譯Quarius II工程生成FPGA的配置文件.sof,將應(yīng)用程序代碼嵌入(同化)到ROM中。最后利用Quartus II的Programmer將FPGA的配置文件.sof下載到FPGA或EPCS中,實(shí)現(xiàn)MC8051的實(shí)際應(yīng)用系統(tǒng)。
5 結(jié)語(yǔ)
本文在分析了MC805lIP Core的結(jié)構(gòu)原理,設(shè)計(jì)層次,內(nèi)核各組成模塊及參數(shù)設(shè)置的基礎(chǔ)上,詳細(xì)論述了MC8051 IP核的FPGA實(shí)現(xiàn)與應(yīng)用的實(shí)際設(shè)計(jì)步驟。試驗(yàn)驗(yàn)證,根據(jù)需求修改后的MC8051 IP核,能很好滿足對(duì)8051MCU的應(yīng)用需求,而且其性能比標(biāo)準(zhǔn)8051 MCU高,系統(tǒng)集成度也比采用標(biāo)準(zhǔn)8051 MCU構(gòu)成的應(yīng)用系統(tǒng)高。因此,MC8051 IP核在基于可編程邏輯和MCU的應(yīng)用領(lǐng)域中具有廣泛的應(yīng)用前景。
評(píng)論