TCL中關于Pins的一些使用方法?

      網友投稿 636 2025-03-31

      前言


      Ports,Pins,Cells,nets以及clock都是FPGA中模塊的關鍵組成部分,地位差不多,tcl中對它們的操作也大同小異。

      給出前幾篇文章列表,便于查詢:

      邏輯設計中復位的穩妥處理方法?

      邏輯設計中需要顯式地使用IBUF以及OBUF類似的原語嗎?

      TCL中關于管腳(Ports)的一些使用方法?

      正文

      為了不來回翻閱,這里還是得貼出一張圖:

      何為pins?一目了然!

      從這張圖中也可以看出,pins是分模塊的,不想ports永遠都是頂層模塊的。

      既然如此,獲得的pins也一定是指出屬于哪個模塊的pins等。

      以Xilinx的wavegen示例工程為例,我們如何獲取內部各個模塊的pins?

      模塊規劃如下(這個圖確實漂亮,我們自己設計模塊的時候,如果要寫文檔,可以借鑒下,并沒有太多花里胡哨的顏色,卻又相對直觀):

      獲取模塊中的所有pins :get_pins

      當然,這各并不實用,因為FPGA中模塊太多了(一般來說),那么pins也很多,不易觀看。

      這里列出部分結果:

      get_pins ... IBUF_rst_i0/O IBUF_rst_i0/I IBUF_rxd_i0/O IBUF_rxd_i0/I OBUF_dac_clr_n/O OBUF_dac_clr_n/I OBUF_dac_cs_n/O ... clk_gen_i0/Q[10] clk_gen_i0/Q[11] clk_gen_i0/Q[12] clk_gen_i0/Q[13] clk_gen_i0/Q[14] clk_gen_i0/Q[15] ...

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      獲取包含特定字符的PIN:

      get_pins -hier -filter {NAME =~ *uart_tx*} # 此處省略大多數pin,太多不利于觀看 uart_tx_i0/clk_tx uart_tx_i0/dout[0] uart_tx_i0/dout[1] uart_tx_i0/dout[2] # ......

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      獲取時鐘pin:

      get_pins -hier -filter {IS_CLOCK == 1} # 此處省略很多pin char_fifo_i0/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_cdc_inst/dest_graysync_ff_reg[0][0]/C char_fifo_i0/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_cdc_inst/dest_graysync_ff_reg[0][1]/C

      1

      2

      3

      4

      5

      6

      可見,寄存器的C端即時鐘端。

      獲取輸入pins:

      get_pins -filter {DIRECTION == IN} IBUF_rst_i0/I IBUF_rxd_i0/I OBUF_dac_clr_n/I OBUF_dac_cs_n/I OBUF_led_i0/I OBUF_led_i1/I

      1

      2

      3

      4

      5

      6

      獲取輸出pins:

      get_pins -filter {DIRECTION == OUT} IBUF_rst_i0/O IBUF_rxd_i0/O OBUF_dac_clr_n/O OBUF_dac_cs_n/O OBUF_led_i0/O OBUF_led_i1/O OBUF_led_i2/O

      1

      2

      獲取pin的屬性

      上面我們獲得了時鐘的pins,我們看看這個時鐘PIN的屬性:

      上面獲取的時鐘:

      get_pins char_fifo_i0/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_cdc_inst/dest_graysync_ff_reg[0][0]/C

      1

      2

      set inst [get_pins char_fifo_i0/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_cdc_inst/dest_graysync_ff_reg[0][0]/C ]

      1

      TCL中關于Pins的一些使用方法?

      char_fifo_i0/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_cdc_inst/dest_graysync_ff_reg[0][0]/C

      report_property $inst

      1

      Property Type Read-only Value CLASS string true pin DIRECTION enum true IN HD.ASSIGNED_PPLOCS string* true HOLD_SLACK double true needs timing update*** IS_CLEAR bool true 0 IS_CLOCK bool true 1 IS_CONNECTED bool true 1 IS_ENABLE bool true 0 IS_INVERTED bool false 0 IS_LEAF bool true 1 IS_ORIG_PIN bool true 1 IS_PRESET bool true 0 IS_RESET bool true 0 IS_REUSED bool true 0 IS_SET bool true 0 IS_SETRESET bool true 0 IS_TIED bool true 0 IS_WRITE_ENABLE bool true 0 LOGIC_VALUE string true needs timing update*** NAME string true char_fifo_i0/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_cdc_inst/dest_graysync_ff_reg[0][0]/C PARENT_CELL cell true char_fifo_i0/U0/inst_fifo_gen/gconvfifo.rf/grf.rf/gntv_or_sync_fifo.gcx.clkx/rd_pntr_cdc_inst/dest_graysync_ff_reg[0][0] REF_NAME string true FDRE REF_PIN_NAME string true C SETUP_SLACK double true needs timing update***

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      注意,這里的操作完全是仿照獲取ports屬性的操作。

      結尾

      總結起來無非就是get_pins加上一些條件,篩選自己需要的一些pins。

      也許,這些看起來沒有什么用,但其實用途也不在要實實在在,非要用這些東西,我想更大的用于在于了解這一類元素(Ports,Pins,Cells,nets以及clock)的規律,能夠加深對模塊的理解,它總會有作用的。

      例如在看時序報告時,內部器件以及走線延遲,都是這種形式,一眼就知道,有一種熟悉感,有利于我們理解這些之外的內容,例如整體的認識,時序的計算,不至于看了報告,還沒來得及分析,就被這一大串的pins,nets給整懵了。

      FPGA

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:關于塑料扎帶生產制造中影響因素的探討
      下一篇:2018 Google i/O大會Android技術總結
      相關文章
      久久精品国产亚洲一区二区三区| 亚洲人成国产精品无码| 国产成A人亚洲精V品无码| 亚洲视频在线免费| 亚洲国产精品综合久久一线| WWW国产亚洲精品久久麻豆| 精品无码专区亚洲| 小说专区亚洲春色校园| 国产成人亚洲精品播放器下载| 337p日本欧洲亚洲大胆人人| 亚洲AV女人18毛片水真多| 亚洲国产精品无码久久| 亚洲成a∧人片在线观看无码| 亚洲hairy多毛pics大全| 久久亚洲中文字幕无码| 亚洲国产主播精品极品网红| 亚洲伊人久久成综合人影院| 亚洲线精品一区二区三区| 亚洲成av人在线视| 亚洲一二成人精品区| 91亚洲一区二区在线观看不卡 | 久久久青草青青国产亚洲免观 | 国产成人亚洲综合在线| 亚洲AV中文无码乱人伦| 国产亚洲av片在线观看18女人| 久久91亚洲人成电影网站| 亚洲视频在线观看免费| 亚洲同性男gay网站在线观看| 亚洲AV无码精品蜜桃| 亚洲国产成人精品无码区二本 | 911精品国产亚洲日本美国韩国| 亚洲成人免费在线观看| 国产人成亚洲第一网站在线播放| 亚洲日本一线产区和二线| 在线看亚洲十八禁网站| 在线观看亚洲精品国产| 亚洲精品国产成人99久久| 亚洲av永久无码精品天堂久久| 国内精品久久久久影院亚洲| 在线观看亚洲免费视频| 亚洲乱码一区二区三区在线观看 |