<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è) > 嵌入式系統 > 設計應用 > 我學(xué)習FPGA的總結

我學(xué)習FPGA的總結

作者: 時(shí)間:2011-02-28 來(lái)源:網(wǎng)絡(luò ) 收藏
閱讀本文的人群:熟悉數字電路基本知識(如加法器、計數器、RAM等),熟悉基本的同步電路設計方法,熟悉HDL語(yǔ)言,對的結構有所了解,對設計流程比較了解。

一.序 言

1.的好處

設計工程師不在需要畫(huà)繁瑣的原理圖PCB連線(xiàn),從而將工作重心轉移到功能實(shí)現上,極大地提高了工作效;隨著(zhù)HDL(Hardware Description Language)硬件描述語(yǔ)言語(yǔ)言綜合工具及其它相關(guān)工具的推廣已經(jīng)加大的FPGA的應用普及。

2.工程師們在使用FPGA時(shí)的一些壞習慣

任何事務(wù)都是一分為二的,有利就有弊。

我們發(fā)現現在越來(lái)越多的工程師不關(guān)心自己的電路實(shí)現形式,以為“我只要將功能描述正確,其它事情交給工具就行了”。

在這種思想影響下,工程師在用HDL語(yǔ)言描述電路時(shí),腦袋里沒(méi)有任何電路概念,或者非常模糊;也不清楚自己寫(xiě)的代碼綜合出來(lái)之后是什么樣子,映射到芯片中又會(huì )是什么樣子,有沒(méi)有充分利用到FPGA的一些特殊資源。遇到問(wèn)題,首先想到的是換速度更快、容量更大的FPGA器件,導致物料成本上升;更為要命的是,由于不了解器件結構,更不了解與器件結構緊密相關(guān)的設計技巧,過(guò)分依賴(lài)綜合等工具,工具不行,自己也就束手無(wú)策,導致問(wèn)題遲遲不能解決,從而嚴重影響開(kāi)發(fā)周期,導致開(kāi)發(fā)成本急劇上升。

3.學(xué)好FPGA應該要具備的知識

目前,我們的設計規模越來(lái)越龐大,動(dòng)輒上百萬(wàn)門(mén)、幾百萬(wàn)門(mén)的電路屢見(jiàn)不鮮。同時(shí)我們所采用的器件工藝越來(lái)越先進(jìn),已經(jīng)步入深亞微米時(shí)代。而在對待深亞微米的器件上,我們的設計方法將不可避免地發(fā)生變化,要更多地關(guān)注以前很少關(guān)注的線(xiàn)延時(shí)(我相信,ASIC設計以后也會(huì )如此)。

如果我們不在設計方法、設計技巧上有所提高,是無(wú)法面對這些龐大的基于深亞微米技術(shù)的電路設計。而且,現在的競爭越來(lái)越激勵,從節約公司成本角度出發(fā),也要求我們盡可能在比較小的器件里完成比較多的功能。

二.談?wù)凢PGA的工具幾個(gè)關(guān)鍵問(wèn)題

4.關(guān)于我們對FPGA工具過(guò)分依賴(lài)的問(wèn)題認識

硬件描述語(yǔ)言和綜合工具的產(chǎn)生,極大地提高了工程師的工作效率。然而,隨著(zhù)它們的普及與推廣,一種不好的現象也在逐步蔓延;在設計過(guò)程中,只關(guān)注功能是否實(shí)現,而不考慮或很少考慮電路到底是如何實(shí)現的;過(guò)分依賴(lài)綜合等工具來(lái)提高設計性能(如速度、面積等),而不是從設計本身來(lái)考慮自己的電路是否最佳。

如果將設計看成是一個(gè)化學(xué)變化,那么工具只是起到催化劑的作用,我們所掌握的背景知識、電路設計方法及有關(guān)技巧,才是參加化學(xué)反應的分子,是起決定作用的因素。

因此,設計遇到困難時(shí),不能完全指望工具,更不能怪罪工具。只有我們才是決定設計成敗的關(guān)鍵。

5.不管使用何種綜合工具,都包括兩個(gè)過(guò)程

過(guò)程1:是把行為級的描述通過(guò)一定的算法轉化為門(mén)級的描述,該過(guò)程與設計的工藝庫無(wú)關(guān)、與用戶(hù)約束無(wú)關(guān)。

過(guò)程2:是把已經(jīng)轉化的門(mén)級描述在用戶(hù)的約束下,通過(guò)算法映射到相應的工藝庫中的器件上。對ASIC,是映射到廠(chǎng)商的Gate庫中,對FPGA,是映射到FPGA器件的單元結構中。

從上兩個(gè)步驟可知,當設計代碼的的風(fēng)格不一樣時(shí),則在綜合第一步就已大部分決定了設計的性能(對ASIC來(lái)說(shuō),因為是轉成Gate, 器件庫一般也是Gate, 相對影響較少)因此,我們不難理解代碼風(fēng)格對FPGA設計的重要性。

6.說(shuō)說(shuō)具體的綜合工具性能

不同綜合工具的針對目標不一致和各綜合工具的不同性能,導致了綜合出來(lái)的結果也不同。

目前,綜合工具主要有DC(Design Compiler)、FC2(FPGA Compiler II)、Synplify、Leonardo、Galileo 等綜合工具:
1)DC:主要是用于A(yíng)SIC的綜合工具
2)FC2:是DC在FPGA綜合方面的增強版
3)Leonardo:是做FPGA綜合工具的先驅
4)Synplify:是目前成長(cháng)最快的綜合工具(由Synplicity公司出品)

無(wú)論哪家綜合工具,對FPGA的綜合,都必須緊密結合各FPGA廠(chǎng)家的FPGA結構,否則無(wú)法更好利用FPGA提供的優(yōu)點(diǎn);從目前來(lái)看,優(yōu)選Synplify或Leonardo綜合工具;DA的FPGA綜合性能差但事宜ASIC綜合。
到目前為止第三方的綜合工具都未能很好利用FPGA器件,因為代碼風(fēng)格沒(méi)有跟上,導致無(wú)法得到很好的性能。


7.邏輯代碼風(fēng)格的重要性
因為綜合工具無(wú)法最大使用到器件所提供的優(yōu)越性能,導致最終的產(chǎn)品性能變差;若想得到更好的性能,這要求在FPGA設計上,最好對一些設計采用一些Core(但這種基于FPGA器件(特有工藝)的代碼設計,將降低設計代碼的重用性能、以及FPGA設計與ASIC設計的兼容性)。

8.舉例:以Xilinx為例,我們怎樣采取恰當的代碼風(fēng)格,以提高電路性能:
1) 資源共享的應用限制在同一個(gè)module里。這樣,綜合工具才能最大限度地發(fā)揮其資源共享綜合作用。
2) 盡可能將Critical path上所有相關(guān)邏輯放在同一個(gè)module里。這樣,綜合工具能夠發(fā)揮其最佳綜合效果。
3) Critical path所在的module與其它module分別綜合,對critial path采用速度優(yōu)先的綜合策略,對其它module采用面積優(yōu)先的綜合策略。
4) 盡可能Register所有的Output。做到這一點(diǎn),對加約束比較方便;同時(shí)一條路徑上的組合邏輯不可能分散在各個(gè)module里,這對綜合非常有利??梢员容^方便地達到面,積速度雙贏(yíng)的目的。
5) 一個(gè)module的size不能太大。具體大小,由各綜合工具而定。
6) 一個(gè)module盡量只有一個(gè)時(shí)鐘,或者整個(gè)設計只有一個(gè)時(shí)鐘。



linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(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>