New Genesis2 release (p4 version r9648)

2 views
Skip to first unread message

Ofer Shacham

unread,
Oct 27, 2011, 2:08:10 PM10/27/11
to genesis...@googlegroups.com
Hello Everyone,

There is a new release of Genesis2 (p4 version r9648). 
  • The release is fully backward compatible
  • For Stanford users it is already the default executable once you open a new shell/xterm
What's new?
  • Homemade Extensions: If you want to add your own Perl packages and wish Genesis2 will always know where to find them regardless of where it is running, please use the environment variable: GENESIS_PROJECT_LIBS
    Example: >> setenv 
    GENESIS_PROJECT_LIBS  ~/MyProject/Bin/AdditionalPerlLibs 
    Or even:   >> setenv GENESIS_PROJECT_LIBS  $PROJECT/Bin/AdditionalPerlLibs 
  • Security Update: Since genesis works with a web-based GUI, there was concern that someone might attempt to put a parameter value through the gui which is actually a nasty script. In this case, the fact that parameters could be any number of string was a weakness. So we limited those strings to be alphanumeric with a small amount of additional characters like +,-,*,/,etc. As a rule of thumb, please (please please) avoid writing code that requires long text as a parameter input. It works but it makes the code very ugly. Remember that your parameter could be string, scalar, pointer to another instance, array, hash or any combination of those.
  • Don't Uniquify My Module: It turns out that some people want to generate only the base module. For example, Frances in her mixed signal chip wanted to generate only one type of her tia_ana module as module needs to be replaced with an analog macro at PNR. Furthermore, she prefers if it stays as tia_ana and not be renamed to tia_ana_unq1 as genesis generally do at elaboration. To facilitate that, I created a new method/function (also documented at genesis2.stanford.edu): 
    • If you are using the older notation
      //; my $newObj = $self->unique_inst( moduleName, instName, params)
      Simply use ununique_inst instead (get it? ununique instead of unique? funny ha?).
    • If you are using the new and nicer (syntactic sugar) notation
      //; my $newObj = generate( moduleName, instName, params)
      Simply use generate_base instead (i.e., generate the base module and not anything else).
    • NOTE 1: If you generate multiple instances of a module using ununique_inst/generate_base, genesis is still smart enough to make sure that you are always generating exactly the same module, and otherwise through an error that you can't generate the same un-uniquified module twice in two different ways.
    • NOTE 2: You CAN use both the unique instantiation (i.e., unique_inst or generate) and the non-unique instantiation (i.e., ununique_inst/generate_base). No contradictions here.
As usual, your feedback is always encouraged.

Best,
Ofer.

--

Ofer Shacham, PhD
Stanford University / Chip Genesis, Inc.  
Mailto:sha...@alumni.stanford.edu
Phone: 1-650-8626017


Reply all
Reply to author
Forward
0 new messages