by yang
最近準(zhǔn)備數(shù)字IC崗時(shí)復(fù)習(xí)整理的知識(shí)點(diǎn),參考了比較火的fpga面試題寓免,和一些相關(guān)知識(shí)癣诱。主要是寫(xiě)著自己看著方便的,有很多不嚴(yán)謹(jǐn)?shù)牡胤酵嘞悖行┑胤接袇⒖兼溄铀河瑁切┎┛蛯?xiě)的都很好。
Part.1
FPGA原理
1:FPGA和CPLD的區(qū)別蜈首?
2:FPGA的構(gòu)成实抡?查找表LUT的原理與結(jié)構(gòu)?
3:FPGA設(shè)計(jì)流程:★
4:FPGA芯片內(nèi)存儲(chǔ)器資源欢策?
5:FPGA上電配置方式
1:FPGA和CPLD的區(qū)別吆寨?
FPGA是可編程ASIC。ASIC:專(zhuān)用集成電路踩寇,為專(zhuān)門(mén)用途定制
CPLD | FPGA | |
---|---|---|
內(nèi)部結(jié)構(gòu) | Product-term 乘積項(xiàng) | Look-up Table 查找表 |
程序存儲(chǔ) | 內(nèi)部EEPROM | SRAM啄清,外掛EEPROM |
資源類(lèi)型 | 組合電路資源豐富 | 觸發(fā)器資源豐富 |
使用場(chǎng)合 | 算法和組合邏輯 | 時(shí)序邏輯 |
速度 | 慢 | 快 |
其他資源 | - | PLL、RAM和乘法器等 |
保密 | 可加密 | 一般不能保密 |
CPLD這種基于乘積項(xiàng)(實(shí)際就是與或陣列)的PLD基本都是由EEPROM和Flash工藝制造的俺孙,一上電就可以工作辣卒,無(wú)需其他芯片配合掷贾。布線方式是全局的,所以延時(shí)可預(yù)測(cè)添寺。CPLD適合做邏輯設(shè)計(jì)胯盯。而SRAM工藝的FPGA是易失的,因?yàn)樗鼈兪腔?SRAM 工藝的计露,掉電丟失配置博脑。
2:FPGA的構(gòu)成?查找表LUT的原理與結(jié)構(gòu)票罐?
Spartan-6中每個(gè)slice包括4個(gè)LUT叉趣,8個(gè)FF,和其他邏輯该押。具體了解slice結(jié)構(gòu)有助于coding充分利用資源。
查找表(look-up-table)簡(jiǎn)稱(chēng)為L(zhǎng)UT蚕礼,LUT本質(zhì)上就是一個(gè)RAM烟具。如果FPGA中使用4輸入的LUT,那每一個(gè)LUT可以看成一個(gè)有4位地址線的16x1的RAM奠蹬。這也是為什么FPGA需要外接一個(gè)ROM來(lái)上電配置朝聋。 當(dāng)用戶(hù)通過(guò)原理圖或HDL語(yǔ)言描述了一個(gè)邏輯電路以后,F(xiàn)PGA開(kāi)發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能的結(jié)果囤躁,并把結(jié)果事先寫(xiě)入RAM,這樣冀痕,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容狸演,然后輸出即可言蛇。
3:FPGA設(shè)計(jì)流程:★
- 功能定義,器件選型
- 設(shè)計(jì)輸入
- 功能仿真(前仿真) ModelSim
- 綜合優(yōu)化
- 布線
- 時(shí)序仿真(后仿真)
4:FPGA芯片內(nèi)存儲(chǔ)器資源宵距?
FPGA芯片內(nèi)有兩種存儲(chǔ)器資源:一種叫block ram,另一種是由LUT配置成的內(nèi)部存儲(chǔ)器(也就是分布式ram)腊尚。
Block ram由一定數(shù)量固定大小的存儲(chǔ)塊構(gòu)成的,使用BLOCK RAM資源不占用額外的邏輯資源满哪,并且速度快婿斥。但是使用的時(shí)候消耗的BLOCK RAM資源是其塊大小的整數(shù)倍。
- FPGA中可以綜合實(shí)現(xiàn)為RAM/ROM/CAM的三種資源:block ram ;觸發(fā)器(FF)翩瓜,查找表(LUT)受扳;
注意事項(xiàng):
1:在生成RAM等存儲(chǔ)單元時(shí)携龟,應(yīng)該首選block ram 資源兔跌;其原因有二: 第一:使用block ram等資源,可以節(jié)約更多的FF和4-LUT等底層可編程單元峡蟋。使用block ram可以說(shuō)是“不用白不用”坟桅,是最大程度發(fā)揮器件效能华望,節(jié)約成本的一種體現(xiàn); 第二:block ram是一種可以配置的硬件結(jié)構(gòu)仅乓,其可靠性和速度與用LUT和register構(gòu)建的存儲(chǔ)器更有優(yōu)勢(shì)赖舟。
2:弄清FPGA的硬件結(jié)構(gòu),合理使用block ram資源夸楣;
3:分析block ram容量宾抓,高效使用block ram資源;
4:分布式ram資源(distribute ram)
5:FPGA上電配置方式
上電——>清空寄存器——>根據(jù)M[1:0]電平設(shè)置載入模式——> 配置同步 ——> 啟動(dòng)序列 ——>CRC校驗(yàn) ——> 載入配置文件 ——> 檢測(cè)器件ID
JTAG 邊界掃描模式 4線
JTAG 引腳:測(cè)試數(shù)據(jù)輸入(TDI)模式選擇(TMS)和測(cè)試時(shí)鐘(TCK)豫喧,TDO輸出石洗。在這種模式下,每個(gè) TCK 載入一個(gè)比特的數(shù)據(jù)紧显。JTAG時(shí)鐘頻率—TCK 最高是 33 MHz讲衫。
TMS、TCK 和 TDI 引腳在缺省的情形下都提供了內(nèi)部的可編程的弱上拉孵班。TDO 是浮空的涉兽。從并模式
主串模式
Master Serial
SPI FLASH
從串模式 好像區(qū)別在于是不是自己的時(shí)鐘CCLK驅(qū)動(dòng)
PROM配置:bit文件 iMPACT轉(zhuǎn)mcs,寫(xiě)入PROM篙程。
上電里面核心電壓VCCINT
先啟動(dòng)枷畏,然后是IO電壓,房午,載入模式確定之后進(jìn)行識(shí)別和載入配置文件矿辽,需要考慮上電時(shí)IO電壓為弱上拉,要加入上下拉電阻郭厌,改變器件加電順序等來(lái)盡量避免或減少FPGA配置時(shí)對(duì)電路其他器件的影響袋倔。載入成功后還會(huì)校驗(yàn)。
配置E2prom eletric eraser program
IIC總線折柠,要上拉宾娜,上電后寫(xiě)一個(gè)數(shù)據(jù)到 EEPROM 的地址 0, 再讀出地址 0 的內(nèi)容。這里我們寫(xiě)的數(shù)據(jù)是 0x12, 用戶(hù)可以自行修改扇售。