<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 在SoPC上實(shí)現的波形發(fā)生器

在SoPC上實(shí)現的波形發(fā)生器

——
作者:作 者:國防科學(xué)技術(shù)大學(xué) 步凱 徐欣 時(shí)間:2007-01-26 來(lái)源:《單片機與嵌入式系統應用》 收藏


引 言

本文引用地址:http://dyxdggzs.com/article/20774.htm

sopc可編程片上系統是一種特殊的嵌入式微處理器系統。首先,它是片上系統(soc),即由單個(gè)芯片完成整個(gè)系統的主要邏輯功能;其次,它是可編程系統,以fpga為硬件基礎,具有靈活的設計方式,可裁減、可擴充、可升級,并具備軟硬件系統在線(xiàn)可編程的功能。

ip(intellectual property)知識產(chǎn)權是soc設計中非常重要的內容。資源復用(ip reuse)是指在集成電路設計過(guò)程中,通過(guò)繼承、共享或購買(mǎi)所需的部分或全部知識產(chǎn)權內核(ip core)進(jìn)行設計、綜合和驗證,從而加速流片設計過(guò)程的設計方法。ip技術(shù)包含兩個(gè)方面的內容:ip核的生成和ip核的重用。本設計中采用vhdl語(yǔ)言,構建一個(gè)功能強大的完整dds模塊,并根據ibm coreconnect總線(xiàn)連接規范,在dds模塊外面添加opb(onchip peripheral bus)片上外設總線(xiàn)接口,封裝為自定義ip,添加到硬件系統中。

對于本設計來(lái)說(shuō),利用sopc和ip的優(yōu)勢是可以利用最少的元器件,創(chuàng )建一個(gè)易配置、易擴展、易修改并且易于繼承使用的集成系統。該系統的創(chuàng )建是基于xilinx公司提供的嵌入式開(kāi)發(fā)工具包edk(embedded development kit)來(lái)實(shí)現的。edk自帶了microblaze軟核和powerpc硬核微處理器及大量免費ip,有利于構建簡(jiǎn)易系統。針對microblaze及powerpc提供的c語(yǔ)言編譯器,可使系統的功能實(shí)現更加簡(jiǎn)易。對基于microblaze的系統,microblaze通過(guò)opb總線(xiàn)與外設ip及外部存儲器控制接口相連接,通過(guò)lmb(local memory bus)總線(xiàn)與fpga片上塊存儲器bram(block ram)相連接,還可以通過(guò)emc(external memory control)等存儲器控制ip擴展片外ram或rom。

1 系統的架構

本設計采用sopc可編程片上系統的思想,利用xilinx的spartan3系列xc3s400 fpga,通過(guò)edk開(kāi)發(fā)工具包的集成開(kāi)發(fā)環(huán)境xps(xilinx platform studio)完成了fpga硬件系統設計及基于此硬件系統的軟件開(kāi)發(fā)。圖1是基于edk的系統開(kāi)發(fā)設計流程圖,設計分為硬件設計和軟件設計兩部分。硬件設計符合基于hdl硬件描述語(yǔ)言的eda開(kāi)發(fā)流程,是根據硬件系統合理使用總線(xiàn)ip和外設ip,并為各個(gè)實(shí)例定義地址范圍以及輸出端口和時(shí)鐘,經(jīng)過(guò)綜合及布線(xiàn)后形成硬件配置文件。軟件設計與傳統的嵌入式軟件開(kāi)發(fā)設計類(lèi)似,是在硬件設計的基礎上根據處理器所支持的指令集以及編譯環(huán)境編寫(xiě)程序代碼,然后對代碼編譯燒寫(xiě)及調試。

該設計通過(guò)fpga實(shí)現所有數字部分。系統的示意圖如圖2所示。





在fpga內部,以microblaze為控制核心,以dds ip為波形發(fā)生功能實(shí)現核心,同時(shí)加入了其他的ip核,諸如調試用的mdm(microprocessor debug module),用于與pc進(jìn)行通信的uart(universal asynchronous receiver & transmitter)通用異步傳輸模塊,以及l(fā)cd顯示和4×4按鍵控制模塊,實(shí)現了系統的高度集成。fpga硬件系統為數字系統產(chǎn)生數字量,外圍電路加上高速數模轉換器件dac902,把波形數據轉換為模擬波形,即實(shí)現了完整的可編程片上系統的波形發(fā)生器。

2 硬件系統的具體實(shí)現

本設計以32位microblaze軟核處理器為系統的核心部分,負責指令的執行。各種ip包括自主編寫(xiě)的以及edk自帶的,使用xps下的add/edit cores工具,通過(guò)相應類(lèi)型的總線(xiàn)連接到microblaze上。其中uart、lcd、gpio和自主編寫(xiě)的dds的ip都是通過(guò)opb(onchip peripheral bus)片上外設總線(xiàn)連接到處理器上的。程序存儲器ram則是由fpga內部的bram實(shí)現,并通過(guò)lmb(local memory bus)本地存儲器總線(xiàn)與microblaze相連接。自主編寫(xiě)的ip與總線(xiàn)間的接口符合coreconnect規范,實(shí)現了ip間的無(wú)縫結合,方便了數據的讀寫(xiě)及時(shí)序控制。圖3給出了在fpga內部由各種ip組合成的可編程硬件系統。

硬件系統所包含的器件如圖3右部分所示。microblaze_0是該系統的cpu,其中的debug_module為調試模塊,dlmb_cntlr和 ilmb_cntlr為片上bram控制器。lmb_bram為片上bram,它通過(guò)lmb總線(xiàn)與 bram控制器相連,接受cpu的讀寫(xiě)訪(fǎng)問(wèn)。ddfs是為實(shí)現dds編寫(xiě)的ip模塊。rs232為uart模塊,用于與其他設備的通信以及程序調試。lcd ip負責128×64點(diǎn)陣液晶的顯示控制。 col和row是例化后的gpio接口,用于連接4×4鍵盤(pán)。

2.1 microblaze軟核處理器

microblaze是xilinx提供的32位微處理器ip核,是哈佛結構的risc微處理器,有較高的性能。它可以在性?xún)r(jià)比很高的spartaniii系列fpga上實(shí)現。edk為其提供了mbgcc,支持c及c++語(yǔ)言。 microblaze架構如圖4所示。

該處理器含有32個(gè)32位的通用寄存器,2個(gè)專(zhuān)用寄存器,獨立的32位數據和指令總線(xiàn),并與ibm的opb總線(xiàn)完全兼容,具有32位的指令寬度支持三個(gè)操作數和兩種尋址模式,以及可選的硬件乘除法及浮點(diǎn)運算單元。

2.2 dds ip的實(shí)現

數字直接頻率合成技術(shù)(direct digital frequency synthesis,簡(jiǎn)稱(chēng)dds或ddfs)的基本原理是利用采樣定理,通過(guò)查表法產(chǎn)生波形,其基本電路原理如圖5所示。

dds的頻率及步進(jìn)容易控制,且合成的頻率取決于累加器及查找表的速度,采用fpga可以很好的發(fā)揮這項優(yōu)勢,獲得精細的步進(jìn)及寬頻帶。使用hdl硬件描述語(yǔ)言,可以很方便的描述出dds的fpga硬件實(shí)例。在基本的dds模塊上,添加相應的控制寄存器,通過(guò)向不同的寄存器內寫(xiě)入相應的控制字,實(shí)現頻率以及幅度的可控性。最后通過(guò)ibm coreconnect技術(shù),在dds模塊外面添加總線(xiàn)接口,作為自定義ip,成功地將其掛載到系統總線(xiàn)上,便可以方便的對其進(jìn)行讀寫(xiě)操作,實(shí)現dds模塊與microblaze的通信。圖6是從用戶(hù)邏輯到成為符合ibm coreconnect技術(shù)規范的dds ip的實(shí)現過(guò)程。

dds的vhdl代碼作為子模塊與opb_core_ssp0_ref.vhd模塊共同構成opb_dds ip core,其中ipif(ip interface )符合ibm coreconnect規范,負責dds邏輯與opb總線(xiàn)之間的通信。在edk中,通過(guò)create/import ip工具把opb_dds添加到系統中,并為其分配地址,建立端口連接,之后就可以使用該ip了。dds ip配合控制程序可產(chǎn)生各種波形,并對頻率、幅度進(jìn)行精確的控制。

2.3 其余部分

系統所需要的lcd顯示、dac控制等模塊,均通過(guò)與生成dds ip相同的方式,編寫(xiě)為符合ibm coreconnect總線(xiàn)規范的ip,以供使用。

在硬件系統構建完畢之后,使用platgen工具生成網(wǎng)表文件和bitgen工具生成相應的硬件配置文件。若將工程導入到ise軟件中,可以進(jìn)行優(yōu)化設置,還可以將工程導入到其他的綜合工具如synplify pro進(jìn)行實(shí)現。ip核的編寫(xiě)是在ise中完成的。無(wú)論對于整個(gè)系統還是一個(gè)單獨的ip,都可以利用modelsim工具進(jìn)行行為及時(shí)序仿真。最后,為此系統描寫(xiě)xbd(xilinx board description)板級描述文件,通過(guò)此文件,edk可以通過(guò)bsb(base system builder)模式自動(dòng)生成基本的硬件系統,并對所添加的端口進(jìn)行約束,這樣可以實(shí)現資源的繼承性使用。



3 軟件系統的實(shí)現

edk提供了免費的gnu c compiler,可以支持標準c。同時(shí),edk為多種ip以api的形式提供了驅動(dòng)函數,有利于程序的開(kāi)發(fā)。xps所集成的軟件工程管理工具允許在一個(gè)硬件平臺上同時(shí)開(kāi)發(fā)多個(gè)軟件工程。完成軟件代碼的編寫(xiě)后,使用edk集成的xmd和gdb調試器對代碼進(jìn)行仿真和調試,也可以配合chipscope(片內邏輯分析儀)進(jìn)行硬件及軟件的協(xié)同調試。xmd通過(guò)mdm模塊和jtag口連接目標板上的cpu,gdb可以對程序進(jìn)行單步調試或斷點(diǎn)設置。針對本設計及應用,編寫(xiě)了系統控制及液晶顯示程序。程序編譯后生成為elf文件,通過(guò)update bitstream工具把程序同硬件配置文件合成為download.bit文件,把此文件下載到目標板后,fpga首先根據硬件配置信息建立硬件系統,并把程序代碼映射到片內bram中,最后啟動(dòng)microblaze,運行程序。

4 總結

本系統基于fpga,以microblaze為核心,加入具有良好特性的dds ip,并輔以必要的外圍電路,構成了高度集成化的系統。另外,sopc系統的柔性配置,使得可以基于此系統擴展片外存儲器,并可以實(shí)現rtos操作系統的移植,以實(shí)現更豐富的功能和完成更復雜的任務(wù)。



關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>