Vivado使用技巧(4):查詢功能詳解
本文將介紹Vivado提供的兩種查詢功能的使用方法:
- Find in Files/Replace in Files:即通常意義上的查詢/替換功能,在檔案中搜尋指定字串;
- Find:在匯入了一個設計之後,用於查詢該設計或器件中的物件。
Find in Files/Replace in Files
這兩個功能用法相似,以Find in Files為例。在文字編輯器視窗中右鍵->Find in Files,開啟視窗如下:
Options中設定了一些查詢方式。選中“匹配大小寫”會忽視字串的大小寫;在不勾選“匹配整個單詞”時,查詢clk會搜尋到類似於clk_50M之類的字串,只希望搜尋完整單詞的匹配項需要勾選此項。此外還提供了對正規表示式的支援。
Scope中設定查詢的檔案範圍(設計檔案、約束檔案、模擬檔案)。如果選中“Open in a new tab”,Vivado會建立一個新的Find in Files視窗顯示結果;否則會重新整理已經存在的Find in Files視窗。查詢結果在Vivado IDE的下方:
Find
相比之下,Find使用情況比較複雜,主要是需要對Xilinx FPGA內部的資源、硬體結構等知識具有一定的瞭解。使用Find需要先開啟一個設計(Open Elaborated Design、Open Synthesized Design或Open Implemented Design),Find功能會在開啟的設計和器件中查詢指定的物件。
點選Edit->Find開啟視窗如下:
- Result name:查詢結果視窗的名稱;
- Find:設定查詢物件的型別;
- Properties:規定查詢設計或器件物件時使用的Tcl屬性;
- Regular expression:使用正規表示式查詢,選中“Ignore case“會忽視字母大小寫;
- Search hierarchically:按照整個設計層次搜尋;
- Of Objects:點選“…“設定搜尋特定的物件;
- Command:展示用於執行搜尋的Tcl命令,與上面設定有關;
- Open in a new tab:選中Vivado會建立一個新的Find視窗顯示結果;否則會重新整理已經存在的Find視窗。
Find功能用於幫助我們分析和修改已經完成的設計,查詢其中的指定物件。下面給出在ug893中的幾個例項來幫助理解Find功能的使用(開啟實現後設計)。
1.查詢未佈局的BUFG
在Tcl屬性中,PRIMITIVE_TYPE設定原語型別為BUFG,點選‘+‘新增一行STATUS設定狀態為UNPLACED(未佈局)。對應的Tcl命令如下:
show_objects -name find_1 [get_cells -hierarchical -filter { PRIMITIVE_TYPE == CLK.GCLK.BUFG && STATUS == "UNPLACED" } ]
可見Tcl中使用get_*命令來設定查詢屬性的,需要注意該命令在查詢結果超過500個時,會自動截止。
2.查詢沒有匯入的區域性時鐘
區域性時鐘屬於佈線資源,因此將Find物件設定為Nets。在Tcl屬性中,TYPE設定為REGIONAL_CLOCK,點選‘+‘新增一行ROUTE_STATUS設定佈線狀態為NOLOADS。對應的Tcl命令如下:
show_objects -name find_1 [get_nets -hierarchical -top_net_of_hierarchical_group -filter { TYPE == "REGIONAL_CLOCK" && ROUTE_STATUS == "NOLOADS" } ]
3.查詢已佈局的RAMB36單元
RAMB36包含RAM單元,將Find物件設定為Sites。在Tcl屬性中,SITE_TYPE設定為RAMB36E1,點選‘+‘新增一行IS_USED設定使用狀態為true。對應的Tcl命令如下:
show_objects -name find_1 [get_sites -filter { SITE_TYPE == "RAMB36E1" && IS_USED == "TRUE" } ]
4.查詢特定的物件(Object)
比如要查詢SLICE_X7Y120單元,點選Of Object後的“…”,按上圖設定即可。對應的Tcl命令如下:
[get_sites -filter { NAME =~ "*SLICE_X7Y120*" } ]
該命令會新增到搜尋的Tcl命令中。如搜尋含該指定物件的BEL,設定為:
對應的Tcl命令為:
show_objects -name find_1 [get_bels -filter { IS_USED == "TRUE" } -of_objects [get_sites -filter { NAME =~ "*SLICE_X7Y120*" } ]]
5.查詢黑盒(Black Box)單元
Tcl屬性中將IS_BLACKBOX設定為true。對應的Tcl命令如下:
show_objects -name find_1 [get_cells -hierarchical -filter { IS_BLACKBOX == "TRUE" } ]
相關文章
- Vivado使用技巧(20):Waveform功能詳解ORM
- Vivado使用技巧(14):IO規劃方法詳解
- Vivado使用技巧(29):約束功能概述
- Vivado使用技巧(18):模擬功能概述
- Vivado使用技巧(19):使用Vivado Simulator
- Vivado使用技巧(3):Force Up-to-Date功能
- MyBatis使用四(查詢詳解)MyBatis
- Vivado使用技巧(15):DRC設計規則檢查
- Vivado使用技巧(27):RAM編寫技巧
- Vivado使用技巧(26):HDL編寫技巧
- Vivado使用技巧(17):建立IBIS模型模型
- PostgreSQL 原始碼解讀(19)- 查詢語句#4(ParseTree詳解)SQL原始碼
- DNS 查詢原理詳解DNS
- Vivado使用技巧(6):Messages視窗管理
- Vivado使用技巧(33):時序異常
- Vivado使用技巧(25):Block Synthesis技術BloC
- Python實現天氣查詢功能(外加Excel技巧)PythonExcel
- Vivado使用技巧(9):COE檔案使用方法
- rails的介面查詢詳解AI
- 詳解二分查詢
- 詳解MySQL--慢查詢MySql
- oracle連線查詢詳解Oracle
- 詳解css媒體查詢CSS
- Vivado使用技巧(11):設定FPGA配置模式FPGA模式
- Vivado使用技巧(8):Core Container打包IP核AI
- Vivado使用技巧(34):路徑分割現象
- Vivado使用技巧(28):支援的Verilog語法
- 如何使用SQL查詢檢視,Postico使用技巧分享~SQL
- Vivado使用技巧(5):屬性編輯器的使用
- Vivado使用技巧(30):使用時序約束嚮導
- 20、聯表查詢JoinON詳解
- 30個MySQL千萬級大資料SQL查詢最佳化技巧詳解MySql大資料
- Vivado使用技巧(16):SSN轉換噪聲分析
- Vivado使用技巧(31):時鐘的約束方法
- Vivado使用技巧(23):綜合執行與OOC
- Vivado使用技巧(21):模擬中的Debug特性
- PostgreSQL 原始碼解讀(20)- 查詢語句#5(查詢樹Query詳解)SQL原始碼
- MySQL 連線查詢超全詳解MySql