采用FPGA實現數字系統_第1頁
采用FPGA實現數字系統_第2頁
采用FPGA實現數字系統_第3頁
采用FPGA實現數字系統_第4頁
采用FPGA實現數字系統_第5頁
已閱讀5頁,還剩58頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

采用FPGA實現數字系統

ImplementingthedigitalsystemusingFPGA乾目錄FPGA簡介為什么采用FPGA開發平臺和設計工具HDL(硬件描述語言)FPGA的設計原則系統設計開發流程坤2FPGA簡介FPGA結構圖屯3FPGA簡介結構組成:可配置邏輯單元(CLB)IO模塊(IOB)Memory資源可編程的互連線(PI)時鐘網絡其他內嵌資源(DSP,CPU等)蒙4目錄FPGA簡介為什么采用FPGA開發平臺和設計工具HDL(硬件描述語言)FPGA的設計原則系統設計開發流程需5為什么采用FPGA高性能,能夠達到以前用ASIC才能實現的性能;并行執行;可以靈活配置,和ASIC相比大大縮短了開發周期;低成本;訟6為什么采用FPGAFPGA和DSP的性能比較師7為什么采用FPGADSP基本是串行的,并行程度有限,但是編程調試要容易許多;FPGA可以在資源允許的前提下,盡量的提高硬件的并行程度,但是面向更低的邏輯層,因此設計和調試都要復雜,尤其是并行程序調試,現在還沒有好的解決方案;DSP易于實現一些復雜的信號處理算法,目前的高端FPGA都集成了DSP核。比8目錄FPGA簡介為什么采用FPGA開發平臺和設計工具HDL(硬件描述語言)FPGA的設計原則系統設計開發流程小畜9開發平臺和設計工具目前主流的FPGA芯片廠家XilinxAlteraActelLattice其他芯片和設計工具的選擇根據應用和設計開發工具進行選擇履10XilinxXC系列用于小規模設計CoolRunner系列屬于CPLDSpartan系列Spartan/Spartan-XLSpartan-IISpartan-IIESpartan-3泰11Spartan-3世界上第一款采用90nm工藝制造的FPGA;

Spartan-3結構否12Slice結構Slice是比CLB更小的邏輯單元,Spartan-II中,每個CLB含有2個Slice,每個Slice又含有2個LUT(查找表)和2個FF(觸發器)。Spartan-II中slice的結構同人13XilinxVirtex系列VirtexVirtex-EVirtex-II和Virtex系列相比,增加了獨立乘法器,而且提高了RAM塊的容量;Virtex-IIPro增加了PowerPC處理器核、RocketIO高速收發器和高性能的時鐘管理單元。大有14Virtex-IIProVirtex-IIPro基本結構XC2VP2-XC2VP1001-2個PPC405核;8-20個RocketIO收發器,最大可達100Gb/s的全雙工數據率;最高8Mb的Memory,同時帶有高速片外內存接口;大量18x18bit乘法器。謙15PowerPC405嵌入式PPC405核的結構圖豫16AlteraMAX/MAXII屬于CPLD的范疇ACEX/FLEX低成本的FPGACyclone中等規模的FPGA隨17AlteraStratix/StratixII高性能FPGA含有DSP模塊大量的片上MemoryMercury/StratixGX帶有高速傳輸接口,用于高性能高速系統設計NOIS軟處理器用Verilog編寫的可編程CPU核,可以集成到其他FPGA中蠱18芯片和平臺的選擇主要還是看應用本身,哪款芯片能夠用最低的成本實現設計所要求的功能,就選擇哪款芯片;成本的概念:不僅僅是這一次設計本身的代價;還應該考慮將來維護和升級的代價。如果客觀上沒有差別,那就根據相應的設計工具進行選擇。臨19設計開發工具Xilinx公司的配套工具:Foundation,界面簡單,比較容易上手,但是功能不夠強大,而且支持較少;ISE,功能十分強大,Xilinx公司推薦的開發軟件,有廣泛的支持;Altera公司的配套工具:Max+PlusII,在國內的應用很廣泛;QuartusII,Altera公司新一代的FPGA開發工具。觀20設計開發工具第三方的開發工具:設計輸入軟件:一般的文本編輯器,如UltraEdit等;圖形化的輸入軟件,如VisualVerilog等;邏輯綜合軟件:通常可以采用配套工具中的綜合軟件,但是有的時候為了得到比較優化的結果,必須采用專業的綜合軟件;比較好的有Synopsys公司的FPGACompilerII(替代原有的FPGAExpress)和Synplicity公司的Synplify系列軟件。噬嗑21設計開發工具第三方的開發工具:仿真軟件:ActiveHDL,界面友好,使用比較簡單;ModelSim,功能強大的仿真軟件,工業界應用廣泛,Xilinx的ISE工具中采用的就是ModelSim的XE版本;Cadence公司NC-Verilog、NC-VHDL和NC-Sim,其中NC-Verilog的前身是著名的Verilog-XL。賁22目錄FPGA簡介為什么采用FPGA開發平臺和設計工具HDL(硬件描述語言)FPGA的設計原則系統設計開發流程剝23HDL目前工業界有兩種主要的標準HDL:VHDL和Verilog。以上兩種語言各有優缺點,但是無論是哪種語言,都存在有一大類為其設計的單元庫,因此絕大部分的仿真工具都支持VHDL和Verilog的混合仿真。作為設計者,雖然需要選擇一種適合的語言,但是對于兩種語言都應該有所了解。復24HDLVHDLVerilogVHDLvs.VerilogSystemCSystemVerilog無妄25VHDLVHDL語言最初由美國軍方開發,于1987年成為IEEE標準,并于1993、2000及2002年進行更新或修訂;目前絕大部分開發工具依據的是1993年的標準,即IEEEStd1076-1993;大畜26VerilogVerilog語言早在上世紀80年代就產生了,但是廣泛發展卻是在Cadence公司購得所有權,并于1990年將語言開放之后;1995年,IEEE將Verilog語言列為標準,為IEEEStd1364-1995,在2001年,新的標準也已產生,即IEEEStd1364-2001。頤27VHDLvs.Verilog建模和抽象能力數據類型易學習性設計的可重用性庫的支持程序的可讀性語言擴展一點建議大過28VHDLvs.Verilog建模和抽象能力兩種語言基本相當;VHDL語言的高層抽象能力要稍微優于Verilog語言,而Verilog對于門級以下的描述要稍優一些;(見下頁圖)因此單從該角度考慮,其決定因素通常不是技術原因,而是個人喜好、是否有合適工具以及市場上是否有相應的庫等外部因素。坎29VHDLvs.VerilogHDL語言的建模能力比較圖離30VHDLvs.Verilog數據類型VHDL含有大量的內置數據類型和用戶自定義類型,這樣的特性對于系統的抽象建模能力有很大的用處,如果你需要豐富的數據類型,那么VHDL將是首選;Verilog的數據類型都由語言本身定義,而且含有專門描述連線等的類型,這說明對于系統的邏輯和物理結構的描述,Verilog將是十分高效的。咸31VHDLvs.Verilog易學習性VHDL顯得不夠直觀,主要是由于:VHDL是強類型的,規則復雜但卻有助于生成高質量的代碼;靈活強大的系統抽象能力;Verilog直接面向硬件結構,因此比較容易起步,但是通常設計者還應該懂得PLI(編程語言接口),實際上Verilog要用好也不是簡單的事情。恒32VHDLvs.Verilog設計的可重用性VHDL具有包(package)的概念,設計模塊的可重用性是十分簡單和自然的;Verilog沒有package的概念,為了使得函數和過程能被多個module重用,函數和過程的定義應該放在單獨的文件中,然后使用`include編譯指令對該文件進行包含(類似于C語言的頭文件)。遯33VHDLvs.Verilog庫的支持VHDL提供了對庫(library)的內置支持,對于管理多個設計工程十分有效;Verilog并沒有庫的概念,只能通過前面提到過的`include指令,這是由于Verilog最初是作為一個解釋性語言而產生的,不過后來為了提高效率,改成了編譯型語言,但是語言設計中仍然有很多解釋性語言的痕跡,當然這也是其容易上手的重要原因。大壯34VHDLvs.Verilog程序的可讀性VHDL脫胎于美國軍方的Ada語言,語言規范十分嚴謹,甚至于繁瑣,但是可讀性卻十分好;Verilog同時具有C和Ada的特點,結構比較靈活,有C語言經驗的人一般選擇Verilog;這主要是程序設計風格的問題,無論選用哪種語言,設計人員都應該注意可讀性!晉35VHDLvs.Verilog語言擴展VHDL提供了稱為’foreign的屬性,允許調用其他語言中的子程序和模塊;Verilog語言提供了用于擴展的PLI機制,可以訪問其他語言(常見的是C)生成的函數等;要特別注意的是,提供擴展雖然是標準定義的,但是具體支持其他哪種語言是各種語言實現定義的,使用擴展功能可能帶來程序的移植性問題,因此這一功能應該慎用。明夷36VHDLvs.Verilog一點建議兩種語言各有千秋,都有各自的支持者,VHDL多用于大學,Verilog常見于工業界;語言的選擇主要還是取決于設計本身和所用工具的支持;工業界(硅谷)多用Verilog,掌握VHDL的不妨考慮一下學習Verilog;尤其是IC設計人員,由于IC廠商基本都用Verilog,因此建議首先學習Verilog語言。家人37SystemC優點整個系統可以采用同一種語言完成,可以應用用于軟硬件協同設計中;適于高層次建模,程序容易寫,代碼少,減少了錯誤的產生,比傳統建模的仿真速度快。缺點來自于軟件語言,對硬件的描述還有待完善;支持的編譯器還有限。目前不推薦學習SystemC睽38SystemVerilog目前由Accellera定義,還未形成IEEE標準屬于Verilog的增強版本,但是融合了Verilog和VHDL以及C語言的特性。蹇39目錄FPGA簡介為什么采用FPGA開發平臺和設計工具HDL(硬件描述語言)FPGA的設計原則系統設計開發流程解40FPGA的設計原則面積和速度的平衡與互換功耗考慮硬件原則系統原則同步設計原則損41面積和速度的平衡與互換面積和速度是數字系統設計考慮的兩個重要指標,FPGA作為快速原型設計和系統驗證的方法,首先就要考慮到這兩個因素直接的平衡問題;面積指某個FPGA設計綜合之后占用的系統資源數,一般用占用的邏輯單元數量及IO接口數量來衡量,這一指標綜合軟件一般都能給出;更小的面積通常代表更低的成本。益42面積和速度的平衡與互換簡單說,速度通常指系統工作的頻率,高頻率常常代表高速度;實際上,進行速度優化不僅僅是簡單提高頻率,而是要仔細考慮系統各個模塊在各種工作狀態下的時序要求;另外可以通過并行操作提高速度;在一定的工藝條件下,面積和速度常常是一對矛盾,因此需要考慮面積和速度的轉換問題。夬43面積和速度的平衡與互換面積換速度將原本復用的模塊進行復制,變為并行操作的模塊,以犧牲面積來換取速度;很多被復用的模塊都是具有邏輯承接或時間先后關系的,無法直接并行化;需要修改硬件設計,重新對模塊做規劃。姤44面積和速度的平衡與互換萃45面積和速度的平衡與互換速度換面積和利用面積換速度正好相反,把并行模塊進行復用,以節省面積;邏輯上更為簡單,理論上,只要用足夠的存儲器,總能把并行的功能相同的模塊進行復用;但是要優化好存儲器的管理,節省存儲器,工作也并不簡單。升46功耗考慮主要考慮動態功耗:動態功耗和邏輯翻轉變化的頻率成正比;設計時要考慮盡可能不要讓所有的單元同時翻轉,避免引起過大的功耗;例如,對于狀態機的狀態分配,之所以采用Gray碼,另一個重要原因就是為了降低功耗;編碼設計在互連線傳輸時尤其重要。困47硬件原則用HDL描述硬件進行數字系統,首先應該考慮的是硬件的實現;程序的可讀性,必須以硬件實現為前提;HDL描述的是硬件的結構和各個模塊之間的連接關系,在設計前應對硬件本身有清晰的了解,然后用適當的HDL進行描述;注意C和Verilog的區別。井48系統原則數字系統設計應該從宏觀和系統全局的角度進行考慮;例如對于模塊等的復用和合理組織所得到的效果遠比對于小部分代碼的反復推敲大;對系統進行劃分,哪些適于用FPGA實現,哪些適于用DSP、CPU等實現;一般來說,頻率要求高,實時性要求高的模塊適合用FPGA實現。革49系統原則設計前應對所用FPGA的底層硬件資源有所了解:底層可編程硬件單元Xilinx的為SliceAltera的為LEBlockRAM單元布線資源可配置IO單元時鐘資源鼎50同步設計原則在目前的條件下,采用異步電路設計并不理想,而現在的FPGA芯片都是為同步電路設計優化的;單純從IC設計角度看,同步電路比異步電路更加消耗資源;但是,FPGA使用的資源是事先提供的底層可編程硬件單元(FF用以實現同步時序電路,而LUT可以實現異步電路)。震51同步設計原則從資源考慮,關鍵要優化兩種資源的比例;另外,同步時序電路具有沒有毛刺、信號穩定等優點;同步時序電路中延時的產生;同步時序電路中輸入的同步;艮52目錄FPGA簡介為什么采用FPGA開發平臺和設計工具HDL(硬件描述語言)FPGA的設計原則系統設計開發流程漸53系統設計開發流程系統功能定義和邏輯功能劃分設計的整體規劃設計實現功能仿真時序驗證邏輯綜合布局布線物理驗證歸妹54系統功能定義和邏輯功能劃分系統功能的總體規劃:功能集的定義;端口的定義;模塊的基本劃分和功能定義:每個模塊應該完成的功能;模塊之間的接口定義;模塊間通訊的問題一定要考慮好,硬件通信的成本一般比較大。豐55設計的整體規劃設計規模的初步估計,大致應該選擇哪一層次的芯片;設計時序的宏觀規劃:頻率和時鐘結構;可能的關鍵路徑,著重優化;模塊的進一步細化,考慮可重用性等的規劃:可以考慮基本單元,比如加法、乘法器和寄存器等。旅56設計實現用電路框圖或者HDL描述實現自己的設計:簡單的設計可以用電路框圖;大型復雜的一般傾向于用HDL描述;HDL描述和計算機編程中的高級語言描述有很大不同,每一個描述都要考慮硬件的實現能力,是不是可以綜合的等等,目前HDL語言標準中仍然有不能被綜合的語法,這些要尤其注意。巽57功能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論