• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. wavescan waveforms -> CIW?

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 124
  • Views 3405
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

wavescan waveforms -> CIW?

markbeck
markbeck over 15 years ago

I'm trying to figure out if it's possible to create a key-binding that could be used to dump a group of wavescan waveforms to the CIW.  I know that it's possible to dump waveforms to the calculator, but I've got a bunch of custom skill code routines that work best in the CIW.  

This is for the times that I've copied around waveforms between wavescan windows and I want to do some calulations on them (without having to resort to the calculator).

Optimally, this function would return a list of waveforms to the CIW.  

 I've looked through the awv finder functions, but I can't find anything like this.  It's almost as though wavescan was designed to be one-way only.

Mark

  • Cancel
Parents
  • markbeck
    markbeck over 15 years ago

     So would something like this work?

    procedure( GrabWS()
        let( (w_current
                    l_WNL
                    l_wave
                    l_func
                    x_index
                    t_wave t_expr)
            w_current = awvGetCurrentWindow()       
            l_WNL = awvGetWaveNameList(w_current)
            l_wave = car(l_WNL)
            l_func = cadr(l_WNL)   
            x_index = -1;       
            l_wfm = foreach(mapcar t_wave l_wave
                x_index = x_index + 1
                o_ret = errset(evalstring(nth(x_index l_func)))
                if(o_ret then
                    car(o_ret)
                else
                    sprintf(t_expr "wave_%L()" t_wave)           
                    evalstring(t_expr)
                ); if          
            ); foreach
        );
    ); GrabWS()

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • markbeck
    markbeck over 15 years ago

     So would something like this work?

    procedure( GrabWS()
        let( (w_current
                    l_WNL
                    l_wave
                    l_func
                    x_index
                    t_wave t_expr)
            w_current = awvGetCurrentWindow()       
            l_WNL = awvGetWaveNameList(w_current)
            l_wave = car(l_WNL)
            l_func = cadr(l_WNL)   
            x_index = -1;       
            l_wfm = foreach(mapcar t_wave l_wave
                x_index = x_index + 1
                o_ret = errset(evalstring(nth(x_index l_func)))
                if(o_ret then
                    car(o_ret)
                else
                    sprintf(t_expr "wave_%L()" t_wave)           
                    evalstring(t_expr)
                ); if          
            ); foreach
        );
    ); GrabWS()

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information