fpga中l(wèi)ut和邏輯資源的關(guān)系 fpga與ic的區(qū)別?
fpga與ic的區(qū)別?ic設(shè)計(jì)可可分全定制,半設(shè)計(jì)定制兩種,用FPGA設(shè)計(jì)屬于什么一種半訂制IC設(shè)計(jì)。具體來說,用FPGA設(shè)計(jì)像是不需要決定門極電路以下的問題,而全定制IC設(shè)計(jì)則必須踏入到版圖。門控時(shí)
fpga與ic的區(qū)別?
ic設(shè)計(jì)可可分全定制,半設(shè)計(jì)定制兩種,用FPGA設(shè)計(jì)屬于什么一種半訂制IC設(shè)計(jì)。具體來說,用FPGA設(shè)計(jì)像是不需要決定門極電路以下的問題,而全定制IC設(shè)計(jì)則必須踏入到版圖。
門控時(shí)鐘的應(yīng)用,在fpga中不使用門控時(shí)鐘是太不推薦推薦的一件事情。asic中可是也很贊成可以使用,但是也好像沒什么大關(guān)系
輸出的buffer和門,fpga中只怕沒有這些器件,對(duì)延時(shí)的估計(jì)和門的應(yīng)用還得原先判斷了
memory,fpga和asic中的memory的應(yīng)用有著不大的不同,fpga中有的是內(nèi)置的或是是用lut拼出聲的。asic是用主要注意是廠商定義的,大小更隨意地一些(和有些fpga兩者相比)
atch的使用,fpga中基本是別用latch,asic中就看不需要和電腦設(shè)計(jì)的能力了
dsp或者其他計(jì)算模塊的全局函數(shù)。很多fpga中能提供了dsp,乘法器等等,當(dāng)然了有空間的話也可以不自己寫。asic中基本上都要自己電腦設(shè)計(jì)的。真不知道有沒有廠商提供給這些。
實(shí)現(xiàn)soc的設(shè)計(jì),是對(duì)模擬部分的應(yīng)用,fpga上做數(shù)?;旌显O(shè)計(jì)僅有最多的功能。asic上就再說了。
pll等的時(shí)鐘處理,fpga上也需要提供時(shí)鐘全面處理的dcm,dll,pll等,只不過遠(yuǎn)沒有asic的強(qiáng)大,所以在寫code的時(shí)候?qū)r(shí)鐘就要想好他們的多少
速度的差別,一般來說同時(shí)代碼在兩個(gè)地方實(shí)現(xiàn)方法的速度是完全不同的。在具體應(yīng)用的時(shí)候要注意一點(diǎn)。
乘法電路原理?
主流的數(shù)字乘法器是Booth乘法器,網(wǎng)上有Booth乘法器的HDL電路具體解釋代碼,你也可以去看下它的原理。
簡(jiǎn)單理解就是仿真的筆算中乘數(shù)和被乘數(shù)各為(0,0)、(0,1)、(1,0)、(1,1)這四種情況下運(yùn)算結(jié)果不出來的中間值和規(guī)律,接著遵循乘數(shù)的位置進(jìn)行一定會(huì)次數(shù)的左變形操作,之后分類匯總乘積。
現(xiàn)代CPU目的是系統(tǒng)優(yōu)化,還會(huì)核心中LUT直接輸入表,也就是準(zhǔn)備好把8bit以內(nèi)所有乘數(shù)很有可能的情況(2^8256)計(jì)算不出來然后把存儲(chǔ)在CPU內(nèi)部的一個(gè)普通的ROM里面,要算出的時(shí)候然后查找指定位置上的值是多少,那結(jié)果就是多少。
這個(gè)查看表如果不是相當(dāng)大的情況下,計(jì)算8bit或是16bit以內(nèi)的乘法很有可能只要一個(gè)周期,只不過本質(zhì)上應(yīng)該是LUT查表,LUT表通常非常小所以才尋址和ftp連接速度極快,才能實(shí)現(xiàn)單周期乘法。
也有一種思路是依據(jù)什么FPGA的LogicElement規(guī)格,廠商依據(jù)什么完全不同芯片器件會(huì)制定按的“成本模型”,另外根據(jù)不同的乘數(shù),使用差別的綜合考方案。
或者在數(shù)字電路中如果沒有要計(jì)算出n*6,F(xiàn)PGA綜合考器會(huì)據(jù)目標(biāo)器件的成本模型你選綜合成n2nn這種邏輯單元或則n2n1哪怕更多方案,再說選擇哪種方案,可能會(huì)依據(jù)什么成本模型來改變,也就是算出倒底是(左彎曲變形)十分節(jié)省時(shí)間Logic Element還是-(減法,也就是補(bǔ)碼加法)更加浪費(fèi)LogicElement來你選綜合方案,而通常也是torque比adder的電路面積會(huì)更小,所以我后者方案應(yīng)用一些。