【正文】
Nios II 系統(tǒng)的 MP3 播放器的設(shè)計(jì) 摘要 近年來(lái), 數(shù)碼產(chǎn)品更新?lián)Q代 的速度 很快,從當(dāng)初的分立元件到現(xiàn)在的集成芯片, 產(chǎn)品 體積越來(lái)越小,而所展現(xiàn)出來(lái)的功能則日益強(qiáng)大。它們 極大的豐富了 我們的日常生活。 本文提 出一種基于 Nios II 處理器的 MP3 播放器 的具體實(shí)現(xiàn)過(guò)程 , 系統(tǒng) 基于 Altera 公司的 DE2 開(kāi)發(fā)平臺(tái) 進(jìn)行設(shè)計(jì) , 并 利用板上的 SD 卡 作為存儲(chǔ)設(shè)備,在 Nios II 處理器上實(shí)現(xiàn) MP3 的播放 、 TXT 文件的讀取以及 LCD 液晶顯示等功能。 再結(jié)合 Quartus II中集成的 EDA 工具,將其下載到 FPGA 芯片中,獲得恰好滿(mǎn)足需求的定制 系統(tǒng)。 整體設(shè)計(jì)對(duì) SOPC 系統(tǒng) 軟硬件協(xié)同 的相關(guān)技術(shù)進(jìn)行了初步研究。 運(yùn)用 SOPC 設(shè)計(jì)理念來(lái)設(shè)計(jì)數(shù)碼產(chǎn)品,能在較短的時(shí)間內(nèi)完成開(kāi)發(fā)過(guò)程,還能滿(mǎn)足技術(shù)不斷更新?lián)Q代的需要。 關(guān)鍵詞 SOPC(片上可編程系統(tǒng)) ; Nios II; MP3; 軟硬件協(xié)同設(shè)計(jì) ; xx 大學(xué)學(xué)士學(xué)位論文 II Nios II System Based on the Design of MP3 Players Abstract In recent years, digital electronic products renew very fast. From the original discrete ponents to the current integrated chips, these products showing us with much powerful functions while decreasing their sizes. They provides us a great help for daily life. Sopc(System on a programmable Chip)is a flexible and efficient SOC solution proposed by Altera Corporation. It put modules that are necessary like processor,memory,input/output interface,LVDS and CDR together into a PLD device. As a result, the system can be cut、 expand、 upgraded at our will, hardware and software are programmable insystem at the same time. This paper presents a Nios II processorbased MP3 Players, the system is based on Altera39。s very important to apply the advanced NIOS softcore into electronic circuit design, which can help us to understand and master this kind of technology. Keywords SOPC( System on a Programmable Chip) 。 MP3 。 各式各樣的 數(shù)碼產(chǎn)品 , 它們 不 僅 體 積 小巧,而且功能強(qiáng)大, 這些產(chǎn)品在我們的生活中扮演著重要的角色,因?yàn)?它們 豐富并改善 著 我們的生活。由于目前各種技術(shù)更新很快,開(kāi)發(fā)商唯有跟上時(shí)代,不斷更新自己的產(chǎn)品,才能滿(mǎn)足消費(fèi)者更高的需求,在競(jìng)爭(zhēng)中求得生存。 可編程片上系統(tǒng) 當(dāng)今社會(huì)是數(shù)字化的社會(huì),是數(shù)字集成電路廣泛應(yīng)用的社會(huì)。它由早期的電子管、晶體管、小中規(guī)模集成電路、發(fā)展到超大規(guī)模集成電路 ( VLSIC,幾萬(wàn)門(mén)以上 ) 以及許多具有特定功能的專(zhuān)用 集成電路。系統(tǒng)設(shè)計(jì)師們更愿意自己設(shè)計(jì)專(zhuān)用集成電路 ( ASIC) 芯片,而且希望 ASIC 的設(shè)計(jì)周期盡可能短,最好是在實(shí)驗(yàn)室里就能設(shè)計(jì)出合適的 ASIC 芯片,并且立即投入實(shí)際應(yīng)用之中,因而出現(xiàn)了現(xiàn)場(chǎng)可編程邏輯器件 ( FPLD) ,其中應(yīng)用最廣泛的當(dāng)屬現(xiàn)場(chǎng)可編程門(mén)陣列 ( FPGA) 和復(fù)雜可編程邏輯器件 ( CPLD) 。 FPGA 硬件功能不是預(yù)先確定好的,而是支持您對(duì)產(chǎn)品特性和 功能進(jìn)行編程,以適應(yīng)新標(biāo)準(zhǔn),即使產(chǎn)品已經(jīng)在現(xiàn)場(chǎng)使用了,也可以針對(duì)某些應(yīng)用重新配置硬件。FPGA 是一類(lèi)高集成度的可編程邏輯器件,起源于美國(guó)的 Xilinx 公司,該公司于 1985 年推出了世界上第一塊 FPGA 芯片。從最初的1200 個(gè)可用門(mén), 90 年代時(shí)幾十萬(wàn)個(gè)可用門(mén),發(fā)展到目前數(shù)百萬(wàn)門(mén)至上千萬(wàn)門(mén)的單片 FPGA 芯片, Xilinx、 Altera 等世界頂級(jí)廠(chǎng)商已經(jīng)將 FPGA 器件的集成度提高到一個(gè)新的水平。根據(jù) IP 核描述的所在集成電路的設(shè)計(jì)層 xx 大學(xué)學(xué)士學(xué)位論文 2 次,或者說(shuō)根據(jù)核優(yōu)化的程度, IP 可分為硬 IP、軟 IP 和固核 IP。而軟 IP,是以行為級(jí)或 RTL 級(jí)的 Verilog 或 VHDL 代碼的形式存在,它要經(jīng)過(guò)邏輯綜合及版圖綜合才能最終實(shí)現(xiàn)在硅片上。 SOPC( System On a Programmable Chip) 是 Altera 公司于 2020 年提出的一種靈活高效的 SOC 解決方案, SOPC 利用可編程邏輯技術(shù)把整個(gè)電子系統(tǒng)集成在一個(gè)單片上,是一種特殊的嵌入式系統(tǒng) :首先它是片上系統(tǒng)( SOC),即由單個(gè)芯片完成整個(gè)系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設(shè)計(jì)方式,可裁減、可擴(kuò)充、可升級(jí),并具備軟硬件在系統(tǒng)可編程的功能。在 SOPC 的設(shè)計(jì)中,設(shè)計(jì)工藝的發(fā)展使得越來(lái)越多的功能集成到一個(gè)芯片成為可能。第一種方法稱(chēng)為基于核的設(shè)計(jì) ( Corebased design) ,它將系統(tǒng)的功能劃分為不同的核,采用 IP ( Intellectual Property) 核以完成特定的設(shè)計(jì)功能。專(zhuān)用的 IP 核通常有較好的性能,此外對(duì)系統(tǒng)的功耗能有很好的控制:而采用軟件的方法使得系統(tǒng)芯片有更大的靈活性,因?yàn)槟壳按嬖诙喾N不兼容的通信和處理協(xié)議,使用軟件實(shí)現(xiàn)便于二次開(kāi)發(fā)。在系統(tǒng)設(shè)計(jì)的初期考慮軟硬件劃分,根據(jù)特定的標(biāo)準(zhǔn),將一部分系統(tǒng)功能采用 IP 核實(shí)現(xiàn),而另一些功能采用軟件實(shí)現(xiàn)。軟硬件協(xié)同設(shè)計(jì)的結(jié)果是:一個(gè)或多個(gè)系統(tǒng)任務(wù)或系統(tǒng)模塊是采用軟件實(shí)現(xiàn)。 嵌入式系統(tǒng) 嵌入式 系統(tǒng)本身是一個(gè)相對(duì)模糊的定義。 根據(jù) IEEE(國(guó)際電機(jī)工程師協(xié)會(huì))的定義,嵌入式系統(tǒng)是 “控制、監(jiān)視或者輔助裝置、機(jī)器和設(shè)備運(yùn)行的裝置 ”(原文為 devices used to control, monitor, or assist the operation of equipment, machinery or plants)。 不過(guò)上述定義并不能充分體現(xiàn)出嵌入式系統(tǒng)的精髓,目前國(guó)內(nèi)一個(gè)普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng) xx 大學(xué)學(xué)士學(xué)位論文 3 應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。因此可以這樣理解上述三個(gè)面向的含義 ,即嵌入式系統(tǒng)是與應(yīng)用緊密結(jié)合的,它具有很強(qiáng)的專(zhuān)用性,必須結(jié)合實(shí)際系統(tǒng)需求進(jìn)行合理的裁減利用。所以,介入嵌入式系統(tǒng)行業(yè),必須有一個(gè)正確的定位。 3. 嵌入式系統(tǒng)必須根據(jù)應(yīng)用需求對(duì)軟硬件進(jìn)行裁剪,滿(mǎn)足應(yīng)用系統(tǒng)的功能、可靠性、成本、體積等要求。目前的嵌入式系統(tǒng)的核心往往是一個(gè)只有幾 K 到幾十 K 微內(nèi)核,需要根據(jù)實(shí)際的使用進(jìn)行功能擴(kuò)展或者裁減,但是由于微內(nèi)核的存在,使得這種擴(kuò)展能夠非常順利的進(jìn)行。 嵌入式片上系統(tǒng) ( System On Chip) 是目前嵌入式應(yīng)用領(lǐng)域的熱門(mén)話(huà)題之一。而且 SOC 具有極高的綜合性,在一個(gè)硅片內(nèi)部運(yùn)用 VHDL等硬件描述語(yǔ)言,實(shí)現(xiàn)一個(gè)復(fù)雜的系統(tǒng)。由于絕大部分系統(tǒng)構(gòu)件都是在系統(tǒng)內(nèi)部,整個(gè)系統(tǒng)就特別簡(jiǎn)潔,不僅減小了系統(tǒng)的體積和功耗,而且提高了系統(tǒng)的可靠性,提高了設(shè)計(jì)生產(chǎn)效率。 是當(dāng)今較流行的一種數(shù)字音頻編碼和有損壓縮格式,它設(shè)計(jì)用來(lái)大幅度地降低音頻數(shù)據(jù)量, 而對(duì)于大多數(shù)用戶(hù)來(lái)說(shuō)重放的音質(zhì)與最初的不壓縮音頻相比沒(méi)有明顯的下降。 xx 大學(xué)學(xué)士學(xué)位論文 4 簡(jiǎn)單的說(shuō), MP3 就是一種音頻壓縮技術(shù),由于這種壓縮方式的全稱(chēng)叫MPEG Audio Layer3,所以人們把它簡(jiǎn)稱(chēng)為 MP3。而且還非常好的保 持了原來(lái)的音質(zhì)。每分鐘音樂(lè)的 MP3格式只有 1MB 左右大小,這樣每首歌的大小只有 3~ 4 兆字節(jié)。 MP3 是一個(gè)數(shù)據(jù)壓縮格式。 它丟棄掉脈沖編碼調(diào)制( PCM)音頻數(shù)據(jù)中對(duì)人類(lèi)聽(tīng)覺(jué)不重要的數(shù)據(jù)(類(lèi)似于 JPEG 是一個(gè)有損圖像壓縮),從而達(dá)到了小得多的文件大小。 國(guó)內(nèi)外文獻(xiàn)綜述 目前軟硬件協(xié)同設(shè)計(jì)領(lǐng)域的研究十分活躍, Berkeley, Princeton 等著名大學(xué)有專(zhuān)門(mén)的研究小組進(jìn)行相關(guān)研究,在電子設(shè)計(jì)領(lǐng)域權(quán)威的學(xué)術(shù)會(huì)議, DAC ( Design Automation Conference) 和 ICCAD 上每年都有相當(dāng)篇幅的論文涉及軟硬件協(xié)同設(shè)計(jì),每年 ACM 還召開(kāi)軟硬件協(xié)同設(shè)計(jì)的專(zhuān)門(mén)會(huì)議 CODES。嵌入式產(chǎn)品開(kāi)發(fā)中已經(jīng)有許多軟硬件協(xié)同設(shè)計(jì)技術(shù)的成功應(yīng)用實(shí)例。該環(huán)境支持軟硬件協(xié)同設(shè)計(jì)流程和嵌入式系統(tǒng)的快速模板制作,系統(tǒng)描述采用細(xì)粒度的程序設(shè)計(jì)語(yǔ)言 C,同時(shí)也支持硬件描述語(yǔ)言 Verilog 和 VHDL,這些描述可進(jìn)行仿真和性能分析,以支持系統(tǒng)綜合的決策。Ptolemy 系統(tǒng)的特色在于它是一個(gè)異構(gòu)的模擬環(huán)境,提供對(duì)于多種模型(數(shù)據(jù)流、離散事件、有限狀態(tài)機(jī)等)的描述和模擬手段,并可以在一個(gè)仿真應(yīng)用中采用不同的仿真模型。軟硬件協(xié)同仿真可看作異構(gòu)仿真的一種, Ptolemy己經(jīng)應(yīng)用于嵌入式系統(tǒng)的算法層和體系結(jié)構(gòu)層描述和驗(yàn)證。目前的發(fā)展趨勢(shì)是采用 SBE( Simulation Based Design) 的思想,用仿真技術(shù)支持劃分和協(xié)同調(diào)試、分析,以便加快設(shè)計(jì)進(jìn)程。 國(guó)內(nèi)的研究狀況 : 軟硬件協(xié)同設(shè)計(jì)作為系統(tǒng)級(jí)設(shè)計(jì)的支持技術(shù),理論上和技術(shù)上還在不斷地發(fā)展和完善中。國(guó)內(nèi)外都在研發(fā)支持 Sopc 技術(shù)的軟硬件協(xié)同設(shè)計(jì)平臺(tái)。北京大學(xué)計(jì)算機(jī)系楊芙清院士和程旭教授等人,已研發(fā)成功國(guó)內(nèi)第一個(gè)微處理器軟硬件協(xié)同設(shè)計(jì)平臺(tái);上海嵌入式系統(tǒng)研究所研發(fā)的基于 FPGA 實(shí)現(xiàn)處理器的 ECNUX 研發(fā)平臺(tái), 版本已完成,功能強(qiáng)大的 版本正在研發(fā)過(guò)程中。 論文研究?jī)?nèi)容 本文研究的主要內(nèi)容是基于 Nios II 的 MP3 播放器的設(shè)計(jì)與實(shí)現(xiàn)。設(shè)計(jì)中 具體研究了軟硬件的系 統(tǒng)描述、軟硬件劃分、軟硬件綜合等方面的技術(shù),并在此基礎(chǔ)上設(shè)計(jì)了一個(gè) MP3 播放器方案。 xx 大學(xué)學(xué)士學(xué)位論文 6 第 2章 SOPC 技術(shù) 及軟硬件協(xié)同方案 FPGA 器件基本原理 PLD( Programmable Logic Device)是可編程邏輯器件的總稱(chēng),早期多采用EEPROM 工藝,基于乘積項(xiàng)( Product Term)結(jié)構(gòu)。在上電的時(shí)候,由 EEPROM 內(nèi)自行啟動(dòng)的加載時(shí)序把數(shù)據(jù)流加入 FPGA 中,對(duì)其內(nèi)部邏輯進(jìn)行配置。 FPGA 的特點(diǎn)有: 1. 采用 FPGA 設(shè)計(jì) ASIC 電路,用戶(hù)不需要投片生產(chǎn),就能得到合 適 的芯片。 3. FPGA 內(nèi)部有豐富的觸發(fā)器 I/O 引腳。 采用高速 CHMOS 工藝,功耗低,可以與 CMOS, TTL 電平兼容。當(dāng)用戶(hù)通過(guò)原理圖或 HDL 語(yǔ)言描述一個(gè)邏輯電路以后, FPGA 開(kāi)發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有結(jié)果,并把結(jié)果事先寫(xiě)入 RAM,這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算相當(dāng)于輸入一個(gè)地址進(jìn)行查表,找出相應(yīng)地址,然后輸出即可。 Sopc 設(shè)計(jì)技術(shù) 現(xiàn)代集成電路制造工藝的改進(jìn),使得在一個(gè)芯片上集成幾十萬(wàn)甚至上百萬(wàn)個(gè)邏輯門(mén)成為可能。利用結(jié)構(gòu)化,層次化的設(shè)計(jì)方法,一個(gè)大型的數(shù)字電路設(shè)計(jì)首先根據(jù)設(shè)計(jì)的目標(biāo)和規(guī)范劃分為若干個(gè)較小的功能模塊,分別交由不同的設(shè)計(jì)工程師進(jìn)行設(shè)計(jì)。這稱(chēng)為自頂向下 xx 大學(xué)學(xué)士學(xué)位論文 7 ( TOPDOWN) 的設(shè)計(jì)方法 如圖 21 所示 。對(duì)要完成的任務(wù)進(jìn)行分解,先對(duì)最高層次中的問(wèn)題進(jìn)行定義、設(shè)計(jì)、編程和測(cè)試,而將其中未解決的問(wèn)題作為一個(gè)子任務(wù)放到下一層次中去解決。 按 照 自頂向下的方法設(shè)計(jì)時(shí) , 設(shè)計(jì)師首先 要 對(duì)所設(shè)計(jì)的系統(tǒng)有一個(gè)全面的理解 。 “自頂向下”的正向設(shè)計(jì)步驟:首先需要進(jìn)行行為設(shè)計(jì),要確定該 VLSI 芯片的功能、性能及允許的芯片面積和成本等。這結(jié)構(gòu)可能包括有算術(shù)運(yùn)算單元,控制單元,數(shù)據(jù)通道,各種算法狀態(tài)機(jī)等。顯然,同一功能塊可以由多種邏輯設(shè)計(jì)加以實(shí)現(xiàn)。接著進(jìn)行電路設(shè)計(jì),邏輯圖將進(jìn)一步轉(zhuǎn)換成電路 圖。最后是將電路圖轉(zhuǎn)換成版圖,進(jìn)行所謂的版圖設(shè)計(jì)。這種設(shè)計(jì)方法的優(yōu)點(diǎn)在于每一層的分解全 都 經(jīng)過(guò)優(yōu)化,優(yōu)化的目標(biāo)可能是工作速度、芯片面積、芯片成本或它們的組合,但每次劃分并不考慮分解后得到什么樣的單元,以及得到的單元是否是已存在的單元。自底向上的設(shè)計(jì)在某種意義上講可以看作上述從頂向下設(shè)計(jì)的逆過(guò)程。 對(duì)于逆向設(shè)計(jì),無(wú)論是“自頂向下”或是“自底向上”,開(kāi)始版圖解剖,電路圖提取和功能分析