(計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)專(zhuān)業(yè)論文)基于nios的sopc設(shè)計(jì).pdf_第1頁(yè)
(計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)專(zhuān)業(yè)論文)基于nios的sopc設(shè)計(jì).pdf_第2頁(yè)
(計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)專(zhuān)業(yè)論文)基于nios的sopc設(shè)計(jì).pdf_第3頁(yè)
(計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)專(zhuān)業(yè)論文)基于nios的sopc設(shè)計(jì).pdf_第4頁(yè)
(計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)專(zhuān)業(yè)論文)基于nios的sopc設(shè)計(jì).pdf_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

(計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)專(zhuān)業(yè)論文)基于nios的sopc設(shè)計(jì).pdf.pdf 免費(fèi)下載

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

摘要 當(dāng)今社會(huì),嵌入式系統(tǒng)的應(yīng)用越來(lái)越廣,需求越來(lái)越大。傳統(tǒng)的嵌入式系統(tǒng) 開(kāi)發(fā)方法不利于修改設(shè)計(jì),丌發(fā)成本高,設(shè)計(jì)周期長(zhǎng),不能滿足激烈的市場(chǎng)競(jìng)爭(zhēng) 的需要。一種新型的嵌入式系統(tǒng)設(shè)計(jì)方法一陜速樣機(jī)生成技術(shù)應(yīng)運(yùn)而生。使用 s o c 技術(shù)可以進(jìn)行快速樣機(jī)設(shè)計(jì)。在s o c 基礎(chǔ)上,a l t e r a 公司推出基于n i o s 的s o p c 設(shè)計(jì)。使用基于n i o s 的s o p c 技術(shù),可以快速地進(jìn)行嵌入式系統(tǒng)的設(shè) 計(jì),并且玎發(fā)的系統(tǒng)易于修改,開(kāi)發(fā)成本低,丌發(fā)周期短。 s o p c 是a l t e r a 公司提出的一種靈活、高效的片上系統(tǒng)設(shè)計(jì)方案。它將處理 器、存儲(chǔ)器、i 0 口等系統(tǒng)設(shè)計(jì)需要的組件集成到個(gè)p l d 器件上,構(gòu)建成一個(gè) 可編程的片上系統(tǒng)。n i o s 是a l t e r a 公司丌發(fā)的可進(jìn)行s o p c 設(shè)計(jì)的r i s c 型處 理器軟核。進(jìn)行s o p c 設(shè)計(jì)的環(huán)境是s o p cb u i t d e r ,集成在a l t e r a 公司開(kāi)發(fā)的 e d a 工具q u a r t u si i 里。進(jìn)行s o p c 設(shè)計(jì)的關(guān)鍵是使用i p 核。a l t e r a 公司除提供 自己開(kāi)發(fā)的i p 核外,也提供了使用第三方i p 核的簡(jiǎn)單接口。 本文蕾先對(duì)嵌入式系統(tǒng)設(shè)計(jì)做了簡(jiǎn)要介紹。第二章詳細(xì)介紹了a t e r a 公司推 出的基于n i o s 的s o p c 技術(shù),包括對(duì)n i o s 軟核的介紹和對(duì)s o p c 技術(shù)的介紹。 第三章介紹了復(fù)旦大學(xué)c a t 實(shí)驗(yàn)室研制的快速樣機(jī)平臺(tái),介紹了樣機(jī)平臺(tái)的主 要組成部分及樣機(jī)平臺(tái)的特性。第四章介紹了本人對(duì)樣機(jī)平臺(tái)進(jìn)行的a d 、d a 功能擴(kuò)展的工作;第五章介紹了在樣機(jī)平臺(tái)上進(jìn)行的應(yīng)用丌發(fā),汽車(chē)運(yùn)行信息、記 錄儀。文章最后對(duì)本文進(jìn)行了一卜總結(jié),并對(duì)實(shí)驗(yàn)室今后的工作做了展望。 關(guān)鍵詞:嵌入式系統(tǒng),s o c ,n i o s ,s o p c a b s t r a e t n o w a d a y st h ee m b e d d e ds y s t e mi sb e c o m i n gm o r ea n dm o r ep o p u l a ra n di t s a p p l i c a t i o n sc a l l b ef o u n di nm a n ya s p e c t so fi n d u s t r y i nt h eh e a t e dc o m p e t i t i o nt h e t r a d i t i o n a ld e v e l o p i n gm e t h o df b re m b e d d e ds y s t e mi s b e i n g d r i v e no u tb e c a u s eo fi t s d r a w b a c k s :h a r dt od e b u g ,r e l a t i v e l yh i g h e rc o s ta n d l o n gd e v e l o p i n gc y c l ea n ds oo n m e a n w h i l e ,an e wd e v e l o p i n gm e t h o di sc o m i n gi n t ob e i n g - - r a p i dp r o t o t y p i n g t e c h n o l o g y b yu s i n gs o ct e c h n o l o g y a r a p i dp r o t o t y p i n gd e s i g nc a n b em a d en i o s b a s e ds o p cd e s i g ni s d e v e l o p e db ya l t e r ac o r p o r a t i o n b yu s i n gt h i st e c h n o l o g y , e m b e d d e ds y s t e mc a nb ed e s i g n e di nar a p i dw a ya n de a r lb ee a s i l ym o d i f i e d ,t h ec o s t c a nb er e d u c e da n dt h ed e v e l o p i n gc i r c l eg a l lb es h o r t e n e d s o p ci saf l e x i b l e 、e f f i c i e n ts o cd e s i g n m e t h o d o l o g y ,w h i c hi n t e g r a t e s p r o c e s s o r 、m e m o r y 、i o sa n do t h e rp e r i p h e r a l si n t o ap l dn i o si sas o f tc o r e m i c r o p r o c e s s o r ,w h i c h c a nb eu s e dt ob u i l das o p cd e s i g n t h es o p cd e s i g n e n v i r o n n l e f l ti ss o p cb u i l d e r , w h i c hi s i n t e g r a t e di n t h ee d at o o lq u a r t u si tt h e k e yi s s u eo fs o p cd e s i g ni s i pc o r e s a l t e r ap r o v i d e sn o to n l yi pc o r e sb u ta l s ot h e i n t e r f a c et om a k e p o s s i b l et ou s ei pc o r e sd e v e l o p e db yt h et h i r dp a r t y i nc h a p t e ro n e ,t h ee m b e d d e d s y s t e md e s i g ni si n t r o d u c e db r i e f l y i nc h a p t e rt w o , n i o sb a s e ds o p cd e s i g ni si n t r o d u c e di nd e t a i l ,i n c l u d i n gt h ei n t r o d u c t i o no fn i o s s o f tc o r ea n ds o p c t e c h n o l o g y t h e r a p i dp r o t o t y p i n gp l a t f o r m ,w h i c hi sd e v e l o p e d b y c a tl a bo f f u d a nu n i v e r s i t y ,i si n t r o d u c e di nc h a p t e rt h r e e i nc h a p t e rf o u r ,t h e f u n c t i o no fa d 、d ac o n v e r s i o ne x p a n d e dt ot i l ep l a t f o r mi si n t r o d u c e d 油d e t a i li n c h a p t e rf i v e ,t h ea p p l i c a t i o n - - v e h i c l ei n f o r m a t i o ns y s t e mt h a t i s d e v e l o p e db a s e d t h ep l a t f o r mo fc a tl a bi sp r e s e n t e d a tt h ee n do ft h i sa r t i c l e ,as u m m i n gu po ft h i s a r t i c l ew i l lb eg i v e na n dt h ee x p e c t a t i o no ft h ef u t u r er e s e a r c hw o r ko fc a tl a bi sp u t f o r w a r d k e y w o r d s :e m b e d d e ds y s t e m ,s o c ,n i o s ,s o p c 4 一 第一章b l 言 第一章引言 1 1 嵌入式系統(tǒng)概述 數(shù)字系統(tǒng)( d i g i t a ls y s t e m ) 可以分為兩種:通用系統(tǒng)( g e n e r a l s y s t e m ) 和專(zhuān) 用系統(tǒng)( s p e c i a l - p u r p o s es y s t e m ) 。通用系統(tǒng)就是傳統(tǒng)的計(jì)算機(jī),范圍從p c 機(jī), 手提電腦,工作站,一直到超級(jí)計(jì)算機(jī)。這些計(jì)算機(jī)的特點(diǎn)是用戶可以在其上進(jìn) 行編程,并且通過(guò)可執(zhí)行的軟件,可以支持很多不同的應(yīng)用。在8 0 年代及9 0 年代早期,通用系統(tǒng)是設(shè)計(jì)方法革新的主要推動(dòng)力。然而,隨著幾種新型應(yīng)用的 產(chǎn)生,比如m p e g 4 ,通用計(jì)算機(jī)不能高效地實(shí)現(xiàn)這些應(yīng)用,上述情況有了改變, 專(zhuān)用系統(tǒng)變得越來(lái)越重要因?yàn)樗鼈兪菍?zhuān)門(mén)為實(shí)現(xiàn)特定應(yīng)用而丌發(fā)的。嵌入式系 統(tǒng)就屬于這類(lèi)系統(tǒng)。 一般來(lái)說(shuō),嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件 司以被剪裁以適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗有嚴(yán)格要求的 專(zhuān)用計(jì)算機(jī)系統(tǒng)。在嵌入式系統(tǒng)中,操作系統(tǒng)和應(yīng)用軟件集成于計(jì)算機(jī)硬件系統(tǒng) 中,即系統(tǒng)的應(yīng)用軟件與系統(tǒng)的硬件一體化。嵌入式系統(tǒng)具有軟件代碼少、高度 自動(dòng)化、響應(yīng)速度快等特點(diǎn)。 如今,嵌入式系統(tǒng)的廣泛應(yīng)用,已經(jīng)滲入到我們同常生活的各個(gè)方面。在手 機(jī)、電視機(jī)、數(shù)碼相機(jī)、洗衣機(jī)、電冰箱、空調(diào),甚至電飯鍋、手表里,都有嵌 入式系統(tǒng)的身影。嵌入式系統(tǒng)小到一個(gè)芯片,大到一臺(tái)標(biāo)準(zhǔn)的p c 板或者一臺(tái)獨(dú) 立的設(shè)備,種類(lèi)繁多,讓人頓生目不暇接之感。微型計(jì)算機(jī)雖然占據(jù)了全球計(jì)算 機(jī)工、世的9 00 4 的市場(chǎng),但事實(shí)上,嵌入式系統(tǒng)在數(shù)量上遠(yuǎn)遠(yuǎn)超過(guò)了各種通用計(jì) 算機(jī)。p c 機(jī)的各種輸入輸出和外部設(shè)備均是由嵌入式系統(tǒng)控制的。每臺(tái)p c 的 外部設(shè)備中包含了5 1 0 個(gè)嵌入式處理器。當(dāng)今工業(yè)界的自動(dòng)化、信息化和網(wǎng)絡(luò) 化已經(jīng)發(fā)展成為一種不可逆轉(zhuǎn)的趨勢(shì)。在工業(yè)自動(dòng)化控制、通信、儀器儀表、汽 車(chē)、船舶、航空航天、軍事裝備、消費(fèi)類(lèi)電子產(chǎn)品等領(lǐng)域更是嵌入式系統(tǒng)的天下。 一般來(lái)說(shuō),嵌入式系統(tǒng)具有如下一些特征: 1 通常嵌入在其他產(chǎn)品中。 2 獨(dú)立工作。 3 通常不被重新編程,它們的功能很固定。 4 通常在反應(yīng)模式下工作,對(duì)于外部的輸入要頻繁地做出反應(yīng)。 5 ,由夫量并發(fā)的工作進(jìn)程實(shí)現(xiàn),這些進(jìn)程之陽(yáng)需要通信。 6 自嚴(yán)格的時(shí)洲要求,比如實(shí)時(shí)限制。 7 常常是i 0 密集的。 8 對(duì)于成本、功耗、體積、重量等性能指標(biāo)有一定的約束。 9 有嚴(yán)格的可靠性、正確性限制,比如a b s ( a n t i - l o c kb r a k es y s t e m ) 必須在 第一章引言 任何情況下都可以無(wú)錯(cuò)工作。 上面的特征只是嵌入式系統(tǒng)的一般特征,并不是所有嵌入式系統(tǒng)都要具有上 面的特衙。實(shí)際上,不同的嵌入式系統(tǒng)在設(shè)計(jì)要求上是有一定差異的。例如,某 些系統(tǒng)對(duì)實(shí)時(shí)性要求f 分嚴(yán)格,如糶系統(tǒng)在規(guī)定的u , h 、白j 內(nèi)不能對(duì)輸入做出適當(dāng)?shù)?反應(yīng),則會(huì)導(dǎo)致嚴(yán)重的錯(cuò)誤甚至災(zāi)難性的后果,比如跟蹤導(dǎo)彈的雷達(dá)系統(tǒng)。這類(lèi) 系統(tǒng)稱(chēng)為強(qiáng)實(shí)時(shí)或者硬實(shí)時(shí)嵌入式系統(tǒng)。相對(duì)的,有些系統(tǒng)雖然對(duì)實(shí)時(shí)性有一定 要求,但并不十分嚴(yán)格,即使在規(guī)定時(shí)間內(nèi)對(duì)于輸入沒(méi)能及時(shí)做出反應(yīng),也不會(huì) 造成重大損失,比如a t m 提款機(jī)。這類(lèi)系統(tǒng)稱(chēng)為軟實(shí)時(shí)嵌入式系統(tǒng)。 嵌八式系統(tǒng)又可以被分成兩個(gè)子類(lèi):嵌入式控制器和嵌入式數(shù)據(jù)處理系統(tǒng)。 嵌入式控制器是專(zhuān)用于控制功能的。它們是面向控制流的( d a t af l o w d o m i n a t e d ) ,對(duì)于外部事件起反應(yīng)。因此,嵌入式控制器常被稱(chēng)作反應(yīng)系統(tǒng) ( r e a c t i v es y s t e m ) 。反應(yīng)系統(tǒng)對(duì)于環(huán)境的刺激所做出的反應(yīng)是改變其內(nèi)部狀態(tài)和 產(chǎn)生輸出結(jié)果。通常地,它們支持一組模式和設(shè)置,并且它們的實(shí)時(shí)艱制一般在 毫秒范圍內(nèi)。因此,性能需求通常是低等到中等。由于這個(gè)原因,微控制器對(duì)于 實(shí)現(xiàn)嵌入式控制器就足夠了。嵌入式控制器典型的應(yīng)用在以下方面: 1 控制器( 例:電梯,電子窗簾) 2 家用電器( 例:微波爐,洗衣機(jī)) 3 汽車(chē)工業(yè)應(yīng)用( 例:發(fā)動(dòng)機(jī)控制單元,燃料噴射器,防鎖剎車(chē)( a n t i l o c k i n g b r a k e s ) ) 4 工業(yè)機(jī)器人 嵌入式數(shù)據(jù)處理系統(tǒng)專(zhuān)用于數(shù)據(jù)通信和處理。因此,它們常被稱(chēng)為轉(zhuǎn)換系統(tǒng) ( t r a n s f o r m a t i o n a ls y s t e m s ) 。這些系統(tǒng)是面向數(shù)據(jù)流的,通常是實(shí)時(shí)系統(tǒng),要在 一個(gè)預(yù)先定義的時(shí)間窗內(nèi)執(zhí)行一個(gè)特定的功能。與嵌入式控制器相比,它們需要 更高的性能。因此,微控制器已經(jīng)不能滿足要求,需要更強(qiáng)大的微處理器 ( m i c r o p r o c e s s o r s ) 和a s i c s 。數(shù)字信號(hào)處理和高層綜合是它典型的應(yīng)用領(lǐng)域。 以下應(yīng)用領(lǐng)域包含了典型的嵌入式數(shù)字處理系統(tǒng): 1 多媒體( m u l t i m e d i a ) 2 消費(fèi)電器( c o n s u m e r e l e c t r o n i c s ) 3 無(wú)線通訊( w i r e l e s sc o m m u n i c m i o n ) 4 通用電訊( g e n e r a lt e l e c o m m u n i c a t i o n ) 1 2 嵌入式系統(tǒng)設(shè)計(jì)現(xiàn)狀與前景 傳統(tǒng)的嵌入式系統(tǒng)的丌發(fā)過(guò)程是一種“瀑御”式1 2 l ( w a t e r f a l lm o d e ) 的設(shè)計(jì) 過(guò)程。這種設(shè)計(jì)方法的最大特點(diǎn)是從系統(tǒng)設(shè)計(jì)的丌始就將系統(tǒng)所要實(shí)現(xiàn)的功能劃 分到用硬件實(shí)現(xiàn)或者用軟件實(shí)現(xiàn),然后分別進(jìn)行硬件設(shè)計(jì)和軟件設(shè)計(jì),最后進(jìn)行 第章引言 硬件和軟件的集成。這種設(shè)計(jì)方法不利于修改i 殳計(jì),而且成本相對(duì)較高,設(shè)計(jì)周 期較長(zhǎng),不能滿足激烈的市場(chǎng)競(jìng)爭(zhēng)的要求。 為了解決上面的問(wèn)題,近年來(lái),一些基于硬軟件協(xié)同設(shè)計(jì)的嵌入式系統(tǒng)自動(dòng) 化設(shè)計(jì)技術(shù),即所謂的快速樣機(jī)系統(tǒng)( r a p i dp r o t o t y p i n gs y s t e m ) ,成為嵌入式系 統(tǒng)領(lǐng)域的研究熱點(diǎn)。這種嵌入式系統(tǒng)的設(shè)計(jì)方法不同于傳統(tǒng)的嵌入式系統(tǒng)的設(shè)計(jì) 方法,最主要的有兩點(diǎn):一是硬件和軟件的設(shè)計(jì)不是各自獨(dú)立進(jìn)行設(shè)計(jì)的,而是 從系統(tǒng)級(jí)設(shè)計(jì)到最后的綜合均采用硬軟件協(xié)同設(shè)計(jì)的方法。二是系統(tǒng)設(shè)計(jì)是從 與具體實(shí)現(xiàn)無(wú)關(guān)的系統(tǒng)級(jí)開(kāi)始的。采用系統(tǒng)級(jí)設(shè)計(jì)的好處是一方面可以通過(guò)對(duì)所 設(shè)計(jì)系統(tǒng)的功能和性能進(jìn)行驗(yàn)證,及時(shí)發(fā)現(xiàn)和糾f 設(shè)計(jì)中的錯(cuò)誤和問(wèn)題,否則到 對(duì)系統(tǒng)進(jìn)行綜合實(shí)現(xiàn)時(shí)再發(fā)現(xiàn)錯(cuò)誤就將對(duì)整個(gè)設(shè)計(jì)付出很大的代價(jià):另一方面, 由于系統(tǒng)級(jí)設(shè)計(jì)與具體實(shí)現(xiàn)無(wú)關(guān),所以即使今后的硬軟件劃分方法、協(xié)同綜合 方法、快速樣機(jī)平臺(tái)發(fā)生變動(dòng),都不會(huì)對(duì)系統(tǒng)的設(shè)計(jì)造成任何影響。 除設(shè)計(jì)方法外,嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域還有其他一些研究熱點(diǎn): 1 處理器 為了滿足不同的應(yīng)用,半導(dǎo)體廠商提供一些具有不同處理能力及尋址能力的 處理器,如8 位、1 6 位、3 2 位處理器。為了專(zhuān)門(mén)進(jìn)行數(shù)字信號(hào)處理,數(shù)字信號(hào) 處理器d s p ( d i g i t a ls i g n a lp r o c e s s o r ) 也應(yīng)運(yùn)而生。另外,還有基于知識(shí)產(chǎn)權(quán)核 i pc o r e ( i n t e l l e c t u a lp r o p e r t yc o r e ) 的、用戶可以進(jìn)行修改的處理器軟核( s o f t c o r e ) 處理器。本文后面將要討論到的n i o s 就是一種軟核處理器。 2 存儲(chǔ)器 隨著r o m 和r a m 存儲(chǔ)設(shè)備存儲(chǔ)容量的不斷提高及價(jià)格的不斷f 降,在嵌入 式系統(tǒng)中可以存儲(chǔ)大量的數(shù)掘及程序。另外,隨著閃存的技術(shù)和容量的提高,很 多嵌入式系統(tǒng)使用閩存作為存儲(chǔ)設(shè)備,這使得嵌入式系統(tǒng)可以包含“巨大”的操 作系統(tǒng)。 3 操作系統(tǒng) 現(xiàn)在,很多嵌入式系統(tǒng)使用操作系統(tǒng)。這種操作系統(tǒng)與桌面操作系統(tǒng)相比, 比如w i n d o w s 系列操作系統(tǒng),它們占用的存儲(chǔ)空i l 白j 更小。但這些操作系統(tǒng)也提 供應(yīng)用程序接e la p i ( a p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ) ,這使得嵌入式系統(tǒng)開(kāi) 發(fā)人員可以在操作系統(tǒng)層面進(jìn)行開(kāi)發(fā),減少了開(kāi)發(fā)時(shí)間與付出的努力。對(duì)嵌入式 系統(tǒng)的操作系統(tǒng)進(jìn)行相應(yīng)的更改與裁減,使其適合嵌入式系統(tǒng)的要求,這也是現(xiàn) 在嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域中的一個(gè)研究熱點(diǎn)。 4 編程語(yǔ)言 以前人們使用匯編語(yǔ)言來(lái)編寫(xiě)嵌入式系統(tǒng)軟件,但現(xiàn)在人們更多的使用的是 高級(jí)語(yǔ)言來(lái)進(jìn)行嵌入式系統(tǒng)的開(kāi)發(fā),比如c 語(yǔ)言。另外,隨著面向?qū)ο蠹夹g(shù)應(yīng) 第一章引言 用越來(lái)越廣,一些面向?qū)ο蟮恼Z(yǔ)言也被用來(lái)進(jìn)行嵌入式系統(tǒng)的丌發(fā),如c + + 語(yǔ) 言。另一個(gè)重要的發(fā)展是j a v a 的使用。山于j a v a 的平臺(tái)無(wú)關(guān)性,它在嵌入式系 統(tǒng)軟件開(kāi)發(fā)中變得非常流行。由j a v a 編譯器生成的字節(jié)代碼能夠被移植到任何 平臺(tái)卜,只要該平臺(tái)上運(yùn)行了j a v a 虛擬機(jī)j v m ( j a v a v i r t u a l m a c h i n e ) 。 5 丌發(fā)工具 眾多電子設(shè)計(jì)自動(dòng)化e d a ( e l e c t r o n i cd e s i g na u t o m a t i c ) 丌發(fā)工具的發(fā)展j 下 在加速嵌入式系統(tǒng)沒(méi)計(jì)的開(kāi)發(fā)。這些丌發(fā)工具一般包括交叉編譯器、調(diào)試器、仿 真器等。利用這些工具,開(kāi)發(fā)人員可以在主機(jī)上編寫(xiě)程序,測(cè)試軟件,最后移植 到目標(biāo)硬件上。 1 3 后續(xù)章節(jié)的安排 本文主要介紹一個(gè)快速樣機(jī)生成技術(shù),基于n i o s 的s o p c 技術(shù)。在后續(xù)的 章節(jié)旱,內(nèi)容安排如下: 第二章:具體介紹基于n i o s 的s o p c 技術(shù)。2 1 節(jié)對(duì)s o c 技術(shù)進(jìn)行簡(jiǎn)要介紹; 2 2 節(jié)對(duì)基于n i o s 的s o p c 技術(shù)進(jìn)行詳細(xì)介紹。2 3 節(jié)介紹s o p c 的開(kāi) 發(fā)過(guò)程;24 節(jié)介紹本人對(duì)s o p c 的高級(jí)特性的研究。 第二章:介紹復(fù)旦大學(xué)c a t 實(shí)驗(yàn)室研制的快速樣機(jī)平臺(tái)。其中3 1 節(jié)對(duì)復(fù)旦大 學(xué)c a t 實(shí)驗(yàn)室研制的快速樣機(jī)平臺(tái)做概要介紹;3 2 節(jié)介紹這個(gè)樣機(jī)平 臺(tái)的特性。 第四章:詳細(xì)介紹了本人對(duì)樣機(jī)平臺(tái)進(jìn)行的功能擴(kuò)展a d 、d a 轉(zhuǎn)換板的設(shè) 計(jì)。 第五章:介紹在復(fù)旦大學(xué)c a t 實(shí)驗(yàn)室開(kāi)發(fā)的快速樣機(jī)平臺(tái)上開(kāi)發(fā)的一個(gè)應(yīng)用實(shí) 例汽車(chē)運(yùn)行信息記錄儀。其中,5 1 節(jié)對(duì)汽車(chē)運(yùn)行信息記錄儀做了 簡(jiǎn)要介紹;5 2 節(jié)介紹了汽車(chē)運(yùn)行信息記錄儀的具體實(shí)現(xiàn);5 3 節(jié)介紹了 系統(tǒng)模擬運(yùn)行的情況。 第六章:對(duì)本文進(jìn)行總結(jié),同時(shí)對(duì)復(fù)旦大學(xué)c a t 實(shí)驗(yàn)室在快速樣機(jī)生成技術(shù)研 究方面的今后工作做一下展望。 第二章基于n i o s 的s o p c 設(shè)計(jì) 第:章基下n i o s 的s o p c 設(shè)計(jì) 2 1s o c 概述 隨著大規(guī)模集成電路設(shè)計(jì)技術(shù)的進(jìn)步和制造工藝水平的提高,單個(gè)芯片上的 邏輯門(mén)數(shù)的增加,嵌入式系統(tǒng)設(shè)計(jì)變得日益復(fù)雜。與此同時(shí),上市時(shí)間的壓力也 越來(lái)越大,傳統(tǒng)的嵌入式系統(tǒng)設(shè)計(jì)方法已不能適應(yīng)當(dāng)前嵌入式系統(tǒng)設(shè)計(jì)的需要。 單個(gè)芯片卜- 的邏輯門(mén)數(shù)的增加在使設(shè)計(jì)任務(wù)復(fù)雜的同時(shí),也為設(shè)計(jì)人員的開(kāi)發(fā)設(shè) 計(jì)升辟了新的天地可以把整個(gè)系統(tǒng)集成到一個(gè)芯片上,這就是所謂的s o c 技術(shù),即片上系統(tǒng)( s y s t e mo nc h i p ) 。使用s o c 技術(shù)可以快速地進(jìn)行嵌入式系統(tǒng) 設(shè)計(jì),從這點(diǎn)上來(lái)講,s o c 技術(shù)屬于快速樣機(jī)生成技術(shù)。 雖然s o c 一詞多年前已經(jīng)出現(xiàn),但到底什么是s o c n 有不同的說(shuō)法。在經(jīng)過(guò) 了多年的爭(zhēng)論之后,專(zhuān)家們就s o c 的定義達(dá)成了一致意見(jiàn)。這個(gè)定義雖然不是非 常嚴(yán)格,但明確地表明了s o c 的特征p i : 1 采用復(fù)雜系統(tǒng)功能的v l s i : 2 采用超深亞微米工藝技術(shù); 3 使用個(gè)以上嵌入式c p u 數(shù)字信息處理器( d s p ) : 4 外部可以對(duì)芯片進(jìn)行編程; 5 主要采用第三方i p 進(jìn)行設(shè)計(jì)。 從上述s o c 的特征來(lái)看,s o c 中包含了微處理器微控制器、存儲(chǔ)器以及其他 專(zhuān)用功能邏輯,但并不是包含了微處理器、存儲(chǔ)器以及其他專(zhuān)用功能邏輯的芯片 就是s o c 。s o c 技術(shù)被廣泛認(rèn)同的根本原因,并不在于s o c 可以集成多少個(gè)晶體 管,而在于s o c 可以用較短時(shí)問(wèn)被設(shè)計(jì)出來(lái)。這是s o c 的主要價(jià)值所在縮短 產(chǎn)品上市周期。因此,s o c 更為合理的定義為:s o c 是在一個(gè)芯片上由廣泛使用 預(yù)定制模塊i p 而得以快速丌發(fā)的集成電路。從設(shè)計(jì)上來(lái)說(shuō)s o c 就是一個(gè)通過(guò)設(shè) 計(jì)復(fù)用達(dá)到高生產(chǎn)率的硬軟件協(xié)同設(shè)計(jì)過(guò)程。從方法學(xué)的角度看,s o c 是一套 極大規(guī)模集成電路的設(shè)計(jì)方法學(xué),包括i p 核可復(fù)用設(shè)計(jì)n 試方法及接口規(guī)范、 系統(tǒng)芯片總線式集成設(shè)計(jì)方法學(xué)、系統(tǒng)芯片驗(yàn)證和測(cè)試方法學(xué)。 為了快速設(shè)計(jì)生產(chǎn)出s o c 產(chǎn)品,設(shè)計(jì)人員必須利用預(yù)先定義并驗(yàn)證好的i p 核。 i p 核是s o c 設(shè)汁的關(guān)鍵技術(shù)之一。雖然i p 核詞在眾多場(chǎng)合被使用,但它并沒(méi) 有一個(gè)統(tǒng)的定義。從概念上可以這樣理解它:i p 核是指將一些在數(shù)字電路中常 用但比較復(fù)雜的功能塊,如f i r ( f i n i t ei m p u s l e r e s p o n s e ) 濾波器,s d r a m 控制 器,p c i 接口等等設(shè)計(jì)成可修改參數(shù)的模塊,讓其他用戶可以直接調(diào)用這些模塊, 這樣就大大減輕了工程師的負(fù)擔(dān),避免重復(fù)勞動(dòng)。l p 核設(shè)計(jì)一般可以有三個(gè)來(lái) 源,一是e d a u 。商提供,= 二是用戶自己定義, 是第三方提供。 l p 核一般可以分為三類(lèi)【4j : 第二章基于n i o s 的s o p c 設(shè)計(jì) 1 軟核cs o f t c o r e ) 軟核用硬件描述語(yǔ)言寫(xiě)成,可以是對(duì)設(shè)計(jì)的算法紱描述,或功能級(jí)描述,也 可以是僅僅用于功能仿真的行為模擬。 2 固核( f i r m c o r e ) 固核在軟核基礎(chǔ)上開(kāi)發(fā),是一種可綜合的、并帶時(shí)序信息及佃局布線規(guī)劃的 設(shè)汁,用硬俐:描述語(yǔ)言寫(xiě)成。 3 硬核lh a r d c o r e ) 指和特定工藝相聯(lián)系的物理版圖,設(shè)計(jì)的正確性已經(jīng)投片驗(yàn)證,可以在新設(shè) 計(jì)中作為特定的功能模塊直接調(diào)用。 2 2 基于n i o s 的s o p c 設(shè)計(jì) 2 2 1 n i o s 軟核 2 2 1 1 n i o s 軟核概述 a l t e r a 是世界知名的可編程邏輯器件公司。過(guò)去,a l t e r a 作為可編程邏輯器 件供應(yīng)商,他提供p l d 器件。如今,a l t e r a 同時(shí)又是系統(tǒng)方案的供應(yīng)商。他現(xiàn) 在為客戶提供的服務(wù)是,如何把一個(gè)系統(tǒng)所需要的嵌入式功能塊,也就是i p 核, 放到可編程邏輯器件j :組成系統(tǒng),這就是s o p c ( s y s t e mo np r o g r a m m a b l ec h i p ) 技術(shù)。 在進(jìn)行s o p c 發(fā)計(jì)時(shí),最重要的一個(gè)i p 核是一個(gè)c p u 的軟核,這就是a l t e r a 公司自行研制的n i o sc p u 軟核【5 1 。n i o sc p u 軟核是一種采用流水線技術(shù)、單 指令流的r i s c 處理器,如圖2 1 所示,其大部分指令可以在個(gè)時(shí)鐘周期內(nèi)完 成。n i o s 軟核處理器家族包括3 2 位和1 6 位兩種體系結(jié)構(gòu)的版本,見(jiàn)表2 1 。這 旱主要介紹3 2 位的n i o sc p u ,并規(guī)定字節(jié)寬度為8 位,半字寬度為1 6 位,字 寬為3 2 位。 表2l n i o s c p u 規(guī)格3 2 位n 1 0 sc p u1 6 位n i o s c p u j 數(shù)據(jù)總線寬度( 位) 3 21 6 a l u 寬度( 位) 3 21 6 內(nèi)部寄存器寬度( 位) 3 21 6 地址總線寬度( 位)3 21 6 指令寬度( 位) 1 61 6 n i o sc p u 采用1 6 位指令系統(tǒng),其指令集有以下特點(diǎn): 捌有較大的窗口化的寄存器文件 n i o sc p u 包含5 1 2 個(gè)內(nèi)部通用寄存器,編譯器使用這些寄存器來(lái)加速子程 序調(diào)用和本地變量的訪問(wèn)。 第二章基于n i o s 的s o p c 設(shè)計(jì) 簡(jiǎn)幣完整的指令集 3 2 位和1 6 位的n i o sc p u 都使用1 6 位寬的指令,減小r 代碼文件的大小和 指令存儲(chǔ)器的帶寬。 強(qiáng)大的尋址模式 n i o s 指令集包含加載( l o a d ) 和存儲(chǔ)( s t o r e ) 指令,編譯器可用來(lái)加速對(duì) 結(jié)構(gòu)和本地變量( 棧) 的訪問(wèn)。 可擴(kuò)展性 用戶可以真接將自己的邏輯堆元( 作為用戶定制指令) 加入n i o s 算術(shù)邏輯 單元( a l u ) 中。在軟件開(kāi)發(fā)包( s d k ) 中,系統(tǒng)會(huì)相應(yīng)生成訪問(wèn)該定制指令的 宏( 用c 語(yǔ)言或匯編語(yǔ)言編寫(xiě)) 。 圖2 1 一n 1 0 sc p u 框架 2 2 1 2 內(nèi)部寄存器 n 1 0 sc p u 中的內(nèi)部寄存器包括:一個(gè)通用寄存器文件,多個(gè)內(nèi)部控制寄存 器,一個(gè)程序計(jì)數(shù)器以及一個(gè)用于前綴指令的k 寄存器。 1 通用寄存器 在3 2 位n i o sc p u 中的通用寄存器是3 2 位寬的。寄存器文件的大小可以配 置為1 2 8 個(gè)、2 5 6 個(gè)或者5 1 2 個(gè)寄存器。軟件通過(guò)滑動(dòng)窗口( 3 2 個(gè)寄存器寬度) 來(lái)訪問(wèn)內(nèi)部寄存器,每次窗口的滑動(dòng)步長(zhǎng)為1 6 個(gè)寄存器?;瑒?dòng)窗口能夠遍歷整 個(gè)寄存器文件并目可對(duì)其子集進(jìn)行訪問(wèn)。 寄存器窗口被分為4 個(gè)相連的部分,如表2 2 所示。最低8 個(gè)寄存器( r o 第二章基于n i o s 的s o p c 設(shè)計(jì) - - r 7 ) 是全局寄存器,也被稱(chēng)作9 0 - - 9 7 。全局寄存器并不跟隨窗口位置的 移動(dòng)而變化,而是一直作9 0 - - 9 7 被訪問(wèn)。寄存器文件中上麗的2 4 個(gè)寄存 器( r 8 一r 3 1 ) 可以通過(guò)當(dāng)前的窗口訪問(wèn)。 表2 2 一寄存器組 輸入寄存器 r 2 4 一r 31 或i 0 一i 7 局部寄存器 r 1 6 一r 2 3 或l 0 一l 7 輸出寄存器 r 8 一r i 5 或0 0 - - 0 7 全局寄存器 r o 一r 7 或9 0 - - 9 7 2 k 寄存器 k 寄存器是一個(gè)l l 位的寄存器,除p f x 及p f x i o 指令外,其他指令會(huì)把它 置為0 。p f x 及p f x i o 指令可以將一個(gè)1 1 位的立即數(shù)置入k 寄存器,然后緊接 在p f x ( 或p f x i o ) 后的指令爿可以使用k 寄存器中的非零值。 p f x 和p f x i o 使中斷失效個(gè)周期,因此p f x ( 或p f x i o ) 和其后的指令 構(gòu)成原子操作。它們也會(huì)被s k p 類(lèi)型的條件指令跳過(guò)。 k 寄存器不能通過(guò)軟件直接訪問(wèn),只能白j 接訪問(wèn)。例如,m o v i 指令把k 寄 存器的所有1 1 位的內(nèi)容傳送到目標(biāo)寄存器的位1 5 5 中去。只有當(dāng)前面指令是帶 有非零參數(shù)的p f x 指令時(shí),k 寄存器的讀操作才能產(chǎn)生非零的結(jié)果。 3 r 0 ( 9 0 ) 寄存器 該寄存器被顯式地用作以下指令的參數(shù)或者結(jié)果:s t s l 6 s 、s t s 8 s 、s t 8 s 、 s t l 6 s 、s t 8 d 、s t l 6 d 、f i l l 8 、f i l l l 6 、m s t e p 、和u s r l 一u s r 4 。 4 程序計(jì)數(shù)器 程序計(jì)數(shù)器( p c ) 寄存器包含當(dāng)前正在執(zhí)行的指令的字節(jié)地址。因?yàn)樗兄?令必須是半字對(duì)齊的,所以p c 的最低有效位一直為0 。 除非跳轉(zhuǎn),否則每條指令執(zhí)行后p c 的值加2 ( p c - - p c + 2 ) 。以下指令可 以直接改變p c 的值:b r 、b s r 、c a l l 、j m p 、l r e t 、r e t 和t r e t 。 5 控制寄存器 n i o s 中含有5 個(gè)獨(dú)立尋址的控制寄存器,r d c t l 和w r c t l 指令是唯一可 以讀寫(xiě)這些控制寄存器的指令( 這意味著c t l 0 與9 0 是無(wú)關(guān)的) 。 c t l 0 為狀態(tài)寄存器。該寄存器內(nèi)部各字段的作用如下 d c :數(shù)據(jù)緩存使能位。 i c :指令緩存使能位。 i e :中斷使能位。 第二章基于n i o s 的s o p c 設(shè)計(jì) i p r i :中斷優(yōu)先級(jí)。 c w p :當(dāng)前寄存器窗口指針。 n 、v 、z 、c :狀態(tài)標(biāo)志位。備標(biāo)志位含義如衷2 3 所示。 表2 3 一狀態(tài)標(biāo)志位意義 標(biāo)志 位結(jié)果 n3 結(jié)果的符號(hào),即最高有效位 v2 算術(shù)溢出,即結(jié)果的符號(hào)位與按照 無(wú)限精度計(jì)算時(shí)的符號(hào)不一致 z 1 結(jié)果為零 co 加法的進(jìn)位,減法的借位 i s n 盯u s 寄存器( c t l l ) i s 璣虹u s 是s t a 、u s 寄存器的拷貝。當(dāng)處理異常時(shí),s t a t u s 寄存器的內(nèi)容 被拷貝到i s t a t u t s 寄存器內(nèi)。這種機(jī)制使得在中斷返回時(shí)能夠恢復(fù)s t a t u s 寄存器中的內(nèi)容。 w v a l i d 寄存器( c t l 2 ) 15141 31 21 11008 7 654021 o w v a l i d 寄存器包含兩個(gè)值:h il i m i t 和l o wl i m i t 。當(dāng)s a v e 指令使 c w p 由l o wl i m i t 減小到l o wl i m i t l 時(shí),寄存器窗口產(chǎn)生下溢異常( 異 常# 1 ) 。當(dāng)r e s t o r e 指令使c w p 由h i _ l i m i t 增大到h l l i m i t + 1 時(shí),寄存 器窗口產(chǎn)生上溢異常( 異常# 2 ) 。w v a l i d 是可配置的,既可以只讀【乜可以進(jìn) 行讀寫(xiě)。當(dāng)c p u 被復(fù)位時(shí),l o l i m i t 被置為l h i l i m i t 被置為最大的有效 窗口指針( ( 寄存器文件大c i v i l 6 ) - - 2 ) 。 i c a c h e 寄存器( c t l 5 ) i c a c h e 是指令緩存的行失效( 1 i n e i n v a l i d a t e ) 寄存器。向i c a c h e 寫(xiě)入一 個(gè)地址后,會(huì)使得包含該地址的緩存行失效。i c a c h e 是一個(gè)只寫(xiě)寄存器。要注 意在寫(xiě)i c a c h e 之前1 定要禁止指令緩存( s t a t u s 寄存器的i c 位要置0 ) 。 c p ui d 寄存器( c t l 6 ) c p ui d 包含個(gè)1 6 位的常量,用于標(biāo)識(shí)n i o s 處理器的版本。 d c a c h e 寄存器( c t l 7 ) d c a c h e 是數(shù)據(jù)緩存的行失效( 1 i n e i n v a l i d a t e ) 寄存器。向d c a c h e 寫(xiě)入 一個(gè)地址后,會(huì)使得包含該地址的緩存行失效。d c a c h e 是一個(gè)只寫(xiě)控制寄存 器。要注意在寫(xiě)d c a c h e 之前一定要禁止數(shù)據(jù)緩存( s t a t u s 寄存器的d c 位 要冒0 ) 。 c l r _ i e 寄存器( c t l 8 ) 對(duì)c l ri e 寄存器進(jìn)行w r c t l 操作都會(huì)將s t a t u s 寄存器的i e 位置0 第二章基于n i o s 的s o p c 設(shè)計(jì) ( w r c t l 的值會(huì)被忽略) 。 s e ti e 寄存器( c t l 9 ) 對(duì)s e ti e 寄存器進(jìn)行w r c t l 操作都會(huì)將s t a t u s 寄存器的i e 位置l ( w r c t l 的值會(huì)被忽略) 。 2 2 1 3 流水線 n i o sc p u 是采用了流水線技術(shù)的r i s c 體系結(jié)構(gòu)。除延遲槽和當(dāng)c w p 被 w r c t l 改變外,流水線的實(shí)現(xiàn)對(duì)于軟件來(lái)既是透明的。 甑接c w p 操作 每一條改變s t a t u s 寄存器( c t l 0 ) 的w r c t l 指令必須緊跟一條n o p 指 令。 分支延遲槽 分支延遲槽被定義為緊跟在b r 、b s r 、c a l l 和j m p 指令后的指令。分支 延遲槽在分支指令之后、分支目標(biāo)指令之前被執(zhí)行。 2 2 1 4 存儲(chǔ)器組織 n i o s 處理器的數(shù)據(jù)訪問(wèn)采用小端對(duì)齊方式( 1 i t t l e e n d i a n ) 。數(shù)據(jù)存儲(chǔ)器的地 址空間必須是連續(xù)的且字對(duì)齊。如果存儲(chǔ)器的數(shù)據(jù)寬度小于字寬,則數(shù)據(jù)總線可 采用動(dòng)態(tài)地址對(duì)齊方式( d y n a m i c b u ss i z i n g ) 來(lái)模擬n i o sc p u 的全寬數(shù)據(jù)。如 果外沒(méi)的寄存器寬度小于字寬,則在高位填0 ,這樣c p u 看來(lái)仍是一個(gè)字寬的 數(shù)據(jù)。 讀存儲(chǔ)器( 外沒(méi)) n i o sc p u 只能進(jìn)字邊界對(duì)齊的存儲(chǔ)器訪問(wèn)。3 2 位的讀操作只能從4 的倍數(shù) 的字節(jié)地址開(kāi)始讀取1 個(gè)全字。對(duì)存儲(chǔ)器進(jìn)行讀操作指令總是認(rèn)為地址的低2 位為0 。為了讀取字節(jié)和半字,n o s 提供從字中提取特定字節(jié)和半字的指令。 從存儲(chǔ)器中讀取數(shù)據(jù)的最簡(jiǎn)單的指令是l d 指令。這個(gè)指令的典型例子是l d 9 3 , 0 4 。該指令把0 4 作為間接尋址寄存器,把它尋址的數(shù)據(jù)裝入9 3 。地 址的最低2 位被當(dāng)作o 。 然而,編寫(xiě)軟件時(shí)經(jīng)常遇到讀取的數(shù)據(jù)小于3 2 位的情況。n i o sc p u 提供指 令來(lái)從字中提取字節(jié)和半字。e x t 8 d 指令用來(lái)提取1 個(gè)字節(jié),e x t l 6 d 指令用 來(lái)提取半字。e x t 8 d 指令的典型例子是e x t 8 d 9 3 ,0 4 。e x t 8 d 指令使用0 4 的最低2 位從9 3 中提取1 個(gè)字節(jié),然后把提取結(jié)果存入9 3 。 寫(xiě)存儲(chǔ)器( 外設(shè)) n i o sc p u 可以對(duì)存儲(chǔ)器進(jìn)行寬度為字節(jié)、半字或者字的對(duì)齊寫(xiě)操作。一個(gè) 字可以用一條指令寫(xiě)到任意一個(gè)是4 的倍數(shù)的地址內(nèi)。個(gè)半字可以用兩條指令 寫(xiě)到任意一個(gè)是2 的倍數(shù)的地址內(nèi)。一個(gè)字節(jié)可以用兩條指令寫(xiě)到任意地址內(nèi)。 第二章基于n i o s 的s o p c 設(shè)計(jì) 將寄存器內(nèi)容寫(xiě)入存儲(chǔ)器時(shí),最低字節(jié)寫(xiě)入的地址為4 的倍數(shù):第二低位的 字節(jié)寫(xiě)入的地址是4 的倍數(shù)加1 :其他字節(jié)依此類(lèi)推。而低位半字的寫(xiě)入地址是 4 的倍數(shù):高位半字的寫(xiě)入地址則為4 的倍數(shù)加2 。 s t 指令可以把寄存器內(nèi)容寫(xiě)到字對(duì)齊的地址內(nèi):s t 8 d 和s t l 6 d 可以把寄存 器的字節(jié)和半字按照上面描述的方式寫(xiě)到相應(yīng)地址內(nèi)。 通常軟件需要將特定的字節(jié)或者半字寫(xiě)入任意地址。該字節(jié)或半字在寄存器 內(nèi)的位置可能沒(méi)有按照上面的要求與要寫(xiě)入的地址對(duì)應(yīng),為此n i o s 提供了 f i l l 8 和f i l l l 6 指令。f i l l 8 指令和f i l l l 6 指令可以分別復(fù)制寄存器的最低字 節(jié)和半字并占滿整個(gè)r 0 寄存器。 緩存 n i o sc p u 可以通過(guò)配置決定是否含有指令緩存和數(shù)據(jù)緩存。數(shù)據(jù)緩存影響 n i o s 的存儲(chǔ)器訪問(wèn)。數(shù)據(jù)緩存存儲(chǔ)最近被訪問(wèn)過(guò)的數(shù)據(jù)字,只要可能就使用緩 存中的數(shù)據(jù)值,從而減少了對(duì)存儲(chǔ)器的訪問(wèn)。n i o sc p u 使用r 最簡(jiǎn)單的直接映 象方式,即地址的低位被用來(lái)選擇緩存的行。在直接映象方式中,如果數(shù)據(jù)地址 的索引( i n d e x ) 部分相同,這些數(shù)據(jù)字將被映射到緩存中相同的行中。為了檢 測(cè)在緩存同一行中到底存儲(chǔ)的是哪個(gè)字,字地址的最高位作為標(biāo)識(shí)( t a g ) 。為了 檢測(cè)緩存中的數(shù)據(jù)是否有效,在緩存中每行還對(duì)應(yīng)一個(gè)有效位。 當(dāng)執(zhí)行裝載指令時(shí)( l d 、l d p 和l d s ) ,n i o sc p u 比較裝載地址的高位和 選中的緩存行的標(biāo)識(shí)。如果高位與標(biāo)識(shí)匹配并且該行有效,則處理器將使用緩存 中的數(shù)據(jù)而不再讀取存儲(chǔ)器,因此加速了處理性能。當(dāng)處理器使用緩存數(shù)據(jù)時(shí), 稱(chēng)作“命中”( h i t ) 。當(dāng)緩存不包含所需的數(shù)據(jù)時(shí),稱(chēng)作“失效”( m i s s ) 。 n i o sc p u 的寫(xiě)策略采用了最簡(jiǎn)單的寫(xiě)直達(dá)法( w r i t e t h r o u g h ) 。即數(shù)據(jù)不但 寫(xiě)入緩存,同時(shí)也寫(xiě)入存儲(chǔ)器。向緩存寫(xiě)數(shù)據(jù)時(shí),緩存行的地址由寫(xiě)入地址的索 引部分決定,這樣隨后對(duì)于相同地址的讀操作就會(huì)命中。此外,地址的高位作為 標(biāo)識(shí)被寫(xiě)入,并置有效位。 當(dāng)緩存失效時(shí),處理器執(zhí)行一次存儲(chǔ)器讀傳輸,找到所需的數(shù)據(jù)字,把這個(gè) 字寫(xiě)到目的寄存器中,同時(shí)寫(xiě)入緩存。這樣,下次從相同地址讀數(shù)據(jù)時(shí)就會(huì)命中。 2 2 l5 尋址方式 5 1 6 位立即數(shù)尋址 很多算術(shù)和邏輯指令采用5 位的立即數(shù)作為操作數(shù)。例如a d d i 指令帶有 兩個(gè)操作數(shù):一個(gè)寄存器操作數(shù)和一個(gè)5 位的立即數(shù)操作數(shù)。5 位的立即數(shù)代表 了范圍為o 3 1 的常數(shù)。為了指定6 1 6 位( 數(shù)字3 2 6 5 5 3 5 ) 的常量,需要用 p f x 指令來(lái)設(shè)置1 1 位的k 寄存器。它的值與5 位立即數(shù)的值連接起來(lái)。p f x 指 令必須直接放在它所改變的指令之前。 第二章基于n i o s 的s o p c 設(shè)計(jì) 為了支持把1 6 位的立即數(shù)常量拆分為l l 位( 裝入p f x 寄存器) 和5 位立即 數(shù),匯編語(yǔ)言提供y h i o f l j 1 0 0 操作。h i ( x ) 把常量x 的高1 1 位( 5 1 5 位) 提取出來(lái),l o w ( x ) 把常量x 的低5 位( o 4 位) 提取出來(lái)。 全寬( f u l lw i d t h ) 寄存器問(wèn)接尋址 l d 指令和s t 指令可以從存儲(chǔ)器中裝載一個(gè)字到寄存器中,或者從寄存器中 存儲(chǔ)一個(gè)字到存儲(chǔ)器中,存儲(chǔ)器地址由另一個(gè)寄存器給出。地址首先要向f 與字 地址對(duì)齊。k 寄存器被看作帶符號(hào)的地址偏移量,以字為單位。偏移范圍是( 一 4 0 9 6 4 0 9 2 ) 字節(jié)。有效地址是:k 4 + ( 間接尋址寄存器的值& 0 x f f f f f f f c ) 。 如果n i o s 處理器包括數(shù)據(jù)緩存,讀取外設(shè)時(shí)在l d 指令前需要p f x i o 指令。 部分寬( p a t i a lw i d t h ) 寄存器間接尋址 3 2 位的指令不能讀取一個(gè)字的部分內(nèi)容。為了讀取個(gè)字的部分內(nèi)容,需要 把全寬寄存器問(wèn)接讀指令與提取指令( e x t s d 、e x t g s 、e x t l 6 d 或者e x t l 6 s ) 結(jié)合在一起。 有些指令可以寫(xiě)一個(gè)字的部分內(nèi)容。這些指令分為靜態(tài)和動(dòng)態(tài)兩種類(lèi)型。在 動(dòng)態(tài)情況下,源寄存器的內(nèi)部位置與存儲(chǔ)器中的字的內(nèi)部位置由地址寄存器的低 位來(lái)決定。在靜態(tài)情況下,內(nèi)部位置由指令的1 或2 位立即數(shù)來(lái)決定。和全寬寄 存器問(wèn)接尋址一樣,k 寄存器被看作帶符號(hào)的偏移量。 部分寬寄存器閫接尋址的指令都使用r 0 作為源操作數(shù)。這些指令可以很容 易地與f i l l 8 和f i l l l 6 指令一起使用。 帶有偏移的全寬寄存器間接尋址 l d p 、l d s 、s t p 和s t s 指令可以從存儲(chǔ)器中裝載一個(gè)字到寄存器中,或者 從寄存器中存儲(chǔ)個(gè)字到存儲(chǔ)器中,存儲(chǔ)器的地址由尋址寄存器指出的地址加偏 移量形成。 不像l d 和s t 指令可以使用任意一個(gè)寄存器來(lái)指明存儲(chǔ)器地址,這些指令使 用各自專(zhuān)有的寄存器束尋址。l d p 和s t p 指令僅僅使用l 0 、l 1 、l 2 和l 3 寄存器來(lái)尋址。l d s 和s t s 指令僅僅使用堆棧指針,r l j s p 寄存器( 相當(dāng)于0 6 寄存器) ,作為尋址寄存器。這些指令每一個(gè)都帶有1 個(gè)有符號(hào)的立即索引值, 這個(gè)索引值指出了一個(gè)字大小的偏移量。 帶有偏移的部分寬寄存器間接尋址 使用s t s 8 s 和s t s l 6 s 指令可以通過(guò)立即數(shù)來(lái)指定相對(duì)于堆棧指針的一個(gè)字 節(jié)或者半字的偏移量,寫(xiě)入源寄存器r o 中相應(yīng)的部分字。這些指令只能使用堆 棧指針,目p s p ( 相當(dāng)j 二0 6 寄存器) 作為地址寄存器,并目只能使用r 0 寄存 器( 相當(dāng)于9 0 寄存器,但在匯編指令罩必須稱(chēng)作r 0 寄存器) 作為數(shù)據(jù)寄存器。 這些指令可以很容易地與f i l l 8 和f i l l l 6 指令一起使用。 第二章基于n i o s 的s o p c 設(shè)計(jì) 2 2 1 6 程序流程控制 相對(duì)分支( r e l a t i v e b r a n c h ) 指令( b r 和b s r ) n i o s 指令集中有兩條相對(duì)分支指令:b r 和b s r 。分支的目標(biāo)地址由當(dāng)日口程 序計(jì)數(shù)器( 也就是b r 指令本身的地址) 和i m m l l 指令計(jì)算得出。b r 指令和 b s r 指令都是無(wú)條件轉(zhuǎn)移指令。條件轉(zhuǎn)移可以在b r 或b s r 指令前設(shè)置s k p 類(lèi) 型的指令來(lái)實(shí)現(xiàn)。 絕列跳轉(zhuǎn)( a b s o l u t e - j u m p ) 指令( j m p 和c a l l ) n i o s 指令集中有兩條絕對(duì)( 計(jì)算的) 跳轉(zhuǎn)指令:j m p 和c a l l 。跳轉(zhuǎn)的目 標(biāo)地址由一個(gè)通用寄存器給出。寄存器的內(nèi)容被左移l 位然后送到p c 中

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論