在激光雷達中,使用FPGA實現TDC時需要手動約束進位鏈的位置。這里簡單記錄下。
在outflow下會生成一個.qplace文件。用于指示布線的各個原語資源的分布位置 。
它的內容主是
是原語的單元名
表示水平位置,對應floorplan.
表示垂直位置 ,對應floorplan.
表示子塊的位置 。目前只DSP24和DSP12可以有子塊。在一個block可以指定多個字塊。
是給block的一個編號,從0開始往下排。
鎖定過程如下:
stp1:并把outflow下面的.qplace文件得到到工程目錄下(可以修改名字也可以不修改,假如我們修改為carrychain.qplace)。把該qplace文件中想要鎖定的block保留,其余可以刪除。
stp2:在工程目錄下建一個efx_pnr_settings.ini文件 。
stp3:在efx_pnr_settings.ini文件中輸入
fix_pins=carrychain_prj.qplace
stp4:重新編譯。
以加法進位鏈為例 ,上面我們生成了一個4級的加法進位鏈。具體約束在哪個位置可以在floorplan中確認位置 。
比如這里我們把它的位置約束到第8列。看下面的語句,第二行是進位鏈的輸入位置用于進入進位鏈,第3,4,5,6依次約束進位鏈的carry_tap[0][x]~FF即可。
之前也有一個疑問是是否應該約束加法器,但是資源列表中并沒有相應的資源,而且經過分析也認為只需要約束寄存器即可。
#block name x y subblk block number
#---------- -- -- ------ ------------
carry_tap[0][0]~FF 8 3 0 #0
carry_tap[0][1]~FF 8 4 0 #1
carry_tap[0][2]~FF 8 5 0 #2
carry_tap[0][3]~FF 8 6 0 #3
tdc[0].carry_chain_inst/CHAIN_GEN[0].genblk1.EFX_ADD_inst 8 2 0 #2605
約束的效果如下:
-
FPGA
+關注
關注
1626文章
21667瀏覽量
601838 -
TDC
+關注
關注
0文章
37瀏覽量
13764 -
進位鏈
+關注
關注
0文章
3瀏覽量
5136
發布評論請先 登錄
相關推薦
評論