Jump to content
    

Своя callback функция в bd.tcl

Доброго дня!

Я прикручиваю bd.tcl к своему кастомному ip. Можно ли в нем помимо стандартных callback'ов, которые дергает вивда при валидации bd, положить свои функции, которые буду дергать я со своего топлевел-bd? Например, передавать по кругу некий list, а каждый инстанс bd_cell добавит в этот list всё, что сочтет нужным. Если абстрактно, то выглядеть должно как-то так:
 

set bdcell_01 [ create_bd_cell -type ip -vlnv <somthing #01> ]
set bdcell_02 [ create_bd_cell -type ip -vlnv <somthing #02> ]

set reglist [list ]
bdcell_01.register reglist
bdcell_02.register reglist
  
foreach item $reglist {
...}

Как этим пользоваться я в полной мере еще не продумал )) Может и не нужно оно вовсе, но пока интересна принципиальная возможность такой техники, можно ли на нее закладываться?

Share this post


Link to post
Share on other sites

Попробовал зайти чере namespace. Добавил вот это в bd.tcl
 

namespace eval ns1 {
  proc my_callback {cell params} {
    puts "**********************"
    puts "$cell Hello from my_callback"
    puts "** params: $params ***"
  }
}

но не прокатило. Видимо bd.tcl в явном виде не сорсится. Или сорсится, но в каком-то отдельном служебном контексте...

Share this post


Link to post
Share on other sites

а, всё нормально, заблудился в namespace'ах

всё, что прописано в bd.tcl, живет в namespace, образованном от vlnv (без разделителей), поэтому надо было или определять namespace eval ::ns1 {} чтобы наследоваться от топа, или сразу обращаться к любой функции в bd.tcl как ${vlnv}::my_func

думаю, на этом всё ))

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...