Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
vlsi:computing_cdsterm [09/04/2013 08:01] pacher |
— (versione attuale) | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | ====== Running VLSI design platforms ====== | ||
- | |||
- | [ __[[vlsi:home|Home]]__ ] | ||
- | [ __[[vlsi:workbook|VLSI Design WorkBook]]__ ] | ||
- | [ __[[vlsi:computing_main#contents|Back to index]]__ ] | ||
- | |||
- | |||
- | == Contents == | ||
- | |||
- | * [[vlsi:computing_cdsterm#introduction|Introduction]] | ||
- | * [[vlsi:computing_cdsterm#main_initialization_script|Main initialization script]] | ||
- | * [[vlsi:computing_cdsterm#run_cadence_executables|Run Cadence executables]] | ||
- | * [[vlsi:computing_cdsterm#start_a_vanilla_environment|Start a vanilla environment]] | ||
- | * [[vlsi:computing_cdsterm#manual_configuration|Manual configuration]] | ||
- | |||
- | **Keywords:** environment variable, search path, ''cdsterm'', technology | ||
- | |||
- | |||
- | |||
- | ===== Introduction ===== | ||
- | |||
- | Before you can run any licensed VLSI tool you need to set necessary UNIX **environment variables** | ||
- | and add **executables** to the system **search path**. The runtime environment must be set | ||
- | every time you start a session work, but all the stuff is automatically done for you by an | ||
- | **interactive initialization script** provided by the VLSI system administrator, as described below. | ||
- | |||
- | ===== Main initialization script ===== | ||
- | |||
- | The setup script is named ''cdsterm'' and is located in the ''/usr/local/bin/'' directory, | ||
- | which should already be included in your default search path. Please, check it out using | ||
- | the ''which'' command, | ||
- | |||
- | <code> | ||
- | which cdsterm | ||
- | /usr/local/bin/cdsterm | ||
- | </code> | ||
- | |||
- | |||
- | \\ | ||
- | The script is a csh script that interactively sets environment variables and adds search paths | ||
- | for different design platforms and technologies. | ||
- | |||
- | To launch the script, move into your working directory and simply type ''cdsterm'' | ||
- | at the command line | ||
- | |||
- | <code> | ||
- | cd ~/scratch/<tech_dir | ||
- | cdsterm | ||
- | </code> | ||
- | |||
- | or equivantely source the script with | ||
- | |||
- | <code> | ||
- | source /usr/local/bin/cdsterm | ||
- | </code> | ||
- | |||
- | \\ | ||
- | At first you are prompted to choose the **design suite** you want to work with: | ||
- | |||
- | <code> | ||
- | Select Cadence product : | ||
- | [1a] IC 5.1.41HF137 | ||
- | [1b] IC 6.1.3 | ||
- | [1c] IC 6.1.4 | ||
- | [1d] IC 6.1.5 | ||
- | [2a] RC 8.10 | ||
- | [2b] RC 9.10 | ||
- | [2c] SOC 8.10 | ||
- | [2d] EDI 9.12 | ||
- | [3a] SPB 16.30 | ||
- | [3b] SPB 16.50 | ||
- | |||
- | </code> | ||
- | |||
- | |||
- | \\ | ||
- | Type in the tool identifier and press the ''Return'' key. Available Cadence | ||
- | platforms are **IC** (//Virtuoso// full-custom analog and mixed-mode IC design), | ||
- | **RC** (Verilog/VHDL logic synthesizer), **SOC** (//SoC Encounter RTL-to-GDSII System//, | ||
- | digital place-and-route tool), **EDI** (//Encounter Digital Implementation System//, | ||
- | next generation digital place-and-route tool) and **SPB** (//Allegro// PCB design suite). \\ | ||
- | The **Incisive** platform (Verilog/VHDL logic simulator) environment is included | ||
- | with both IC and RC setups. | ||
- | For more details about available tools see __[[computing_tools|Licensed softwares]]__. | ||
- | |||
- | Next you have to select the **technology** with the same procedure: | ||
- | |||
- | |||
- | <code> | ||
- | Available tecnologies are : | ||
- | |||
- | [1a] AMS 0.35 um CMOS (c35b4) | ||
- | [1b] AMS 0.35 um SiGe (s35d4) | ||
- | [2a] IBM 0.13 um CMOS (cmrf8sf) - LM | ||
- | [2b] IBM 0.13 um CMOS (cmrf8sf) - DM | ||
- | [2c] IBM 90 nm CMOS (cms9flp) | ||
- | [3a] ... | ||
- | ... | ||
- | ... | ||
- | | ||
- | </code> | ||
- | |||
- | \\ | ||
- | All VLSI users can work with AMS and IBM technologies. The access to other cutting-edge | ||
- | technologies is restricted and it depends on the selected tool and on the user membership | ||
- | to a specific **technology group** defined by the system administrator. Technology | ||
- | permissions are verified by the ''cdsterm'' script and different lists of available | ||
- | technologies are shown in the menu. You can check yourself the technology you are allowed | ||
- | to use with the command | ||
- | |||
- | <code> | ||
- | id -n -G | ||
- | </code> | ||
- | |||
- | which prints username and groups. You can also inspect the ''/etc/group'' configuration file with | ||
- | |||
- | <code> | ||
- | more /etc/group | ||
- | </code> | ||
- | |||
- | \\ | ||
- | Note that if the selected tool is Cadence SPB (Allegro) you are not asked to choose a technology. | ||
- | |||
- | |||
- | |||
- | ===== Run Cadence executables ===== | ||
- | |||
- | The ''cdsterm'' script modifies your UNIX environment, setting path and environment variables. | ||
- | Furthermore, once the technology has been selected the script opens a new **xterm** terminal and | ||
- | the overall UNIX environment set in the parent shell is exported into the new one. | ||
- | |||
- | |||
- | {{:vlsi:parent_shell_and_xterm.png?800}} | ||
- | |||
- | You can make a comparison between your parent shell environment and the xterm exported environment typing | ||
- | |||
- | <code> | ||
- | set | ||
- | </code> | ||
- | |||
- | in the two different shells. | ||
- | |||
- | \\ | ||
- | Each design tool will be launched from the xterm command prompt by invoking its specific executable | ||
- | name with the general syntax | ||
- | |||
- | <code> | ||
- | executable & | ||
- | </code> | ||
- | |||
- | or | ||
- | |||
- | <code> | ||
- | executable | ||
- | </code> | ||
- | |||
- | Since environment variables and search paths have been exported in xterm, don't invoke | ||
- | a tool in the parent shell, you will get a ''Command not found'' issue otherwise. | ||
- | |||
- | Depending on the selected tool follow the instructions listed below. | ||
- | |||
- | * [[computing_run_ic|Cadence IC 6.1.x (Virtuoso)]] FIXME | ||
- | |||
- | * [[computing_run_ius|Cadence Incisive]] FIXME | ||
- | |||
- | * [[computing_run_rc|Cadence RC]] FIXME | ||
- | |||
- | * [[computing_run_soc|Cadence SOC]] FIXME | ||
- | |||
- | * [[computing_run_edi|Cadence EDI (Encounter)]] FIXME | ||
- | |||
- | * [[computing_run_spb|Cadence SPB 16.x (Allegro)]] FIXME | ||
- | |||
- | If the first time that you try running a tool you face any problems with the Cadence | ||
- | **license checking management**, please contact the VLSI system administrator | ||
- | ([[mazza@NOSPAMto.infn.it]], remove NOSPAM in the address). | ||
- | |||
- | Instructions for starting Cadence tools with a **technology-independent environment** | ||
- | are discussed in __[[vlsi:computing_cdsterm#start_a_vanilla_environment| | ||
- | Start a vanilla environment]]__. | ||
- | |||
- | |||
- | |||
- | ===== Start a vanilla environment ===== | ||
- | |||
- | Cadence design platforms are completely general and can support different | ||
- | fabrication technologies. When a particular technology is selected through | ||
- | the ''cdsterm'' initialization script, necessary UNIX environment variables (e.g. the PDK installation | ||
- | directory) are set and specific technology-related files (e.g. ''.cdsinit_tech'' file) | ||
- | are loaded at Cadence startup. \\ | ||
- | Cadence environment setups and technology setups are kept separate. | ||
- | Each platform has its own configuration script placed in the ''/usr/local/config/cds_config/'' | ||
- | directory, | ||
- | |||
- | <code> | ||
- | ls -l /usr/local/config/cds_config | ||
- | </code> | ||
- | |||
- | which is then sourced in the ''cdsterm'' according to the selected design platform. | ||
- | |||
- | |||
- | For **getting started training** purposes you are not required to run | ||
- | Cadence platforms attached to a process design kit. | ||
- | You can always start a //vanilla// (technology-independent) Cadence environment, | ||
- | all you need is to **source by hand** the right platform configuration script. | ||
- | As a matter of fact, //schematic level simulations// (pre-layout simulations) | ||
- | in **Cadence IC** (Virtuoso) can be always performed using simple SPICE device | ||
- | models that can be found on the Web as well as in many microelectronics textbooks. | ||
- | On the other hand, //Verilog/VHDL logic simulations// (pre-synthesis simulations) | ||
- | with **Cadence Incisive** only require the hardware description language source code. | ||
- | Furthermore, the above-mentioned Cadence SPB (Allegro) used in designing PCBs | ||
- | is technology-independent. A specific technology is required indeed if you want to do | ||
- | full-custom analog layout with Cadence IC or if you deal with digital synthesis and | ||
- | place-and-route with Cadence RC and Cadence SOC/EDI respectively. \\ | ||
- | According to this, the most part of WorkBook tutorial can be carried out with a simple | ||
- | Cadence IC 6.1.x vanilla environment (the latest software release is 6.1.5). | ||
- | |||
- | To set up a Cadence IC 6.1.5 vanilla environment, move into your working | ||
- | directory (''~/scratch/tutorials'' in the WorkBook tutorials) and | ||
- | source by hand the ''/usr/local/config/cds_config/CdsIC_615.rc'' script: | ||
- | |||
- | <code> | ||
- | cd ~/scratch/tutorials | ||
- | source /usr/local/config/cds_config/CdsIC_615.rc | ||
- | </code> | ||
- | |||
- | \\ | ||
- | You should launch a new **xterm** instance in order to export the UNIX environment | ||
- | into a separate terminal, as usually performed by ''cdsterm'': | ||
- | |||
- | <code> | ||
- | xterm & | ||
- | </code> | ||
- | |||
- | \\ | ||
- | The ''CdsIC_615.rc'' script defines the proper UNIX environment | ||
- | for both Cadence IC 6.1.5 and Incisive 10.20 platforms, hence you | ||
- | will be able to work through either analog or digital tutorials. | ||
- | |||
- | \\ | ||
- | :!: **//Note//**\\ | ||
- | The procedure doesn't work out of the box because | ||
- | a ''MANPATH'' environment variable is required in | ||
- | ''/usr/local/config/cds_config/CdsIC_615.rc''. | ||
- | You should retrive a ''MANPATH: Undefined variable'' error in fact, | ||
- | |||
- | <code> | ||
- | source /usr/local/config/cds_config/CdsIC_615.rc | ||
- | MANPATH: Undefined variable | ||
- | </code> | ||
- | |||
- | \\ | ||
- | To solve the problem, just set by hand an empty ''MANPATH'' | ||
- | environment variable (this is normally done by ''cdsterm'' itself | ||
- | if ''MANPATH'' does not exist) before sourcing the script, | ||
- | |||
- | <code> | ||
- | setenv MANPATH "" | ||
- | source /usr/local/config/cds_config/CdsIC_615.rc | ||
- | </code> | ||
- | |||
- | or define your own ''MANPATH'' environment variable in the home ''.cshrc'' | ||
- | (don't forget to source the file to make changes effective). | ||
- | |||
- | ===== Manual configuration ===== | ||
- | |||
- | If you are more confident with shell scripting you can write your own initialization script | ||
- | (e.g. ''~/scratch/<tech_dir>/setup.csh'') and set up the proper UNIX environment to run a | ||
- | particular Cadence tool attached to the specific technology you are working with. \\ | ||
- | More knowledge of the required UNIX environment will help you | ||
- | to fix yourself the most common problems related to missing environment variables, wrong paths etc. | ||
- | |||
- | Create local copies of ''cdsterm'' and ''/usr/local/config/cds_config/'' | ||
- | configuration files provided by the VLSI system administrator, e.g. | ||
- | |||
- | <code> | ||
- | cd ~/scratch | ||
- | mkdir setup | ||
- | cd setup | ||
- | cp /usr/local/bin/cdsterm cdsterm.local | ||
- | cp /usr/local/config/cds_config/CdsIC_615.rc CdsIC_615.rc.local | ||
- | ... | ||
- | </code> | ||
- | |||
- | \\ | ||
- | Then use your preferred text editor to inspect the syntax and the content of | ||
- | the different files. Pay attention to the license management and | ||
- | learn which technology-dependent environment variables are set in the ''cdsterm'' | ||
- | for the specific technolgy you are working with. | ||
- | For more details about any technology setup refer to the documentation | ||
- | contained in the __[[vlsi:private:home|VLSI protected area]]__. | ||
- | |||
- | Put in your file necessary UNIX environment variables and paths. Once the script is | ||
- | ready you can either source | ||
- | |||
- | <code> | ||
- | source setup.csh | ||
- | </code> | ||
- | |||
- | or run it (don't forget to make the file executable with the ''chmod'' command before) | ||
- | |||
- | <code> | ||
- | chmod +x setup.csh | ||
- | ./setup.csh | ||
- | </code> | ||
- | |||
- | \\ | ||
- | A complete example of configuration for Cadence IC can be found at | ||
- | |||
- | //[[https://intranet.ece.cornell.edu/computing/kb_articles/kba_detail.cfm?article_id=53]]// | ||
- | |||
- | \\ | ||
- | If you are confused indeed, please keep using the main ''cdsterm'' setup script. | ||
- | |||
- | |||
- | |||
- | ====== ====== | ||
- | \\ | ||
- | ---- | ||
- | Last update: [[ pacher@NOSPAMto.infn.it | Luca Pacher ]] - Apr 9, 2013 | ||
- | |||
- | ~~NOTOC~~ |