FPGA手工布局的原因、方法、工具和差異_第1頁(yè)
FPGA手工布局的原因、方法、工具和差異_第2頁(yè)
FPGA手工布局的原因、方法、工具和差異_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

FPGA手工布局的原因、方法、工具和差異Q1.為啥要手工布局?

A1.首先人比機(jī)器更聰明,更了解自己設(shè)計(jì)的需求和結(jié)構(gòu)。其次在關(guān)鍵路徑上的手工布局能提高時(shí)序性能,使不滿足要求變成滿足要求。Q2.有沒(méi)有可能整個(gè)設(shè)計(jì)都用手工布局?

A2.從原理上來(lái)說(shuō)是沒(méi)有不可能的,但這是沒(méi)有必要的。我們只要保證最關(guān)鍵的路徑能滿足時(shí)序要求即可。Q3.手工布局牽涉哪些技術(shù)?

A3.RPM-RelativelyPlacedMacros(其實(shí)就是使用RLOC約束限制布局的相對(duì)關(guān)系)

DIRT-DirectedRouting(不僅限制位置,還限制走線)

HardMacro-硬核,記錄所有信息Q4.HardMacro和RPM+DIRT的功能有什么區(qū)別嗎?

A4.RPM位置基于Slice,Slice-basedRPM可以在Slice所有范圍內(nèi)任意布局,不以CLB的位置作為分界。Grid-basedRPM只是加入了BRAM乘法器之類(lèi)的支持,原則上也跟CLB邊界無(wú)關(guān)。而HardMacro只有在完全相同的結(jié)構(gòu)內(nèi)在可以移動(dòng),所以他的邊界至少是CLB,某些時(shí)候還需要考慮BRAM和乘法器的位置。Q5.什么是Slice-basedRPM和Grid-basedRPM?

A5.Slice-based方法為整個(gè)器件內(nèi)的slice設(shè)定坐標(biāo)??瓷先蓚€(gè)相鄰的坐標(biāo)位置實(shí)際上可能中間隔著一個(gè)BRAM。Grid-based則將整個(gè)器件統(tǒng)一編址,坐標(biāo)系統(tǒng)看上去可能在某些地方會(huì)有缺少,但是不會(huì)造成上面提到的那種現(xiàn)象。Q6.什么時(shí)候用Slice-basedRPM,什么時(shí)候又用Grid-basedRPM呢?

A6.如果RPM中包含既有Slice又有乘法器、DSP48、BRAM等器件的時(shí)候,就用Grid。如果RPM中只含有Slice,那么兩種都可以使用,但是用Slice-based更簡(jiǎn)單一點(diǎn),因?yàn)樗腦和Y坐標(biāo)都是逐個(gè)增加的。Q7.有什么工具可以用來(lái)做RPM?

A7.FloorPlanner和PlanAhead都可以生成包含RPM的UCF。我們也可以自己將一些約束添加到VHDL/Verilog中去。RPM規(guī)模較小時(shí),后者更方便。用FPGAEditor生成DIRT約束時(shí),也會(huì)同時(shí)產(chǎn)生相關(guān)路徑RPM的約束。Q8.通常RPM都是多大規(guī)模?

A8.通常RPM只是規(guī)定關(guān)鍵路徑的位置,因此不會(huì)很大。比如3-5個(gè)寄存器之間的位置關(guān)系、BRAM和輸出數(shù)據(jù)的第一級(jí)寄存器的位置關(guān)系等等,這些都不涉及到很多的元件。當(dāng)然FloorPlanner可以把整個(gè)已布局的設(shè)計(jì)都導(dǎo)出成RPM,但個(gè)人以為沒(méi)多大用處。Q9.用FloorPlanner建RPM的流程是什么?

A9.參見(jiàn)Xapp422Q10.用PlanAhead建RPM的流程是什么?

A10.導(dǎo)出Pblock就行。詳細(xì)文檔可以查閱PlanAheadUserGuide。Q11.手動(dòng)寫(xiě)RPM的約束會(huì)很難嗎?

A11.其實(shí)更簡(jiǎn)單更方便。一個(gè)例子:(*RLOC="X1Y2"*)

rege_reg;另一個(gè)例子:(*RLOC="X0Y1"*)

FDCPE#(

.INIT(1'b0)//Initialvalueofregister(1'b0or1'b1)

)FDCPE_a(

.Q(a_reg),//Dataoutput

.C(clk),//Clockinput

.CE(1'b1),//Clockenableinput

.CLR(reset),//Asynchronousclearinput

.D(a),//Datainput

.PRE(1'b0)//Asynchronoussetinput

);Q12.RPM的語(yǔ)法是什么?

A12.最基本的就是RLOC約束的用法。參考ConstraintGuide.Q13.RPM有沒(méi)有什么輔助約束?

A13.RLOC_ORIGIN和RLOC_RANGE可以規(guī)定把某個(gè)RPM放在設(shè)計(jì)中的某個(gè)位置。RPM可以建組(H_SET,U_SET,HU_SET)。幾個(gè)寄存器放在一個(gè)Slice里的時(shí)候,可以用BEL規(guī)定某個(gè)寄存器的位置,甚至還可以用LOCK_PINS約束規(guī)定某個(gè)寄存器IO的位置。這些約束的定義都在ConstraintGuide中。Q14.怎么做DIRT呢?

A14.打開(kāi)FPGAEditor,打開(kāi)布局布線好的ncd文件,選擇Tools-->DirectedRoutingConstraints...,選中關(guān)心的網(wǎng)線,生成UCF或?qū)⒓s束顯示在FPGAEditorConsole中,然后復(fù)制到HDL代碼或UCF中。更詳細(xì)的流程參考ConstraintGuide-->DIRT.Q15.怎么做HardMacro呢?

A15.還是用FPGAEditor。將NCD存成NMC,刪除不關(guān)心的邏輯,包括所有IO。與外部邏輯交互的端口通過(guò)Edit-->AddHardmacroExternalPin添

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論