嵌入式DS80C320單片機(jī)軟核設(shè)計
3.4 雙向P端口的模擬
這里主要是P0和P2雙向端口的模擬;對于典型的單片機(jī),其P端口一般都是雙向的,但是對于FPGA設(shè)計來說,以現(xiàn)在的芯片結(jié)構(gòu),在FPGA芯片里面實現(xiàn)真正的雙向是不可能的,因此,作為軟核來說,雙向的模擬就一定要處理好;
常用的解決辦法有這么幾種:一種是直接將雙向端口改成兩個單向的端口,這樣對于軟核來說使用更加方便,本設(shè)計也提供了這種方式供選擇,但是這樣就與標(biāo)準(zhǔn)的單片機(jī)不相同了,因此,本設(shè)計也提供了一種模擬的雙向口,根據(jù)FPGA設(shè)計的特點,改變信號線的方向必須有個切換的過程,這樣就只好仔細(xì)的來分析指令時序,看看能不能在P端口使用的間隙來處理這個切換過程;
首先是分析指令是否需要使用P端口,比較重要的控制信號有譯碼器發(fā)送的RD_LATCH信號,用來區(qū)分指令是否需要使用P端口,還有來自于CPU_CON的控制總線信息,用來告知P端口需要完成的具體功能;如果需要使用P端口的復(fù)用功能,則由相關(guān)的需要使用P端口的模塊(如串行口模塊)發(fā)送請求指令;
然后P端口分析所有的使用請求,根據(jù)不同的使用方式來安排不同的使用情況;如果需要雙向切換,則根據(jù)時序以及指令特點來處理,從而順利完成雙向的切換過程;
4 綜合與驗證
使用Altera公司的Quartus II 4.2軟件來綜合,使用Nios Development Board,Cyclone Edit開發(fā)板來進(jìn)行板上驗證;綜合結(jié)果如下:
本文引用地址:http://m.butianyuan.cn/article/192101.htm
其中,前一個版本是沒有內(nèi)部串行口的版本;時序仿真驗證的結(jié)果表明,在上述頻率下該系統(tǒng)可以穩(wěn)定的工作;理論上換算成8051的主頻為:83*2.5=207.5M,這基本上可以適應(yīng)絕大部分需要單片機(jī)控制的場合了;
仿真測試主要使用了modelsim SE5.8以及quartus4.2的VWF文件測試;
板上波形觀測主要使用Agilent公司的 1673G 邏輯分析儀;同時充分利用了開發(fā)板的資源進(jìn)行了大量的系統(tǒng)級測試;
將程序下載到芯片里面,使用邏輯分析觀測到部分指令的執(zhí)行波形為:
這是一條中斷返回指令的波形圖,指令代碼為32H,主要觀測PC的變化,PC在這條指令之后從3FH又變化為中斷發(fā)生前的地址25H;
5 結(jié)束語
本設(shè)計具有速度快,可裁減,具有良好的可重用性和可移植性,完全兼容DS80C320單片機(jī)接口,以及方便使用等優(yōu)點。尤其是專門構(gòu)造的內(nèi)部框架以及時序分配,使得其高速性能在目前的51系列軟核里面基本上是最前列的。因此,可以很方便的應(yīng)用于需要單片機(jī)軟核的FPGA設(shè)計以及嵌入式系統(tǒng)設(shè)計之中。
評論