基于EDA技術的單片機IP核設計
摘 要:本文介紹了利用EDA技術設計出與MCS-51系列微處理器指令集完全兼容的8位嵌入式微處理器芯片的IP核,并經(jīng)過驗證獲得了滿意的效果。
關鍵詞: 電子設計自動化;知識產權核;設計
1. 引言
EDA(Electronic Design Automatic),簡單的說就是通過有關的開發(fā)軟件,自動完成用軟件的方式設計的電子系統(tǒng)到最終形成集成電子系統(tǒng)或專用集成芯片的一門新技術。其中, EDA關鍵技術之一就是可以用硬件描述語言(HDL)來描述具有廣泛應用前景、且具備自主知識產權的IP核(Intellectual Property)。這種IP核具有很高的通用性和靈活性,可以通過軟件編程完成不同特定的功能,可以任意使用在各種嵌入式微控制系統(tǒng)中。嵌入式IP核的應用,由于重用設計思想、設計知識,極大地降低了設計成本,縮短了設計周期,成為當今片上系統(tǒng)(SoC)的重要設計手段?!?】
MCS-51系列單片機是目前國內應用時間最長、最普及、可獲得應用資料最多的功能強大的8位MCU,建立兼容MCS-51單片機IP核對于各種嵌入式系統(tǒng)和SoC的應用具有重要意義。針對MCS-51單片機的應用前景,筆者成功設計了與MCS-51系列微處理器指令集完全兼容且功能更強的8位嵌入式微處理器芯片,通過IP核重用技術,可廣泛應用在各種SoC中。
2.系統(tǒng)簡介
本課題采用Altera公司的MAX+plusⅡ10.0設計平臺,以超高速集成電路硬件描述語言VHDL為系統(tǒng)邏輯描述的唯一表達方式,采用自頂向下的設計原則,對MCS-51單片機進行反相設計。同時選用 Altera 公司的 ACEX系列器件來實現(xiàn)最終的IP核。由于篇幅的關系,筆者不打算對開發(fā)平臺、開發(fā)工具以及最終實現(xiàn)硬件電路的FPGA芯片進行介紹,而是著重介紹整體的設計思想。圖1是本課題進行設計的頂層設計層次圖。實線部分是MCS-51單片機的內核部分,虛線部分是外圍存儲電路部分。下面介紹各部分的實現(xiàn)方法。
圖1 MCS-51單片機頂層設計層次圖
3.系統(tǒng)現(xiàn)實
3.1 算術邏輯單元(ALU)的實現(xiàn)
算術、邏輯運算模塊的功能是按照控制單元給出的指令,對來自數(shù)據(jù)存儲器、程序存儲器、累加器A以及程序狀態(tài)字的相關位的數(shù)據(jù),進行相關的算術和邏輯運算。圖2是用VHDL語言對ALU模塊進行描述的設計層次圖。由圖中可以看出整個ALU由6個模塊組成:加/減法器,乘法器、除法器、十進制調整器、邏輯運算器以及一個多路選擇器。其中加/減法器又可以分成兩個子模塊。本模塊將用較為簡單的純組合邏輯電路來實現(xiàn)。限于篇幅,具體的實現(xiàn)不再贅述,請讀者參閱參考文獻【2】。
圖 2 ALU設計層次圖
3.2定時器/計數(shù)器(Timer/Counter)模塊的實現(xiàn)
分析MCS-51單片機的定時器/計數(shù)器的功能和原理可知,本單元將必須以時序邏輯電路的方式來實現(xiàn)。圖3中的左圖就是本模塊設計完成后形成的符號文件。圖中的輸入除時鐘CLK、復位RESET、外部中斷0 INT0_I和外部中斷1 INT1_I直接來自芯片的外部輸入之外,其余的輸入信號全部來自控制器。其中的RELOAD_I[7 to 0]、WT_EN以及WT_I[7 to 0]用于重寫定時器/計數(shù)器內部寄存器。所有的輸出信號全部送往控制器,用于及時更新特殊功能寄存器的內容。
定時器/計數(shù)器的兩種工作方式?jīng)Q定了要設計好定時器/計數(shù)器首先必須設計一個分頻器和兩個(因為有兩個定時器/計數(shù)器)負跳變的檢測器。負跳變的檢測器,可以用一個雙穩(wěn)態(tài)的觸發(fā)器來實現(xiàn);分頻器的實質是計數(shù)器。觸發(fā)器和計數(shù)器都是時序邏輯電路中的基本單元,VHDL語言的實現(xiàn)方法請讀者參考相關書籍【1】。因此本設計實體的結構體將由3個進程來實現(xiàn)。除了分頻器和兩個負跳變的檢測器各占用一個進程外,第三個進程用于實現(xiàn)時器/計數(shù)器的四種工作模式。對定時器/計數(shù)器的各種工作于模式的原理分析可知,要實現(xiàn)這樣一個電路,其VHDL語言的結構體應該包括兩個大的部分:一是置中斷標志位,二是改變計數(shù)寄存器的值。同時,改變計數(shù)寄存器的值又可以細分為兩塊――寫高8位寄存器和寫低8位寄存器。各個進程之間相互關聯(lián),內部信號將作為進程之間傳輸信息的紐帶。
評論