一張圖看懂cell, pin, net, port

  • 2019 年 10 月 31 日
  • 筆記

Tcl(Tool CommandLanguage)是IC業界標準程式語言。Xilinx將其集成於Vivado中,使得Vivado如虎添翼。通常,凡是藉助圖形介面可實現的操作都有其對應的Tcl腳本;相反,藉助Tcl腳本實現更複雜、更深入的分析或操作是圖形介面方式無法實現的。

就Vivado而言,採用Tcl腳本時(本質上,XDC是Tcl的一個子集)需要明確操作對象。這裡介紹幾個最基本的操作對象:cell, pin, net和port。如下圖所示。

從圖中不難看出,cell就是基本的模組,可以是Verilog中的module或VHDL中的entity,或者綜合後的更細粒度的邏輯單元,比如觸發器(Flip Flop)、查找表(LUT)、進位鏈(Carry chain)。每個cell都有自己的pin,pin是有方向的。cell之間通過net相連。頂層設計中,需要給輸入/輸出埠(port)分配管腳(package pin),這裡就體現了pin與port的區別。package pin必然位於IO bank之中。

那麼是不是只有頂層設計才有port呢?其實port和pin是相對的,例如:描述約束時,指定該約束文件的作用域(SCOPED_TO_CELLS或SCOPED_TO_REF)是某個cell,此時就可以把這個cell當作頂層來看待,這時就要把cell的輸入/輸出埠當作port來處理。