在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用VHDL語言和FPGA技術實現高效微控制器內核的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-09-05 08:07 ? 次閱讀

與傳統投片實現ASIC相比,FPGA具有實現速度快、風險小、可編程、可隨時更改升級等一系列優點,因而得到了越米越廣泛的應用。MCS-51應用時間長、范圍廣,相關的軟硬件資源豐富,因而往往在FPGA應用中嵌人MCS-51內核作為微控制器。但是傳統MCS-51的指令效率太低,每個機器周期高達12時鐘周期,因此必須對內核加以改進,提高指令執行速度和效率,才能更好地滿足FPGA的應用。

通過對傳統MCS-51單片機指令時序和體系結構的分析,使用VHDL語言采用自頂向下的設計方法重新設計了一個高效的微控制器內核。改進了的體系結構,可以兼容MCS-51所有指令,每個機器周期只需1個時鐘周期,同時增加了硬件看門狗和軟件復位功能,提高了指令執行效率和抗干擾能力。

1 系統設計

1.1 模塊劃分

本內核在劃分和設計模塊時,基于以下幾條原則:

(1)同步設計,提高系統穩定性和可移植性;(2)功能明確,功能接近的放在同一個模塊內以減少模塊的數量和模塊之間的互連線,同時利于綜合時的優化;(3)模塊之間的接口時序預先定義好,并嚴格按定義的時序要求編寫每個模塊;(4)模塊信號的輸出采用寄存器輸出的方式。這樣可以提高系統的可靠性,一旦出錯也容易確定問題所在。

本內核由以下幾個部分組成:中央控制單元(CPU),算術邏輯運算單元(ALU),寄存器組控制器(REGS_CTR),定時器/計數器(T/C),通用串行接口(UART),看門狗(WT_DOG),如圖1所示。

使用VHDL語言和FPGA技術實現高效微控制器內核的設計

1.2 提高速度的方法

本內核采用以下幾種辦法來提高速度。

(1) 采用多數據通道:本內核取消了傳統MCS-51系列單片機的單一總線,采用直連結構,各模塊的數據傳輸使用單向專用數據線,尤其在數據交換頻繁的ALU與REGS_CTR之間采用四條單向數據線相互連接,提高了數據傳輸的并行度,從而加快了數據的傳輸。

(2) 采用雙相時鐘:如圖2所示。CLK時鐘上升沿CPU發出控制信號,I/O端口采樣外部信號即圖1中流入REGS_CTR的數據或控制信號;CLK1時鐘上升沿把數據寫入寄存器中并把刷新后的數據或控制信號發出,即圖1中虛箭頭表示的數據流向。這樣REGS_CTR的讀寫分別在兩個時鐘的上升沿,減少了一個時鐘周期的等待,時鐘頻率提高了一倍。

使用VHDL語言和FPGA技術實現高效微控制器內核的設計

(3) 采用寄存器組:FPGA內部有極為豐富的寄存器資源,本內核取消了傳統的同一時間只能讀或者寫的RAM塊,代之以可同時進行不同地址讀寫操作的寄存器組。一些特殊功能寄存器有專用總線輸出,如圖3所示。

使用VHDL語言和FPGA技術實現高效微控制器內核的設計

(4) 提高時鐘頻率:對電路的關鍵路徑進行了改造,以減少邏輯電路級數從而提高時鐘頻率。通過這些設計,保證了每個機器周期只需一個時鐘周期,提高了指令執行效率,同時也提高系統的時鐘頻率。

1.3 兼容性方面的考慮

MCS-51系列單片機有豐富的軟硬件資源,為充分利用這些資源,在本內核設計時盡量考慮增強其兼容性。除機器周期變為原來的1/12以及新增加一個特殊功能寄存器(地址F8H)用于控制看門狗和軟件復位外,其他沒有變化。因而單個內核應用時,以前的程序可完全移植;在與外界通信時因機器周期與MCS-51單片機有差別可能需對一些程序作相應改動。這樣可以使系統在提高性能的同時無需其他開銷,便于推廣使用。

2 功能模塊的設計

2.1 中央控制器(CPU)的設計

這是微控制器的核心,負責中斷處理及指令執行。中斷處理分為中斷取樣、中斷高低優先級的判斷及執行相應的處理過程。CPU對指令的執行分為四個階段:取指-譯碼、執行、執行-回寫、回寫-預取指。指令執行流程如圖4所示。

使用VHDL語言和FPGA技術實現高效微控制器內核的設計

在編碼實現方式上,本模塊是一個大的父子兩級狀態機,父狀態機為指令的類型,子狀態機為每種指令的執行步驟。這樣結構清晰,利于編程、查錯及仿真

2.2 寄存器組(REGS_CTR)的設計

本模塊在CPU的控制下完成:程序地址的產生、高低128個寄存器的讀寫。程序計數器根據控制信號與來自寄存器組的數據產生相應的指令地址并送往ROM。在寄存器組的讀寫中,用讀譯碼電路選擇輸出操作數據,寫譯碼電路寫入結果數據。這種結構可以在對一個寄存器寫的同時讀另一個寄存器。如圖3所示,通用的數據總線可以取得任何一個寄存器的數據,各個專用寄存器也有各自的專用數據線輸出。例如執行指令ADDA,DIRECT時,由于累加器ACC有專門的總線,只要給出相應的讀控制信號就可以從通用數據總線上得到來自寄存器組的DIRECT數據,這樣ALU在同一周期內就可以得到所需的兩個操作數。

2.3 看門狗(WT_DOG)的設計

傳統的MCS-51系列單片機為提高抗干擾能力通常使用外置看門狗或者采用軟件陷阱的方式使系統復位。本內核增加了硬件看門狗及軟件復位功能,通過新增加一個特殊功能寄存器(地址F8H)來控制是否啟用看門狗或軟件復位以及設置看門狗的喂狗時間。除非掉電或用程序重新設置,F8H寄存器的數值一直保存,這樣避免了看門狗復位后其自身失效的問題。

2.4 算術邏輯運算單元(ALU)的設計

累加器在CPU發出的指令控制下,對來自ROM與REGS_CTR的數據完成相應的操作,包括算術運算(加減乘除)與邏輯運算(與或非)及BCD碼調整。所有操作的結果在一個時鐘周期內得出,在clkl上升沿到來后寫入REGS_CTR。

2.5 串行模塊及定時/計數器的設計

串行模塊和定時/計數器的工作模式與傳統的MCS-51系列單片機相同。定時/計數器一個時鐘周期計數一次,與傳統MCS-51單片機一個機器周期計數一次效果等同。在與外界用串行端口通信時機器周期有差別。

3 仿真、綜合優化及實現

3.1 仿真

為了保證內核正確地工作,必須對電路做充分的仿真以保證設計的正確性。系統設計完成后用ModelSim Se PLUS 6.0D對電路進行了功能仿真,對組合邏輯模塊(如ALU)采用了窮舉測試向量的方法予以功能仿真,對于時序模塊如CPU,先測試能否正確執行中斷及每一條指令,再測試隨機指令及隨機中斷。仿真結果表明,內核能滿足設計的要求。ALU的仿真結果如同5所示。

使用VHDL語言和FPGA技術實現高效微控制器內核的設計

其中rom_data、acc、regs_data為ALU的操作數,in-struction為指令的類別,alu_rslta、alu_rsltb為ALU的操作結果的高、低字節。由圖5可見,在輸入操作數和進位溢位標志位不變的情況下,不同的指令都能輸出相對應的正確結果。ALU操作結果的數據予以鎖存,直到下一個指令或數據到來時才改變。在保持指令不變的情況下改變輸入數據和進位溢位標志位也能得到正確的結果。

3.2 綜合優化

為了盡可能提高時鐘頻率,必須降低關鍵路徑的延時。由于ALU所有的操作都要在一個周期內完成,因而操作所需的最長時間也是時鐘周期的最小值。綜合分析后發現操作時間最長的是除法運算,采用通移位相減除法器所需時間為39ns,如果采用并行除法器后則只需23ns,從而顯著提高了時鐘頻率。內核綜合后消耗的LUT為4500個。

3.3 實現

本內核的全部工作都在ISE7.1開發環境下完成。其中,仿真用的是ModelSim Se PLUS 6.0D,綜合用的軟件是Synplify Pro 8.0。驗證采用的平臺足CREAT-SOPC1000X試驗箱,它的核心芯片即FPGA使用的是Xilinx公司的Virtex-Ⅱxc2v1000-6 fg456,等效為100萬門電路,如圖6所示。平臺上集成了一些常用的功能模塊,其中的晶振為50MHz,超過了本內核綜合后的最高頻率,因而設計了一個5分頻模塊使時鐘為10MHz。內核運行的測試程序和數據以事先機器代碼的形式“固化”在一個程序模塊內替代ROM,系統可以像ROM一樣對其讀取數據和程序。P0-3輸出觀察數據,檢驗程序是否正確執行。驗證結果表明,內核能正確執行加載的程序并穩定運行在10MHz的頻率上。

使用VHDL語言和FPGA技術實現高效微控制器內核的設計

為克服傳統MCS-51單片機執行效率偏低的缺點,滿足現在的FPGA對嵌入式軟核速度較高的要求,重新設計了一個兼容MCS-51指令的嵌入式軟核。該軟核指令效率提高了12倍,同時增加了實用的功能:硬件看門狗和軟件復位。內核通過FPGA驗證具有一定的應用價值。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7646

    瀏覽量

    151949
  • FPGA
    +關注

    關注

    1630

    文章

    21796

    瀏覽量

    605445
  • vhdl
    +關注

    關注

    30

    文章

    817

    瀏覽量

    128286
收藏 人收藏

    評論

    相關推薦

    針對微控制器應用的FPGA實現

    針對微控制器應用的FPGA實現
    發表于 08-20 23:47

    怎么通過FPGA實現微控制器

    親愛的朋友們,我聽說我們甚至可以通過FPGA實現微控制器。例如,我們可以用FPGA實現AVR micro。我的問題是:我們怎樣才能使用它?假
    發表于 03-22 07:32

    請問VHDL語言和verilog語言有什么區別?

    VHDL語言和verilog語言有何區別
    發表于 03-28 06:52

    請問VHDL語言和verilog語言有什么區別?

    VHDL語言和verilog語言有何區別
    發表于 03-29 07:55

    FPGA技術如何用VHDL語言實現8位RISC微處理

    設計RISC微處理需要遵循哪些原則?基于FPGA技術VHDL語言實現的8位RISC微處理
    發表于 04-13 06:11

    怎么使用VHDL語言設計一個高效微控制器內核

    通過對傳統MCS-51單片機指令時序和體系結構的分析,使用VHDL語言采用自頂向下的設計方法重新設計了一個高效微控制器內核
    發表于 04-13 06:10

    請問如何實現微控制器FPGA的接口設計?

    基于FPGA的MCU設計有兩種基本實現方式如何實現微控制器FPGA的接口設計
    發表于 05-06 10:05

    基于VHDL語言的智能撥號報警的設計

    基于VHDL語言的智能撥號報警的設計 介紹了以EDA技術作為開發手段的智能撥號報警系統的實現。本系統基于
    發表于 10-12 19:08 ?1330次閱讀
    基于<b class='flag-5'>VHDL</b><b class='flag-5'>語言</b>的智能撥號報警<b class='flag-5'>器</b>的設計

    基于VHDL的DRAM控制器設計

    本文提出一種新穎的解決方案:利用80C186XL的時序特征,采用CPLD技術,并使用VHDL語言設計實現DRAM控制器
    發表于 02-02 11:29 ?1496次閱讀
    基于<b class='flag-5'>VHDL</b>的DRAM<b class='flag-5'>控制器</b>設計

    FM收音機的解碼及控制器VHDL語言實現

    Xilinx FPGA工程例子源碼:FM收音機的解碼及控制器VHDL語言實現
    發表于 06-07 14:13 ?11次下載

    基于VHDL的SDRAM控制器實現

    基于VHDL的SDRAM控制器實現
    發表于 01-22 13:43 ?12次下載

    基于VHDL語言和FPGA開發板實現數字秒表的設計

    應用VHDL語言設計數字系統,很多設計工作可以在計算機上完成,從而縮短了系統的開發時間,提高了工作效率。本文介紹一種以FPGA為核心,以VHDL為開發工具的數字秒表,并給出源程序和仿真
    的頭像 發表于 07-24 08:05 ?4281次閱讀
    基于<b class='flag-5'>VHDL</b><b class='flag-5'>語言和</b><b class='flag-5'>FPGA</b>開發板<b class='flag-5'>實現</b>數字秒表的設計

    基于VHDL語言和可編程邏輯器件實現Petri網邏輯控制器的設計

    VHDL語言由于其其強大的行為描述能力及與硬件行為無關的特性,被廣泛的用于數字系統設計,實現了硬件電路設計的軟件化,成為實現Petri網邏輯控制器
    發表于 09-22 20:46 ?889次閱讀
    基于<b class='flag-5'>VHDL</b><b class='flag-5'>語言和</b>可編程邏輯器件<b class='flag-5'>實現</b>Petri網邏輯<b class='flag-5'>控制器</b>的設計

    基于FPGA的DSP技術實現伺服控制器的應用方案與設計

    介紹了一種用基于FPGA的DSP技術來設計電液伺服系統控制器的方法。該方法克服了傳統伺服控制器的一些不足, 可將許多復雜的實時控制算法硬件化
    發表于 11-30 14:02 ?2659次閱讀
    基于<b class='flag-5'>FPGA</b>的DSP<b class='flag-5'>技術</b><b class='flag-5'>實現</b>伺服<b class='flag-5'>控制器</b>的應用方案與設計

    微控制器基礎】——CPU內核與整體配置(上)

    微控制器基礎】——CPU內核與整體配置(上)
    的頭像 發表于 10-17 17:19 ?1089次閱讀
    【<b class='flag-5'>微控制器</b>基礎】——CPU<b class='flag-5'>內核</b>與整體配置(上)
    主站蜘蛛池模板: 国产日本久久久久久久久婷婷 | 女同毛片 | 免费看男女下面日出水视频 | 国产精欧美一区二区三区 | 久久国产乱子伦精品免费强 | 午夜视频在线 | 亚洲综合久久久 | 污视频18高清在线观看 | 午夜影音 | 午夜国产高清精品一区免费 | 天天干夜夜玩 | 国产一区二区三区乱码 | 国产一二三区精品 | 国产乱码精品一区二区三区四川人 | 久久久久久国产精品免费 | 欧美黄色大片免费 | 国产一级毛片国语版 | 人人做人人爽久久久精品 | 天天狠狠干| 男女无遮挡一进一出性视频 | 五月激情丁香网 | 爱爱456高清国语在线456 | 四虎影视4hu4虎成人 | 日韩精品午夜 | 国产精品天天影视久久综合网 | 波多野结衣在线观看一区二区三区 | 国产免费私拍一区二区三区 | 成年女人免费看一级人体片 | 亚洲香蕉影视在线播放 | 57pao强力打造免费高清高速 | 日本成人黄色网址 | 成人在线观看网站 | 女人本色高清在线观看wwwwww国产 | 萌白酱一线天粉嫩喷水在线观看 | www三级免费| 91网站免费在线观看 | 亚洲乱论 | 爱爱网站免费 | 婷婷亚洲综合 | 久久精品30| 欧美熟夫 |