0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于RISC體系結(jié)構(gòu)的8位高速M(fèi)CU的IP軟核設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-09-26 07:57 ? 次閱讀

隨著集成電路設(shè)計(jì)的不斷發(fā)展,集成電路的規(guī)模越來(lái)越大,設(shè)計(jì)難度日趨復(fù)雜,傳統(tǒng)的設(shè)計(jì)方法已越不能適應(yīng)集成電路設(shè)計(jì)發(fā)展的需要?;贗P復(fù)用的數(shù)字IC設(shè)計(jì)方法是有效提高IC設(shè)計(jì)產(chǎn)能的關(guān)鍵技術(shù),有助于快速實(shí)現(xiàn)工藝先進(jìn)、功能強(qiáng)大的產(chǎn)品。

微控制器MCU是嵌入式系統(tǒng)的核心,8位MCU IP核具有很高的通用性和靈活性,廣泛地應(yīng)用于工業(yè)控制、機(jī)械設(shè)備、家用電器以及汽車(chē)電子等各個(gè)領(lǐng)域。本文介紹的是基于 RISC體系結(jié)構(gòu)的8位高速M(fèi)CUIP軟核的設(shè)計(jì)與實(shí)現(xiàn),采用Verilog HDL自上而下地描述了MCUIP軟核的硬件結(jié)構(gòu),并驗(yàn)證了設(shè)計(jì)的可行性和正確性。在實(shí)際硬件電路中,該IP核的運(yùn)行頻率達(dá)到75MHz,可應(yīng)用于高速控制領(lǐng)域。

系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

本設(shè)計(jì)的總線采用了哈佛結(jié)構(gòu),14位指令字長(zhǎng),8位數(shù)據(jù)字長(zhǎng),指令集與PIC16F676兼容。它具有35條指令,在連續(xù)工作的情況下,除了程序跳轉(zhuǎn)指令要用2個(gè)指令周期外,其它的所有指令都可以在1個(gè)指令周期內(nèi)完成。由于哈佛結(jié)構(gòu)總線具有獨(dú)立的指令總線和數(shù)據(jù)總線,可同時(shí)從程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器中分別讀取數(shù)據(jù),大大提高了MCU內(nèi)部執(zhí)行的并行性,簡(jiǎn)化了控制電路的設(shè)計(jì)。與更深級(jí)流水線相比,簡(jiǎn)單的指令周期避免了深度流水線增加電路結(jié)構(gòu)復(fù)雜性和芯片面積。

微處理器在結(jié)構(gòu)上可以劃分為四個(gè)子系統(tǒng),分別為控制單元、數(shù)據(jù)通道、存儲(chǔ)單元、I/O單元。其中數(shù)據(jù)通道包含ALU和一個(gè)W工作寄存器。片內(nèi)程序存儲(chǔ)器ROM的容量是8k×14位;數(shù)據(jù)存儲(chǔ)器由包括專(zhuān)用寄存器在內(nèi)的256個(gè)可尋址的8位寄存器組成,通過(guò)數(shù)據(jù)總線與算術(shù)邏輯單元ALU相連,系統(tǒng)可以對(duì)數(shù)據(jù)存儲(chǔ)器用直接或間接尋址方式進(jìn)行訪問(wèn)。I/O單元提供了系統(tǒng)內(nèi)部的數(shù)據(jù)總線與外界總線的連接接口,實(shí)現(xiàn)數(shù)據(jù)的輸入/輸出??刂茊卧?jiǎng)t會(huì)根據(jù)指令產(chǎn)生相應(yīng)的指示信號(hào)控制系統(tǒng)的協(xié)調(diào)運(yùn)行。系統(tǒng)結(jié)構(gòu)如圖1所示。

基于RISC體系結(jié)構(gòu)的8位高速M(fèi)CU的IP軟核設(shè)計(jì)

MCU IP核的時(shí)序設(shè)計(jì)

時(shí)鐘網(wǎng)絡(luò)的時(shí)序設(shè)計(jì)

本設(shè)計(jì)的時(shí)序設(shè)計(jì)部分采用內(nèi)部包含4個(gè)節(jié)拍時(shí)鐘的結(jié)構(gòu),時(shí)鐘網(wǎng)絡(luò)模塊在復(fù)位結(jié)束后會(huì)利用兩級(jí)嵌套的D觸發(fā)器將外部時(shí)鐘(CLK)分頻產(chǎn)生4個(gè)非重疊正交的節(jié)拍時(shí)鐘信號(hào)q1、q2、q3、q4,一個(gè)指令周期分為4個(gè)狀態(tài)。節(jié)拍時(shí)鐘會(huì)與譯碼電路產(chǎn)生的控制信號(hào)配合,在不同時(shí)鐘節(jié)拍選通不同的電路操作,進(jìn)而協(xié)調(diào)整個(gè)系統(tǒng)的運(yùn)行。

二級(jí)流水線時(shí)序設(shè)計(jì)

本設(shè)計(jì)所采用的二級(jí)流水線劃分為取指和執(zhí)行兩級(jí)。系統(tǒng)運(yùn)行時(shí),會(huì)在前一指令周期的q4節(jié)拍從ROM中取出下一條待執(zhí)行的指令并鎖存在指令寄存器中,在下一指令周期的q1節(jié)拍從指令寄存器中取出指令,同時(shí)程序計(jì)數(shù)器(PC)加1,q2到q4對(duì)所取指令進(jìn)行譯碼和執(zhí)行。因此,一條指令的完整執(zhí)行過(guò)程大概分為取指令、指令鎖存、指令譯碼、取操作數(shù)、執(zhí)行、回寫(xiě)、PC+1等7個(gè)步驟。從時(shí)序上看,指令取指周期與執(zhí)行周期是并行執(zhí)行的,即在取指的同時(shí),上一條指令正在進(jìn)入執(zhí)行周期。

程序跳轉(zhuǎn)指令與其它單周期指令一樣進(jìn)入流水線,在執(zhí)行程序跳轉(zhuǎn)指令時(shí),屏蔽下一條指令進(jìn)入指令譯碼單元,用空操作指令NOP代替。這樣,控制邏輯不需要做太大修改就能滿足流水線的執(zhí)行。二級(jí)指令流水線操作過(guò)程如圖2所示。

基于RISC體系結(jié)構(gòu)的8位高速M(fèi)CU的IP軟核設(shè)計(jì)

MCU IP核的內(nèi)部電路實(shí)現(xiàn)

指令寄存器

指令寄存器(IR)是為了實(shí)現(xiàn)兩級(jí)指令流水線而設(shè)計(jì)的。如果沒(méi)有指令寄存器,那么取指和執(zhí)行就分別需要占用一個(gè)指令周期。但如果利用IR,在上條指令執(zhí)行的同時(shí)把下一條指令從程序存儲(chǔ)器ROM中取出來(lái)寄存在IR中,這樣在每個(gè)指令周期內(nèi)同時(shí)有指令的取出和執(zhí)行,等效來(lái)看,一條指令只需要一個(gè)指令周期就可以執(zhí)行完畢,從而提高了效率。

指令寄存器IR的另外一個(gè)功能是當(dāng)執(zhí)行分支指令的時(shí)候產(chǎn)生空操作,這是采用指令流水線結(jié)構(gòu)所必需的。例如在執(zhí)行程序跳轉(zhuǎn)指令GOTO的時(shí)候,由于GOTO指令會(huì)改變程序計(jì)數(shù)器PC的值,跳轉(zhuǎn)到另外的地址,那么在執(zhí)行GOTO指令時(shí)取得的緊接GOTO的下一條指令就不是要執(zhí)行的下一條指令,這個(gè)已經(jīng)取得的指令就必須被屏蔽。具體的操作是在執(zhí)行GOTO指令的時(shí)候,指令譯碼單元產(chǎn)生清零信號(hào)使得指令寄存器內(nèi)部14位寄存單元被清零,那么下一指令周期的輸出就變?yōu)镹OP指令。在執(zhí)行該空操作的同時(shí)把GOTO指令跳轉(zhuǎn)后指向地址對(duì)應(yīng)的指令取出來(lái),在下個(gè)指令周期執(zhí)行。

指令譯碼單元

指令譯碼單元在每個(gè)時(shí)鐘周期的q1節(jié)拍接收來(lái)自IR的14位執(zhí)行指令,并對(duì)指令進(jìn)行譯碼工作,給出其它各單元的操作控制信號(hào),包括算術(shù)邏輯單元(ALU)的運(yùn)算控制信號(hào)、RAM的讀寫(xiě)控制、總線控制器的選擇信號(hào)、PC尋址等。

算術(shù)邏輯單元

算術(shù)邏輯單元(ALU)是微控制器運(yùn)算電路的核心部分,主要功能是按照指令譯碼器輸出的控制信號(hào),實(shí)現(xiàn)算術(shù)運(yùn)算、邏輯運(yùn)算、循環(huán)移位等操作。ALU的字寬是8位,在ALU中做運(yùn)算的2個(gè)操作數(shù)分別來(lái)自W寄存器和數(shù)據(jù)總線,最后運(yùn)算的結(jié)果由指令譯碼后的控制信號(hào)決定是存放在W寄存器中,還是通用寄存器RAM中。本文通過(guò)將加、減操作復(fù)用到一個(gè)8位超前進(jìn)位加法器,大大縮短了ALU算術(shù)運(yùn)算的時(shí)間,進(jìn)而提高了整個(gè)系統(tǒng)的運(yùn)行速度。

程序計(jì)數(shù)器和堆棧

13位的PC對(duì)8k×14bit的ROM進(jìn)行尋址,八級(jí)堆棧存儲(chǔ)的是ROM的地址,即在主程序中調(diào)用的子程序最多允許嵌套8次。當(dāng)系統(tǒng)復(fù)位后PC從0000h地址開(kāi)始執(zhí)行,然后在每個(gè)指令周期q1節(jié)拍,PC自動(dòng)加1。當(dāng)執(zhí)行GOTO指令時(shí),就從指令中獲取地址來(lái)改變PC的值,然后PC再在此基礎(chǔ)上自動(dòng)加1,順序執(zhí)行指令。當(dāng)執(zhí)行調(diào)用子程序指令CALL指令時(shí),把取指的地址送到堆棧保護(hù)起來(lái),然后PC裝載子程序入口的地址,接著順序執(zhí)行子程序指令直到子程序執(zhí)行完,程序返回時(shí)把堆棧中的地址裝載到PC,PC繼續(xù)自動(dòng)加1順序執(zhí)行指令。

在每個(gè)時(shí)鐘周期,PC會(huì)檢測(cè)是否有來(lái)自中斷處理單元的中斷請(qǐng)求信號(hào)發(fā)生,一旦有中斷響應(yīng),PC就會(huì)進(jìn)入中斷處理模式,把中斷現(xiàn)場(chǎng)的地址送入堆棧保護(hù)起來(lái),并在下一指令周期PC指向中斷向量地址0004h,這是中斷服務(wù)程序的入口地址,系統(tǒng)執(zhí)行中斷服務(wù)程序直到中斷返回,再把保護(hù)在堆棧的中斷現(xiàn)場(chǎng)地址加載到PC中,然后又順序執(zhí)行指令。

定時(shí)器/計(jì)數(shù)器

TIMER0為8位可讀寫(xiě)的定時(shí)器/計(jì)數(shù)器單元,其內(nèi)部有一個(gè)分頻器,可以通過(guò)寄存器配置選擇定時(shí)或計(jì)數(shù)工作方式,以及分頻器的分頻比,分頻比最高可達(dá)l:128。當(dāng)TIMER0從FFh到00h計(jì)數(shù)溢出時(shí),將產(chǎn)生TIMER0中斷。

中斷處理單元

中斷處理單元會(huì)響應(yīng)各個(gè)中斷源的中斷,并向系統(tǒng)的控制電路發(fā)出總中斷請(qǐng)求信號(hào)。該單元設(shè)置有8位中斷控制寄存器和外設(shè)中斷寄存器,使用標(biāo)志位來(lái)記錄各種中斷請(qǐng)求。中斷控制寄存器還包括各中斷的使能控制位以及全局中斷使能位。全局中斷使能位將使能(置1時(shí))所有未被屏蔽的中斷,或禁止(清零時(shí))所有中斷。一旦進(jìn)入中斷服務(wù)程序,可通過(guò)查詢(xún)中斷標(biāo)志位確定中斷源。

雙向I/O

PORTA和PORTC為2個(gè)6位雙向I/O端口,每個(gè)端口有2個(gè)物理寄存器,分別是方向寄存器和數(shù)據(jù)寄存器。方向寄存器控制對(duì)應(yīng)端口的輸入/輸出屬性,數(shù)據(jù)寄存器負(fù)責(zé)鎖存輸入/輸出數(shù)據(jù)。

MCU IP核的硬件仿真

IP軟核的仿真測(cè)試是設(shè)計(jì)過(guò)程中非常重要的環(huán)節(jié),通過(guò)自主建立的測(cè)試向量庫(kù),編寫(xiě)了覆蓋所有指令的測(cè)試文件,對(duì)軟核的多種指令、地址和數(shù)據(jù)組合進(jìn)行了仿真測(cè)試,提高了軟核功能仿真的測(cè)試覆蓋率,保證了設(shè)計(jì)的正確性。由PORTA和PORTC的輸出來(lái)驗(yàn)證設(shè)計(jì)正確性。部分信號(hào)波形如圖3所示,在正常情況下,地址是在每個(gè)指令周期進(jìn)行加1取指的;當(dāng)中斷信號(hào)int_req=1時(shí),地址在下一指令周期跳到中斷向量地址0004h,同時(shí)屏蔽下一條指令進(jìn)入指令譯碼單元,用NOP指令代替。

基于RISC體系結(jié)構(gòu)的8位高速M(fèi)CU的IP軟核設(shè)計(jì)

結(jié)語(yǔ)

本文介紹了一個(gè)8位RISC結(jié)構(gòu)的高速微控制器IP軟核的設(shè)計(jì),其指令集與PIC16F676兼容,采用模塊化結(jié)構(gòu),面向硬件映射,保證可綜合性。該核使用VerilogHDL為RTL級(jí)描述語(yǔ)言,通過(guò)了ActiveHDL仿真驗(yàn)證后,用Quartus II 5.0進(jìn)行綜合,并在Altera的EP1C12Q24C08器件上實(shí)現(xiàn)了布局布線。經(jīng)測(cè)試,時(shí)鐘頻率達(dá)到了75MHz,驗(yàn)證了設(shè)計(jì)的正確性,為今后的設(shè)計(jì)積累了大量有益的經(jīng)驗(yàn)。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16667

    瀏覽量

    347804
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119206
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1541

    瀏覽量

    148923
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    怎么將8處理器與EMAC連接以進(jìn)行TCP / IP通信

    我想將8處理器與EMAC連接以進(jìn)行TCP / IP通信。請(qǐng)建議我哪個(gè)IP
    發(fā)表于 01-24 10:58

    求一個(gè)8RISC結(jié)構(gòu)高速微控制器IP的設(shè)計(jì)

    本文介紹的是基于RISC體系結(jié)構(gòu)8高速MCUIP
    發(fā)表于 04-19 07:28

    嵌入式微處理器體系結(jié)構(gòu)

    目錄一、嵌入式微處理器體系結(jié)構(gòu)1、馮諾依曼體系結(jié)構(gòu)2、哈弗體系結(jié)構(gòu)二、嵌入式系統(tǒng)的硬件結(jié)構(gòu)1、嵌入式微控制器MCU(CPU+片內(nèi)內(nèi)存+片內(nèi)外
    發(fā)表于 11-08 06:57

    Microarchitecture指令集體系結(jié)構(gòu)

    第二章 ARM微處理器概述與編程模型ARM體系結(jié)構(gòu)及其發(fā)展歷史處理器的體系結(jié)構(gòu)處理器微架構(gòu) Microarchitecture指令集體系結(jié)構(gòu) Architecture幾種常見(jiàn)的指令集X86Inter
    發(fā)表于 12-14 07:13

    嵌入式處理器的體系結(jié)構(gòu)分類(lèi)

    255.255.255.254。第1字節(jié)、第2字節(jié)和第3個(gè)字節(jié)為網(wǎng)絡(luò)地址,第4個(gè)字節(jié)為主機(jī)地址,每個(gè)網(wǎng)絡(luò)最多只能包含254臺(tái)計(jì)算機(jī)。3.嵌入式處理器的體系結(jié)構(gòu)按指令集可分為兩大類(lèi):CISC和RISC;...
    發(fā)表于 12-23 06:00

    已結(jié)束-【書(shū)籍評(píng)測(cè)活動(dòng)NO.3】一本書(shū)帶你了解谷歌、蘋(píng)果等科技巨頭都看好的RISC-V體系結(jié)構(gòu)

    匯編代碼,接著討論RISC-V體系結(jié)構(gòu)中的異常處理、中斷、內(nèi)存管理、高速緩存、緩存一致性、TLB管理、原子操作、內(nèi)存屏障指令,最后闡述RSIC-V體系結(jié)構(gòu)中的壓縮指令擴(kuò)展、虛擬化擴(kuò)展等
    發(fā)表于 02-20 14:58

    初探RISC-V—《RISC-V體系結(jié)構(gòu)編程與實(shí)踐》

    最近有幸讀了一本介紹RISC-V的書(shū)籍《RISC-V體系結(jié)構(gòu)編程與實(shí)踐》,這是一本非常有價(jià)值的書(shū)籍,它介紹了RISC-V體系結(jié)構(gòu)的各個(gè)方面,
    發(fā)表于 03-28 11:41

    RISC-V體系結(jié)構(gòu)編程與實(shí)踐》試讀

    本書(shū)詳細(xì)地介紹了RISC-V的基本原理、指令集、編程工具和環(huán)境、體系結(jié)構(gòu)和擴(kuò)展以及應(yīng)用案例和實(shí)踐等方面的內(nèi)容,覆蓋了RISC-V體系結(jié)構(gòu)的各個(gè)方面,使讀者能夠全面深入地了解
    發(fā)表于 04-03 15:15

    RISC-V體系結(jié)構(gòu)編程與實(shí)踐》+試讀經(jīng)驗(yàn)

    會(huì)觸發(fā)一個(gè)與MMU相關(guān)的缺頁(yè)異常。在RISC-V體系結(jié)構(gòu)中,根據(jù)處理器的虛擬地址寬,提供了Sv32、Sv39、Sv48多種物理轉(zhuǎn)換機(jī)制。實(shí)操在BenOS里面實(shí)現(xiàn)虛擬地址映射到同等數(shù)值的物理地址上,即
    發(fā)表于 04-17 00:43

    IP交換技術(shù)協(xié)議與體系結(jié)構(gòu)

    IP交換技術(shù)協(xié)議與體系結(jié)構(gòu)》 這資料還是不錯(cuò)的,可供參考學(xué)習(xí)哦!
    發(fā)表于 03-24 22:27 ?49次下載

    LTE體系結(jié)構(gòu)

    LTE體系結(jié)構(gòu) LTE體系結(jié)構(gòu)可以借助SAE 體系結(jié)構(gòu)來(lái)做詳細(xì)描述。在SAE 體系結(jié)構(gòu)中,RNC部分功能、GGSN、SGSN 節(jié)點(diǎn)將被融合為一個(gè)新的節(jié)點(diǎn),
    發(fā)表于 06-16 13:09 ?9767次閱讀

    網(wǎng)絡(luò)體系結(jié)構(gòu),什么是網(wǎng)絡(luò)體系結(jié)構(gòu)

    網(wǎng)絡(luò)體系結(jié)構(gòu),什么是網(wǎng)絡(luò)體系結(jié)構(gòu) 通過(guò)通信信道和設(shè)備互連起來(lái)的多個(gè)不同地理位置的計(jì)算機(jī)系統(tǒng),要使其能協(xié)同工作實(shí)現(xiàn)信息交換和資源共享
    發(fā)表于 04-06 16:30 ?1670次閱讀

    8RISC MCU IP仿真的新方法

    本文所要驗(yàn)證的8RISC MCU IP是與Microchip公司的
    發(fā)表于 07-19 10:13 ?1643次閱讀
    <b class='flag-5'>8</b><b class='flag-5'>位</b><b class='flag-5'>RISC</b> <b class='flag-5'>MCU</b> <b class='flag-5'>IP</b><b class='flag-5'>軟</b><b class='flag-5'>核</b>仿真的新方法

    汽車(chē)電子控制單元ECU的IP如何設(shè)計(jì)

    本文給出了汽車(chē)電子控制單元 ECU 的 IP 設(shè)計(jì)。該 IP 基于 RISC 技術(shù)的單指令、單周期的
    發(fā)表于 10-31 08:00 ?20次下載
    汽車(chē)電子控制單元ECU的<b class='flag-5'>IP</b><b class='flag-5'>核</b>如何設(shè)計(jì)

    PowerPC的發(fā)展與體系結(jié)構(gòu)概述

    第一部分 PowerPC ? 精簡(jiǎn)指令集計(jì)算機(jī)(RISC)簡(jiǎn)介 PowerPC 體系結(jié)構(gòu)是一種精減指令集計(jì)算機(jī)(Reduced Instruction Set Computer,RISC體系
    的頭像 發(fā)表于 06-18 20:02 ?3727次閱讀
    PowerPC的發(fā)展與<b class='flag-5'>體系結(jié)構(gòu)</b>概述