FPGA技術(shù)及系統(tǒng)設(shè)計(jì)_第1頁(yè)
FPGA技術(shù)及系統(tǒng)設(shè)計(jì)_第2頁(yè)
FPGA技術(shù)及系統(tǒng)設(shè)計(jì)_第3頁(yè)
FPGA技術(shù)及系統(tǒng)設(shè)計(jì)_第4頁(yè)
FPGA技術(shù)及系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩116頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、p基于FPGA的數(shù)字系統(tǒng)概述pFPGA系統(tǒng)的設(shè)計(jì)流程及注意事項(xiàng)pFPGA系統(tǒng)設(shè)計(jì)的基本原則pFPGA設(shè)計(jì)中的時(shí)序分析及異步設(shè)計(jì)注意事項(xiàng)p總結(jié)p后續(xù)討論p設(shè)計(jì)參考(To Be Updated)FPGA 市場(chǎng)占有率最高的兩大公司Xilinx公司和Altera 生產(chǎn)的FPGA 都是基于SRAM 工藝的,需要在使用時(shí)外接一個(gè)片外存儲(chǔ)器以保存程序。上電時(shí),F(xiàn)PGA 將外部存儲(chǔ)器中的數(shù)據(jù)讀入片內(nèi)RAM,完成配置后,進(jìn)入工作狀態(tài);掉電后FPGA 恢復(fù)為白片,內(nèi)部邏輯消失。這樣FPGA 不僅能反復(fù)使用,還無(wú)需專門的FPGA編程器,只需通用的EPROM、PROM 編程器即可。Actel、QuickLogic 等

2、公司還提供反熔絲技術(shù)的FPGA,具有抗輻射、耐高低溫、低功耗和速度快等優(yōu)點(diǎn),在軍品和航空航天領(lǐng)域中應(yīng)用較多,但這種FPGA 不能重復(fù)擦寫,開(kāi)發(fā)初期比較麻煩,費(fèi)用也比較昂貴。Lattice 是ISP 技術(shù)的發(fā)明者,在小規(guī)模PLD 應(yīng)用上有一定的特色。早期的Xilinx公司產(chǎn)品一般不涉及軍品和宇航級(jí)市場(chǎng),但目前已經(jīng)有多款產(chǎn)品進(jìn)入該類領(lǐng)域。高密度FPGAStratix IIIStratix IVCPLDMAX IIMAX III應(yīng)用于高速收發(fā)器的FPGAStratix III GXStratix IV GX結(jié)構(gòu)化ASICHardCopy IIHardCopy 低成本FPGACyclone IICyc

3、lone IIIpVirtex-7 終極系統(tǒng)集成平臺(tái)1. 高性能邏輯單元2. 集成Dual Cortex A9 Core 原型驗(yàn)證平臺(tái) Z7pVirtex-6 1. Virtex-6 LX 高性能邏輯2. Virtex-6 SX 超高性能信號(hào)處理3. Virtex-6 FX 嵌入式處理和串行連接功能pSpantan 3 成本最低的FPGA1. Spantan-3 以IO為核心2. Spantan-3E 以門電路為核心3. Spantan-3L 低功耗pCoolRunner-II 成本最低、功耗最低的CPLD1. CoolRunner-II具有多達(dá)512個(gè)宏單元2. CoolRunner-IIA

4、具有附加的IO組合最小的封裝FPGAFPGAASICASIC適合小批量生產(chǎn)適合中度及大批量生產(chǎn)編程方式可變,靈活設(shè)計(jì)不可變(ECO)NRE(non recurring engineering)費(fèi)用小工具和掩膜版的NRE成本高開(kāi)發(fā)周期短開(kāi)發(fā)周期長(zhǎng)只適合數(shù)字電路設(shè)計(jì)適用于數(shù)字模擬混合信號(hào)電路設(shè)計(jì)功耗大較低功耗和散熱邏輯單元小邏輯單元大片內(nèi)運(yùn)行速度低(受邏輯資源影響明顯)片內(nèi)運(yùn)行速度高(基本不受資源影響)p接口邏輯控制 提供前所未有的靈活性1. ISA、PCI、PCI Express、PS2/UART/I2C/SPI/SDIO、USB2.0/3.0、VGA/HDMI等接口控制器2. SDRAM、DD

5、R SDRAM、QDR SDRAM、NAND Flash、NOR Flash等接口控制器3. 電平轉(zhuǎn)換、LVDS、TTL、CMOS、SSTL等p高速信號(hào)處理(DSP)提供前所未有的計(jì)算力1. 無(wú)線通信領(lǐng)域,如軟件無(wú)線電(SDR)2. 視頻圖像處理領(lǐng)域,如高清數(shù)字電視(HDTV)3. 軍事和航空領(lǐng)域,如雷達(dá)、聲納p其他應(yīng)用領(lǐng)域1. 汽車,如網(wǎng)關(guān)控制器/車用PC,遠(yuǎn)程信息處理系統(tǒng)2. 軍事,如安全通信,雷達(dá)和聲納,衛(wèi)星通信,電子戰(zhàn)3. 測(cè)試和測(cè)量,如通信測(cè)試和監(jiān)測(cè),半導(dǎo)體自動(dòng)測(cè)試設(shè)備,通用儀表儀器4. 消費(fèi)產(chǎn)品,如顯示器/投影儀,數(shù)字電視/機(jī)頂盒,家庭網(wǎng)絡(luò)5. 醫(yī)療,如超聲設(shè)備,生命科學(xué)等6. 通

6、信設(shè)備,如蜂窩基礎(chǔ)設(shè)施,寬帶無(wú)線通信一個(gè)完整的軟件是由程序、數(shù)據(jù)和文檔三部分組成的。在FPGA電路設(shè)計(jì)中,撰寫完善的設(shè)計(jì)文檔是非常重要的。對(duì)于一個(gè)比較復(fù)雜的設(shè)計(jì)來(lái)說(shuō),各個(gè)子單元的功能各不相同,實(shí)現(xiàn)的方法也不一樣,各子單元之間信號(hào)時(shí)序和邏輯關(guān)系也是紛繁復(fù)雜的。因此,在設(shè)計(jì)文檔中對(duì)整個(gè)設(shè)計(jì)進(jìn)行詳細(xì)的描述,可以保證使用者能夠在較短時(shí)間內(nèi)理解和掌握整個(gè)設(shè)計(jì)方案,同時(shí)設(shè)計(jì)人員在對(duì)設(shè)計(jì)進(jìn)行維護(hù)和升級(jí)時(shí),完善的設(shè)計(jì)文檔也是非常有用的。1. 設(shè)計(jì)所要實(shí)現(xiàn)的功能;2. 設(shè)計(jì)所采用的基本思想;3. 整個(gè)設(shè)計(jì)的組織結(jié)構(gòu);4. 各個(gè)子單元的設(shè)計(jì)思路;5. 各個(gè)子單元之間的接口關(guān)系;6. 關(guān)鍵節(jié)點(diǎn)的位置、作用及其測(cè)試波

7、形的描述;7. I/O引腳的名稱、作用及其測(cè)試波形的描述;8. 采用的FPGA器件的型號(hào);9. 片內(nèi)各種資源的使用情況;10. 該設(shè)計(jì)與其它設(shè)計(jì)的接口方式等。在電路描述時(shí),必須摒棄軟件思維方式,一切從硬件的角度去思考代碼的描述;在具體的項(xiàng)目實(shí)踐中,必須先畫好模塊的接口時(shí)序圖,然后畫出或者在腦子中形成模塊內(nèi)部的原理框圖,最后才是代碼實(shí)現(xiàn);企圖一開(kāi)始就依靠“軟件算法”思維進(jìn)行代碼實(shí)現(xiàn),最后才分析時(shí)序和電路圖,是非常不可取的;硬件思維的形成,需要一定的硬件設(shè)計(jì)訓(xùn)練才能達(dá)到,熟練了之后才可能科學(xué)地在初始階段完成模塊劃分和時(shí)序設(shè)計(jì)。 時(shí)序是設(shè)計(jì)出來(lái)的,不是仿出來(lái)的,更不是湊出來(lái)的。 先寫總體設(shè)計(jì)方案和邏

8、輯詳細(xì)設(shè)計(jì)方案l總體方案主要是設(shè)計(jì)模塊劃分,模塊之間的接口信號(hào)和時(shí)序 Logic Design的難點(diǎn)在于系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和仿真驗(yàn)證l提高代碼覆蓋率及測(cè)試覆蓋率 設(shè)計(jì)文檔化l設(shè)計(jì)思路,詳細(xì)實(shí)現(xiàn)等寫入文檔 代碼規(guī)范化所有源文件中都應(yīng)包含頭信息內(nèi)容u作者信息u修改記錄u目標(biāo)描述u可用參數(shù)u復(fù)位機(jī)制和時(shí)鐘u關(guān)鍵時(shí)序、異步接口u測(cè)試方法應(yīng)該有一個(gè)標(biāo)準(zhǔn)模板 順序u每行一個(gè)端口,并準(zhǔn)確注釋;u先列輸入信號(hào),再列輸出信號(hào);u參考順序:時(shí)鐘、復(fù)位、使能、其他控制信號(hào)、地址總線、數(shù)據(jù)總線 合理規(guī)則設(shè)計(jì) 敏感信號(hào)的選取 一個(gè)模塊盡量只用一個(gè)時(shí)鐘 盡量在底層模塊上做出邏輯,在高層盡量做例化,頂層模塊只能做例化,禁止出現(xiàn)任

9、何膠連邏輯(glue logic) 進(jìn)入FPGA的信號(hào)先同步 避免使用Latch 多看RTL門級(jí)電路 多用同步電路,少用異步電路(reset全局異步,本地同步) 多用全局時(shí)鐘,少用門控時(shí)鐘 所有模塊的輸出都要寄存器化,以提高工作頻率,這對(duì)設(shè)計(jì)做到時(shí)序收斂也是極有好處的 避免在端口映射中使用表達(dá)式 數(shù)字系統(tǒng)中,各模塊應(yīng)采?。拇孑斎牒停┘拇孑敵觯瑑?yōu)點(diǎn):u模塊化清晰(特別是寄存輸出);u提高系統(tǒng)最高工作速率;u有利于整個(gè)系統(tǒng)和單個(gè)模塊進(jìn)行靜態(tài)時(shí)序分析。 下載配置方式的選取 供電電壓 VCCINT VCCIO 電源的濾波 空閑I/O的處理 時(shí)鐘的走線 輸出調(diào)試信號(hào) 器件選取 引腳連接uPin to

10、Pin 兼容uI/O引腳上的信號(hào)電壓必須滿足GND V VCCu不用的保留I/O引腳應(yīng)當(dāng)不連接 輸出負(fù)載(大多為阻抗和/或容性) u保證目標(biāo)器件能夠提供負(fù)載所需要的電流和速度u對(duì)于阻抗負(fù)載(如TTL輸入、終端總線和分立的雙極型晶體管),輸出電流的驅(qū)動(dòng)能力決定了最大負(fù)載,同時(shí)能維持必要的輸出電壓,如果不滿足要求,需要使用高電流緩沖器或者分立的電流開(kāi)關(guān)u應(yīng)將器件輸出的負(fù)載電容減至最小,如信號(hào)通路彼此垂直,信號(hào)走線盡量短,一個(gè)源驅(qū)動(dòng)多個(gè)負(fù)載時(shí)使用大電流緩沖器信號(hào)到所有負(fù)載的時(shí)間相等 電源使用uVCC和GND平面u去耦電容 高速PCB板的設(shè)計(jì)u噪聲、信號(hào)反射、地線毛刺u進(jìn)行電源濾波與電源分配u信號(hào)與傳

11、輸線的端接u阻抗匹配和端接電阻u串?dāng)_ 邏輯單元 I/O個(gè)數(shù) 驅(qū)動(dòng)能力 工作環(huán)境 PLL,Buffer_G/R, Clkctrl_mf DSP模塊 RAM大小 硬件乘法器個(gè)數(shù)p乒乓結(jié)構(gòu)和流水線設(shè)計(jì)p異步時(shí)鐘的處理p同步狀態(tài)機(jī)的設(shè)計(jì)p毛刺的消除應(yīng)用于數(shù)據(jù)流控制通過(guò)“輸入數(shù)據(jù)選擇單元”和輸出數(shù)據(jù)選擇單元按節(jié)拍、相互配合的切換,將經(jīng)過(guò)緩沖的數(shù)據(jù)流沒(méi)有停頓地送到“數(shù)據(jù)流運(yùn)算處理模塊”進(jìn)行運(yùn)算與處理。節(jié)約緩沖空間輸入數(shù)據(jù)流通過(guò)“輸入數(shù)據(jù)選擇單元”將數(shù)據(jù)流登時(shí)分配到兩個(gè)數(shù)據(jù)緩沖區(qū),數(shù)據(jù)緩沖模塊可以為任何存儲(chǔ)模塊,比較常用的存儲(chǔ)單元為雙口RAM、單口RAM、FIFO等。以定長(zhǎng)包為單位的處理提高數(shù)據(jù)處理的并行性

12、提高數(shù)據(jù)傳輸速率隔離時(shí)鐘域之間的沖突l66MHz,33MHz,8MHzl雙口RAM與同步器流水線技術(shù)幾乎是最常用的提供系統(tǒng)工作速率的強(qiáng)有力手段;面積換取速度思想的另一種具體體現(xiàn)考慮一個(gè)電路每個(gè)時(shí)鐘周期執(zhí)行N個(gè)操作,工作頻率為F,則可以認(rèn)為系統(tǒng)吞吐量為 N*F ops/sec;Pipeline本質(zhì)上是通過(guò)增加F來(lái)提高吞吐量,達(dá)到Latency和Area的Trade Off;什么決定了最高工作頻率呢?uStatic Timing Analysisu在flip flops之間的最大延時(shí)時(shí)序電路之間的組合電路延時(shí)決定了整個(gè)電路的速度,即最大工作時(shí)鐘頻率,故不可太復(fù)雜最小時(shí)鐘周期:T=Tco + Tde

13、lay + Tsetup最快時(shí)鐘頻率:F=1/T其思想是利用寄存器將一個(gè)長(zhǎng)路徑切分為幾段小路徑,從而達(dá)到提高工作速率的作用。假設(shè)原路徑延時(shí)為t,加入2級(jí)流水線并且假設(shè)路徑分割均勻,則路徑延時(shí)可以減少到約為t/3,從而系統(tǒng)速率可以提高到原來(lái)的3倍左右。當(dāng)然要注意的是輸出同時(shí)會(huì)往后推遲3個(gè)時(shí)鐘周期,所以才用流水線技術(shù)時(shí),要記得進(jìn)行時(shí)序調(diào)整。p乒乓結(jié)構(gòu)和流水線設(shè)計(jì)p異步時(shí)鐘的處理p同步狀態(tài)機(jī)的設(shè)計(jì)p毛刺的消除數(shù)字電路中,時(shí)鐘是整個(gè)電路最重要、最特殊的信號(hào)。第一, 系統(tǒng)內(nèi)大部分器件的動(dòng)作都是在時(shí)鐘的跳變沿上進(jìn)行, 這就要求時(shí)鐘信號(hào)時(shí)延差要非常小, 否則就可能造成時(shí)序邏輯狀態(tài)出錯(cuò).第二, 時(shí)鐘信號(hào)通常是

14、系統(tǒng)中頻率最高的信號(hào).第三, 時(shí)鐘信號(hào)通常是負(fù)載最重的信號(hào), 所以要合理分配負(fù)載。出于這樣的考慮在FPGA這類可編程器件內(nèi)部一般都設(shè)有數(shù)量不等的專門用于系統(tǒng)時(shí)鐘驅(qū)動(dòng)的全局時(shí)鐘網(wǎng)絡(luò)。這類網(wǎng)絡(luò)的特點(diǎn)是:u負(fù)載能力特別強(qiáng), 任何一個(gè)全局時(shí)鐘驅(qū)動(dòng)線都可以驅(qū)動(dòng)芯片內(nèi)部的觸發(fā)器; u時(shí)延差特別小;u時(shí)鐘信號(hào)波形畸變小, 工作可靠性好。 因此, 在FPGA設(shè)計(jì)中最好的時(shí)鐘方案是: 由專用的全局時(shí)鐘輸入引腳驅(qū)動(dòng)單個(gè)主時(shí)鐘去控制設(shè)計(jì)項(xiàng)目中的每一個(gè)觸發(fā)器。同步設(shè)計(jì)時(shí), 全局時(shí)鐘輸入一般都接在器件的時(shí)鐘端, 否則會(huì)使其性能受到影響。 對(duì)于需要多時(shí)鐘的時(shí)序電路, 最好選用一個(gè)頻率是它們的時(shí)鐘頻率公倍數(shù)的高頻主時(shí)鐘。

15、各個(gè)功能模塊要使用統(tǒng)一的復(fù)位電路。在使用帶時(shí)鐘的觸發(fā)器、計(jì)數(shù)器等有復(fù)位端的庫(kù)器件時(shí), 一般應(yīng)盡量使用有同步復(fù)位的器件。注意復(fù)位時(shí)保證各個(gè)器件都能復(fù)位, 以避免某些寄存器的初始狀態(tài)不確定而引起系統(tǒng)工作不可靠。許多系統(tǒng)要求在同一設(shè)計(jì)內(nèi)采用多時(shí)鐘,常見(jiàn)的例子是兩個(gè)異步微處理器之間的接口,或微處理器和異步通信通道的接口。由于兩個(gè)時(shí)鐘信號(hào)之間要求一定的建立和保持時(shí)間,所以上述應(yīng)用引進(jìn)了附加的定時(shí)約束條件,它們會(huì)要求將某些異步信號(hào)同步化。如果一個(gè)系統(tǒng)中存在多個(gè)獨(dú)立(異步)時(shí)鐘,并且存在多時(shí)鐘域(Clock Domain)之間的信號(hào)傳輸,那么電路會(huì)出現(xiàn)亞穩(wěn)態(tài)。出現(xiàn)亞穩(wěn)態(tài)的平均時(shí)間間隔常用“平均無(wú)故障時(shí)間”(

16、MTBF,Mean Time Between Failure)來(lái)表示。單個(gè)觸發(fā)器MTBF為:tr:不引起Synchronizer Failure的前提下,亞穩(wěn)態(tài)可持續(xù)的最長(zhǎng)時(shí)間(MetaStability Resolution Time);和T0:與觸發(fā)器電氣特性有關(guān)的常數(shù);fin:異步輸入信號(hào)的頻率;fclock:起同步作用的觸發(fā)器時(shí)鐘頻率。此外,溫度、電壓、輻射等因素都對(duì)MTBF有影響clockinrffTtMTBF0)/exp(觸發(fā)器時(shí)鐘頻率為10MHz,異步輸入信號(hào)頻率為3KHz:優(yōu)點(diǎn):u實(shí)現(xiàn)簡(jiǎn)單;u成本低缺點(diǎn):u不能完全消除亞穩(wěn)態(tài)u導(dǎo)致延時(shí)增加在許多應(yīng)用中只將異步信號(hào)同步化還是不夠的

17、,當(dāng)系統(tǒng)中有兩個(gè)或兩個(gè)以上的非同源時(shí)鐘的時(shí)候,數(shù)據(jù)的建立和保持時(shí)間很難得到保證,設(shè)計(jì)人員將面臨復(fù)雜的時(shí)間分析問(wèn)題。最好的辦法是將所有的非同源時(shí)鐘同步化。這是就需要使用帶使能端的D觸發(fā)器,并引入一個(gè)高頻時(shí)鐘來(lái)實(shí)現(xiàn)信號(hào)的同步化。這種信號(hào)命名和模塊劃分的方法有如下優(yōu)點(diǎn):有利于檢查信號(hào)通過(guò)的時(shí)鐘域;有利于各模塊進(jìn)行單獨(dú)的靜態(tài)時(shí)序分析;有利于在靜態(tài)時(shí)序分析中快速地設(shè)定false pathu false path:異步信號(hào)穿越時(shí)鐘域時(shí),這些信號(hào)與異步時(shí)鐘之間的相位關(guān)系數(shù)是無(wú)窮的,所以在整個(gè)系統(tǒng)靜態(tài)時(shí)序分析時(shí)必須忽略這些信號(hào)路徑。輸入、輸出的延時(shí)(芯片間、PCB布線、一些驅(qū)動(dòng)接口元件的延時(shí)等)不可測(cè),或者有

18、可能變動(dòng)的條件下,如何完成數(shù)據(jù)同步? 最常用的緩存單元是DPRAM和FIFO,在輸入輸出端口使用上級(jí)時(shí)鐘寫數(shù)據(jù),在輸出端口使用本級(jí)時(shí)鐘讀數(shù)據(jù)。時(shí)鐘的純凈:時(shí)鐘最好不要通過(guò)任何組合電路,或者不要用組合電路產(chǎn)生時(shí)鐘;時(shí)鐘的單一:數(shù)字系統(tǒng)設(shè)計(jì)時(shí),應(yīng)該盡量減少時(shí)鐘的數(shù)目,最好整個(gè)系統(tǒng)只有一個(gè)時(shí)鐘。注意使用同步化電路來(lái)對(duì)異步信號(hào)進(jìn)行同步;采用FIFO方式是解決問(wèn)題的最好辦法,但需要注意FIFO的深度設(shè)定以及FIFO門限的控制;進(jìn)行科學(xué)的模塊劃分和信號(hào)命名;盡量減少握手控制信號(hào)的數(shù)目,以避免同步化造成的信號(hào)拉伸而破壞控制信號(hào)之前的相位關(guān)系;快時(shí)鐘域信號(hào)進(jìn)入慢時(shí)鐘域信號(hào)時(shí),要注意信號(hào)丟失的避免和檢測(cè)。p乒乓

19、結(jié)構(gòu)和流水線設(shè)計(jì)p異步時(shí)鐘的處理p同步狀態(tài)機(jī)的設(shè)計(jì)p毛刺的消除狀態(tài)寄存器由一組觸發(fā)器組成,用來(lái)記憶當(dāng)前狀態(tài);所有觸發(fā)器都連接在一個(gè)時(shí)鐘信號(hào)上;狀態(tài)的改變只在時(shí)鐘沿到來(lái)時(shí)才發(fā)生,由觸發(fā)器類型決定是上升沿還是下降沿;驅(qū)動(dòng)方程決定了狀態(tài)寄的下一個(gè)狀態(tài),驅(qū)動(dòng)方程是輸入信號(hào)和當(dāng)前狀態(tài)的組合函數(shù);狀態(tài)機(jī)的輸出是由輸出函數(shù)得到;它也是當(dāng)前狀態(tài)和輸入信號(hào)的函數(shù);目前一般都采用D觸發(fā)器進(jìn)行狀態(tài)機(jī)的設(shè)計(jì);Moore狀態(tài)機(jī):輸出僅與當(dāng)前狀態(tài)有關(guān);Melay狀態(tài)機(jī):輸出與當(dāng)前狀態(tài)和輸入信號(hào)都有關(guān)。方法一:狀態(tài)轉(zhuǎn)換表方法二:算法流程圖方法與軟件程序的流程圖類似,狀態(tài)轉(zhuǎn)換表和算法流程圖都不適合復(fù)雜系統(tǒng)的設(shè)計(jì)。狀態(tài)轉(zhuǎn)換圖(

20、Moore型)狀態(tài)轉(zhuǎn)換圖(Melay型)What is One HotEach state within the State Machine is represent by ONE BIT,E.g. Four SM: state0,state1,state2,state3 can be represented by 4bit:1000,0100,0010,0001(One Hot).One Hot State MachineMainly gives us performanceBut it consume more logicWhat is Binary State MachineEach s

21、tate within the State Machine is encoded by bits.E.g. Four SM: State0,state1,state2,state3 can be represented by 2bit:00,01,10,11(Binary)Binary State MachineMainly consume less logicBut the performance usually is slowerCan be more than one bit change from state to state( 01- 10) both bits changed.Wh

22、at is Grey Code State MachineEach state within the State Machine is encoded by bits.E.g. Four SM: State0,state1,state2,state3 can be represented by 2bit:00,01,11,10(Gray Code)Gray Code State MachineMainly consume less logicBut the performance usually is slowerONLY one bit change from state to state(

23、01-11) one bit change.由于狀態(tài)機(jī)僅有一個(gè)觸發(fā)器的輸出為,很容易發(fā)現(xiàn)當(dāng)前狀態(tài)是否非法,便于調(diào)試;因?yàn)樗赡軙?huì)占用較多的觸發(fā)器資源,一般情況下,one-hot比較適合具有較多觸發(fā)器資源,而組合邏輯資源較少的器件,如FPGA,但實(shí)際上由于其需要的組合資源較少,它實(shí)際消耗的資源并不比Binary Encode方式多很多。狀態(tài)機(jī)設(shè)計(jì)中,狀態(tài)編碼采用Binary編碼和One-hot編碼對(duì)系統(tǒng)會(huì)造成什么樣的性能影響呢?這兩種編碼對(duì)FPGA/CPLD的適用情況如何?解答:one-hot編碼方式只用一個(gè)bit來(lái)表示一個(gè)狀態(tài),這大大縮小了狀態(tài)譯碼的組合電路規(guī)模,使得路徑延時(shí)更小,因此狀態(tài)機(jī)的

24、時(shí)鐘可以運(yùn)行在更高的頻率上。特例:不妨想象狀態(tài)機(jī)就是一個(gè)循環(huán)計(jì)數(shù)器,如果采用Binary編碼,則該計(jì)數(shù)器存在明顯的組合電路;而如果采用one-hot編碼,該計(jì)數(shù)器的綜合結(jié)果就是一個(gè)移位寄存器序列,根本不存在任何組合門。前面介紹的3種不同編碼方式,體現(xiàn)在具體編程時(shí),只是在狀態(tài)分配時(shí)不一樣,而狀態(tài)機(jī)的功能實(shí)現(xiàn)基本沒(méi)有太多區(qū)別;用case語(yǔ)句來(lái)建立狀態(tài)機(jī)模型,可方便地實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換;Case語(yǔ)句最后,要有最后一個(gè)分支default項(xiàng);狀態(tài)機(jī)應(yīng)該有一個(gè)異步或同步復(fù)位端,以便在通電時(shí),將其復(fù)位到有效狀態(tài);狀態(tài)賦值可通過(guò)parameter或define來(lái)進(jìn)行。異步置位和復(fù)位與時(shí)鐘無(wú)關(guān)需要在敏感信號(hào)列表中加入

25、觸發(fā)條件同步置位和復(fù)位只在時(shí)鐘有效跳變沿到來(lái)時(shí),猜對(duì)狀態(tài)機(jī)進(jìn)行置位和復(fù)位敏感信號(hào)列表中不能列出觸發(fā)條件總結(jié):2個(gè)并行模塊1)Always block:下一狀態(tài)的組合邏輯2)Always block:更新?tīng)顟B(tài)的時(shí)序邏輯p乒乓結(jié)構(gòu)和流水線設(shè)計(jì)p異步時(shí)鐘的處理p同步狀態(tài)機(jī)的設(shè)計(jì)p毛刺的消除信號(hào)在FPGA器件內(nèi)部通過(guò)連線和邏輯單元時(shí),都有一定的延時(shí)。延時(shí)的大小與連線的長(zhǎng)短和邏輯單元的數(shù)目有關(guān),同時(shí)還受器件的制造工藝、工作電壓、溫度等條件的影響。信號(hào)的高低電平轉(zhuǎn)換也需要一定的過(guò)渡時(shí)間。由于存在這兩方面的因素,多路信號(hào)的電平發(fā)生變化時(shí),在信號(hào)變化的瞬間,組合邏輯的輸出狀態(tài)不確定,往往會(huì)出現(xiàn)一些不正確的尖峰

26、信號(hào),這些尖峰信號(hào)稱為“毛刺”。如果一個(gè)組合邏輯電路中有“毛刺”出現(xiàn),就說(shuō)明該電路存在“冒險(xiǎn)”。毛刺產(chǎn)生的機(jī)理競(jìng)爭(zhēng)和冒險(xiǎn)延時(shí)不平衡線間干擾毛刺消除的辦法競(jìng)爭(zhēng)冒險(xiǎn)的避免Gray Coding寄存器消除其他時(shí)序電路中,異步復(fù)位、時(shí)鐘等輸入端出現(xiàn)毛刺時(shí),都會(huì)引起系統(tǒng)的誤操作。毛刺產(chǎn)生的機(jī)理競(jìng)爭(zhēng)和冒險(xiǎn)(可以從邏輯函數(shù)的卡諾圖或邏輯函數(shù)表達(dá)式來(lái)進(jìn)行判斷)導(dǎo)致毛刺。組合延時(shí),布線延時(shí)的不平衡,導(dǎo)致譯碼輸出毛刺。線間的信號(hào)耦合,導(dǎo)致毛刺的產(chǎn)生。競(jìng)爭(zhēng)與冒險(xiǎn)的避免Gray編碼方法計(jì)數(shù)器(狀態(tài)機(jī))電路中,采用Gray編碼可以避免總線上的多個(gè)bit同時(shí)在一個(gè)時(shí)鐘周期內(nèi)翻轉(zhuǎn)而導(dǎo)致毛刺。如上一頁(yè)圖中的計(jì)數(shù)器即可采用這種

27、編碼。(附:Gray碼在任何相鄰的兩組代碼中,僅有一個(gè)數(shù)碼不同)注:Gray碼方法也是降低設(shè)計(jì)功耗的一個(gè)常用手段,因?yàn)樗档土思拇嫫鞯碾娖椒D(zhuǎn)率。采用格雷碼計(jì)數(shù)器、同步電路等,可以大大減少毛刺,但它并不能完全消除毛刺。寄存器消除寄存器的數(shù)據(jù)輸入端和時(shí)鐘使能端對(duì)毛刺不敏感,因此可以利用和來(lái)吸收毛刺信號(hào)。FPGAFPGA設(shè)計(jì)中的時(shí)序分析及異步設(shè)計(jì)中的時(shí)序分析及異步設(shè)計(jì)注意事項(xiàng)設(shè)計(jì)注意事項(xiàng)建立時(shí)間(setup time):是指在觸發(fā)器的時(shí)鐘信號(hào)上升沿到來(lái)以前,數(shù)據(jù)穩(wěn)定不變的時(shí)間,如果建立時(shí)間不夠,數(shù)據(jù)將不能在這個(gè)時(shí)鐘上升沿被打入觸發(fā)器;保持時(shí)間(hold time):是指在觸發(fā)器的時(shí)鐘信號(hào)上升沿到來(lái)

28、以后,數(shù)據(jù)穩(wěn)定不變的時(shí)間, 如果保持時(shí)間不夠,數(shù)據(jù)同樣不能被打入觸發(fā)器。 電路設(shè)計(jì)的難點(diǎn)在時(shí)序設(shè)計(jì),而時(shí)序設(shè)計(jì)的實(shí)質(zhì)就是滿足每一個(gè)觸發(fā)器的建立/保持時(shí)間的要求。 組合邏輯DQDQREG1REG2其它控制信號(hào)CLKCLKCREG1REG2(D)CLK(REG2)REG2(Q)T1T_cycleT1nTTsThTn+1nn+1如上圖,以REG2為例,假定觸發(fā)器的建立時(shí)間要求為:T_setup,保持時(shí)間要求為:T_hold,路徑延時(shí)為:T1,路徑延時(shí)為:T2,路徑延時(shí)為:T3,時(shí)鐘周期為:T_cycle,Ts (T_cycle T)T1,Th T1T,令 T T3T2,則條件1.如果T_setup

29、Ts ,即 T_setup (T_cycle T)T1,這說(shuō)明信號(hào)比時(shí)鐘有效沿超過(guò)T_setup 時(shí)間到達(dá)REG2的D端,滿足建立時(shí)間要求。反之則不滿足;條件2.如果T_hold Th ,即T_hold 0 時(shí),T_hold受影響;當(dāng)T “110100”,由于電路延時(shí)的原因,中間會(huì)出現(xiàn)“110101”狀態(tài),導(dǎo)致計(jì)數(shù)器誤清0。采用同步清0的辦法,不僅可以有效地消除毛刺,而且能避免計(jì)數(shù)器誤清0。電路如下圖所示。QDclk+1=53。CLRN6位二 進(jìn) 制計(jì) 數(shù) 器Q 5: 0圖 4.6QDclk圖4.7+1=526位二進(jìn)制計(jì)數(shù)器Q5:00000004、對(duì)計(jì)數(shù)器的譯碼4位計(jì)數(shù)器譯碼outclkout

30、clk圖4.18對(duì)計(jì)數(shù)器譯碼,可能由于競(jìng)爭(zhēng)冒險(xiǎn)產(chǎn)生毛刺。如果后級(jí)采用了同步電路,我們完全可以對(duì)此不予理會(huì)。如果對(duì)毛刺要求較高,推薦采用Gray編碼(PLD)或One-hot編碼(FPGA)的計(jì)數(shù)器,一般不要采用二進(jìn)制碼.具體描述中,我們可以用狀態(tài)機(jī)來(lái)描述,而利用邏輯綜合工具來(lái)編碼,有經(jīng)驗(yàn)的選手可以自己強(qiáng)制定義狀態(tài)機(jī)的編碼。 QDclk1QDclk2組合邏輯5、多時(shí)鐘的同步化兩個(gè)沒(méi)有相位關(guān)系的時(shí)鐘這樣使用,后級(jí)時(shí)鐘可能不能準(zhǔn)確采樣。改進(jìn)后:用一個(gè)觸發(fā)器做同步化處理,保證后級(jí)時(shí)鐘準(zhǔn)確采樣。QD圖 4.10QD組 合 邏 輯QDclk1clk2QDDLELEQ6、鎖存器鎖存器是較危險(xiǎn)的電路,沒(méi)有確定

31、的初始狀態(tài),輸出隨輸入變化,這意味著毛刺可以通過(guò)鎖存器。若該電路與其它D觸發(fā)器電路相連,則會(huì)影響這些觸發(fā)器的建立保持時(shí)間。除非有專用電路特別需要(其實(shí)總線鎖存之類的功能用373之類的小規(guī)模IC更好),在設(shè)計(jì)內(nèi)部,不要使用鎖存器。QDENADLECLKQ1 、不建議使用組合邏輯時(shí)鐘或門控時(shí)鐘組合邏輯和門控時(shí)鐘很容易產(chǎn)生毛刺,用組合邏輯的輸出作為時(shí)鐘很容易使系統(tǒng)產(chǎn)生誤動(dòng)作。2、 不建議使用行波時(shí)鐘Q0QDQDQDclkQ1Q2行波記數(shù)器雖然原理簡(jiǎn)單,設(shè)計(jì)方便,但級(jí)連時(shí)鐘(行波時(shí)鐘)最容易造成時(shí)鐘偏差(T),級(jí)數(shù)多了,很可能會(huì)影響其控制的觸發(fā)器的建立/保持時(shí)間,使設(shè)計(jì)難度加大。轉(zhuǎn)換的方法是采用同步記

32、數(shù)器,同步計(jì)數(shù)器用原理圖描述可能較難,但用HDL語(yǔ)言很簡(jiǎn)單就可以描述一個(gè)4位計(jì)數(shù)器。3 、盡量避免采用多個(gè)時(shí)鐘,多使用觸發(fā)器的使能端來(lái)解決。在可編程邏輯器件設(shè)計(jì)時(shí),由于時(shí)鐘建立應(yīng)盡量避免采用多時(shí)鐘網(wǎng)絡(luò),或者采用適當(dāng)?shù)拇胧p少時(shí)鐘的個(gè)數(shù),使用頻率低的時(shí)鐘盡量簡(jiǎn)化消除。4、 觸發(fā)器的置/復(fù)位端盡量避免出現(xiàn)毛刺,及自我復(fù)位電路等,最好只用一個(gè)全局復(fù)位信號(hào)。 5、 電路中盡量避免“死循環(huán)”電路,如RS觸發(fā)器等。6 、禁止時(shí)鐘在不同可編程器件中級(jí)連,盡量降低時(shí)鐘到各個(gè)器件時(shí)鐘偏差值。在設(shè)計(jì)時(shí)應(yīng)盡量保證有一全局復(fù)位信號(hào),或保證觸發(fā)器、計(jì)數(shù)器在使用前已經(jīng)正確清零和狀態(tài)機(jī)處于確知的狀態(tài)。 寄存器的清除和置位信

33、號(hào),對(duì)競(jìng)爭(zhēng)條件和冒險(xiǎn)也非常敏感。在設(shè)計(jì)時(shí),應(yīng)盡量直接從器件的專用引腳驅(qū)動(dòng)。另外,要考慮到有些器件上電時(shí),觸發(fā)器處于一種不確定的狀態(tài),系統(tǒng)設(shè)計(jì)時(shí)應(yīng)加入全局復(fù)位/Reset。這樣主復(fù)位引腳就可以給設(shè)計(jì)中的每一個(gè)觸發(fā)器饋送清除或置位信號(hào),保證系統(tǒng)處于一個(gè)確定的初始狀態(tài)。需要注意的一點(diǎn)是:不要對(duì)寄存器的置位和清除端同時(shí)施加不同信號(hào)產(chǎn)生的控制,因?yàn)槿绻霈F(xiàn)兩個(gè)信號(hào)同時(shí)有效的意外情況,會(huì)使寄存器進(jìn)入不定狀態(tài)。(1)時(shí)鐘偏差要加以控制在同步電路里,時(shí)鐘信號(hào)要連接到所有的寄存器,觸發(fā)器以及鎖存器等器件上。這些巨大的負(fù)載就象一個(gè)大電容加在時(shí)鐘線上,再加上時(shí)鐘線本身的分布電容和電阻,這樣時(shí)鐘線就象分布的RC線。由

34、于RC線的延時(shí)是線長(zhǎng)的函數(shù),這樣就使得連到同一根時(shí)鐘線上的時(shí)鐘由于距離時(shí)鐘源的遠(yuǎn)近不一而產(chǎn)生不同的延時(shí)。因而造成了同一時(shí)鐘到達(dá)各個(gè)器件的時(shí)間不一致,使得各個(gè)以時(shí)鐘為基準(zhǔn)器件的動(dòng)作也不一致,而造成時(shí)序上的混亂。這就是同步電路時(shí)鐘偏差。(skew) 要讓同步電路可靠地運(yùn)行,就要對(duì)時(shí)鐘偏差進(jìn)行控制,以使時(shí)鐘偏差減小到可用的范圍。影響時(shí)鐘偏差的主要有以下幾個(gè)因素:1、用于連接時(shí)鐘樹的連線2、時(shí)鐘樹的拓?fù)浣Y(jié)構(gòu)3、時(shí)鐘的驅(qū)動(dòng)4、時(shí)鐘線的負(fù)載5、時(shí)鐘的上升及下降時(shí)間在通常的FPGA設(shè)計(jì)中對(duì)時(shí)鐘偏差的控制主要有以下幾種方法:1、控制時(shí)鐘信號(hào)盡量走可編程器件的的全局時(shí)鐘網(wǎng)絡(luò)。在可編程器件中一般都有專門的時(shí)鐘驅(qū)動(dòng)

35、器及全局時(shí)鐘網(wǎng)絡(luò),不同種類、型號(hào)的可編程器件,它們中的全局時(shí)鐘網(wǎng)絡(luò)數(shù)量不同,因此要根據(jù)不同的設(shè)計(jì)需要選擇含有合適數(shù)量全局時(shí)鐘網(wǎng)絡(luò)的可編程器件。一般來(lái)說(shuō),走全局時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘信號(hào)到各使用端的延時(shí)小,時(shí)鐘偏差很小,基本可以忽略不計(jì)。2、若設(shè)計(jì)中時(shí)鐘信號(hào)數(shù)量很多,無(wú)法讓所有的信號(hào)都走全局時(shí)鐘網(wǎng)絡(luò),那么可以通過(guò)在設(shè)計(jì)中加約束的方法,控制不能走全局時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘信號(hào)的時(shí)鐘偏差。1053、異步接口時(shí)序裕度要足夠大局部同步電路之間接口都可以看成是異步接口,比較典型的是設(shè)計(jì)中的高低頻電路接口、I/O接口,那么接口電路中后一級(jí)觸發(fā)器的建立-保持時(shí)間要滿足要求,時(shí)序裕度要足夠大。4、在系統(tǒng)時(shí)鐘大于30MHz時(shí),設(shè)

36、計(jì)難度有所加大,建議采用流水線等設(shè)計(jì)方法。采用流水線處理方式可以達(dá)到提高時(shí)序電路的速度,但使用的器件資源也成倍增加。5、要保證電路設(shè)計(jì)的理論最高工作頻率大于電路的實(shí)際工作頻率。 數(shù)字系統(tǒng)設(shè)計(jì)應(yīng)該明確如下觀點(diǎn):無(wú)論是ASIC、FPGA還是DSP,都只是一種實(shí)現(xiàn)手段;無(wú)論采用哪種HDL哪種開(kāi)發(fā)工具,都不能單純從語(yǔ)言或工具本身做出評(píng)價(jià);關(guān)鍵是看應(yīng)用環(huán)境,只有選擇最適合于應(yīng)用的實(shí)現(xiàn)方式和工具才是最好的設(shè)計(jì)方案;設(shè)計(jì)應(yīng)該注重硬件設(shè)計(jì)本身,只有先有了良好的設(shè)計(jì),才能有高校的描述和實(shí)現(xiàn)。數(shù)字模擬電路、HDL語(yǔ)言等知識(shí)和實(shí)際經(jīng)驗(yàn)比了解軟件更重要。如何實(shí)現(xiàn)FPGA程序的規(guī)范化,硬件系統(tǒng)的通用化,硬件邏輯的靈活調(diào)

37、用?QuartusII 系統(tǒng)約束分析,時(shí)序約束具體案例分析;QuartusII、ISE調(diào)用Modelsim進(jìn)行功能仿真、時(shí)序仿真,Modelsim庫(kù)基礎(chǔ)及庫(kù)編譯;PCI/PXI FPGA NIOSII 系統(tǒng)的開(kāi)發(fā)及外設(shè)需求。PCI總線存取案例分析,雙端口RAM設(shè)置規(guī)則規(guī)避;PCI控制總線讀寫機(jī)制PCI總線訪問(wèn)機(jī)制, 控制總線是計(jì)算機(jī)通過(guò)PCI總線訪問(wèn)FPGA片內(nèi)資源的通道。PCI接口芯片在控制總線上處于主動(dòng)地位,將計(jì)算機(jī)通過(guò)PCI總線的訪問(wèn)轉(zhuǎn)換為控制總線上對(duì)FPGA的訪問(wèn)。FPGA在控制總線上處于從動(dòng)地位,根據(jù)PCI接口芯片給出的地址和控制信號(hào)吞吐數(shù)據(jù)。信號(hào)信號(hào)方向方向(FPGA)意義意義LA

38、31:2In地址線LBE3:0In字節(jié)使能,(此處無(wú)用)LD31:0inout數(shù)據(jù)線ADSIn地址鎖存信號(hào),低有效LWRIn方向控制,1=寫,0=讀BLASTIn突發(fā)傳輸控制,(此處無(wú)用)READYOut數(shù)據(jù)就緒,低有效,可將其置高來(lái)對(duì)數(shù)據(jù)周期插入等待接口時(shí)序如圖 1和圖 2所示。每次總線讀寫至少包含2個(gè)周期:地址周期和數(shù)據(jù)周期。ADS低表示地址周期,此時(shí)地址應(yīng)該被FPGA鎖存。地址之后緊跟的是數(shù)據(jù)周期,如果是寫,則數(shù)據(jù)應(yīng)在此周期結(jié)束時(shí)被FPGA取走,如過(guò)是讀,則FPGA應(yīng)該在此周期結(jié)束前將數(shù)據(jù)輸出到數(shù)據(jù)線上。圖 1總線寫時(shí)序圖 2總線讀時(shí)序 如果系統(tǒng)中總線讀寫機(jī)制中沒(méi)有插入READY的等待機(jī)

39、制,PCI完成總線讀寫,一般來(lái)說(shuō)就是需要兩個(gè)LOCAL時(shí)鐘周期時(shí)間,所以FPGA端應(yīng)該在此時(shí)間內(nèi)把數(shù)據(jù)放在總線上以方便PCI的讀取。 在實(shí)際調(diào)試中遇到兩種問(wèn)題: 第一種:在FPGA的狀態(tài)機(jī)中由于狀態(tài)機(jī)的變化速度較快,當(dāng)狀態(tài)機(jī)的某一狀態(tài)申請(qǐng)讀取外圍設(shè)備,如RAM時(shí),由于沒(méi)有建立足夠的讀寫時(shí)序,導(dǎo)致數(shù)據(jù)沒(méi)有寫入FPGA內(nèi)的信號(hào)量中,從而由該信號(hào)量控制的脈沖輸出端沒(méi)有輸出信號(hào)。 解決方法,需要注意該狀態(tài)機(jī)所要讀取或?qū)懭朐O(shè)備的時(shí)序,必要時(shí)插入等待來(lái)獲取穩(wěn)定的存取時(shí)序,單純減低采樣時(shí)鐘是無(wú)法解決該問(wèn)題的,在FPGA仿真時(shí),建議將狀態(tài)機(jī)的狀態(tài)標(biāo)志,加入仿真波形,利于方便觀測(cè)狀態(tài)機(jī)翻轉(zhuǎn)時(shí)機(jī)與總線上的變化情況

40、; 第二種:在FPGA內(nèi)部使用MegaWizar生成的dual port RAM,生成時(shí),在數(shù)據(jù)輸入,輸出端口加入了寄存器(Register),輸入加入寄存器,這個(gè)對(duì)時(shí)序的控制比較有好處,數(shù)據(jù)可以穩(wěn)定可靠的寫入DRAM。輸出端口加入寄存器會(huì)導(dǎo)致PCI端產(chǎn)生讀寫機(jī)制時(shí),一般地址總線只會(huì)保持2個(gè)時(shí)鐘周期,由于DRAM輸出端口的寄存器會(huì)導(dǎo)致數(shù)據(jù)在下一個(gè)時(shí)鐘周期才會(huì)有有效數(shù)據(jù)的輸出,而此時(shí)對(duì)于local端讀總線只有一個(gè)時(shí)鐘周期的余量,很有可能導(dǎo)致讀取時(shí)序的建立保持時(shí)間不足夠,最終數(shù)據(jù)讀取失敗。 所以建議解決辦法,一種是針對(duì)這種情況,使用輸出端口無(wú)輸出寄存的DRAM,另一種方法時(shí),適當(dāng)延遲PCI總線的讀取時(shí)間,使讀取時(shí)間拉長(zhǎng)至3-4個(gè)時(shí)鐘周期,使讀寫時(shí)序穩(wěn)定可靠。有寄存器DRAM實(shí)例有寄存器DRAM讀時(shí)序無(wú)寄存器DRAM實(shí)例無(wú)寄存器DRAM讀時(shí)序在設(shè)備調(diào)試時(shí),應(yīng)該注意調(diào)試的方法,故障排查時(shí),應(yīng)該注意排查可能存在問(wèn)題的地方,電路板調(diào)試,F(xiàn)PGA或DSP無(wú)法正常啟動(dòng)、下載程序,首先應(yīng)該用萬(wàn)用表逐一測(cè)量芯片的核心以及外圍電壓是否正確,使用示波器等設(shè)備測(cè)量電源紋波是否異常,對(duì)于有特定上電時(shí)序的芯片,測(cè)量多個(gè)電壓的啟動(dòng)過(guò)程,是否有嚴(yán)格控制Power Good & Enable。電路板

溫馨提示

  • 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)論