Giter VIP home page Giter VIP logo

skillbridge's People

Contributors

curtisma avatar jdhan avatar jnnagel avatar nielsbuwen avatar tm90 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

skillbridge's Issues

Use the correct python version when starting the python server

When virtuoso starts the python server we know the path to python_server.py and we also know that this file is inside the site-packages directory of a python installation. Maybe we can find out the correct python executable that belongs to this installation.

This removes the need to use a virtual environment.

Tidy up a little bit

Some things should be removed:

  • unused features (for loop on Skill side)
  • function calls still create variables (unnecessary)
  • horrible type hinting for Skill types

Skill function alias

There are skill function alias which are not dumped at the moment:

Example:

getCurrentWindow <-> hiGetCurrentWindow

pyStartServer ?timeout nil returns error

I was seeing a timeout error when I stay connected to the server and run some operations for a few hours. So I decided to set a longer timeout period by pyStartServer ?timeout nil. But virtuoso returns this error

*Error* ilGetString: arg must be symbol or string - nil

I tried the command mentioned in the documentation pyStartServer ?timeout 10.5 which also returns the same error.

*Error* ilGetString: arg must be symbol or string - 10.5

sending 10.5 as string "10.5" returns

pyStartServer ?timeout "10.5" t error "usage: /......./lib/python3.6/site-packages/skillbridge/server/python_server.py\n [-h] [--notify] [--single]\n socket {DEBUG,WARNING,INFO,ERROR,CRITICAL,FATAL}\n/tmp/mhasan13-lws54/anaconda3/envs/brian/lib/python3.6/site-packages/skillbridge/server/python_server.py: error: argument log_level: invalid choice: '10.5' (choose from 'DEBUG', 'WARNING', 'INFO', 'ERROR', 'CRITICAL', 'FATAL')\n" server was stopped with code 2

What is the correct way to set timeout to some value or nil?

Use GitHub Actions instead of Travis

Why

  • Better integration into GitHub
  • No need for passing passwords around
  • Plugins for all tasks
    • Sphinx deploy
    • PyPi deploy
  • Seems to be more responsive, i.e. Workflows trigger faster

Remove the pure Python Parser

The C Parser should compile on all normal Linux systems. It doesn't make sense to keep the Python implamentation any longer.

CLI script for ease of use

Maybe we need a CLI script as a replacement to the __main__.py script for users that are not familiar with Python.

E.g.

skillbridge
# should print the path to the server
# should print if the functions have been dumped
# should print if the static completion stubs have been generated

skillbridge generate
# should generate the static completion stubs

Other commands could include

  • finding all running python server (and killing them)

Add yes flag to skillbridge import

Allow overwrite of already existing definitions in skillbridge import via a yes flag.
This would be useful in automated environments.

Additional global mapping for prefixes:

cds ipc hdb pcdb tx ciw dds dmb dm de deo lbui env nr dl dag gdm nmp ccp lmgr ps tech tc cds dr ann he hsm opc lm cpf ci cci cpf cst imp vhdl conn pte tpa bnd lce ncl soi vfo abs icc cpfe rte rde adp adpnl vfp vpa ap gpe lob mg idf lo odc cph ct we drd mpt abe pc xpc vsa elec ead vdr asi nl ans hnl art apa drpl amse ann ahdl alm anc dr fam msp sev cdf aed relx axl verif awv arm cal adt rdb vv viva ael auLvs par ams ael fnl ocnxl sim ise hnl vos vhms po pi xst pipo xoasis xoas ldtr edi edifin edif edifout

pyStartServer exits with error code 1

I used pip install skillbirdge. Then in Virtuoso CIW ran load("path\to\python_server.il") and pyDumpFunctionDefinitions "<install>".
After that on the same CIW, when I run pyStartServer I get
error "python: can't open file '/path/to/lib/python3.6/site-packages/skillbridge/server/python_server.ipy': [Errno 2] No such file or directory\n" server was stopped with code 2

I thought I needed to close Virtuoso and run the two commands again. But when I did that I got this.
error " File \"/path/to/lib/python3.6/site-packages/skillbridge/server/python_server.py\", line 21\n def send_to_skill(data: str) -> None:\n ^\nSyntaxError: invalid syntax\n" server was stopped with code 1

Am I missing anything? Isn't "Open the Skill console in Virtuoso and type" the same thing as "typing in Virtuoso CIW" ?
python version 3.6
virtuoso 6.1.7

Improve path handling in skill

Currently all the path handling is done with strcat and substr. We must find a more robust way to manipulate the paths we use inside the skill server.

E.g. load("path-to-server.il ") should work even if there are too many spaces.

Update documentation

  • pyDumpFunctionDefinitions "" in Sphinx (is already present)
  • pip install skillbridge in Readme
  • Getting Started separate Examples
  • Add how-to update package in Installation

No static function completion in IDEs

There is no static completion for skill functions in IDEs:

Typing ws.db.<TAB> should print all db functions. That list is known, it is inside the definitions.txt.

With new function dump

db.check() is missing dbCheck skill function is not extracted.

We should revert to the old dump method

how to make OCEAN functions availble for use in python?

I was trying to get OCEAN functions like simulator, modelFile, resultsDir etc available to python through skillbridge. I modified the listFunctions function argument as "[a-z]" in the python_server.il file so that it includes every kind of SKILL functions when I run pyDumpFunctionDefinitions.

However I don't know how to use those the newly added OCEAN functions (like simulator).
I could not get those functions through ws = Workspace.open() then ws.simulator.

Does skillbridge has the functionality to use OCEAN functions?

Windows Support

Some Cadence tools on Windows also use a built in Skill interpreter (Allegro).

For the Windows support, we need a new Channel implementation, because currently we use TCP Unix Domain Sockets.

Windows has the SIO_LOOPBACK_FAST_PATH option since Windows 7. This looks like a viable alternative.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.