




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要簡(jiǎn)潔實(shí)用的信號(hào)源生成系統(tǒng)一直是電子系統(tǒng)仿真、測(cè)試等必備的設(shè)備,而現(xiàn)場(chǎng)可編程邏輯設(shè)計(jì)陣列FPGA的出現(xiàn)為數(shù)字技術(shù)應(yīng)用于信號(hào)產(chǎn)生提供了一條便捷的設(shè)計(jì)方法,故目前使用硬件語(yǔ)言設(shè)計(jì)PLD/FPGA成為一種趨勢(shì),而用C/C+語(yǔ)言開(kāi)發(fā)大規(guī)模FPGA一直是許多公司致力研究的對(duì)象,目前有兩種相對(duì)成熟的硬件C語(yǔ)言:systemC和Handle-C,這兩種語(yǔ)言都是在C/C的基礎(chǔ)上根據(jù)硬件設(shè)計(jì)的需求加以改進(jìn)和擴(kuò)充,用戶(hù)可以在其開(kāi)發(fā)環(huán)境編輯代碼,調(diào)用庫(kù)文件,甚至可以引進(jìn)HDL程序,并進(jìn)行仿真,最終生成網(wǎng)表文件,放到FPGA中執(zhí)行。目前基于FPGA 的SOPC設(shè)計(jì)技術(shù)是當(dāng)前電子系統(tǒng)設(shè)計(jì)領(lǐng)域最前沿的技術(shù)之一,故采用目
2、前流行的FPGA芯片和DA芯片以及等其他芯片來(lái)完成對(duì)常用信號(hào)的生成和輸出就是尤其必要的了。而用C/C+語(yǔ)言開(kāi)發(fā)大規(guī)模FPGA的技術(shù),隨著EDA技術(shù)的不斷成熟,軟件和硬件的概念將日益模糊,在510年后,使用單一的高級(jí)語(yǔ)言直接設(shè)計(jì)我們的整個(gè)系統(tǒng)將是一個(gè)的發(fā)展趨勢(shì)。基于FPGA的高性能C語(yǔ)言開(kāi)發(fā)系統(tǒng) CoDeveloper軟件的最終設(shè)計(jì)方案是軟件和硬件源文件的組合。一些需要軟件的編譯/調(diào)試工具流程,其它需要硬件設(shè)計(jì)流程和專(zhuān)業(yè)知識(shí)。隨著基于C語(yǔ)言的FPGA設(shè)計(jì)工具的出現(xiàn),使大部分設(shè)計(jì)中可以采用熟悉的標(biāo)準(zhǔn)C語(yǔ)言,尤其在那些本身就是實(shí)現(xiàn)算法的硬件電路。后面的性能轉(zhuǎn)換可能會(huì)引入手工的硬件描述語(yǔ)言(HDL)取
3、代自動(dòng)生成的硬件(正如面向DSP處理器的源代碼通常用匯編語(yǔ)言重新編寫(xiě)),但是因?yàn)樵O(shè)計(jì)直接從C代碼編譯成最初的FPGA實(shí)現(xiàn),硬件工程師要參與性能轉(zhuǎn)換的時(shí)間會(huì)進(jìn)一步提早至設(shè)計(jì)階段,系統(tǒng)可以用更高效率的軟件設(shè)計(jì)模式來(lái)進(jìn)行設(shè)計(jì)。關(guān)鍵詞:可編程邏輯器件,F(xiàn)PGA,信號(hào),CoDeveloperABSTRACTSimple and practical system has been the source generates electronic system simulation, testing and other necessary equipment, and field programmable g
4、ate array FPGA design of the emergence of digital technology in signal generator provides a convenient design method, it is the language currently used hardware Design PLD/ FPGA to become a trend, but with C/C + + language to develop large-scale FPGA has been the object of many companies to research
5、, the resulting network table file, run into the FPGA. Because FPGA-based SOPC design is the current electronic systems design one of the most cutting-edge technology, so it popular FPGA chip and DA chips and other chips to complete the formation of the common signal and the output is particularly n
6、ecessary in The use of C/C + + language development large-scale FPGA technology, with the EDA technology continues to mature, the concept of software and hardware will become increasingly blurred, in 5-10 years later, using a single high-level language direct design our entire system will be A trend
7、 of development. High-performance FPGA-based C language development system CoDeveloper software design is the ultimate source software and hardware combination. Some require software compilation / debugging tool flows, and other necessary hardware and expertise in the design process. However, with t
8、he C language based on the emergence of FPGA design tools, making the most of the design standards can use the familiar C language, especially in the algorithm that the hardware itself is a circuit. The performance of the back of the manual conversion may introduce the hardware description language
9、(HDL) to replace the hardware automatically (as the source code for the DSP processor is usually re-written in assembler language), but because of the design directly from C code compiled into the first FPGA implementation and hardware engineers to participate in the performance of the conversion ti
10、me will be further advanced to the design phase, the system can be more efficient to design the software design patterns.Keywords: programmable logic device, FPGA, signal,CoDeveloper目錄摘要IABSTRACTII第一章 引言1第二章 FPGA技術(shù)介紹22.1 FPGA結(jié)構(gòu)介紹22.2 PLD/FPGA 結(jié)構(gòu)與原理32.3 FPGA設(shè)計(jì)軟件介紹52.3.1 HDL開(kāi)發(fā)流程52.3.2 用C/C+語(yǔ)言開(kāi)發(fā)大規(guī)模FPGA
11、背景概要62.3.3基于FPGA的高性能C語(yǔ)言開(kāi)發(fā)系統(tǒng) CoDeveloper軟件7第三章 信號(hào)生成系統(tǒng)原理與結(jié)構(gòu)103.1 系統(tǒng)原理與結(jié)構(gòu)圖103.2 軟件設(shè)計(jì)流程圖133.2.1軟件功能塊結(jié)構(gòu)圖133.2.2信號(hào)生成數(shù)據(jù)輸出流圖143.2.3 FPGA處理流圖143.2.4鍵盤(pán)輸入信號(hào)模塊流圖153.2.5硬件層代碼部分框架部分153.2.6軟件層模塊部分框架部分18第四章 軟件運(yùn)行結(jié)果及結(jié)論21參考文獻(xiàn)22致謝23第一章 引言信號(hào)源是雷達(dá)、通信及其他電子系統(tǒng)不可缺少的重要組成部分。低相位噪聲、高穩(wěn)定度、高可靠性和多功能信號(hào)源的研究受到普遍重視。信號(hào)源是測(cè)量系統(tǒng)不可缺少的重要設(shè)備,他的主要
12、用途主要有三方面:(1)作為電子設(shè)備的激勵(lì)信號(hào);(2)作為信號(hào)仿真,模擬電子設(shè)備所需的與實(shí)際環(huán)境特性相同的信號(hào),測(cè)試設(shè)備的性能;(3)作為標(biāo)準(zhǔn)源來(lái)對(duì)一般信號(hào)源進(jìn)行校準(zhǔn)或?qū)Ρ取D壳皩?shí)現(xiàn)信號(hào)源的主要技術(shù)有: 直接頻率合成、鎖相式頻率合成和直接數(shù)字頻率合成DDS。DDS 具有極高的頻率分辨率、極快的頻率切換速度、頻率切換時(shí)相位 連續(xù)、易于功能擴(kuò)展和全數(shù)字化易于集成等優(yōu)點(diǎn)。特別適合應(yīng)用于信道間隔小、信道頻率數(shù)多和相位噪聲低的場(chǎng)合。而簡(jiǎn)潔實(shí)用的信號(hào)源生成系統(tǒng)一直是電子系統(tǒng)仿真、測(cè)試等必備的設(shè)備。 而現(xiàn)場(chǎng)可編程邏輯設(shè)計(jì)陣列FPGA的出現(xiàn)為數(shù)字技術(shù)應(yīng)用于信號(hào)產(chǎn)生提供了一條便捷的設(shè)計(jì)方法。由于目前基于FPGA
13、的電子系統(tǒng)設(shè)計(jì)技術(shù)是21世紀(jì)電子應(yīng)用工程師必備的基本技能之一,而基于FPGA的SOPC設(shè)計(jì)技術(shù)是當(dāng)前電子系統(tǒng)設(shè)計(jì)領(lǐng)域最前沿的技術(shù)之一。本文就是采用目前流行的FPGA芯片和DA芯片以及等其他芯片,完成對(duì)幾種常用信號(hào)的生成和輸出。第二章 FPGA技術(shù)介紹2.1 FPGA結(jié)構(gòu)介紹FPGA是現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programable Gate Array)的簡(jiǎn)稱(chēng),現(xiàn)場(chǎng)可編程門(mén)陣列FPGA作為集成度和復(fù)雜程度最高的可編程ASIC,是ASIC的一種新型門(mén)類(lèi),它建立在創(chuàng)新的發(fā)明構(gòu)思和先進(jìn)的EDA技術(shù)之上。FPGA,CPLD和其它類(lèi)型PLD的結(jié)構(gòu)各有其特點(diǎn)和長(zhǎng)處,但概括起來(lái),它們是由三大部分組成的:
14、(1)一個(gè)二維的邏輯塊陣列,構(gòu)成了PLD器件的邏輯組成核心;(2)輸入輸出塊;(3)連接邏輯塊的互連資源,由各種長(zhǎng)度的連線線段組成,其中也有一些可編程的連接開(kāi)關(guān),它們用于邏輯塊之間、邏輯塊與輸入輸出塊之間的連接。圖2.1.1 PLD的結(jié)構(gòu)對(duì)用戶(hù)而言,雖然CPLD與FPGA的內(nèi)部結(jié)構(gòu)稍有不同,但其用法都一樣,所以多數(shù)情況下,不加以區(qū)分。FPGACPLD芯片都是特殊的ASIC芯片,它們除了具有ASIC的特點(diǎn)之外,還具有以下幾個(gè)優(yōu)點(diǎn):(1)隨著VLSI(Very Large Scale IC,超大規(guī)模集成電路)工藝的不斷提高單一芯片內(nèi)部可以容納上百萬(wàn)個(gè)晶體管, FPGACPLD芯片的規(guī)模也越來(lái)越大,
15、其單片邏輯門(mén)數(shù)已達(dá)到上百萬(wàn)門(mén),它所能實(shí)現(xiàn)的功能也越來(lái)越強(qiáng),同時(shí)也可以實(shí)現(xiàn)系統(tǒng)集成,即片上系統(tǒng)SOC。(2)FPGACPLD芯片在出廠之前都做過(guò)百分之百的測(cè)試,不需要設(shè)計(jì)人員承擔(dān)投片風(fēng)險(xiǎn)和費(fèi)用,設(shè)計(jì)人員只需在自己的實(shí)驗(yàn)室里就可以通過(guò)相關(guān)的軟硬件環(huán)境來(lái)完成芯片的最終功能設(shè)計(jì)。所以, FPGACPLD的資金投入小,節(jié)省了許多潛在的花費(fèi)。(3)用戶(hù)可以反復(fù)地編程、擦除、使用或者在外圍電路不動(dòng)的情況下用不同軟件就可實(shí)現(xiàn)不同的功能。所以,用FPGACPLD 試制樣片,能以最快的速度占領(lǐng)市場(chǎng)。 FPGACPLD軟件包中有各種輸入工具和仿真工具,及版圖設(shè)計(jì)工具和編程器等全線產(chǎn)品,電路設(shè)計(jì)人員在很短的時(shí)間內(nèi)就可
16、完成電路的輸入、編譯、優(yōu)化、仿真,直至最后芯片的制作。當(dāng)電路有少量改動(dòng)時(shí),更能顯示出FPGACPLD的優(yōu)勢(shì)。電路設(shè)計(jì)人員使用FPGACPLD進(jìn)行電路設(shè)計(jì)時(shí),不需要具備專(zhuān)門(mén)的IC(集成電路)深層次的知識(shí), FPGACPLD軟件易學(xué)易用,可以使設(shè)計(jì)人員更能集中精力進(jìn)行電路設(shè)計(jì),快速將產(chǎn)品推向市場(chǎng)。(4)在線可編程技術(shù)(ISP)使得使用CPLD/FPGA的產(chǎn)品可以做到遠(yuǎn)程升級(jí)。2.2 PLD/FPGA 結(jié)構(gòu)與原理一、 基于乘積項(xiàng)(Product-Term)的PLD結(jié)構(gòu)采用這種結(jié)構(gòu)的PLD芯片有:Altera的MAX7000,MAX3000系列(EEPROM工藝),Xilinx的XC9500系列(Fl
17、ash工藝)和Lattice,Cypress的大部分產(chǎn)品(EEPROM工藝)。我們先看一下這種PLD的總體結(jié)構(gòu)(以MAX7000為例,其他型號(hào)的結(jié)構(gòu)與此都非常相似):圖2.2.1 基于乘積項(xiàng)的PLD內(nèi)部結(jié)構(gòu)這種PLD可分為三塊結(jié)構(gòu):宏單元(Marocell),可編程連線(PIA)和I/O控制塊。 宏單元是PLD的基本結(jié)構(gòu),由它來(lái)實(shí)現(xiàn)基本的邏輯功能。圖2.2.1陰影部分是多個(gè)宏單元的集合(因?yàn)楹陠卧^多,沒(méi)有一一畫(huà)出)。可編程連線負(fù)責(zé)信號(hào)傳遞,連接所有的宏單元。I/O控制塊負(fù)責(zé)輸入輸出的電氣特性控制,比如可以設(shè)定集電極開(kāi)路輸出,擺率控制,三態(tài)輸出等。圖2.2.1左上的INPUT/GCLK1,IN
18、PUT/GCLRn,INPUT/OE1,INPUT/OE2 是全局時(shí)鐘,清零和輸出使能信號(hào),這幾個(gè)信號(hào)有專(zhuān)用連線與PLD中每個(gè)宏單元相連,信號(hào)到每個(gè)宏單元的延時(shí)相同并且延時(shí)最短。宏單元的具體結(jié)構(gòu)見(jiàn)下圖:圖2.2.2 宏單元結(jié)構(gòu)左側(cè)是乘積項(xiàng)陣列,實(shí)際就是一個(gè)與或陣列,每一個(gè)交叉點(diǎn)都是一個(gè)可編程熔絲,如果導(dǎo)通就是實(shí)現(xiàn)“與”邏輯。后面的乘積項(xiàng)選擇矩陣是一個(gè)“或”陣列。兩者一起完成組合邏輯。圖右側(cè)是一個(gè)可編程D觸發(fā)器,它的時(shí)鐘,清零輸入都可以編程選擇,可以使用專(zhuān)用的全局清零和全局時(shí)鐘,也可以使用內(nèi)部邏輯(乘積項(xiàng)陣列)產(chǎn)生的時(shí)鐘和清零。如果不需要觸發(fā)器,也可以將此觸發(fā)器旁路,信號(hào)直接輸給PIA或輸出到I
19、/O腳。查找表結(jié)構(gòu)的FPGA邏輯實(shí)現(xiàn)原理我們還是以這個(gè)電路的為例:圖2.2.3 宏單元結(jié)構(gòu)A,B,C,D由FPGA芯片的管腳輸入后進(jìn)入可編程連線,然后作為地址線連到到LUT,LUT中已經(jīng)事先寫(xiě)入了所有可能的邏輯結(jié)果,通過(guò)地址查找到相應(yīng)的數(shù)據(jù)然后輸出,這樣組合邏輯就實(shí)現(xiàn)了。該電路中D觸發(fā)器是直接利用LUT后面D觸發(fā)器來(lái)實(shí)現(xiàn)。時(shí)鐘信號(hào)CLK由I/O腳輸入后進(jìn)入芯片內(nèi)部的時(shí)鐘專(zhuān)用通道,直接連接到觸發(fā)器的時(shí)鐘端。觸發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片管腳。這樣PLD就完成了圖2.2.3所示電路的功能。由于LUT主要適合SRAM工藝生產(chǎn),所以目前大部分FPGA都是基于SRAM工藝的,而SRAM工藝
20、的芯片在掉電后信息就會(huì)丟失,一定需要外加一片專(zhuān)用配置芯片,在上電的時(shí)候,由這個(gè)專(zhuān)用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作,由于配置時(shí)間很短,不會(huì)影響系統(tǒng)正常工作。也有少數(shù)FPGA采用反熔絲或Flash工藝,對(duì)這種FPGA,就不需要外加專(zhuān)用的配置芯片。2.3 FPGA設(shè)計(jì)軟件介紹目前可用于可編程器件開(kāi)發(fā)軟件大致分為這樣兩類(lèi): 一、硬件語(yǔ)言類(lèi)軟件,隨著EDA技術(shù)的發(fā)展,使用硬件語(yǔ)言設(shè)計(jì)PLD/FPGA成為一種趨勢(shì)。目前最主要的硬件描述語(yǔ)言是VHDL和Verilog HDL。 VHDL發(fā)展的較早,語(yǔ)法嚴(yán)格,而Verilog HDL是在C語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的一種硬件描述語(yǔ)言,語(yǔ)法
21、較自由。 VHDL和Verilog HDL兩者相比,VHDL的書(shū)寫(xiě)規(guī)則比Verilog煩瑣一些,但verilog自由的語(yǔ)法也容易讓少數(shù)初學(xué)者出錯(cuò)。從國(guó)內(nèi)來(lái)看,VHDL的參考書(shū)很多,便于查找資料,而Verilog HDL的參考書(shū)相對(duì)較少,這給學(xué)習(xí)Verilog HDL帶來(lái)一些困難。 二、由C等高級(jí)語(yǔ)言演化而來(lái)用于CPLD/FPGA設(shè)計(jì)的硬件C語(yǔ)言編譯軟件,雖然還不太成熟,但它有可能會(huì)成為繼VHDL和Verilog之后,設(shè)計(jì)大規(guī)模CPLD/FPGA的又一種手段。下面簡(jiǎn)要對(duì)比兩類(lèi)語(yǔ)言的開(kāi)發(fā)流程和特點(diǎn)。2.3.1 HDL開(kāi)發(fā)流程用VHDL/Verilog HD語(yǔ)言開(kāi)發(fā)PLD/FPGA的完整流程為:1.
22、文本編輯:用任何文本編輯器都可以進(jìn)行,也可以用專(zhuān)用的HDL編輯環(huán)境。通常VHDL文件保存為.vhd文件,Verilog文件保存為.v文件2.功能仿真:將文件調(diào)入HDL仿真軟件進(jìn)行功能仿真,檢查邏輯功能是否正確(也叫前仿真,對(duì)簡(jiǎn)單的設(shè)計(jì)可以跳過(guò)這一步,只在布線完成以后,進(jìn)行時(shí)序仿真)3.邏輯綜合:將源文件調(diào)入邏輯綜合軟件進(jìn)行綜合,即把語(yǔ)言綜合成最簡(jiǎn)的布爾表達(dá)式和信號(hào)的連接關(guān)系。邏輯綜合軟件會(huì)生成.edf(edif)的EDA工業(yè)標(biāo)準(zhǔn)文件。4.布局布線:將.edf文件調(diào)入PLD廠家提供的軟件中進(jìn)行布線,即把設(shè)計(jì)好的邏輯安放到PLD/FPGA內(nèi)。5.時(shí)序仿真:需要利用在布局布線中獲得的精確參數(shù),用仿真
23、軟件驗(yàn)證電路的時(shí)序。(也叫后仿真)。6.編程下載:確認(rèn)仿真無(wú)誤后,將文件下載到芯片中。2.3.2 用C/C+語(yǔ)言開(kāi)發(fā)大規(guī)模FPGA背景概要可編程邏輯器件的設(shè)計(jì)方法經(jīng)歷了布爾等式,原理圖輸入,硬件描述語(yǔ)言這樣一個(gè)發(fā)展過(guò)程。隨著設(shè)計(jì)的日益復(fù)雜和可編程邏輯器件規(guī)模的不斷擴(kuò)大,人們不停地尋求更加抽象的行為級(jí)設(shè)計(jì)方法,以便在盡可能短時(shí)間內(nèi)完成自己的設(shè)計(jì)構(gòu)思。今天,在電子設(shè)計(jì)領(lǐng)域形成了這樣一種分工:軟件和硬件,相應(yīng)工程師也被分成軟件工程師和硬件工程師。對(duì)于復(fù)雜算法的實(shí)現(xiàn),人們通常先建立系統(tǒng)模型,根據(jù)經(jīng)驗(yàn)分析任務(wù),然后將一部分工作劃給軟件工程師,將另一部分工作交給硬件工程師。 硬件工程師為了實(shí)現(xiàn)復(fù)雜的功能,
24、使用硬件描述語(yǔ)言設(shè)計(jì)高速執(zhí)行的芯片,而這種設(shè)計(jì)是富有挑戰(zhàn)性和花費(fèi)時(shí)間的,需要一定的硬件工程技巧。對(duì)于軟件工程師,這些同樣的功能只要簡(jiǎn)單地使用C語(yǔ)言整合到整個(gè)系統(tǒng)的程序代碼中就可以了。但是傳統(tǒng)的處理器是順序執(zhí)行的,并且他們執(zhí)行的高速計(jì)算必須依賴(lài)于高速時(shí)鐘,這樣就限制了處理器的能力。同時(shí),軟件實(shí)現(xiàn)算法存在一個(gè)指令執(zhí)行周期的問(wèn)題軟件永遠(yuǎn)也不能達(dá)到硬件執(zhí)行的速度。當(dāng)然,很少有嵌入式應(yīng)用是完全使用可編程邏輯器件來(lái)實(shí)現(xiàn)的。串行化的步進(jìn)式算法最好是由CPU或DSP用軟件來(lái)實(shí)現(xiàn)。最佳的硬件加速性能大多是由并行執(zhí)行的功能來(lái)完成,其物理形式通常是將硬件協(xié)處理器(FPGA) 與CPU緊密的結(jié)合在一起,CPU與FPG
25、A的緊密結(jié)合可以提供軟硬件的最佳連接方式。 在這種結(jié)構(gòu)中,CPU通常運(yùn)行系統(tǒng)應(yīng)用方面的程序,實(shí)時(shí)很強(qiáng)的任務(wù)放到FPGA硬件上,這樣可以減輕處理器的負(fù)荷,從而獲得更大的帶寬。這樣我們可以通過(guò)把算法移植到硬件上來(lái)克服設(shè)計(jì)瓶頸。 但是這時(shí)我們又將面臨一個(gè)問(wèn)題:設(shè)計(jì)者必須使用復(fù)雜的硬件描述語(yǔ)言編寫(xiě)FPGA代碼,而這些功能原本是用簡(jiǎn)單C語(yǔ)言在處理器或DSP中實(shí)現(xiàn)的。人們希望能夠找到一種方法,在更高的層次下設(shè)計(jì)更復(fù)雜,更高速的系統(tǒng),并希望將軟件設(shè)計(jì)和硬件設(shè)計(jì)統(tǒng)一到一個(gè)平臺(tái)下。 C/C+語(yǔ)言是軟件工程師在開(kāi)發(fā)商業(yè)軟件時(shí)的標(biāo)準(zhǔn)語(yǔ)言,也是使用最為廣泛的高級(jí)語(yǔ)言,人們很早就開(kāi)始嘗試在C語(yǔ)言的基礎(chǔ)上設(shè)計(jì)下一代硬件描
26、述語(yǔ)言。許多公司已經(jīng)提出了不少方案,目前有兩種相對(duì)成熟的硬件C語(yǔ)言:systemC和Handle-C,它們相應(yīng)的開(kāi)發(fā)系統(tǒng)為:CoCentric System Stadio和Celoxica DK1。 這兩種語(yǔ)言都是在C/C的基礎(chǔ)上根據(jù)硬件設(shè)計(jì)的需求加以改進(jìn)和擴(kuò)充,用戶(hù)可以在它們的開(kāi)發(fā)環(huán)境編輯代碼,調(diào)用庫(kù)文件,甚至可以引進(jìn)HDL程序,并進(jìn)行仿真,最終生成網(wǎng)表文件,放到FPGA中執(zhí)行。 軟件算法工程師不需要特別的培訓(xùn),利用他們熟悉的C語(yǔ)言就可以直接進(jìn)行硬件開(kāi)發(fā),減輕了硬件開(kāi)發(fā)的瓶頸和壓力。隨著算法描述抽象層次的提高,使用這種C語(yǔ)言設(shè)計(jì)系統(tǒng)的優(yōu)勢(shì)將更加明顯。現(xiàn)在有很多硬件描述語(yǔ)言的人才,也有更多的資
27、深的C語(yǔ)言編程者,他們能夠利用這種工具,可以輕松地轉(zhuǎn)到FPGA設(shè)計(jì)上。 過(guò)去因?yàn)樘珡?fù)雜而不能用硬件描述語(yǔ)言表示的算法以及由于處理器運(yùn)行速度太慢而不能處理的算法,現(xiàn)在都可以利用C語(yǔ)言在大規(guī)模FPGA硬件上得以實(shí)現(xiàn)。 設(shè)計(jì)者可以利用C語(yǔ)言快速而簡(jiǎn)潔的構(gòu)建功能函數(shù),通過(guò)標(biāo)準(zhǔn)庫(kù)和函數(shù)調(diào)用技術(shù),設(shè)計(jì)者還能在很短的時(shí)間里創(chuàng)建更龐大,更復(fù)雜和更高速的系統(tǒng)。正如同硬件描述語(yǔ)言與原理圖輸入的關(guān)系,或是高級(jí)語(yǔ)言和匯編語(yǔ)言的關(guān)系,抽象的設(shè)計(jì)方法會(huì)減少我們的設(shè)計(jì)時(shí)間,但也會(huì)增加對(duì)硬件資源的需求,C語(yǔ)言也不例外。 目前直接使用C語(yǔ)言設(shè)計(jì)硬件系統(tǒng)的準(zhǔn)確性和可靠性還在進(jìn)一步的研究和發(fā)展中,可以說(shuō),目前各種硬件C語(yǔ)言的編譯軟
28、件都還不夠成熟,很少能直接投入到實(shí)際產(chǎn)品的開(kāi)發(fā)中。 C語(yǔ)言輸入方式的廣泛使用還有賴(lài)于更多EDA軟件廠家和FPGA公司的支持。 但是可以預(yù)見(jiàn),隨著EDA技術(shù)的不斷成熟,軟件和硬件的概念將日益模糊,在510年以后,使用單一的高級(jí)語(yǔ)言直接設(shè)計(jì)我們的整個(gè)系統(tǒng)將是一個(gè)的發(fā)展趨勢(shì)。 2.3.3基于FPGA的高性能C語(yǔ)言開(kāi)發(fā)系統(tǒng) CoDeveloper軟件對(duì)于系統(tǒng)中的每個(gè)處理單元(即標(biāo)準(zhǔn)處理器、DSP、FPGA或ASIC),需要不同水平的專(zhuān)用技能。在另一方面,F(xiàn)PGA在設(shè)計(jì)和工具經(jīng)驗(yàn)上需要相對(duì)高的投入,在硬件設(shè)計(jì)語(yǔ)言作為主要的設(shè)計(jì)輸入方式時(shí)尤其如此。 然而FPGA和專(zhuān)用ASIC設(shè)計(jì)所需的經(jīng)驗(yàn)和工具投入相比,
29、顯然FPGA在開(kāi)發(fā)專(zhuān)用硬件上具有更低的風(fēng)險(xiǎn)。的確,相對(duì)于專(zhuān)用ASIC方案的簡(jiǎn)單性和低風(fēng)險(xiǎn)的設(shè)計(jì)過(guò)程是選擇FPGA的關(guān)鍵因素。最近基于軟件的FPGA設(shè)計(jì)工具使這種設(shè)計(jì)過(guò)程獲得更大的效率。這反過(guò)來(lái)讓系統(tǒng)設(shè)計(jì)者和軟件應(yīng)用開(kāi)發(fā)者在實(shí)際的硬件上能夠更快地嘗試新的算法方式,使用迭代方式進(jìn)行設(shè)計(jì)。 這種迭代方式重要好處是能夠一次改變一個(gè)單元(例如將關(guān)鍵的算法移至FPGA)。應(yīng)用最初是完全用軟件進(jìn)行原型設(shè)計(jì),并驗(yàn)證其正確性,然后由FPGA完成特定的功能,這是在每個(gè)步驟都要對(duì)系統(tǒng)重新進(jìn)行驗(yàn)證的硬件實(shí)現(xiàn)過(guò)程。這種方式被證實(shí)能大大地縮短調(diào)試時(shí)間,降低引入難以調(diào)試的系統(tǒng)錯(cuò)誤的風(fēng)險(xiǎn)。 隨著應(yīng)用模型和部件算法的發(fā)展,設(shè)計(jì)
30、者確定并發(fā)揮設(shè)計(jì)中的并行性(或重新設(shè)計(jì)算法),利用可編程硬件在建立并行結(jié)構(gòu)方面的獨(dú)有能力。在上述的方式中,最終的設(shè)計(jì)是軟件和硬件源文件的組合。 一些需要軟件的編譯/調(diào)試工具流程,其它需要硬件設(shè)計(jì)流程和專(zhuān)業(yè)知識(shí)。 然而,隨著基于C的FPGA設(shè)計(jì)工具的出現(xiàn),使得在大部分的設(shè)計(jì)中可以采用熟悉的標(biāo)準(zhǔn)C語(yǔ)言,尤其在那些本身就是實(shí)現(xiàn)算法的硬件電路。 后面的性能轉(zhuǎn)換可能會(huì)引入手工的硬件描述語(yǔ)言(HDL)取代自動(dòng)生成的硬件(正如面向DSP處理器的源代碼通常用匯編重新編寫(xiě)),但是因?yàn)樵O(shè)計(jì)直接從C代碼編譯成最初的FPGA實(shí)現(xiàn),硬件工程師要參與性能轉(zhuǎn)換的時(shí)間會(huì)進(jìn)一步提早至設(shè)計(jì)階段,系統(tǒng)可以用更高效率的軟件設(shè)計(jì)模式來(lái)
31、進(jìn)行設(shè)計(jì)。 CoDeveloper工具(Impluse Accelerated Technologies提供)允許C語(yǔ)言的應(yīng)用編譯后以FPGA網(wǎng)表形式建立硬件,包括允許描述高度并行和多過(guò)程應(yīng)用描述所必須的C語(yǔ)言擴(kuò)展。對(duì)于包括嵌入式處理器(如Altera的Nios軟核處理器)的目標(biāo)平臺(tái),CoDeveloper可以用來(lái)生成必要的硬件/軟件接口,及生成特定過(guò)程的低級(jí)硬件描述。采用這種工具和硬件/軟件方式獲得成功的關(guān)鍵是軟件和硬件處理資源之間合理的劃分。好的劃分方案不僅要考慮給定算法部件對(duì)計(jì)算量的需求,而且要考慮數(shù)據(jù)帶寬需求。這是因?yàn)橛布?軟件接口可能是主要的性能瓶頸。合理地利用高并行應(yīng)用的編程模型也
32、很重要。雖然它試圖用傳統(tǒng)編程方式如遠(yuǎn)程過(guò)程調(diào)用(RPC)將特定功能交由FPGA處理,但是研究表明面向數(shù)據(jù)流的通信方式更有效率,它不可能引入阻塞或造成應(yīng)用死鎖。在一些情況下,這意味著重新從整體上考慮設(shè)計(jì),尋找新的方式對(duì)數(shù)據(jù)進(jìn)行搬移和處理。這么做的結(jié)果是非常顯著的:通過(guò)增加應(yīng)用級(jí)的并行性,充分利用可編程邏輯資源,這可能將使一般算法比純軟件實(shí)現(xiàn)提升幾個(gè)數(shù)量級(jí)。在這種應(yīng)用的開(kāi)發(fā)過(guò)程中(或重新工程化),設(shè)計(jì)工具是可視化的,能調(diào)試多個(gè)并行過(guò)程的互連。工具有助于量化地給出劃分方式的結(jié)果,識(shí)別可能表示應(yīng)用瓶頸的高數(shù)據(jù)吞吐量的區(qū)域。用戶(hù)可以在工具的幫助下,進(jìn)行更詳細(xì)的分析和性能調(diào)整。 圖2.3.1在應(yīng)用調(diào)試和監(jiān)
33、視過(guò)程中連接硬件和軟件過(guò)程第三章 信號(hào)生成系統(tǒng)原理與結(jié)構(gòu)3.1 系統(tǒng)原理與結(jié)構(gòu)圖小鍵盤(pán)輸入輸出緩沖DA芯片F(xiàn)PGA芯片圖3.1.1系統(tǒng)原理結(jié)構(gòu)圖信號(hào)生成系統(tǒng)包括人工接口小鍵盤(pán)輸入模塊,F(xiàn)PGA邏輯控制信號(hào)數(shù)據(jù)生成模塊,DA輸出模塊和信號(hào)平滑、放大模塊等組成。各部分的功能如下:1、人工接口小鍵盤(pán)輸入模塊: 主要是實(shí)現(xiàn)信號(hào)種類(lèi)的人工選擇,輸出的幅度大小等, 鍵盤(pán)采用2 × 3鍵盤(pán)。共6個(gè)鍵。3.1.2鍵盤(pán)電路結(jié)構(gòu)圖ID1-ID6是鍵盤(pán)數(shù)據(jù)線的輸出,同他復(fù)位和置位控制線組成Mykeyctrl數(shù)據(jù)線。采用無(wú)按鍵數(shù)據(jù)線電平為高,按下數(shù)據(jù)線電平為低的方式。送給FPGA的I/O口,在FPGA內(nèi)部完
34、成編碼。2、FPGA芯片-信號(hào)數(shù)據(jù)生成和輸出控制模塊為了實(shí)現(xiàn)上面的算法控制,選用Virtex-4 系列FPGA 芯片作為編譯的目標(biāo)平臺(tái)。Virtex-4 FPGA產(chǎn)品基于我們新的高級(jí)硅片組合模塊(ASMBL)架構(gòu),通過(guò)提供一個(gè)多平臺(tái)方式,使客戶(hù)可以為他們特定的應(yīng)用挑選能以最低的成本實(shí)現(xiàn)最佳性能的正確資源組合。我們的90nm Virtex-4 FPGA產(chǎn)品中包含了100多項(xiàng)技術(shù)創(chuàng)新,為設(shè)計(jì)人員提供了基于三個(gè)針對(duì)特定領(lǐng)域而優(yōu)化的FPGA平臺(tái)的17款器件。這三個(gè)平臺(tái)分別是:針對(duì)大量使用邏輯進(jìn)行設(shè)計(jì)的Virtex-4 LX、針對(duì)超高性能數(shù)字信號(hào)處理的Virtex-4 SX以及針對(duì)高速串行連接和高性能呢
35、個(gè)嵌入式處理的Virtex-4 FX。 與競(jìng)爭(zhēng)的FPGA產(chǎn)品相比,Virtex-4在七個(gè)方面具有突破性的創(chuàng)新和優(yōu)勢(shì): a)ASMBL 架構(gòu):賽靈思創(chuàng)建了高級(jí)硅片組合模塊(ASMBL) 架構(gòu),可快速地和成本高效地開(kāi)發(fā)采用不同特性組合的FPGA平臺(tái),以適應(yīng)不同應(yīng)用領(lǐng)域的需求。ASMBL 架構(gòu)通過(guò)消除如 I/O 數(shù)量與結(jié)構(gòu)陣列尺寸之間的依賴(lài)關(guān)系等幾何布局約束,突破了傳統(tǒng)設(shè)計(jì)障礙;通過(guò)允許在芯片上隨意放置電源和接地,增強(qiáng)了片上電源和接地分布;并允許異類(lèi)硬 IP 塊獨(dú)立于其他塊和周?chē)Y源進(jìn)行縮放。 b)高級(jí)邏輯:Virtex-4 提供了多達(dá) 200,000 個(gè)邏輯單元,這些邏輯單元具有 500 MHz
36、DCM 數(shù)字時(shí)鐘管理器、PMCD 相位匹配時(shí)鐘分頻器、片上差分時(shí)鐘網(wǎng)絡(luò)、采用集成 FIFO 控制邏輯的 500 MHz SmartRAM 技術(shù)、每個(gè)I/O都集成了ChipSync源同步技術(shù)的 1 Gbps I/O。Virtex-4 比競(jìng)爭(zhēng) FPGA 具有平均 15% 的邏輯性能優(yōu)勢(shì)。 C)高性能 DSP:Virtex-4 提供多達(dá) 512 個(gè) XtremeDSP 切片 (slice),每個(gè)切片可以 500MHz 吞吐率總共 256 GigaMAC/秒 (18x18) 的性能工作,消耗功率僅為 23 毫瓦/MHz。XtremeDSP 切片可配置創(chuàng)建 40 多種不同功能,設(shè)計(jì)人員可通過(guò)將這些切片全
37、速級(jí)聯(lián)來(lái)構(gòu)建高性能濾波器。 D)高性能嵌入式處理:Virtex-4 內(nèi)置多達(dá)兩個(gè) 32 位 RISC PowerPC 處理器,可提供總共 1400+ DMIPS。另外它還包含一個(gè)輔助處理器單元 (APU) 接口控制器,以便通過(guò)擴(kuò)展 PowerPC 指令集、卸載 CPU 操作、直接與硬件加速器連接和優(yōu)化硬件/軟件功能劃分來(lái)加快處理性能。 E)高速串行連接性:Virtex-4 含有多達(dá) 24 個(gè) RocketIO 多千兆位串行收發(fā)器,支持從 622 Mbps 到 10.3125 Gbps 的業(yè)界最寬工作范圍和多速率應(yīng)用,同時(shí)符合最廣泛的芯片到芯片、板到板及機(jī)箱到機(jī)箱連接性標(biāo)準(zhǔn)規(guī)范。 F)低功耗:V
38、irtex-4 每個(gè) FPGA 可比目前市場(chǎng)上銷(xiāo)售的任何競(jìng)爭(zhēng) 90nm FPGA 節(jié)省一到五瓦功耗。得益于最高可達(dá) 73% 的低靜態(tài)功耗和最高可達(dá) 86% 的低動(dòng)態(tài)功耗,設(shè)計(jì)人員可在其功耗預(yù)算內(nèi)進(jìn)一步提升性能。靜態(tài)功耗的降低是通過(guò)我們獨(dú)有的 90nm 三極柵氧化層技術(shù)獲得的,該技術(shù)可在不降低性能的情況下減少泄漏電流。動(dòng)態(tài)功耗的降低是通過(guò)縮小在 90nm 工藝上的晶體管尺寸加上利用高性能、低功耗硬嵌入式 IP以提高門(mén)容量而獲得的。G)信號(hào)完整性:Virtex-4 采用高級(jí)封裝技術(shù),串?dāng)_最小可至競(jìng)爭(zhēng) 90nm FPGA 的七分之一。設(shè)計(jì)人員可以利用這種增強(qiáng)的信號(hào)完整性提高每個(gè)高速應(yīng)用的系統(tǒng)性能,包
39、括通常使用的存儲(chǔ)器接口。串?dāng)_減小是通過(guò)采用新的 SparseChervon 引腳分配模式獲得的,該技術(shù)將接地和電源引腳放置在每個(gè)信號(hào)引腳的鄰近位置以盡最大程度減少電感。同時(shí),Virtex-4 還提供了最佳封裝去耦電容解決方案和連續(xù)電源/地平面。使用Virtex-4平臺(tái)可以完成高級(jí)算法等一系列的工作,這里只完成如下的算法流程,下面僅以偽代碼的形式表述如下:開(kāi)始循環(huán):讀控制碼(mykeyctrl)數(shù)據(jù); 分析數(shù)據(jù)并映射到信號(hào)函數(shù)類(lèi); 準(zhǔn)備信號(hào)生成初始條件值; 生成要顯示的信號(hào)數(shù)據(jù)(一個(gè)顯示時(shí)間段); 輸出到固定 FIFO中,并返回給出標(biāo)記。 由于該平臺(tái)可以配置雙通道, 另外一個(gè)通道配置為:開(kāi)始循環(huán)
40、: 檢測(cè)信號(hào)FIFO標(biāo)記; 按照標(biāo)記和映射初值設(shè)定輸出的時(shí)鐘(分頻); 讀取信號(hào)數(shù)據(jù);輸出信號(hào)時(shí)鐘和信號(hào)數(shù)據(jù); ,程序部分模塊代碼見(jiàn)后面的軟件代碼框架。3DA輸出模塊和平滑濾波放大電路 為了實(shí)現(xiàn)本部分功能,采用了較為常見(jiàn)的8位DAC0830系列芯片模塊作為信號(hào)的輸出。FPGA和DAC0830芯片連接的電路見(jiàn)下圖。3.1.3 FPGA和DAC0830芯片連接的電路DAC0830是8位分辯率的DA轉(zhuǎn)換集成芯片,與微處理器完全兼容。這個(gè)系列的芯片以其價(jià)格低廉、接口簡(jiǎn)單、轉(zhuǎn)換控制容易等優(yōu)點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到了廣泛的應(yīng)用 ,這類(lèi)DA轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、八位DA轉(zhuǎn)換電路及轉(zhuǎn)換控
41、制電路構(gòu)成 。DAC0830系列芯片是一種具有兩個(gè)輸入數(shù)據(jù)寄存器的8位DAC,它能直接與MCS一51單片機(jī)接口,其主要特性參數(shù)如下: 分辨率為8位; 電流穩(wěn)定時(shí)間1us;可單緩沖、雙緩沖或直接數(shù)字輸入;只需在滿(mǎn)量程下調(diào)整其線性度; 單一電源供電(十5V15V); 低功耗,200mW。3.2 軟件設(shè)計(jì)流程圖3.2.1軟件功能塊結(jié)構(gòu)圖3.2.1軟件功能結(jié)構(gòu)圖 上圖是Impulse軟件中系統(tǒng)編譯生成的一個(gè)系統(tǒng)仿真的功能流程圖, 其中Producer是用來(lái)仿真輸入的鍵盤(pán)數(shù)據(jù),MyGenerator 是FPGA芯片的算法功能模塊。 負(fù)責(zé)上面完成上面的兩個(gè)偽代碼循環(huán)。Consumer包含兩部分,一部分是時(shí)
42、鐘分頻,一部分是DA部分。下面是相關(guān)的介紹和結(jié)果。3.2.2信號(hào)生成數(shù)據(jù)輸出流圖信號(hào)生成數(shù)據(jù)輸出流圖 其中consumer是DA芯片:3.2.2信號(hào)生成數(shù)據(jù)圖3.2.3 FPGA處理流圖3.2.3 FPGA處理流圖3.2.4鍵盤(pán)輸入信號(hào)模塊流圖3.2.4鍵盤(pán)輸入信號(hào)模塊流圖3.2.5硬件層代碼部分框架部分/ Generated by Impulse CoDeveloper/ Impulse C is Copyright(c) 2003-2007 Impulse Accelerated Technologies, Inc./ / MySignalGenerator_hw.c: includes
43、the hardware process and configuration/ function./ See additional comments in MySignalGenerator.h./#include "co.h"#include "cosim_log.h"#include "MySignalGenerator.h"/ Software process declarations (see MySignalGenerator_sw.c)extern void Producer(co_stream MykeyCtrl);ex
44、tern void Consumer(co_stream MySignaldata, co_stream MySignalclockCtl);/ This is the hardware process./ void MYGenerator(co_stream MykeyCtrl, co_stream MySignaldata, co_stream MySignalclockCtl)co_int8 nSample;IF_SIM(int samplesread; int sampleswritten;)IF_SIM(cosim_logwindow log;)IF_SIM(log = cosim_
45、logwindow_create("MYGenerator");)do / Hardware processes run foreverIF_SIM(samplesread=0; sampleswritten=0;)co_stream_open(MykeyCtrl, O_RDONLY, INT_TYPE(STREAMWIDTH);co_stream_open(MySignaldata, O_WRONLY, INT_TYPE(STREAMWIDTH);co_stream_open(MySignalclockCtl, O_WRONLY, INT_TYPE(STREAMWIDTH
46、);/ Read values from the streamwhile ( co_stream_read(MykeyCtrl, &nSample, sizeof(co_int8) = co_err_none ) #pragma CO PIPELINEIF_SIM(samplesread+;)/ Sample is now in variable nSample./ Add your processing code here.co_stream_write(MySignaldata, &nSample, sizeof(co_int8);co_stream_write(MySig
47、nalclockCtl, &nSample, sizeof(co_int8);IF_SIM(sampleswritten+;)co_stream_close(MykeyCtrl);co_stream_close(MySignaldata);co_stream_close(MySignalclockCtl);IF_SIM(cosim_logwindow_fwrite(log, "Closing filter process, samples read: %d, samples written: %dn",samplesread, sampleswritten);)IF
48、_SIM(break;)/ Only run once for desktop simulation while(1);/ Impulse C configuration function/void config_MySignalGenerator(void *arg)co_stream MykeyCtrl;co_stream MySignaldata;co_stream MySignalclockCtl;co_process MYGenerator_process;co_process producer_process;co_process consumer_process;IF_SIM(c
49、osim_logwindow_init();)MykeyCtrl = co_stream_create("MykeyCtrl", INT_TYPE(STREAMWIDTH), STREAMDEPTH);MySignaldata = co_stream_create("MySignaldata", INT_TYPE(STREAMWIDTH), STREAMDEPTH);MySignalclockCtl = co_stream_create("MySignalclockCtl", INT_TYPE(STREAMWIDTH), STREAM
50、DEPTH);producer_process = co_process_create("Producer", (co_function)Producer, 1, MykeyCtrl);MYGenerator_process = co_process_create("MYGenerator", (co_function)MYGenerator,3,MykeyCtrl,MySignaldata,MySignalclockCtl);consumer_process = co_process_create("Consumer",(co_fu
51、nction)Consumer, 2, MySignaldata, MySignalclockCtl);co_process_config(MYGenerator_process, co_loc, "pe0"); co_architecture co_initialize(int param)return(co_architecture_create("MySignalGenerator_arch","Generic",config_MySignalGenerator,(void *)param);3.2.6軟件層模塊部分框架部分#i
52、nclude <stdio.h>#include "co.h"#include "cosim_log.h"#include "MySignalGenerator.h"extern co_architecture co_initialize(void *);void Producer(co_stream MykeyCtrl)int c;IF_SIM(cosim_logwindow log = cosim_logwindow_create("Producer");)/ Read sample data fr
53、om a fileconst char * FileName = INPUT_FILE;FILE * inFile;int32 fileValue;co_int8 testValue;inFile = fopen(FileName, "r");if ( inFile = NULL ) fprintf(stderr, "Error opening input file %sn", FileName);c = getc(stdin);exit(-1);/ Now read and write the data.co_stream_open(MykeyCtrl
54、, O_WRONLY, INT_TYPE(STREAMWIDTH);IF_SIM(cosim_logwindow_write(log, "Sending test data.n");)while (1) if (fscanf(inFile,"%d",&fileValue) < 1)break;testValue = fileValue;co_stream_write(MykeyCtrl, &testValue, sizeof(co_int8);IF_SIM(cosim_logwindow_fwrite(log, "Valu
55、e: 0x%xn", testValue);)IF_SIM(cosim_logwindow_write(log, "Finished writing test data.n");)co_stream_close(MykeyCtrl);fclose(inFile);void Consumer(co_stream MySignaldata, co_stream MySignalclockCtl)co_int8 testValue1;co_int8 testValue2;unsigned int count = 0; const char * FileName = OUTPUT_FILE;FILE * outFile;IF_SIM(cosim_logwindow log = cosim_logwindow_create("Consumer");)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司組織健步走活動(dòng)方案
- 公司植樹(shù)節(jié)項(xiàng)目活動(dòng)方案
- 2025年運(yùn)動(dòng)醫(yī)學(xué)職業(yè)資格考試試卷及答案
- 拓展知識(shí)-室外消火栓系統(tǒng)的工作原理
- 2025年心理咨詢(xún)與治療的基礎(chǔ)知能力考試卷及答案
- 2025年小兒醫(yī)學(xué)基礎(chǔ)與臨床技能考試卷及答案
- 2025年心理健康教育考試試卷及答案
- 2025年社會(huì)心理學(xué)基礎(chǔ)知識(shí)考試試卷及答案
- 2025年生物技術(shù)專(zhuān)業(yè)研究生入學(xué)考試試卷及答案
- 2025年企業(yè)培訓(xùn)與發(fā)展專(zhuān)業(yè)畢業(yè)生測(cè)評(píng)試卷及答案
- 云南楚雄州金江能源集團(tuán)有限公司招聘筆試題庫(kù)2025
- 高中生物2015-2024年10年高考真題專(zhuān)題分類(lèi)匯編-專(zhuān)題14體液調(diào)節(jié)考點(diǎn)2激素調(diào)節(jié)的過(guò)程
- 2024年四川省成都市中考地理試卷(含答案與解析)
- 典當(dāng)行內(nèi)部基本管理制度
- 2024年內(nèi)蒙古呼和浩特中考滿(mǎn)分作文《留在記憶里的芬芳》
- GB/T 29456-2025能源管理體系實(shí)施、保持和改進(jìn)GB/T 23331能源管理體系指南
- 北京市清華附小2024-2025學(xué)年數(shù)學(xué)三下期末質(zhì)量檢測(cè)模擬試題含解析
- (2025春新版本)北師大七年級(jí)下冊(cè)生物全冊(cè)教案
- 2025年教科新版五年級(jí)語(yǔ)文下冊(cè)階段測(cè)試試卷
- 《MLCC制程介紹》課件
- 關(guān)于物業(yè)客服培訓(xùn)的
評(píng)論
0/150
提交評(píng)論