基于EDA技術的單片機IP核設計
5.讀內部RAM和SFR,包括讀“字節”和讀“位”。此進程為一純組合邏輯電路。RAM和SFR任何單元的內容的改變均可以啟動該進程,同時地址信號也是進程的敏感信號之一。每一次讀的過程會讀到兩個值,一個是“字節”數據,一個是“位”數據,至于狀態機在指令的執行過程中會使用“字節”數據還是“位”數據,由狀態機根據當前指令自己決定。
6.根據狀態機發出的各種多路選擇器的值,輸出相應的地址和數據的值。多路選擇器的作用是根據狀態機的指示,即時的輸出內部RAM的地址、內部RAM數據(包括“位”數據和“字節”數據)、外部RAM的地址等。
7.計算下一個指令指針的值。它根據狀態機的指示,實現對程序計數器值的改寫。
control_fsm模塊的作用則很單一,就是實現指令系統。不過需要說明的是,這個狀態機在接收到來自control_mem模塊的有關中斷源有變化的信號時,它會優先發出控制指令,指示control_mem模塊改變指令指針的值,進入中斷。沒有中斷發生的時候,它就會根據程序存儲器的指令來運作。關于指令狀態機的設計細節讀者可以參閱參考文獻【4】。
3.5.外圍存儲器模塊的實現
由于對存儲器容量在不同的場合有不同的要求,且實現的方式多種多樣,故本設計才把整個設計分為MCS-51內核和存儲器兩個大的部分。這樣做一方面可以方便裁減,使IP核可以在更多的可編程器件上綜合;另外實現起來也相對容易。
MAX+ plusⅡ中為了增加原件庫的靈活性,為一些常用的功能模塊提供了參數化的元件,這些元件的規模以及具體功能可以由用戶直接指定,如同可編程元件。這一類元件就是MAX+ plusⅡ中的LPM,即――可調參數元件。利用LPM所提供的RAM、ROM例化設計文件,設計實現了128字節內部RAM和4k ROM模塊,其中ROM模塊是一個空結構實體,在有內部程序時換成相應的結構。內部程序必須以ASCII碼形式或十六進制形式的文件寫入,表明每個地址的初始值,用于設計的仿真和綜合。
4.功能仿真
下面通過幾條簡單的指令,來對所設計的IP核進行軟件仿真。幾條仿真的指令助記符和指令的操作碼、操作數、字節數、周期數如下表1所示。仿真的結果如圖5所示。圖中rom_data_i表示的程序存儲器中的數據;rom_adr_o是程序計數器PC的值;state_i為芯片內部信號,指示的是指令執行的狀態,“7”表示在取指令狀態,其他值為執行狀態。acc_o是內部寄存器ACC的值。從圖中可以清楚的看到各信號的變化。
表1 仿真指令表
指令助記符 | 操作碼 | 操作數 | 指令字節 | 指令周期 |
AJMP FFH | 01H | FFH | 2 | 2 |
CPL | F4H | / | 1 | 1 |
MOV A,#23H | 74H | 23H | 2 | 2 |
MOV R0,A | F8H | / | 1 | 1 |
MOV23H,#05H | 75H | 23H,5H | 3 | 3 |
ADDC A, @R0 | 36H | / | 1 | 2 |
圖4 8051-Core軟件仿真圖
5 結束語
嵌入式微處理器具有廣泛的應用前景,特別是隨著信息技術的發展,信息安全性和可靠性正逐步受到人們的重視。在FPGA的可用門和性能對高檔功能的支持中,IP核的價值正在充分展現。IP核已成為有效地進行大規模設計和縮短設計時間的基礎。因此,積極開發具有自主知識產權的IP模塊,在SoC領域占有一席之地,即符合我國國情,有具有重要意義。本課題設計出的MSC-51系列單片機IP核不僅通過了軟件仿真,而且其功能已經通過了硬件測試,所以其不僅是一個成熟的軟IP核,也是一個成熟的硬IP核。
本項目經濟效益:本IP核主要應用于SoC中,向相關有償機構購買類似IP核一次的使用價格在3美元左右,但是附帶開發工具在300美元左右,本IP核完全利用免費版本的MAX+plusⅡ進行設計以及后期使用,因此若本IP核應用3000次,那么項目的經濟效益在8萬元左右。
本文作者創新點:本次要設計的兼容MCS-51單片機IP核有以下特色:1.完全同步的設計,系統在統一的時鐘下工作。2.指令集與工業標準的MCS-51系列單片機完全兼容。3.指令周期較原MCS-51系列大幅提高,所有指令都可在1到4個時鐘周期內完成,時鐘周期只與所選用的FPGA/CPLD芯片的延時有關,而與設計無關。4.沒有復用的I/O口。5.IP核升級方便,對于不需要的部件可以任意裁減。
評論