Commit Graph

205 Commits

Author SHA1 Message Date
Damien Dupuis 98b82520a3 new missing file : driveSpice.cpp
adding Python examples driveSpice.py and parseSpice.py
2011-05-10 14:26:58 +00:00
Damien Dupuis d8e82643e6 Adding Boost::Python wrapping 2011-05-10 14:25:49 +00:00
Damien Dupuis 80dd17bbef New OTA_miller.spi example file.
With working prase & drive c++ examples.

    Next step : Python examples
2011-05-10 11:10:34 +00:00
Damien Dupuis 6476d1492c Several changes to correctly parse & drive current spice example. 2011-05-10 11:09:56 +00:00
Damien Dupuis 37252175ed A very simple "drive what I have parsed" example (C++ only): usual examples will follow 2011-05-06 09:25:32 +00:00
Damien Dupuis 2f17ce7b37 Adding spice parser/driver (only database right now, examples code will follow)
Supported grammar is :
    .INCLUDE
    .LIB
    .PARAM
    .OPTION
    .SUBCKT
    Xxxx
    Rxxx
    Cxxx
    Ixxx
    Vxxx

    Mxxx and Dxxx are on the todo list
2011-05-06 09:21:01 +00:00
Damien Dupuis 66d376fecc The correction commited yesterday is not a good solution : we're going to explore why link fails on 64bits
Minor warning correction at compilation (no virtual destructor in DTR::Rule)
2011-04-12 08:33:44 +00:00
The Coriolis Project 9996064f13 In order to compile on sl5 64 bits : we need to suppress libboost_python from Boost_LIBRARIES !
(I don't get why it perfectly works on sl5 32 bits and mac osx)
2011-04-11 14:24:37 +00:00
Damien Dupuis a46c121d75 Problem of files' names generated on mac osx (case insensitive)
-> no more uppercase in pages' names
2011-04-04 11:19:04 +00:00
Damien Dupuis 4a5656041e Adding the OpenChams documentation (at last !)
Minor changes/corrections is other documentations.
2011-03-25 13:08:53 +00:00
Damien Dupuis d89ebe3b4e OpenChams:
symmetry becomes orientation and now supports symmetries AND rotations.
  
  There are 8 possible orientations:
    ID  (identity)
    R1 (rotate 90° Counter Clock wise)
    R2 (symX and symY)
    R3 (rotate 90° Clock Wise)
    MX (symX)
    XR (symX then rotate 90° Counter Clock Wise)
    MY (symY)
    YR (symY then rotate 90° Counter Clock Wise)

These orientations exactly copy Hurricane::Transformation::Orientation
2011-03-10 10:42:30 +00:00
Jean-Paul Chaput 9f8de0144d Forgot this one. 2011-02-25 09:14:54 +00:00
Jean-Paul Chaput 86d5f4e94f Bug: Now should read detect correctly needrestart/mustexist. 2011-02-24 15:37:50 +00:00
Jean-Paul Chaput 61328d9c4c * ./vlsisapd:
- New: In TabDescription, add an "id" field, to be used for filtering
        by the file drivers.
    - New: in LayoutDescription::writeToStream(), adds a filtering over
        the tabs id (same fonctionality as for the parameters).
    - New: PyConfiguration extension, build using boost::python.
        Not finished yet.
    - Bug: In LayoutDescription::buildWidget(), when the parameter associated
        to a widget is not found, to not try to adds it. Print a nice error
        message and do not core dump...
2011-02-22 13:31:47 +00:00
Damien Dupuis 360e8d5348 Adding support for Port and Wire objects in openChams paser / driver.
Examples have been (partially) updated.
2011-02-15 13:57:39 +00:00
The Coriolis Project 7abcd87d96 PYTHON libraries missing for linking.
lineno not renamed in scanner.
2011-02-09 16:42:59 +00:00
Jean-Paul Chaput f5cedcdece * <All Tools>/CMakeLists.txt:
- Change: Added versioning to library.
2011-02-02 22:48:30 +00:00
Jean-Paul Chaput 9eb7b14bc5 * <All Tools>/CMakeLists.txt:
- Bug: During the packaging stage, DESTDIR must be appended to the
        pathes prepended to CMAKE_MODULE_PATH.
2011-02-02 10:43:02 +00:00
Damien Dupuis edd711dd9b Thanks to the help of Jean-Paul may python installation is alive !
- Updated Boost.Python port for OpenChams

  - Updated drive & aprse examples in Python
2010-11-22 14:44:27 +00:00
Damien Dupuis ec97d7f369 Thanks to the help of Jean-Paul may python installation is alive !
- Updated Boost.Python port for OpenChams

  - Updated drive & aprse examples in Python
2010-11-22 14:44:17 +00:00
Damien Dupuis 501ac35b2b !! Adding support for subCircuits !!!
* New <subCircuitsPathes> section in <circuit> that lists the pathes that contain subCircuits xml files

    * New Device object that inherits from simplified Instance object.
        - Instance has a name, a model, some connectors and optionnal parameters
        - Device has the same attributes plus mosType, sourceBulkConnected and transistors

    * Updated readFromFile and wrtieToFile methods to support these modifications

    * Updated parse and drive examples to support these modifications
        - Note: only C++ examples has been updated since my boost.python environment is actually totaly broken

    * New buffer.xml example that uses subCircuits.
2010-11-22 10:22:04 +00:00
Damien Dupuis 5887a0b59f !! Adding support for subCircuits !!!
* New <subCircuitsPathes> section in <circuit> that lists the pathes that contain subCircuits xml files

    * New Device object that inherits from simplified Instance object.
        - Instance has a name, a model, some connectors and optionnal parameters
        - Device has the same attributes plus mosType, sourceBulkConnected and transistors

    * Updated readFromFile and wrtieToFile methods to support these modifications

    * Updated parse and drive examples to support these modifications
        - Note: only C++ examples has been updated since my boost.python environment is actually totaly broken

    * New buffer.xml example that uses subCircuits.
2010-11-22 10:21:52 +00:00
Damien Dupuis 3c2062bdd0 Version property for tehcnology tag is not mandatory. 2010-11-18 15:13:56 +00:00
Damien Dupuis 928b3a0a2a Updated examples 2010-11-17 15:39:03 +00:00
Damien Dupuis 48407432c9 New version attribute in Techno object (it is parsed and drived)
Recently adds have been adjusted in PyDtr.py

    Examples have been updated (c++ is tested, python fails on my Mac due to a strange python2.6.6 behavior I have to check this)
2010-11-17 15:09:59 +00:00
Damien Dupuis 9e5b5226d9 Adding setName & setUnit methods on Techno object.
getRule method of Techno does not throw exception anymore if rule is not found : a NULL Rule* is returned instead.

    but getValue methods throw exception if rule is not found
2010-11-16 15:33:42 +00:00
Jean-Paul Chaput a9d0783026 * ./vslsisapd/src/configuration:
- New: In Parameter, adds a priority for all the mutators method calls.
        Allows to sets values according to where they came from instead of
        only taking the last change. This is needed because we cannot ensure
        that the last sets value is the truly wanted one. Four priorities
        are avalaibles (in increasing order):
          1. - ApplicationBuiltin (the default).
          2. - ConfigurationFile  (currently: the XML parser).
          3. - CommandLine        (supplied by the command line, see Unicorn).
          4. - Interactive        (changed through ConfigurationWidget).
    - New: In ConfigurationWidget, hideTabs()/showTabs() to explicitly select
        which tabs are displayeds or hidden. Two modes are avalaibles:
        Incremental and Exact. In Exact mode only hidden tabs are hiddens and
        only shown tabs are shown.
    - Change: In ConfigurationWidget/ConfTabWidget/ParameterWidget, no longer
        relies on the Widget parent/child tree to find the ConfigurationWidget
        from a ParameterWidget (consequence of the hide/show capability which
        is implemented by cutting off hidden tabs). Adds an explicit attribute.
2010-11-16 13:51:14 +00:00
Damien Dupuis 7506bae16e Adding support for unspecified values (saving NaN)
Adding setValue && setRef methods on Rules

    writeToFile method now produce an easy to read file thanks to iomanip.stw() method
2010-11-16 11:24:26 +00:00
Sophie Belloeil 578877d8d7 VlsiSAPD is now G++ version 4.4 compliant ! 2010-11-02 11:02:44 +00:00
Damien Dupuis ab4be8a22b As Farakh asked me : Operator name is now always converted to upper case before save. 2010-10-28 20:56:08 +00:00
Sophie Belloeil 81d4d455bd - Improvment of parsing examples with examples of maps and vectors.
- No more pprint method in Python, now __repr__method encapsuling new c++ method getString.
2010-10-15 11:13:53 +00:00
Sophie Belloeil 2bc62b400b - Python examples
- forgotten PyLiberty.cpp
2010-10-14 11:06:22 +00:00
Sophie Belloeil 40a6d2e0da Python wrapper. (without example it seems ?) 2010-10-14 11:01:16 +00:00
Damien Dupuis ec979ff2b8 Need to to take into account the new signals confOk() and needRestart() 2010-10-14 09:32:53 +00:00
Jean-Paul Chaput dbb56bbc50 Forgot to comment out debug lines. 2010-10-14 09:23:21 +00:00
Jean-Paul Chaput 0cd5cc498d * ./vslsisapd/src/configuration:
- Change: In ConfigurationWidget, two separate signals for "confOk" and
        "needRestart", rewrite of the "apply clicked" method.
    - Bug: In LogEntry::restore(), uses correct flags on Paramater::setString().
2010-10-14 09:02:24 +00:00
Jean-Paul Chaput 45f9dcc394 * ./vslsisapd/src/configuration:
- Change: Internal rewrite of the check function, now named _doChange()
        and shared by all mutators.
    - Change: Logs now contains entries with the last correct value and are
        able to restore that value.
    - Change: LogWidget simplificated, only one message label. But now two
        buttons (Continue/Cancel).
    - Change: In ConfigurationWidget, two steps validation "mustExist" then
        "needRestart".
2010-10-13 21:44:50 +00:00
Sophie Belloeil 3db947d302 Useful getters. 2010-10-11 11:45:38 +00:00
Sophie Belloeil 6660ae8663 sxlib.lib example becomes testParse.lib 2010-10-08 11:47:06 +00:00
Damien Dupuis 96b084a80d Need to install the sxlib.lib example 2010-10-08 11:31:37 +00:00
Sophie Belloeil 7f878e6c3c New liberty parser / driver :
- only c++ (python will follow)
      - parse and drive examples
2010-10-08 11:22:59 +00:00
Jean-Paul Chaput 446ccd6d58 Discouple "clicked()" signal from apply button to close
of the standalone dialog.
2010-10-08 09:43:26 +00:00
Damien Dupuis 4dddfbba98 Adding statustip on button in configurationWidget and save button also save in memory 2010-10-08 08:37:42 +00:00
Damien Dupuis 4b62ea91d2 Missing Boost_LIBRARIES in target_link_libraries for libconfiguration (do not compile on mac osx if missing) 2010-10-08 08:36:19 +00:00
Damien Dupuis 40be8dc456 parseOpenChams can now parse any file or default inverter.xml file. 2010-10-08 07:52:15 +00:00
Jean-Paul Chaput 9f0fb0b467 * ./vslsisapd/src/configuration:
- New: Attributes "needRestart", "mustExist", "isFile" and "isPath".
    - New: Display a warning message when a parameter with mustExist or
        needRestart is modificated.
    - New: In ConfigurationWidget, method selectTab() to select the current
        displayed tab.
    - Change: In Configuration::writeToFile() and writeToStream(), adds a
        third parameter telling which parameter to save. It's a semicolon
        separated list of parameter head id. Example: "kite;mauka".
2010-10-06 22:03:35 +00:00
Damien Dupuis 1155d95365 Bug correction on mac osx :
based on libxml2 documentation : xmlCleanupParser() function must not be called several times
2010-09-21 09:58:53 +00:00
Damien Dupuis 136e5e90c7 Adding new ConfigurationDialog widget (QDialog) and buildDialog method on configuration.
This is very useful when using configuration as a standalone widget
2010-09-20 10:48:13 +00:00
Jean-Paul Chaput 1a33586cf9 * ./vslsisapd/src/configuration:
- Bug: In FilePathEdit, do not sets the file/path if the Dialog has been
        cancelled.
    - Bug: In FilePathEdit, do not uses the native dialog (called by static
        methods) when under Linux/GtkStyle as the native widget seems to be
        badly linked (bug in GtkStyle?).
2010-09-16 20:41:39 +00:00
Jean-Paul Chaput 1c572fe188 * ./vslsisapd/src/configuration:
- Bug: In Configuration parser XML zero status indicate no errors...
2010-09-16 14:43:41 +00:00
Jean-Paul Chaput 7b1fd28df0 * ./vslsisapd/src/configuration:
- New: Integrate the FilePathEdit widget, courtesy of D. Dupuis.
    - Bug: In ConfEditorMain, new boolean switch to allow disable of GtkStyle
        which make FilePathEdit to coredump (Linux feature only!).
2010-09-16 13:26:36 +00:00
Jean-Paul Chaput c5427574a8 * ./vslsisapd/src/configuration:
- New: In Configuration, write methods are ables to completly drive the
        XML file (values & layout), selectable through flags.
    - New: In ConfigurationWidget, the Apply button is now outside the
        tabs. Also adds two modes: Embedded & StandAlone with different sets
        of buttons.
2010-09-15 21:46:42 +00:00
Damien Dupuis 5876530c64 In sizing section : operator property is always converted to upper case (since opsim 'needs' it) 2010-09-09 08:03:31 +00:00
Damien Dupuis 73d8035ad8 Adding code examples for openChams parser/driver in c++/python. 2010-09-02 10:31:55 +00:00
Damien Dupuis 76820567a7 Adding support for Layout section in openChams parser/driver 2010-09-02 10:30:02 +00:00
Damien Dupuis b120048eb3 Missing Boost Libraries under mac osx (snow leo) 2010-08-23 12:54:53 +00:00
Jean-Paul Chaput dd405e619f * ./vlsisapd/src/bookshelf:
- New: A Bookshelf autonomic parser/driver. Made to parse and manipulate
        the ISPD04 benchmarks (ibm 01-18 series). Currently parses/drives
        .nodes, .nets, .scl, .pl, the .wts is not implemented yet.
2010-08-18 20:35:50 +00:00
Jean-Paul Chaput 32c864b996 * ./vlsisapd/src/configuration:
- Bug: In Configuration::writeToStream(), percentage parameters values where
        incorrectly written (divideds by 100).
    - Bug: In ConfEditorMain, read the "dot" configuration file *after* the
        system one.
2010-07-30 16:39:57 +00:00
Jean-Paul Chaput 73fa2f5f7c * All Main Python Modules:
- Change: New problem identified with the Python modules: each module seems
        to be built as a complete binary, so all the static C++ initializers are
        allocated in each module. In particular the C++ tree inheritance is built
        for *each* module so we cannot longer uses the typeid() comparisons
        across modules... It was used by boost::program_options to perform is
        casts with boost::any and was starting throwing exceptions because of
        bad casts. program_option was first initialized in "configuration"
        first included by PyViewer then in PyCRL (see Utilities.cpp).
          A first solution is to re-order the import of Python modules in
        stratus1/st_model so that CRL is imported first.
          The second is to not not link "configuration" with boost::program_option
        as only the binary vlsisapd-conf-editor needs it.
          That is a serious problem of which we must be aware and can cause further
        strange behaviors.
          Debug code used to diagnostic has been kept commented in the sources a
        it may be needed again :-(
          This behavior do not affect our singletons because they are part of
        dynamic libraries that seems to be correctly shared between the various
        Python modules.

  * ./vlsisapd:
    - Change: In Configuration CMakeLists.txt, add Boost_LIBRARIES only on the
        target_link_libraries() of the binary, not the libraries, as they are
        not needed there and cause later trouble.
2010-07-17 10:30:35 +00:00
Damien Dupuis f6e62a17f8 Adding implict conversion from std::string to Name, to simplify python script 2010-07-15 14:09:39 +00:00
Jean-Paul Chaput d1f225d4bf * All Tools:
- Change: Using more Bootstrap macros. Simpler way of setting the
        CMAKE_MODULE_PATH.
2010-07-15 14:09:17 +00:00
Damien Dupuis a5d98eca47 CMakeLists cleaning : -D__PYTHON_MODULE__=1 is absolutely not needed when using boost::python (it is specific to isobar) 2010-07-15 11:15:47 +00:00
Jean-Paul Chaput de5dd02c6f * All Tools:
- Change: Switch from "goodies" to "bootstrap".
2010-07-14 19:52:08 +00:00
Damien Dupuis 8fca8eb26e Python module are no more called pyMODULE.so but MODULE.so
Since in CMakeLists.txt there is already a module target (for c++ library) and some file systems are not case sensitive, the target is still pyMODULE but the OUTPUT_NAME property is set to MODULE 

    I've updated all the example python scripts.
2010-07-14 12:11:00 +00:00
Damien Dupuis 91a82cdbfe Bug correction : when creating a python module do not include .cpp files that are not python definition since corresponding .o files will be added twice (as .o and in lib.so)
This has been tested on Mac os 10.6 and linux RHEL 32bits.
2010-07-14 09:21:39 +00:00
Jean-Paul Chaput 7dcdf849a4 All tools: using the new Goodies macro.
Suppress loops in Hurricane libraries.
2010-07-13 16:33:51 +00:00
Damien Dupuis 6b33959010 Bug correction std:: was missing 2010-07-13 14:40:50 +00:00
Damien Dupuis f35c77cf73 My mistake, sorry 2010-07-13 13:05:59 +00:00
Damien Dupuis 546cb9548d Return value policy bug correction (for readFromFile static method) 2010-07-13 13:03:59 +00:00
Jean-Paul Chaput 7ad43e1c05 UNSTABLE. NO DOT UPDATE. 2010-07-13 11:14:03 +00:00
Damien Dupuis d057ce5a8d Correct Boost Dependency for mac osx (boost 1.42) and linux (boost 1.33):
system component does not exist in boost 1.33


    !!!!! Merci de ne commiter AUCUN changement dans vlsisapd tant que Jean-Paul et moi n'avons pas résolu les problèmes de bibliothèques statiques !!!!!!
2010-07-13 07:25:30 +00:00
Jean-Manuel Caba de5152941c bug:
undefined reference to `boost::system::get_system_category()'
symptoms that boost_system was not used at the linking phase
at least on my system (mac OSX leopard with apple gcc and boost 1.43.0)
solution: add the dependency
2010-07-12 20:13:51 +00:00
The Coriolis Project 76215da79c Typo error 2010-07-12 13:27:56 +00:00
Damien Dupuis 8107ef6433 Bug correction :
when defining rule<minSpacing, nWell, active>
        and then      rule<minSpacing, nWell>
        in technology file
        
        the first rule was ever return even if techno.getRule(minSpacing, nWell) was called.
2010-07-12 13:24:33 +00:00
Damien Dupuis 4d9b6b465c Readd the TARGET_LINK_LIBRARIES command in Cmake files (to compile on macosx) 2010-07-07 13:49:20 +00:00
Damien Dupuis 747022ab90 in order to compile (in fact link) on mac osx 10.6 I re-added the TARGET_LINK_LIBRARIES (as cmake documentation specifies it)
JP need to check if it the 'static variable bug' still occurs

    Note that in openChams I added SimulModel support, it has not yet been tested, and driver does not support it.
2010-07-07 13:48:28 +00:00
Damien Dupuis b0b3d50c3e Cleanly pass 'copy_const_reference' for getValueAsString methods (hooping it will solve a big bug in python binding.
DO NOT SUPPRESS TARGET_LINK_LIBRARIES in CMakeLists.txt for ADD_LIBRARY since it is mandotory under man osx (at least under version 10.6.3)
2010-07-07 11:13:00 +00:00
Jean-Paul Chaput ff826d31cf * All tools:
- Library linking: there must not be "target_link_library()" for libraries,
        only when building binaries. Avoid clashes between static module
        or class variables, and strange reinitialisation of those variables.
    - Change: Boost is now always linked staticly.
2010-07-01 11:59:35 +00:00
Jean-Paul Chaput 132ec33599 * ./vlsisapd/configuration:
- Shoot some g++ warnings...
2010-06-25 08:49:05 +00:00
Jean-Manuel Caba 5d8fd732c9 in some configurations FindPythonPackages.cmake was abording compilation ... now no more 2010-06-24 14:55:17 +00:00
Jean-Paul Chaput 45c864dcf5 Activate -Wall. 2010-06-23 14:08:22 +00:00
Jean-Paul Chaput 82fe4c2348 * ./vlsisapd/configuration:
- New: More thorough type checking of parameter's type while setting/
        getting.
    - New: In Parameter, callback mechanism (trimmed down Observer pattern)
        to uses whenever Qt signal/slots are not used. This is needed to
        maintain data coherency througout the software.
2010-06-22 14:06:33 +00:00
Jean-Paul Chaput 8d46e014ab * ./vlsisapd:
- New: Generic XML configuration parser "Configuration", comes with a
        little editor "vlsisapd-conf-editor" (temporary name).
2010-06-18 14:12:42 +00:00
Damien Dupuis c006a8d96b Name's operators are now available in python 2010-06-15 14:18:42 +00:00
Damien Dupuis 685dde710f Adding Name's operators binding 2010-06-15 14:18:05 +00:00
Damien Dupuis 0a06335e15 to correspond to other parser & driver : PyTechno.cpp become PyDtr.cpp 2010-06-15 13:30:08 +00:00
Damien Dupuis c149c84b50 Forgot to document DTRException 2010-06-15 13:18:41 +00:00
Damien Dupuis 68ca57830b Adding DTR documentation 2010-06-15 13:12:13 +00:00
Damien Dupuis e3bdbfb7f0 Add a Techno::getRule() method and simply Techno::getValue() & Techno::getValueAsString() methods 2010-06-15 11:52:13 +00:00
Damien Dupuis d0b2c0c6eb Corrections due to addRule signature change 2010-06-15 11:29:44 +00:00
Damien Dupuis ba80733d5e Rule & ARule constructors do not need 'Name valueStr' anymore.
It is automatically generated based on 'double value' argument
    Python binding is up to date
2010-06-15 11:29:15 +00:00
Damien Dupuis c3a210e4a5 No need for an install command in cmake.ex
remove 'import sys' in driveDtr.py script : that was only used for debug
2010-06-15 10:47:16 +00:00
Damien Dupuis 5fc116f4b7 adding examples for DTR format 2010-06-15 08:58:29 +00:00
Damien Dupuis 688af29e22 Adding CMakeLists.txt example to compile the provided .cpp examples
Installing .cif and .agds files examples
2010-06-14 11:10:23 +00:00
Damien Dupuis dd66d66741 Renaming examples executable (driveCif, driveAgds, driveCif.py ... instead of test in order to be able to differntiate driver vs parser) 2010-06-14 10:46:09 +00:00
Damien Dupuis f4537e017c CHANGES
* agds : 
       - all agds object now belong to AGDS namespace
       - 'Gds' has been removed from all filenames
     * cif
       - all cif objects now belong to CIF namespace
       - 'Cif' has been removed from all filenames
     * dtr
       - minor modifications in CMakeLists.txt since Boost Python is now used by other driver & parser

    ADDS
     * agds :
       - new python module
     * cif
       - new python module
     * doc
       - brand new doxygen documentation with 
           global presentation
           cif format (driver)
           agds format (driver)
           links & contacts
     * examples
       - examples files in C++ and Python for cif & agds drivers (others will follow)
2010-06-11 14:49:21 +00:00
Damien Dupuis 0774138292 Adding getValueAsString method on Rule, ARule and Techno and export it in python module.
This is a convenient method proposed by Corinne Laurey.
2010-06-11 11:27:15 +00:00
Damien Dupuis ab78dd054b Forgot thses two files, sorry 2010-06-04 14:34:40 +00:00
Damien Dupuis 6663fbd8dc Adapt all files to new source tree 2010-06-03 15:05:14 +00:00
Damien Dupuis 73eba62347 Using absolute path for IS_DIRECTORY (so it works) 2010-06-03 14:40:25 +00:00