1、典型FPGA的開發流程
2、FPGA內部資源包括哪些及作用?
1)、輸入輸出單元(IOB)
可編程輸入/輸出單元簡稱 I/O 單元,是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/輸出信號的驅動與匹配要求。
2)、可編程邏輯塊(CLB)
FPGA的基本可編程邏輯單元是由查找表和寄存器組成的,查找表完成純組合邏輯功能。FPGA內部寄存器可配置成觸發器或鎖存器。Altera基本可編程單元LE配置為寄存器加一個查找表。
3)、底層內嵌功能單元(DLL)
內嵌功能模塊主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP 和CPU等軟處理核(Soft Core)。
4)、豐富的布線資源(可編程布線矩陣)
布線資源連通FPGA內部的所有單元,連線的長度和工藝決定着信號在連線上的驅動能力和傳輸速度。可划分為4類不同的類別。第一類是全局布線資源,用於芯片內部全局時鍾和全局復位/置位的布線;第二類是長線資源,用以完成芯片Bank間的高速信號和第二全局時鍾信號的布線;第三類是短線資源,用於完成基本邏輯單元之間的邏輯互連和布線;第四類是分布式的布線資源,用於專有時鍾、復位等控制信號線。
5)、嵌入式塊 RAM(BRAM)
RAM可被配置為單端口RAM、雙端口RAM、內容地址存儲器(CAM)以及FIFO等常用存儲結構。Block RAM由一定數量固定大小的存儲塊構成,使用BRAM不占用額外邏輯資源,並且速度快。
6)、內嵌專用硬核
內嵌專用硬核是相對底層嵌入的軟核而言的,指FPGA處理能力強大的硬核(Hard Core),等效於ASIC電路。為了提高FPGA性能,芯片生產商在芯片內部集成了一些專用的硬核。
3、查找表LUT的原理
查找表(look-up-table)簡稱為LUT,本質上是一個RAM。目前FPGA 中多使用4輸入的LUT,所以每一個LUT可以看成一個有4位地址線的16x1的RAM,多於4輸入邏輯可以使用多個LUT實現。
原理:當用戶通過原理圖或HDL語言描述了一個邏輯電路以后,CPLD/FPGA 開發軟件會自動計算邏輯電路的所有可能的結果,並把結果事先寫入RAM中,每輸入一個信號進行邏輯運算就等於輸入一個地址進行查表,找出地址對應的內容,然后輸出即可。LUT可以配置成內部存儲器,即分布式RAM。
4、FPGA芯片內的存儲器資源是哪些?
FPGA芯片內有兩種存儲器資源:一種叫block ram,另一種是由LUT配置成的內部存儲器(也就是分布式ram)。block ram由一定數量固定大小的存儲塊構成的,使用block ram,不占用額外的邏輯資源,並且速度快。但是使用的時鍾消耗block ram的資源是其大小的整數倍。
FPGA中可以綜合實現為RAM/ROM/CAM的三種資源:BLOCK RAM,查找表,FF觸發器。
(1)在生成ram等存儲單元的時候,應該首選block ram資源;其原因有二:第一:使用block ram等資源,可以節約更多的FF和4_LUT等底層可編寫單元。使用block_ram可以說是不用白不用,最大程度發揮器件效能,節約成本的一種體現;第二:block ram是一種可以配置的硬件結構,其可靠性和速度與用LUT和register構建的存儲器更有優勢。
(2)弄清FPGA的硬件結構,合理使用block ram資源;
(3)分析block ram的容量,高效使用block ram資源
(4)分布式RAM資源(distribute RAM)
5、選擇FPGA時考慮的因素有哪些?
6、FPGA和CPLD的區別?
|
CPLD |
FPGA |
內部結構 |
基於乘積項 |
基於查找表 |
程序存儲 |
內部EEPROM/FLASH |
SRAM,外掛EEPROM |
資源類型 |
組合資源豐富 |
時序資源豐富 |
集成度 |
低 |
高 |
使用場合 |
完成控制邏輯 |
完成比較復雜的算法 |
速度 |
慢 |
快 |
其他資源 |
- |
PLL,RAM和乘法器 |
保密性 |
可加密 |
一般不能保密 |
7、FPGA和ASIC的區別?
FPGA,即現場可編程門陣列,是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。它是當今數字系統設計的主要硬件平台,其主要特點就是完全由用戶通過軟件進行配置和編程,從而完成某種特定的功能,且可以反復擦寫。在修改和升級時,不需額外地改變PCB 電路板,只是在計算機上修改和更新程序,使硬件設計工作成為軟件開發工作,縮短了系統設計的周期,提高了實現的靈活性並降低了成本。
ASIC(Application Specific Integrated Circuit),即專用集成電路,是一種為專門目的而設計的集成電路。是指應特定用戶要求和特定電子系統的需要而設計、制造的集成電路。ASIC的特點是面向特定用戶的需求, ASIC分為全定制和半定制。亮點在於專用,量身定制所以執行速度較快。一句話總結就是,市場上買不到的芯片。水果的A系列處理器就是典型的ASIC。
|
FPGA |
ASIC |
速度 |
慢 |
快 |
個頭 |
實現相同的功能規模需要大 |
實現相同的功能規模需要小 |
功耗 |
功耗大 |
功耗小 |
花費 |
便宜 |
貴 |
定位 |
規模小的 |
規模大的 |
8、FPGA、CPLD、ASIC的區別?
9、以下關於FPGA和ASIC描述正確的是:(ABD)
A、FPGA開發周期相對短
B、相同工藝下,ASIC能跑更快的時鍾
C、FPGA更注重面積的要求。
D、ASIC批量生產時成本相對低
10、根據FPGA和CPLD的特點,分別適用於什么情況?(C)
A、CPLD適用於時序邏輯電路,FPGA適用於組合邏輯電路
B、CPLD適用於邏輯較大的設計,FPGA適用於邏輯規模較小的設計
C、CPLD適用於組合邏輯的設計,FPGA適用於時序邏輯的設計
D、CPLD適用於邏輯規模較小的設計,FPGA適用於邏輯規模較大的設計
11、FPGA通過(查找表)實現組合邏輯,CPLD通過(乘積項)實現組合邏輯。
12、FPGA中,可以綜合實現為RAM的資源包括(ABD)
A、BLOCK RAM B、查找表 C可編程輸入輸出單元(IOB) D、FF觸發器
13、什么是IP核?有哪些分類?
IP核(Intellectual Property core),即知識產權核。
IP核是一段具有特定電路功能的硬件描述語言程序,該程序通常與集成電路工藝無關,可以移植到不同的半導體工藝中去生產集成電路芯片。由於IP核將一些在數字電路中常用,但比較復雜的功能塊設計成可修改參數的模塊,因此FPGA的設計人員可以通過調用相關IP核來完成所需邏輯功能,從而節省了大量的開發時間。調用IP核能避免重復勞動,大大減輕設計人員的負擔,因此使用IP核必然成為將來FPGA設計的一個發展趨勢。
按IP核的硬件描述級實現程序,可將它分為三類:軟核、硬核和固核。
軟核(Soft IP Core) : 軟核在EDA 設計領域指的是綜合之前的寄存器傳輸級(RTL) 模型;具體在FPGA 設計中指的是對電路的硬件語言描述,包括邏輯描述、網表和幫助文檔等。軟核只經過功能仿真,需要經過綜合以及布局布線才能使用。其優點是靈活性高、可移植性強,允許用戶自配置;缺點是對模塊的預測性較低,在后續設計中存在發生錯誤的可能性,有一定的設計風險。軟核是IP 核應用最廣泛的形式。
固核(Firm IP Core) :固核在EDA 設計領域指的是帶有平面規划信息的網表;具體在FPGA 設計中可以看做帶有布局規划的軟核,通常以RTL 代碼和對應具體工藝網表的混合形式提供。將RTL 描述結合具體標准單元庫進行綜合優化設計,形成門級網表,再通過布局布線工具即可使用。和軟核相比,固核的設計靈活性稍差,但在可靠性上有較大提高。 目前,固核也是IP 核的主流形式之一。
硬核 (Hard IP Core) :硬核在EDA 設計領域指經過驗證的設計版圖;具體在FPGA 設計中指布局和工藝固定、經過前端和后端驗證的設計,設計人員不能對其修改。不能修改的原因有兩個:首先是系統設計對各個模塊的時序要求很嚴格,不允許打亂已有的物理版圖;其次是保護知識產權的要求,不允許設計人員對其有任何改動。IP 硬核的不許修改特點使其復用有一定的困難,因此只能用於某些特定應用,使用范圍較窄。
14、IP核和硬件原語有什么區別
硬件原語比較底層,可以針對一個邏輯單元操作,是軟件中集成好的,不需要向調用IP核那樣復雜的過程,可以直接在代碼中調用,當然功能相對比較簡單。而IP核功能比較多,調用時需要設置很多的參數。
15、IP核在EDA技術和開發中具有十分重要的地位,IP分軟IP、固IP、硬IP、下列所描述的IP核中,對於硬IP的正確的描述為(A)
A、其他選項都不是
B、提供用VHDL語言等硬件語言描述功能塊,但不涉及實現該功能塊的具體電路
C、提供設計的最終產品——掩膜
D、以網表的文件的形式提交用戶,完成了綜合的功能塊
16、IP核中用HDL硬件描述語言描述的功能塊,不涉及實現該功能塊的具體電路的IP核為(A)
A 軟IP B 固IP C 硬IP D 全對
17、為什么在FPGA構成的數字系統中要配備PROM或E2PROM?
掉電后數據丟失,每次上電,都要從PROM或E2PROM中調取程序運行。
18、FPGA的下載方式有哪些?
1)主動串行方式(AS)
2)主動並行方式(AP)
3)被動串行方式(PS)
4)JTAG方式
19、FPGA固件燒寫方案有哪些?
第一種:是使用專用的AS接口直接燒寫該配置芯片,該種方式需要在電路板上設置一個獨立的AS接口,占用PCB面積較大,使用起來不方便。
第二種方式,即通過JTAG接口,經過FPGA芯片間接燒寫配置芯片。
20、JTAG鏈路加載信號信號線不包含(C)
A、tck B、tms C、tdelay D、tdi
21、FPGA在燒寫FLASH時可以使用三種不同的文件類型,以下哪一種不是?(B)存疑
A.mcs B.prm C.bin D.hex
22、在EDA工具中,能將硬件描述語言轉化為硬件電路的重要工具為(B)
A、仿真器 B、綜合器 C、適配器 D、下載器
23、你所知道的可編程邏輯器件有哪些?
PAL,PLA,GAL,CPLD,FPGA
24、FPGA常用的電平標准包括(ABCD)
A、LVTTL B、LVCOMS C、LVDS D、ECL
25、以下是XILINX常用FPGA系列支持的電平標准的有哪些?(ABD)
A、TTL B、CMOS C、SSTL D、LVDS
26、TTL電平的輸入高電平即Vh是(A)
A、2.4 B、3.5 C、2 D、1.5 解析:VH=2.4v,VL=0.4V
27、你知道哪些常用的邏輯電平?
常用邏輯電平:TTL、CMOS、LVTTL、LVCMOS、ECL(Emitter Coupled Logic)、
PECL(Pseudo/Positive Emitter Coupled Logic)、LVDS(Low Voltage Differential Signaling)、
GTL(Gunning Transceiver Logic)、BTL(Backplane Transceiver Logic)、ETL(enhanced
transceiver logic)、GTLP(Gunning Transceiver Logic Plus);RS232、RS422、RS485(12V,
5V,3.3V);
也有一種答案是:常用邏輯電平:12V,5V,3.3V。
28、下列屬於FPGA編譯的步驟有(BCE)
A、功能仿真 B、綜合 C、布線 D、燒錄 E、布局
29、以下屬於verilog語法規定的I/O端口類型的是(ACD)
A、輸入端口 B、差分信號端口 C、雙向端口 D、輸出端口
30、什么是邏輯綜合
實現在滿足設計電路的功能,速度及面積等限制條件下將行為級描述轉化為指定的技術序中單元的連接。
31、請解釋xilinx的FPGA專用術語DCM
DCM:提供一個完整的供片內和片外使用的時鍾發生器。DCM使用完全數字延遲技術,允許高精度的控制時鍾的相位和頻率;使用完全的數字反饋系統;可以動態的補償由於溫度和電壓偏移引起的時鍾相位和頻率的偏差。
32、xilinx 推薦高電平復位?
因為 xilinx 器件中,觸發器的復位端都是高電平有效的, 且不可改變,如果你的復位信號低電平有效,那么就要額外增加一個反向器。
33、Xilinx的RAM可例化多種類型,如什么?(ABD)
A、簡單雙口RAM B、單口RAM C、三口RAM D、真雙口RAM
34、用同樣的仿真平台在同樣的編譯環境下,仿真同樣的RTL代碼,下面哪一個仿真耗時最長(A)
A、時序仿真 B、功能仿真 C、邏輯仿真 D、前仿真
35、下面是芯片中有關GPIO的敘述,不正確的是:(A)
A. GPIO一般只具有0態和1態,不具有高阻狀態
B. GPIO的引腳一般是多功能復用的
C. GPIO作為輸出接口時具有鎖存功能
D. GPIO作為輸入接口時具有緩沖功能
36、為什么需要IO電路?
三個作用:電平轉換、加強驅動、ESD保護。
37、ESD電路的概念和作用?
概念:ESD,Elecro Static Discharge,即靜電放電。
作用:保護CMOS電路中的柵氧化層(SiO2),以免被擊穿。
38、FPGA系列的含義?