国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一款32位定點(diǎn)DSP電路的設(shè)計(jì)

2013-12-05 02:01薛海衛(wèi)張慶文王月玲徐新宇
電子與封裝 2013年9期
關(guān)鍵詞:數(shù)據(jù)總線寄存器移位

薛海衛(wèi),張慶文,王月玲,徐新宇

(中國電子科技集團(tuán)公司第58研究所,江蘇 無錫 214035)

1 引言

數(shù)字信號處理器DSP廣泛應(yīng)用于現(xiàn)代通信、信息處理、自動(dòng)控制等領(lǐng)域中,通過指令程序,DSP能實(shí)現(xiàn)濾波、快速傅里葉變換等各種算法,是現(xiàn)代信號處理的關(guān)鍵器件之一。DSP通常由CPU、存儲器、外設(shè)等邏輯部件組成,根據(jù)處理數(shù)據(jù)的位寬分為16位或32位、根據(jù)處理數(shù)據(jù)的類型分為定點(diǎn)和浮點(diǎn)。本文設(shè)計(jì)的32位定點(diǎn)DSP可以在單周期內(nèi)實(shí)現(xiàn)16×16位有符號整數(shù)乘法、累加和32位數(shù)據(jù)的算術(shù)邏輯運(yùn)算,處理精度高。本電路采用正向設(shè)計(jì)流程,自主設(shè)計(jì)了CPU、ROM和SCI、TIMER等外設(shè),通過0.5 μm 1P3M CMOS工藝流片,實(shí)現(xiàn)了一種快速實(shí)時(shí)的32位定點(diǎn)數(shù)字信號處理器電路。

2 32位DSP體系結(jié)構(gòu)

2.1 32位DSP總體架構(gòu)

DSP體系結(jié)構(gòu)是設(shè)計(jì)DSP的核心和基礎(chǔ),決定了該DSP所達(dá)到的性能。根據(jù)開發(fā)時(shí)間與性能指標(biāo)的要求,這款32位定點(diǎn)DSP的研制目標(biāo)是中低速、低功耗及高可靠,由此決定32位DSP體系結(jié)構(gòu)及指令系統(tǒng)。該DSP由CPU、總線、外設(shè)、ROM等功能部件組成,CPU采用增強(qiáng)的硬件,包含32位乘法器、32位ALU、32位寄存器隊(duì)列,4條CPU內(nèi)部總線分別可以從存儲器和寄存器隊(duì)列中傳遞操作數(shù),兩個(gè)獨(dú)立的專用地址運(yùn)算邏輯單元ARAU可以在單周期內(nèi)產(chǎn)生2個(gè)地址。CPU與外設(shè)間采用哈佛總線結(jié)構(gòu),由4條總線組成,增強(qiáng)程序執(zhí)行速度和數(shù)據(jù)吞吐帶寬。

根據(jù)該體系結(jié)構(gòu),32位DSP電路可以實(shí)現(xiàn)2操作數(shù)和3操作數(shù)的加、減、乘等算術(shù)運(yùn)算及與、或、非、異或、移位等邏輯運(yùn)算,通過跳轉(zhuǎn)、返回、堆棧等操作實(shí)現(xiàn)程序控制,該電路具有4級流水線。32位定點(diǎn)DSP的總體結(jié)構(gòu)圖如圖1所示。

圖1 32位定點(diǎn)DSP總體結(jié)構(gòu)圖

2.2 32位DSP的總線結(jié)構(gòu)

32位DSP采用哈佛總線結(jié)構(gòu),片內(nèi)總線包括32位的程序總線PB、數(shù)據(jù)總線DB和24位的程序地址總線PAB、數(shù)據(jù)地址總線DAB。DB通過多路復(fù)用器連接到定時(shí)器和串口的數(shù)據(jù)端,DAB連接到定時(shí)器和串口的地址端。因BOOTROM存放只讀程序,其數(shù)據(jù)輸出端與PB相連,地址端與PAB相連。

當(dāng)電路處于微處理器(MP)模式時(shí),程序從片外存儲器讀取到PB上,數(shù)據(jù)也從片外存儲器讀寫到DB,外部啟動(dòng)該DSP;當(dāng)電路處于微計(jì)算機(jī)模式(MC)時(shí),引導(dǎo)程序從BOOTROM讀取到PB上,內(nèi)部啟動(dòng)該DSP。片內(nèi)的PB和DB復(fù)用到32位外部數(shù)據(jù)總線DATA上,片內(nèi)的PAB和DAB復(fù)用到24位外部地址總線ADDR上,通過外部存儲器接口的雙向數(shù)據(jù)總線DATA、地址總線ADDR和PDS、RW等片選信號實(shí)現(xiàn)對片外存儲器的讀寫訪問。外部存儲器的讀寫接口如圖2所示。

2.3 32位DSP 的CPU核

32位DSP的CPU由定點(diǎn)乘法器、算術(shù)邏輯運(yùn)算單元ALU、移位器、輔助寄存器運(yùn)算單元ARAU以及寄存器隊(duì)列組成。

圖2 外部存儲器讀寫接口

為提高并行性,CPU內(nèi)部采用4條32位的數(shù)據(jù)總線CPU1、CPU2、REG1、REG2,2條24位地址總線DADDR1、DADDR2。REG1、REG2總線與內(nèi)核寄存器隊(duì)列相連,CPU1、CPU2總線與核外數(shù)據(jù)總線相連。CPU內(nèi)部結(jié)構(gòu)圖如圖3所示。CPU1、CPU2、REG1、REG2總線通過復(fù)用器與內(nèi)核數(shù)據(jù)總線DBUS相連,CPU與核外交互的接口總線為讀數(shù)據(jù)總線DB_R、寫數(shù)據(jù)總線DB_W、程序總線PB、數(shù)據(jù)地址總線DAB和程序地址總線PAB。控制信號DMEM_RW控制數(shù)據(jù)總線的讀寫,PDS_SEL控制程序空間和數(shù)據(jù)空間的選擇。當(dāng)讀取指令時(shí),PDS_SEL為低,程序計(jì)數(shù)器PC產(chǎn)生24位程序地址給程序地址總線PAB,通過PAB尋址,程序指令送入32位的程序總線PB上,PB再把指令送入指令寄存器IR進(jìn)行指令譯碼。當(dāng)讀寫數(shù)據(jù)時(shí),PDS_SEL為高,ARAU0、ARAU1產(chǎn)生24位的地址給2條內(nèi)核數(shù)據(jù)地址總線DADDR1和DADDR2,DADDR1和DADDR2復(fù)用到DADDR總線并生成24位數(shù)據(jù)地址總線DAB。根據(jù)DAB和讀寫信號DMEM_RW,讀數(shù)據(jù)時(shí)把DAB尋址的數(shù)據(jù)通過核外DB總線讀到32位數(shù)據(jù)讀總線DB_R上并送入內(nèi)核的32位雙向總線DBUS上,寫數(shù)據(jù)時(shí)把內(nèi)核DBUS上的數(shù)據(jù)寫到數(shù)據(jù)寫總線DB_W上并把它送出到核外DB總線上。

24個(gè)寄存器組成寄存器隊(duì)列,包括8個(gè)通用寄存器R0~R7、8個(gè)輔助寄存器AR0~AR7、數(shù)據(jù)頁指針DP、索引寄存器IR0~I(xiàn)R1、塊長度寄存器BK、堆棧指針SP和狀態(tài)寄存器ST、程序計(jì)數(shù)器PC和指令寄存器IR。

圖3 CPU結(jié)構(gòu)圖

2.3.1 ALU

ALU在單周期內(nèi)完成對32位整數(shù)、32位邏輯的運(yùn)算。邏輯運(yùn)算包括與、或、非、異或、左右移位等操作。移位器在單周期內(nèi)完成左右移位操作,移位數(shù)最多可達(dá)32位。CPU總線或REG總線上的數(shù)據(jù)經(jīng)移位器移位后送入ALU運(yùn)算單元,ALU根據(jù)指令譯碼完成相應(yīng)的運(yùn)算后把結(jié)果送入32位通用寄存器R0~R7。

2.3.2 乘法器

32位DSP的乘法器采用移位加方式,在單周期內(nèi)實(shí)現(xiàn)16×16位的無符號數(shù)和帶符號數(shù)的乘法運(yùn)算。假設(shè)兩個(gè)16位的帶符號數(shù)為A16和B16,其中A16=a15a14……a2a1a0=-a15×215+=-a15×215+A15,B16=b15b14……b2b1b0=-b15×215+=-b15×215+B15,其中A15、B15為無符號數(shù)。乘積P32=A16×B16=(-a15×215+A15)×(-b15×215+B15)=a15×b15×230+(-a15×B15)×215+(-b15×A15)×215+A15×B15,其中第1項(xiàng)和第4項(xiàng)為無符號數(shù)乘法,第2和第3項(xiàng)為負(fù)數(shù)。因負(fù)數(shù)可以表示為取反加1即-N=+1,所以-a15×B15=-a15×,可以表示為1×216+1×215++1。同理,-b15×A15也可用上述方法表示,而無符號數(shù)乘法就是各位相與的過程。

由以上分析可知,根據(jù)乘法運(yùn)算規(guī)則,整數(shù)相與、負(fù)數(shù)相與后取反加一再移位相加即可實(shí)現(xiàn)所有乘積項(xiàng)相加,所以用簡單的與門、與非門、移位器和加法器就能實(shí)現(xiàn)該乘法運(yùn)算。

乘法器的乘數(shù)和被乘數(shù)來自CPU總線或REG總線,32位乘積存入寄存器R0~R7中。

2.3.3 輔助寄存器運(yùn)算單元ARAU

ARAU通過加、減等操作完成與地址相關(guān)的運(yùn)算,ARAU可以操作8個(gè)32位輔助寄存器AR0~AR7,并對其進(jìn)行修改,產(chǎn)生24位地址。AR也可以作為32位的通用寄存器供乘法器和ALU使用。

32位DSP單周期可以實(shí)現(xiàn)3操作數(shù)操作,兩個(gè)獨(dú)立執(zhí)行的ARAU同時(shí)生成兩個(gè)地址,以提高尋址能力和數(shù)據(jù)吞吐率。

在間接尋址中,ARAU可以通過自動(dòng)加一、減一實(shí)現(xiàn)順序?qū)ぶ罚ㄟ^加減偏移量實(shí)現(xiàn)偏移量尋址,通過加減32位索引地址IR0/1,實(shí)現(xiàn)索引尋址。

循環(huán)尋址時(shí)ARAU用32位的塊寄存器BK標(biāo)示數(shù)據(jù)塊的大小,ARAU把輔助寄存器中的地址加減循環(huán)塊大小BK產(chǎn)生新的地址。

位反尋址時(shí)ARAU把輔助寄存器地址以位反加減的方式產(chǎn)生新的地址。

2個(gè)ARAU的輸入是偏移量DISP0、索引寄存器IR0/1、循環(huán)塊寄存器BK或輔助寄存器AR0~AR7中的一個(gè),計(jì)算后的24位地址輸出到AR0~AR7以更新輔助寄存器中的地址或直接輸出到數(shù)據(jù)地址總線DADDR1、DADDR2。

通過多種尋址方式的譯碼控制ARAU的地址計(jì)算方式。

2.3.4 流水線

電路采用4級流水線方式,包括取指(F)、譯碼(D)、讀數(shù)(R)和執(zhí)行(E)。在取指階段,通過PAB總線從存儲空間取指令到PB,送入IR,刷新程序計(jì)數(shù)器PC。在譯碼階段,指令譯碼控制器產(chǎn)生與操作數(shù)相關(guān)的指令譯碼,ARAU產(chǎn)生與數(shù)據(jù)地址相關(guān)的輔助寄存器尋址運(yùn)算結(jié)果,并產(chǎn)生指令操作數(shù)相關(guān)的地址(讀數(shù)據(jù)地址)到DAB總線。在讀數(shù)據(jù)階段,數(shù)據(jù)從存儲空間讀到數(shù)據(jù)總線DB_R上。在執(zhí)行階段,將指令中指定的數(shù)據(jù)或是存儲空間讀出的數(shù)據(jù)執(zhí)行專門的操作,如加減、乘除、位運(yùn)算,更新狀態(tài)寄存器ST標(biāo)志,結(jié)果通過DB_W總線寫入存儲空間(或通過REG總線寫入專用寄存器)。

圖4是4級流水線操作示意圖,圖5是流水線邏輯示意圖。

圖4 4級流水線示意圖

圖5 流水線邏輯圖

2.4 32位DSP指令集及尋址方式

32位DSP指令集包括實(shí)現(xiàn)加法、減法、乘法、左右移位、存儲、跳轉(zhuǎn)、堆棧和邏輯運(yùn)算等操作。DSP取指令后放入指令寄存器IR,通過指令譯碼控制ALU、ARAU、移位器和乘法器的動(dòng)作,同時(shí)實(shí)現(xiàn)程序控制,包括跳轉(zhuǎn)、堆棧、條件返回等操作。

32位DSP提供寄存器尋址、直接尋址、間接尋址、立即尋址、PC相關(guān)尋址、循環(huán)尋址、位反尋址等7種靈活的尋址方式。直接尋址是地址由32位數(shù)據(jù)頁指針DP中的低8位和指令中的低16位組成。DP中的低8位用來作為直接尋址中的數(shù)據(jù)頁,共256頁,每頁64 K字長度;寄存器尋址是操作數(shù)直接在CPU寄存器中;立即尋址的操作數(shù)是一個(gè)16位或24位的立即數(shù);PC相關(guān)尋址是一個(gè)16位或24位的偏移量載入PC;間接尋址是輔助寄存器通過ARAU運(yùn)算生成操作數(shù)的地址;循環(huán)和位反尋址常用于濾波、FFT等DSP算法中。

3 32位DSP的實(shí)現(xiàn)

32位DSP采用標(biāo)準(zhǔn)單元的設(shè)計(jì)方法,基于0.5 μm標(biāo)準(zhǔn)單元庫正向設(shè)計(jì)。通過功能規(guī)范定義、模塊劃分、RTL代碼、RTL仿真、DC綜合、門級前后仿、布局布線、靜態(tài)時(shí)序分析、晶體管級后仿到出GDSII數(shù)據(jù)等流程。該設(shè)計(jì)流程如圖6所示。

該電路集成規(guī)模為7萬門,芯片面積10.0 mm×8.4 mm,版圖如圖7所示。經(jīng)流片后測試得到該芯片的工作電流為108 mA,靜態(tài)電流為15 μA,最高工作頻率36 MHz,單指令周期55.5 ns,功能和性能達(dá)到設(shè)計(jì)目標(biāo)。

圖6 設(shè)計(jì)流程

4 結(jié)論

通過對DSP的架構(gòu)及總線結(jié)構(gòu)、ALU、乘法器、ARAU和流水線等分析,弄清了CPU中的各個(gè)關(guān)鍵部件及其實(shí)現(xiàn)方式。采用標(biāo)準(zhǔn)單元的正向設(shè)計(jì)流程,實(shí)現(xiàn)了一款基于0.5 μm工藝的DSP芯片。該芯片集成度7萬門,經(jīng)過流片、測試后,該芯片的工作頻率可達(dá)36 MHz,動(dòng)態(tài)功耗594 mW,所設(shè)計(jì)的指令和外設(shè)等功能均工作正常,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。

圖7 32位DSP芯片版圖

[1] 支長義,等. 浮點(diǎn)DSP原理及應(yīng)用[M]. 成都:電子科技大學(xué)出版社,2003.

[2] 帕特森·亨尼西. 計(jì)算機(jī)組成與設(shè)計(jì)——硬件/軟件接口[M]. 北京:機(jī)械工業(yè)出版社,2010.

[3] 虞希清. 專用集成電路設(shè)計(jì)實(shí)用教程[M]. 杭州:浙江大學(xué)出版社,2007.

[4] 李亞民. 計(jì)算機(jī)原理與設(shè)計(jì)——Verilog HDL版[M]. 北京:清華大學(xué)出版社,2011.

猜你喜歡
數(shù)據(jù)總線寄存器移位
MDT診療模式在顳下頜關(guān)節(jié)盤不可復(fù)性盤前移位中的治療效果
STM32和51單片機(jī)寄存器映射原理異同分析
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
再生核移位勒讓德基函數(shù)法求解分?jǐn)?shù)階微分方程
大型總段船塢建造、移位、定位工藝技術(shù)
智能電網(wǎng)調(diào)度控制系統(tǒng)中的數(shù)據(jù)總線技術(shù)研究
微小移位的B型股骨假體周圍骨折的保守治療
基于ASP.NETSignalR的實(shí)時(shí)Web功能的實(shí)現(xiàn)
現(xiàn)場總線技術(shù)在電廠自動(dòng)化控制中的應(yīng)用
途安車數(shù)據(jù)總線診斷接口故障
和静县| 东兰县| 东方市| 旺苍县| 靖边县| 武汉市| 黔南| 龙南县| 建水县| 基隆市| 涡阳县| 上思县| 惠州市| 紫阳县| 肥乡县| 云阳县| 宜章县| 博罗县| 邹平县| 霍邱县| 北安市| 镇宁| 南江县| 南澳县| 苍南县| 固原市| 来凤县| 望江县| 太原市| 百色市| 满洲里市| 中超| 钟祥市| 宜君县| 甘南县| 揭东县| 共和县| 北票市| 巴东县| 汤阴县| 高唐县|