嵌入式DS80C320單片機(jī)軟核設(shè)計(jì)
1 引言
在如今的快速嵌入式系統(tǒng)設(shè)計(jì)中,目前比較流行的方案是在FPGA內(nèi)集成應(yīng)用軟件或是軟IP平臺(tái),以簡(jiǎn)化工序、加速產(chǎn)品面市日程。為此,很多公司推出了自己的開(kāi)發(fā)平臺(tái)以及相關(guān)CPU的IP核,常見(jiàn)的為兩種:一種是通用型CPU,如xilinx和altera公司的32位以及64位通用CPU核;還有就是專用型的,常見(jiàn)的為51系列單片機(jī)的CPU核,但是目前關(guān)于單片機(jī)的軟核基本上都是8051的,其他的品種很少。而且8051的速度不是很快,在有些快速的控制場(chǎng)合(如利用單片機(jī)來(lái)作為usb2.0的控制部件)顯得速度不足,比較著名的actel公司推出的Core8051,運(yùn)行頻率也只在40 MHz左右。本文介紹了一個(gè)非常高速DS80C320單片機(jī)軟核的設(shè)計(jì)。
DS80C320單片機(jī)是DALLAS公司推出的一款基于51框架的高性能單片機(jī)。
它有如下一些優(yōu)點(diǎn):
。具有與51系列完全一致的指令系統(tǒng),能充分兼容所有基于51系列開(kāi)發(fā)的程序;
,具有比8051更加齊全的外設(shè)。相比8051單片機(jī),DS80C320增加了定時(shí)器2以及一個(gè)增強(qiáng)型串口等;
#具有比8051更好的效率;DS80C320的一個(gè)指令周期是4個(gè)CLK,8051則是12個(gè),這個(gè)區(qū)別尤其是在處理簡(jiǎn)單指令的時(shí)候優(yōu)勢(shì)明顯,例如單周期指令的處理,DS80C320只需要4個(gè)CLK,而8051需要12個(gè),據(jù)DALLAS公司的統(tǒng)計(jì)表明,在相同時(shí)鐘頻率下,DS80C320每條指令的執(zhí)行速度是8051的1.5~3倍,對(duì)于典型的應(yīng)用程序來(lái)說(shuō),執(zhí)行速度也是8051的2.5倍左右。
ぃ其讀取指令的方式比8051更加適合IP核的特點(diǎn);將單片機(jī)內(nèi)部ROM去掉,完全從外部讀取指令,這種特點(diǎn)作為軟核是很適合的,首先是結(jié)構(gòu)簡(jiǎn)單,有利于指令讀取的流水設(shè)計(jì),其次可以突破內(nèi)部ROM大小的限制,最后,作為FPGA設(shè)計(jì)的特點(diǎn),即使8051的設(shè)計(jì),內(nèi)部ROM塊也是放在FPGA芯片的ROM資源里面,與其這樣,還不如直接放到外面更加簡(jiǎn)化時(shí)序與結(jié)構(gòu);
2 總體結(jié)構(gòu)劃分
如圖所示為DS80C320軟核的總體功能圖:
本IP核的設(shè)計(jì)主要按照指令執(zhí)行的流程來(lái)安排功能塊,并通過(guò)數(shù)據(jù)總線來(lái)傳遞數(shù)據(jù);虛線里面的為CPU核心;首先是ROM模塊,DS80C320并沒(méi)有內(nèi)部ROM,所以該模塊功能主要是分析從P端口讀取過(guò)來(lái)的指令,并通過(guò)查找指令的長(zhǎng)度以及周期數(shù)目,從而計(jì)算出相關(guān)控制信號(hào)發(fā)送給CPU控制模塊以便控制指令的讀?。煌瑫r(shí),如果指令為L(zhǎng)CALL或者ACALL,則可以分析出子程序入口地址并報(bào)送PC模塊,引導(dǎo)PC正確跳轉(zhuǎn);在ROM模塊分析指令的同時(shí),譯碼器DECODER也在進(jìn)行譯碼的動(dòng)作,它將根據(jù)指令的8位數(shù)據(jù)分析出三個(gè)重要的參數(shù):ALU的動(dòng)作類(lèi)型,該指令的操作數(shù)據(jù)來(lái)源以及讀取方式,該指令結(jié)果的存放位置以及存放方式;第一個(gè)參數(shù)送給ALU模塊,其余兩個(gè)送到CPU控制模塊;CPU控制模塊CPU_CON是整個(gè)CPU的核心部分,主要完成兩個(gè)作用:ALU執(zhí)行前的讀取數(shù)據(jù)控制,以及ALU執(zhí)行完成之后回寫(xiě)數(shù)據(jù)控制;該模塊同時(shí)也控制著整個(gè)CPU的時(shí)序,監(jiān)視其他模塊的執(zhí)行情況;ALU則主要是完成計(jì)算工作;INTER模塊則是中斷系統(tǒng)的控制模塊,其功能主要完成對(duì)各個(gè)中斷源所提交的中斷請(qǐng)求的有效判斷以及排序,產(chǎn)生中斷標(biāo)志并且將判斷結(jié)果以及中斷入口地址編碼提交給ROM模塊,以指示程序跳轉(zhuǎn),同時(shí)還需要負(fù)責(zé)在中斷完成之后清除中斷標(biāo)志以及恢復(fù)中斷之前的中斷等級(jí); DS80C320有三個(gè)定時(shí)器和2個(gè)串行口,其中定時(shí)器2和串行口如果不需要的話可以裁減;至于其他的模塊或者寄存器則在CPU控制模塊的控制下通過(guò)數(shù)據(jù)總線交換數(shù)據(jù);
可見(jiàn),本設(shè)計(jì)的思路是以CPU_CON控制整個(gè)CPU的執(zhí)行以及時(shí)序,以INTER控制整個(gè)中斷系統(tǒng),其他寄存器則以數(shù)據(jù)總線來(lái)完成數(shù)據(jù)的交換,均勻的分布在數(shù)據(jù)總線的兩側(cè),結(jié)構(gòu)清晰簡(jiǎn)單,規(guī)則化的設(shè)計(jì)也有利于提高速度,以及方便裁減。
3 一些設(shè)計(jì)特點(diǎn)
評(píng)論