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_doc [01/05/2013 17:47] pacher |
— (versione attuale) | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | ====== Help and documentation ====== | ||
- | |||
- | [ __[[vlsi:home|Home]]__ ] | ||
- | [ __[[vlsi:workbook|VLSI Design WorkBook]]__ ] | ||
- | [ __[[vlsi:computing_main#contents|Back to index]]__ ] | ||
- | |||
- | |||
- | |||
- | == Contents == | ||
- | |||
- | * [[vlsi:computing_doc#introduction|Introduction]] | ||
- | * [[vlsi:computing_doc#cadence_documentation|Cadence documentation]] FIXME | ||
- | * [[vlsi:computing_doc#mentor_graphics_documentation|Mentor Graphics documentation]] | ||
- | * [[vlsi:computing_doc#synopsys_documentation|Synopsys documentation]] | ||
- | * [[vlsi:computing_doc#pdk_documentation|PDK documentation]] | ||
- | * [[vlsi:computing_doc#confidentiality_of_tools_and_technology_information|Confidentiality of tools and technology information]] | ||
- | * [[vlsi:computing_doc#build_your_own_documentation_repositories|Build your own documentation repositories]] | ||
- | * [[vlsi:computing_doc#command_line_help_switches|Command line help switches]] | ||
- | * [[vlsi:computing_doc#web_resources|Web resources]] | ||
- | * [[vlsi:computing_doc#reference_books|Reference books]] | ||
- | |||
- | |||
- | **Keywords:** | ||
- | |||
- | ===== Introduction ===== | ||
- | |||
- | Help and documentation play a central role in the design activity. | ||
- | EDA tools are generally very complex and setting them up and utilizing them effectively | ||
- | can be less-than-intuitive and time consuming without adequate help and documentation. | ||
- | Furthermore, exhaustive documentation is of primary importance to succesfully work with | ||
- | a specific fabrication technology. | ||
- | |||
- | Much of the documentation about various design platforms that can be found browsing | ||
- | the Web is in form of tutorials and HowTo's rather than detailed manuals, often not | ||
- | completely up-to-date with the latest package releases and simulation tools. | ||
- | As a matter of fact the most important source of documentation is offered by the tools themselves. | ||
- | Each design platform as well as stand-alone tools offer a huge amount of documentation which comes | ||
- | with the standard installation, usually in form of | ||
- | **html** and **pdf** files. This documentation should be the first source of reference whenever | ||
- | you have a question that is not answered inside these Wiki pages. | ||
- | Please, keep in mind that such kind of information is **proprietary** and **confidential**, | ||
- | as discussed below. | ||
- | |||
- | In this chapter we describe //where// you can find the documentation and how to use it, | ||
- | aware that new users may fear seeking help from the other experienced designers, professors and | ||
- | professional researchers, with the result that too often the time is just wasted reinventing | ||
- | the wheel. Even a simple pdf page can be hard to find! | ||
- | |||
- | |||
- | |||
- | ===== Cadence documentation ===== | ||
- | |||
- | The most part of the design tools licensed by INFN for the VLSI laboratory comes | ||
- | from [[http://www.cadence.com/|Cadence Design Systems]]. | ||
- | Actually, tens of different tools for analog, mixed-mode and digital IC design | ||
- | are grouped into various **design platforms** (also called **packages**), | ||
- | providing unified front-to-back design environments. | ||
- | Due to the complexity of such platforms, Cadence offers extensive documentation | ||
- | for these tools and each collection of tools comes with its own documentation. | ||
- | |||
- | Cadence packages are installed under ''/usr/cadence/'' on the VLSI computing cluster, | ||
- | which is a symbolic link to ''/export/elt59xl/disk0/cadence/'' on the elt59xl server machine. | ||
- | The documentation which comes with a package can be found inside the top installation | ||
- | directory, usually in ''/usr/cadence/<package>/doc/'' (e.g. ''/usr/cadence/IC_6.1.5/doc/'' | ||
- | for Cadence IC 6.1.5). Documents are provided both in form of html pages | ||
- | and pdf files, in particular you can find one sub directory for each document | ||
- | inside a ''/usr/cadence/<package>/doc/'' directory. That is, each sub directory contains | ||
- | the html sources and a single pdf version of a specific document. | ||
- | Unfortunately these documents have short and quite cryptic file names, requiring that | ||
- | you gain a little experience in guessing the content. | ||
- | |||
- | |||
- | FIXME \\ | ||
- | The html files are used by the Cadence **Web-based** help system, accessible through | ||
- | simple graphical interfaces. Help and documentation for Cadence applications are available | ||
- | 'on-fly', because every window that opens up when you run a Cadence tool integrates a **Help** | ||
- | button, usually placed at the top-right of main menu bar. | ||
- | |||
- | integrated, help system called **cdnshelp**. | ||
- | Attenzione che di ''cdnshelp'' executable ce n'e' uno per package! | ||
- | |||
- | ''/usr/cadence/<package>/tools/bin/cdnshelp'' | ||
- | |||
- | quindi uno per IC, uno per MMSIM, uno per RC, Incisive etc. ! ATTENZIONE a scriverlo! | ||
- | La cosa migliore e' crearsi degli alias al comando nel ''.cshrc'' | ||
- | |||
- | <code> | ||
- | alias package_help /usr/cadence/<package>/tools/bin/cdnshelp & | ||
- | </code> | ||
- | |||
- | e.g. | ||
- | |||
- | <code> | ||
- | alias virtuoso_help $IC_DIR/tools/bin/cdnshelp & | ||
- | alias mmsim_help $MMSIM_DIR/tools/bin/cdnshelp & | ||
- | alias incisive_help $IUS_DIR/tools/bin/cdnshelp & | ||
- | ... | ||
- | </code> | ||
- | |||
- | Notare che quest alias sono gia' presenti in /usr/local/config/cds_config/CdsIC_615.rc! | ||
- | |||
- | <code> | ||
- | alias help_cds_ic '$IC_DIR/tools/bin/cdnshelp &' | ||
- | alias help_cds_assura '$ASSURA_DIR/tools/bin/cdnshelp &' | ||
- | alias help_cds_ext '$EXT_DIR/tools/bin/cdnshelp &' | ||
- | </code> | ||
- | |||
- | Oppure posso mettere tutto in uno scriptino ''cdnshelp.csh'' or ''cadence_doc.csh'', che e' piu' elegante! | ||
- | |||
- | <code> | ||
- | #!/bin/csh | ||
- | echo "Select Cadence documentation : " | ||
- | echo " [1] Cadence IC (Virtuoso) 6.1.5" | ||
- | echo " [2] Cadence Incisive 10.20" | ||
- | echo " [3] Cadence RC 9.10" | ||
- | echo " [4] Cadence SOC 8.10" | ||
- | echo " [5] Cadence EDI (Encounter)9.12" | ||
- | echo " [6] Cadence SPB (Allegro) 16.50" | ||
- | set answer = $< | ||
- | if ( $answer == "1" ) then | ||
- | source "/usr/local/config/cds_config/CdsIC_615.rc" | ||
- | /usr/cdsIC443/tools/bin/openbook & | ||
- | else if ( $answer == "2" ) then | ||
- | source "/usr/local/config/cds_config/CdsIC_445.rc" | ||
- | /usr/cdsIC445/tools/bin/openbook & | ||
- | else if ( $answer == "3" ) then | ||
- | source "/usr/local/config/cds_config/CdsPSD_136.rc" | ||
- | /usr/cdsPSD136/tools/bin/openbook & | ||
- | else if ( $answer == "4" ) then | ||
- | echo "Sorry, this option has not been cconfigured yet..." | ||
- | exit | ||
- | source "/usr/local/config/cds_config/CdsPSD_142.rc" | ||
- | /usr/cdsPSD142/tools/bin/openbook & | ||
- | else if ( $answer == "5" ) then | ||
- | echo "Don't forget to open Netscape..." | ||
- | source "/usr/local/config/cds_config/CdsIC_445.rc" | ||
- | /usr/cdsLDV31/tools/bin/cdsdoc & | ||
- | else if ( $answer == "6" ) then | ||
- | echo "Don't forget to open Netscape..." | ||
- | source "/usr/local/config/cds_config/CdsIC_445.rc" | ||
- | /usr/cdsLDV34/tools/bin/cdsdoc & | ||
- | else | ||
- | echo "Option not valid - exiting" | ||
- | endif | ||
- | </code> | ||
- | |||
- | Ovviamente IC_DIR etc. devono essere settate, e.g. ''setenv IC_DIR /usr/cadence/IC_6.1.5'' | ||
- | |||
- | cdnshelp is the help document browser for Cadence. It opens .html files located in the install directory for each tool | ||
- | |||
- | <code> | ||
- | virtuoso_help | ||
- | </code> | ||
- | |||
- | {{:vlsi:cdnshelp_ic_615.png?700}} | ||
- | |||
- | |||
- | Esiste anche la documentazione della documentazione in | ||
- | |||
- | la **//Cadence Help User Guide//** in | ||
- | |||
- | ''/usr/cadence/<package>/doc/cdnshelp/cdnshelp.pdf'' | ||
- | |||
- | |||
- | for instance ''/usr/cadence/IC_6.1.5/doc/cdnshelp/cdnshelp.pdf'' | ||
- | or ''/usr/cadence/EDI_9.12/doc/cdnshelp/cdnshelp.pdf'' (documents are the same, | ||
- | they might differ in the minor release number). | ||
- | |||
- | The Cadence documentation,on-line helps | ||
- | Html files are used by the Web based help system | ||
- | The pdf version of the web pages. | ||
- | There is also a java front end that can be started on the command line. | ||
- | cdsdoc has been replaced by a much simpler, more | ||
- | By clicking on this button will open the help | ||
- | documentation containing the information relevant to that window. | ||
- | Se also //[[http://cadence.wikispaces.com/Documentation+index]]// | ||
- | |||
- | ===== Mentor Graphics documentation ===== | ||
- | |||
- | [[http://www.mentor.com/|Mentor Graphics]] stand-alone tools are installed | ||
- | in the ''/usr/mentor/'' (''/export/elt59xl/disk0/mentor/'') directory. | ||
- | |||
- | From Mentor Graphics comes the **Calibre** physical verification tool, which is used | ||
- | for layout design rule checking (DRC), layout-versus-schematic (LVS) and parasitic | ||
- | extraction (PEX). The Calibre documentation is placed under | ||
- | |||
- | ''/usr/mentor/docs/docs_cal_2010.3_19.12/docs/'' | ||
- | |||
- | Html and pdf files are contained into two different sub directories named | ||
- | ''htmldocs'' and ''pdfdocs''. | ||
- | |||
- | |||
- | ===== Synopsys documentation ===== | ||
- | |||
- | [[http://www.synopsys.com/|Synopsys]] stand-alone tools are installed | ||
- | in the ''/usr/synopsys/'' (''/export/elt59xl/disk0/synopsys/'') directory. | ||
- | |||
- | From Synopsys comes the **Verilog Compiler Simulator (VCS)**. The relative documentation | ||
- | can be found in | ||
- | |||
- | ''/usr/synopsys/vcs-mx_vD-2010.06/doc/'' | ||
- | |||
- | ===== PDK documentation ===== | ||
- | |||
- | The **process design kit (PDK)** installation for a particular technology | ||
- | is accompained by its own specific documentation. The amount of such documentation | ||
- | varies with the technology and also depends on the PDK source, which can be the | ||
- | manufacturer itself or a third party as [[http://www.europractice.com/|Europractice]] | ||
- | IC fabrication services or [[http://www.cern.ch/|CERN]]. | ||
- | |||
- | This documentation is in form of plain text documents (readme files, release notes, | ||
- | HowTo's, rule files etc.) as well as traditional pdf documents, such as design manuals, | ||
- | training and references to the usage of the PDK with Cadence or other design environments. | ||
- | All the documentation is located under the top PDK installation directory. | ||
- | Inspect the content of this directory and search for some ''doc/'' or ''documents/'' | ||
- | sub directories, text files, pdf files etc. | ||
- | |||
- | For more details about your specific technology, please refer to the information | ||
- | contained in the __[[vlsi:private:home|VLSI protected area]]__. | ||
- | |||
- | ===== Confidentiality of tools and technology information ===== | ||
- | |||
- | Proprietary and confidential information cannot be included inside public VLSI Wiki pages. | ||
- | |||
- | All the [[http://www.cadence.com/|Cadence]] tools and the associated documentation | ||
- | contain **trade secrets** and **proprietary information** protected by **copyright laws**, | ||
- | as well as [[http://www.mentor.com/|Mentor Graphics]] and [[http://www.synopsys.com/|Synopsys]] applications. | ||
- | Thus any or parts of the documentation accompanying the EDA softwares licensed for the VLSI | ||
- | laboratory cannot be uploaded on these pages or published on the Web. | ||
- | |||
- | Technology information, such as device models, library files, datasheets and PDK documentation | ||
- | are very confidential and restricted. No information about technology processes can be disseminated | ||
- | to a third party or published on the Web. Moreover each VLSI user is bound to specific | ||
- | //**non-disclosure agreement (NDA)**// contracts with manufacturers (foundries) or third party | ||
- | IC fabrication services depending on the particular technologies | ||
- | involved in the research activity. **//Never disclose foundry secrets !//** | ||
- | |||
- | |||
- | ===== Build your own documentation repositories ===== | ||
- | |||
- | The best way to to quickly access the documentation is just | ||
- | to make **symbolic links** to it in your local area, | ||
- | as described in //[[http://cadence.wikispaces.com/Documentation+index]]//. | ||
- | |||
- | The ''~/scratch'' area is a good place in which put the software | ||
- | documentation. Go to your ''~/scratch'' and create a ''doc/'' directory: | ||
- | |||
- | <code> | ||
- | cd ~/scratch | ||
- | mkdir doc | ||
- | </code> | ||
- | |||
- | \\ | ||
- | Under ''~/scratch/doc'' you can then create further directories which will | ||
- | contain Cadence, Mentor Graphics and Synopsys documentation: | ||
- | |||
- | <code> | ||
- | cd ~/scratch/doc | ||
- | mkdir cadence mentor synopsys | ||
- | </code> | ||
- | |||
- | \\ | ||
- | At this point you can recursively make symbolic links (soft links) to all pdf documents | ||
- | which come with a Cadence package or another tool. Simply run a command in the general form | ||
- | |||
- | <code> | ||
- | find /path/to/installation/directory/doc -name "*.pdf" -exec ln -s {} . \; | ||
- | </code> | ||
- | |||
- | \\ | ||
- | The command performs a recursively search through all ''/path/to/installation/directory/doc'' | ||
- | sub directories, looking for pdf files. When a pdf is found, brackets ''{}'' are replaced with | ||
- | the found pdf and a symbolic link pointing to that file is created in the current directory | ||
- | (where you have run the command). | ||
- | |||
- | Follow this procedure for all the tools you are working with. | ||
- | In particular, for Cadence packages create under ''~/scratch/doc/cadence'' | ||
- | a new directory for each platform documentation you want to link, e.g. | ||
- | |||
- | <code> | ||
- | cd ~/scratch/doc/cadence | ||
- | mkdir virtuoso_6.1.5 | ||
- | cd virtuoso_6.1.5 | ||
- | find /usr/cadence/IC_6.1.5/doc -name "*.pdf" -exec ln -s {} . \; | ||
- | </code> | ||
- | |||
- | \\ | ||
- | In the same way you can link the pdf technology documentation. | ||
- | Keep tools and technology documentation separated, hence link | ||
- | the technology documents in your working directory: | ||
- | |||
- | <code> | ||
- | cd ~/scratch/<tech_dir> | ||
- | mkdir doc | ||
- | cd doc | ||
- | find /path/to/PDK/installation/directory/ -name "*.pdf" -exec ln -s {} . \; | ||
- | </code> | ||
- | |||
- | \\ | ||
- | Since no quota limits has been set for VLSI users, in order to save disk space | ||
- | please **don't make unnecessary hard copies of pdf files in your local area**, | ||
- | use symbolic links indeed (the space taken by a symbolic link does not depend | ||
- | on the space taken by the target!). | ||
- | |||
- | Now you have a nice collection of documentation available in your ''~/scratch/doc/'' | ||
- | and ''~/scratch/<tech_dir>/doc/'' directories, and accessing the various documents | ||
- | will be fast and simple using a pdf reader. The default one available on Scientific | ||
- | Linux distributions is **Evince**. Each time you need to open a pdf document simply | ||
- | invoke the ''evince'' executable (''/usr/bin/evince'') at the command line followed | ||
- | by the name of the pdf document, e.g. | ||
- | |||
- | <code> | ||
- | cd ~/scratch/doc/cadence/virtuoso_6.1.5 | ||
- | evince anasimhelp.pdf & | ||
- | </code> | ||
- | |||
- | \\ | ||
- | If you are working remotely run the command in background with the ''&'' to still | ||
- | have the command prompt active. By default **Adobe Reader** may not be installed | ||
- | on your machine, please check it out with the ''which acroread'' command. If the application | ||
- | is installed, then you can also use the ''acroread filename.pdf'' command. | ||
- | |||
- | As already mentioned Cadence documents have some quite cryptic file names, | ||
- | (some are more clear than others) which require you gain a little experience | ||
- | in guessing the content. For this reason, whenever a new tool will be introduced | ||
- | in the WorkBook tutorials, detailed references to the related documentation will | ||
- | be provided as well. | ||
- | |||
- | |||
- | :!: //**Note**// \\ | ||
- | **//Do not print VLSI tools documentation !//** Such files are hundreds of pages, it would be just a waste of paper. | ||
- | Furthemore, hardcopies are explicitely denied by copyright laws and policies. | ||
- | |||
- | ===== Command line help switches ===== | ||
- | |||
- | Many Cadence executables offer additional text information in form of command line helps. | ||
- | Just invoke in a terminal window a tool executable by adding a ''-h'' or ''-help'' switch: | ||
- | |||
- | <code> | ||
- | executable -help | ||
- | </code> | ||
- | |||
- | \\ | ||
- | |||
- | The output typically contains a short description of the available switches and parameters | ||
- | that can be passed when you launch the executable. If you retrive a ''Command not found'' | ||
- | error the executable has not been included in the UNIX system search path, please check | ||
- | your environment setup. | ||
- | |||
- | If you want to save a local copy of such information you can redirect the screen output | ||
- | to a text file with ''>'' or ''<nowiki> >> </nowiki>'' operators, e.g. | ||
- | |||
- | <code> | ||
- | cd ~/scratch/doc/cadence | ||
- | virtuoso -help > virtuoso.help | ||
- | </code> | ||
- | |||
- | ===== Web resources ===== | ||
- | |||
- | The documentation which accompanies each tool is comprehensive and exhaustive, | ||
- | but sometimes dispersive. As a matter of fact, each pdf document consists | ||
- | of hundreds of pages and it might be difficult to quickly find the answer to | ||
- | a specific problem. | ||
- | |||
- | That's why you should **use the Web extensively** too. It is very likely that | ||
- | any questions you face have already been posed (and solved!) in the Web design | ||
- | community. There are lot of **forums** dedicated to the VLSI IC | ||
- | design, for instance **[[http://www.edaboard.com/|EDAboard]]** and the | ||
- | **[[http://www.designers-guide.org/|Designer's Guide community]]**. | ||
- | You can also browse the official **[[http://www.cadence.com/community/forums/|Cadence forums]]**. | ||
- | If you don't get a hint with your first search, try various search combination in Google | ||
- | and you are likely to end up with something that answers your questions, whether it is | ||
- | related to a tool or a technology issue. | ||
- | We encourage new users to join these forums themselves (the registration is completely | ||
- | free of charge). Simply post a new thread whenever you have a question that is not answered | ||
- | in the WorkBook pages or with your Google search. | ||
- | |||
- | Browsing the Web will turn up tens of tutorials and HowTo's as well, | ||
- | typically published by other research institutes and universities. | ||
- | As already mentioned such documentation is often neither in-depth and nor up-to-date | ||
- | with the latest software releases. A complete list of these tutorials has been | ||
- | collected __[[vlsi:webtutorials|here]]__. Wherever required, specific | ||
- | references to these sources will be included in the WorkBook tutorials. | ||
- | |||
- | Useful links might be: | ||
- | |||
- | * [[http://www.cadence.com/community/forums/38.aspx|Cadence Custom IC Design Forum]] | ||
- | * [[http://www.cadence.com/community/forums/29.aspx|Cadence Digital Implementation Forum]] | ||
- | * [[http://www.edaboard.com |EDAboard - Forum for Electronics]] | ||
- | * [[http://www.designers-guide.org|The Designer's Guide Community]] (people from Cadence are active on this forum) | ||
- | |||
- | ===== Reference books ===== | ||
- | |||
- | A large amount of literature about microelectronics and VLSI IC design and fabrication | ||
- | has been proposed in the past decades. To save time, a detailed list of various reference | ||
- | books is included in the Wiki and can be found in __[[vlsi:books|Books]]__. Titles marked with [x] | ||
- | are available in the VLSI laboratory. | ||
- | |||
- | A further list of books and readings recommended by members of the | ||
- | **[[http://www.designers-guide.org/|Designer's Guide community]]** can be found | ||
- | [[http://www.designers-guide.org/books|here]]. | ||
- | |||
- | |||
- | |||
- | |||
- | ====== ====== | ||
- | \\ | ||
- | ---- | ||
- | |||
- | Last update: [[ pacher@NOSPAMto.infn.it | Luca Pacher ]] - Mar 8, 2013 | ||
- | |||
- | ~~NOTOC~~ |