Documentation restructuration

Documentation restructuration:
* Bug: in <hurricane>: bad figure for transf-R1.
* Change, in <kite>: Remove deprecated configuration variables.
* New: documentation <tool> to regroup all documentation not directly
  related to one tool.
* Change, in <crlcore>, move the user's guide and the top doc index
  into <documentation>.
* New, in <documenation>: added Python script demo based on AM2901.
This commit is contained in:
Jean-Paul Chaput 2014-03-10 14:06:31 +01:00
parent c0b999241f
commit 14a5f5f7ef
199 changed files with 15748 additions and 4872 deletions

11
.gitignore vendored
View File

@ -2,10 +2,17 @@
*.swp *.swp
*.pyc *.pyc
*.log *.log
*.bak
man/ man/
rtf/ rtf/
html/ html/
latex/ latex/
crlcore/doc/UsersGuide/UsersGuide.tex documentation/UsersGuide/UsersGuide-raw.tex
crlcore/doc/UsersGuide/UsersGuide.html documentation/UsersGuide/UsersGuide.tex
documentation/UsersGuide/UsersGuide.aux
documentation/UsersGuide/UsersGuide.log
documentation/UsersGuide/UsersGuide.pdf
documentation/UsersGuide/UsersGuide.out
documentation/UsersGuide/UsersGuide.toc
documentation/UsersGuide/UsersGuide.html

View File

@ -3,16 +3,14 @@
# Mimicking the behavior of a top-level autotool generated Makefile. # Mimicking the behavior of a top-level autotool generated Makefile.
tools = bootstrap vlsisapd hurricane crlcore nimbus metis mauka knik katabatic kite \ tools = bootstrap vlsisapd hurricane crlcore nimbus metis mauka knik katabatic kite \
equinox solstice cumulus stratus1 unicorn equinox solstice cumulus stratus1 unicorn documentation
prefix = /usr prefix = /usr
DESTDIR = DESTDIR =
BUILD_DESTDIR = $(shell pwd)/install.dir BUILD_DESTDIR = $(shell pwd)/install.dir
BOOTSTRAP_TOP = $(prefix) BOOTSTRAP_TOP = $(prefix)
VLSISAPD_TOP = $(prefix)
CORIOLIS_TOP = $(prefix) CORIOLIS_TOP = $(prefix)
environment = BOOTSTRAP_TOP=$(BOOTSTRAP_TOP); export BOOTSTRAP_TOP; \ environment = BOOTSTRAP_TOP=$(BOOTSTRAP_TOP); export BOOTSTRAP_TOP; \
VLSISAPD_TOP=$(VLSISAPD_TOP); export VLSISAPD_TOP; \
CORIOLIS_TOP=$(CORIOLIS_TOP); export CORIOLIS_TOP CORIOLIS_TOP=$(CORIOLIS_TOP); export CORIOLIS_TOP
.PHONY: build install FORCE .PHONY: build install FORCE

View File

@ -23,6 +23,7 @@ projects = [ { 'name' : "coriolis"
#, "ispd" #, "ispd"
, "cumulus" , "cumulus"
, "stratus1" , "stratus1"
, "documentation"
] ]
, 'repository': 'ssh://asim-t/users/largo2/git/coriolis.git' } , 'repository': 'ssh://asim-t/users/largo2/git/coriolis.git' }

View File

@ -18,6 +18,7 @@ karim = Karim Dioury <alliance-users@asim.lip6.fr>
labiadh = Forgotten Author (labiadh) <alliance-users@asim.lip6.fr> labiadh = Forgotten Author (labiadh) <alliance-users@asim.lip6.fr>
liyao = Yao Li <alliance-users@asim.lip6.fr> liyao = Yao Li <alliance-users@asim.lip6.fr>
ludo = Ludovic Jacomme <alliance-users@asim.lip6.fr> ludo = Ludovic Jacomme <alliance-users@asim.lip6.fr>
mariem = Marie-Minerve Louerat <Marie-Minerve.Louerat@lip6.fr>
masson = Christian Masson <alliance-users@asim.lip6.fr> masson = Christian Masson <alliance-users@asim.lip6.fr>
mitri = Forgotten Author (mitri) <alliance-users@asim.lip6.fr> mitri = Forgotten Author (mitri) <alliance-users@asim.lip6.fr>
noury = Ludovic Noury <alliance-users@asim.lip6.fr> noury = Ludovic Noury <alliance-users@asim.lip6.fr>
@ -28,4 +29,5 @@ xtof = Christophe Alexandre <alliance-users@asim.lip6.fr>
youssef = Stephanie Youssef <alliance-users@asim.lip6.fr> youssef = Stephanie Youssef <alliance-users@asim.lip6.fr>
jpc = Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr> jpc = Jean-Paul Chaput <Jean-Paul.Chaput@lip6.fr>
ramy = Ramy Iskander <Ramy.Iskander@lip6.fr> ramy = Ramy Iskander <Ramy.Iskander@lip6.fr>
roselyne = Roselyne Chotin <Roselyne.Chotin-Avot@lip6.fr> roselyne = Roselyne Chotin <Roselyne.Chotin-Avot@lip6.fr>
(no author) = Anonymous Author <alliance-users@asim.lip6.fr>

View File

@ -0,0 +1,620 @@
# (Be in -*- mode: python; coding: utf-8 -*- mode.)
#
# ====================================================================
# Copyright (c) 2006-2009 CollabNet. All rights reserved.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at http://subversion.tigris.org/license-1.html.
# If newer versions of this license are posted there, you may use a
# newer version instead, at your option.
#
# This software consists of voluntary contributions made by many
# individuals. For exact contribution history, see the revision
# history and logs, available at http://cvs2svn.tigris.org/.
# ====================================================================
# #####################
# ## PLEASE READ ME! ##
# #####################
#
# This is a template for an options file that can be used to configure
# cvs2svn to convert to git rather than to Subversion. See
# www/cvs2git.html and www/cvs2svn.html for general information, and
# see the comments in this file for information about what options are
# available and how they can be set.
#
# The program that is run to convert from CVS to git is called
# cvs2git. Run it with the --options option, passing it this file
# like this:
#
# cvs2git --options=cvs2git-example.options
#
# The output of cvs2git is a blob file and a dump file that can be
# loaded into git using the "git fast-import" command. Please read
# www/cvs2git.html for more information.
#
# Many options do not have defaults, so it is easier to copy this file
# and modify what you need rather than creating a new options file
# from scratch. This file is in Python syntax, but you don't need to
# know Python to modify it. But if you *do* know Python, then you
# will be happy to know that you can use arbitary Python constructs to
# do fancy configuration tricks.
#
# But please be aware of the following:
#
# * In many places, leading whitespace is significant in Python (it is
# used instead of curly braces to group statements together).
# Therefore, if you don't know what you are doing, it is best to
# leave the whitespace as it is.
#
# * In normal strings, Python treats a backslash ("\") as an escape
# character. Therefore, if you want to specify a string that
# contains a backslash, you need either to escape the backslash with
# another backslash ("\\"), or use a "raw string", as in one if the
# following equivalent examples:
#
# cvs_executable = 'c:\\windows\\system32\\cvs.exe'
# cvs_executable = r'c:\windows\system32\cvs.exe'
#
# See http://docs.python.org/tutorial/introduction.html#strings for
# more information.
#
# Two identifiers will have been defined before this file is executed,
# and can be used freely within this file:
#
# ctx -- a Ctx object (see cvs2svn_lib/context.py), which holds
# many configuration options
#
# run_options -- an instance of the GitRunOptions class (see
# cvs2svn_lib/git_run_options.py), which holds some variables
# governing how cvs2git is run
# Import some modules that are used in setting the options:
import re
from cvs2svn_lib import config
from cvs2svn_lib import changeset_database
from cvs2svn_lib.common import CVSTextDecoder
from cvs2svn_lib.log import Log
from cvs2svn_lib.project import Project
from cvs2svn_lib.git_revision_recorder import GitRevisionRecorder
from cvs2svn_lib.git_output_option import GitRevisionMarkWriter
from cvs2svn_lib.git_output_option import GitOutputOption
from cvs2svn_lib.revision_manager import NullRevisionRecorder
from cvs2svn_lib.revision_manager import NullRevisionExcluder
from cvs2svn_lib.fulltext_revision_recorder \
import SimpleFulltextRevisionRecorderAdapter
from cvs2svn_lib.rcs_revision_manager import RCSRevisionReader
from cvs2svn_lib.cvs_revision_manager import CVSRevisionReader
from cvs2svn_lib.checkout_internal import InternalRevisionRecorder
from cvs2svn_lib.checkout_internal import InternalRevisionExcluder
from cvs2svn_lib.checkout_internal import InternalRevisionReader
from cvs2svn_lib.symbol_strategy import AllBranchRule
from cvs2svn_lib.symbol_strategy import AllTagRule
from cvs2svn_lib.symbol_strategy import BranchIfCommitsRule
from cvs2svn_lib.symbol_strategy import ExcludeRegexpStrategyRule
from cvs2svn_lib.symbol_strategy import ForceBranchRegexpStrategyRule
from cvs2svn_lib.symbol_strategy import ForceTagRegexpStrategyRule
from cvs2svn_lib.symbol_strategy import ExcludeTrivialImportBranchRule
from cvs2svn_lib.symbol_strategy import ExcludeVendorBranchRule
from cvs2svn_lib.symbol_strategy import HeuristicStrategyRule
from cvs2svn_lib.symbol_strategy import UnambiguousUsageRule
from cvs2svn_lib.symbol_strategy import HeuristicPreferredParentRule
from cvs2svn_lib.symbol_strategy import SymbolHintsFileRule
from cvs2svn_lib.symbol_transform import ReplaceSubstringsSymbolTransform
from cvs2svn_lib.symbol_transform import RegexpSymbolTransform
from cvs2svn_lib.symbol_transform import IgnoreSymbolTransform
from cvs2svn_lib.symbol_transform import NormalizePathsSymbolTransform
from cvs2svn_lib.property_setters import AutoPropsPropertySetter
from cvs2svn_lib.property_setters import CVSBinaryFileDefaultMimeTypeSetter
from cvs2svn_lib.property_setters import CVSBinaryFileEOLStyleSetter
from cvs2svn_lib.property_setters import DefaultEOLStyleSetter
from cvs2svn_lib.property_setters import EOLStyleFromMimeTypeSetter
from cvs2svn_lib.property_setters import ExecutablePropertySetter
from cvs2svn_lib.property_setters import KeywordsPropertySetter
from cvs2svn_lib.property_setters import MimeMapper
from cvs2svn_lib.property_setters import SVNBinaryFileKeywordsPropertySetter
# To choose the level of logging output, uncomment one of the
# following lines:
#Log().log_level = Log.WARN
#Log().log_level = Log.QUIET
Log().log_level = Log.NORMAL
#Log().log_level = Log.VERBOSE
#Log().log_level = Log.DEBUG
# During CollectRevsPass, cvs2git records the contents of file
# revisions into a "blob" file in git-fast-import format. This option
# configures that process:
ctx.revision_recorder = SimpleFulltextRevisionRecorderAdapter(
# The following option specifies how the revision contents of the RCS
# files should be read.
#
# RCSRevisionReader uses RCS's "co" program to extract the revision
# contents of the RCS files during CollectRevsPass. The constructor
# argument specifies how to invoke the "co" executable.
#
# CVSRevisionReader uses the "cvs" program to extract the revision
# contents out of the RCS files during OutputPass. This option is
# considerably slower than RCSRevisionReader because "cvs" is
# considerably slower than "co". However, it works in some situations
# where RCSRevisionReader fails; see the HTML documentation of the
# "--use-cvs" option for details. The constructor argument specifies
# how to invoke the "co" executable.
#
# Uncomment one of the two following lines:
#RCSRevisionReader(co_executable=r'co'),
CVSRevisionReader(cvs_executable=r'cvs'),
# The file in which to write the git-fast-import stream that
# contains the file revision contents:
GitRevisionRecorder('cvs2svn-tmp/git-blob.dat'),
)
# cvs2git does not need to keep track of what revisions will be
# excluded, so leave this option unchanged:
ctx.revision_excluder = NullRevisionExcluder()
# cvs2git doesn't need a revision reader because OutputPass only
# refers to blobs that were output during CollectRevsPass, so leave
# this option set to None.
ctx.revision_reader = None
# Change the following line to True if the conversion should only
# include the trunk of the repository (i.e., all branches and tags
# should be omitted from the conversion):
ctx.trunk_only = False
# How to convert CVS author names, log messages, and filenames to
# Unicode. The first argument to CVSTextDecoder is a list of encoders
# that are tried in order in 'strict' mode until one of them succeeds.
# If none of those succeeds, then fallback_encoder (if it is
# specified) is used in lossy 'replace' mode. Setting a fallback
# encoder ensures that the encoder always succeeds, but it can cause
# information loss.
ctx.cvs_author_decoder = CVSTextDecoder(
[
'latin1',
'utf8',
'ascii',
],
fallback_encoding='latin1'
)
ctx.cvs_log_decoder = CVSTextDecoder(
[
'latin1',
'utf8',
'ascii',
],
fallback_encoding='latin1'
)
# You might want to be especially strict when converting filenames to
# Unicode (e.g., maybe not specify a fallback_encoding).
ctx.cvs_filename_decoder = CVSTextDecoder(
[
'latin1',
'utf8',
'ascii',
],
fallback_encoding='latin1'
)
# Template for the commit message to be used for initial project
# commits.
ctx.initial_project_commit_message = (
'Standard project directories initialized by cvs2svn.'
)
# Template for the commit message to be used for post commits, in
# which modifications to a vendor branch are copied back to trunk.
# This message can use '%(revnum)d' to include the SVN revision number
# of the revision that included the change to the vendor branch
# (admittedly rather pointless in a cvs2git conversion).
ctx.post_commit_message = (
'This commit was generated by cvs2svn to track changes on a CVS '
'vendor branch.'
)
# Template for the commit message to be used for commits in which
# symbols are created. This message can use '%(symbol_type)s' to
# include the type of the symbol ('branch' or 'tag') or
# '%(symbol_name)s' to include the name of the symbol.
ctx.symbol_commit_message = (
"This commit was manufactured by cvs2svn to create %(symbol_type)s "
"'%(symbol_name)s'."
)
# Template for the commit message to be used for commits in which
# tags are pseudo-merged back to their source branch. This message can
# use '%(symbol_name)s' to include the name of the symbol.
# (Not used by default unless you enable tie_tag_fixup_branches on
# GitOutputOption.)
ctx.tie_tag_ancestry_message = (
"This commit was manufactured by cvs2svn to tie ancestry for "
"tag '%(symbol_name)s' back to the source branch."
)
# Some CVS clients for MacOS store resource fork data into CVS along
# with the file contents itself by wrapping it all up in a container
# format called "AppleSingle". Subversion currently does not support
# MacOS resource forks. Nevertheless, sometimes the resource fork
# information is not necessary and can be discarded. Set the
# following option to True if you would like cvs2svn to identify files
# whose contents are encoded in AppleSingle format, and discard all
# but the data fork for such files before committing them to
# Subversion. (Please note that AppleSingle contents are identified
# by the AppleSingle magic number as the first four bytes of the file.
# This check is not failproof, so only set this option if you think
# you need it.)
ctx.decode_apple_single = False
# This option can be set to the name of a filename to which are stored
# statistics and conversion decisions about the CVS symbols.
ctx.symbol_info_filename = None
#ctx.symbol_info_filename = 'symbol-info.txt'
# cvs2svn uses "symbol strategy rules" to help decide how to handle
# CVS symbols. The rules in a project's symbol_strategy_rules are
# applied in order, and each rule is allowed to modify the symbol.
# The result (after each of the rules has been applied) is used for
# the conversion.
#
# 1. A CVS symbol might be used as a tag in one file and as a branch
# in another file. cvs2svn has to decide whether to convert such a
# symbol as a tag or as a branch. cvs2svn uses a series of
# heuristic rules to decide how to convert a symbol. The user can
# override the default rules for specific symbols or symbols
# matching regular expressions.
#
# 2. cvs2svn is also capable of excluding symbols from the conversion
# (provided no other symbols depend on them.
#
# 3. CVS does not record unambiguously the line of development from
# which a symbol sprouted. cvs2svn uses a heuristic to choose a
# symbol's "preferred parents".
#
# The standard branch/tag/exclude StrategyRules do not change a symbol
# that has already been processed by an earlier rule, so in effect the
# first matching rule is the one that is used.
global_symbol_strategy_rules = [
# It is possible to specify manually exactly how symbols should be
# converted and what line of development should be used as the
# preferred parent. To do so, create a file containing the symbol
# hints and enable the following option.
#
# The format of the hints file is described in the documentation
# for the --symbol-hints command-line option. The file output by
# the --write-symbol-info (i.e., ctx.symbol_info_filename) option
# is in the same format. The simplest way to use this option is
# to run the conversion through CollateSymbolsPass with
# --write-symbol-info option, copy the symbol info and edit it to
# create a hints file, then re-start the conversion at
# CollateSymbolsPass with this option enabled.
#SymbolHintsFileRule('symbol-hints.txt'),
# To force all symbols matching a regular expression to be
# converted as branches, add rules like the following:
#ForceBranchRegexpStrategyRule(r'branch.*'),
# To force all symbols matching a regular expression to be
# converted as tags, add rules like the following:
#ForceTagRegexpStrategyRule(r'tag.*'),
# To force all symbols matching a regular expression to be
# excluded from the conversion, add rules like the following:
#ExcludeRegexpStrategyRule(r'unknown-.*'),
# Sometimes people use "cvs import" to get their own source code
# into CVS. This practice creates a vendor branch 1.1.1 and
# imports the code onto the vendor branch as 1.1.1.1, then copies
# the same content to the trunk as version 1.1. Normally, such
# vendor branches are useless and they complicate the SVN history
# unnecessarily. The following rule excludes any branches that
# only existed as a vendor branch with a single import (leaving
# only the 1.1 revision). If you want to retain such branches,
# comment out the following line. (Please note that this rule
# does not exclude vendor *tags*, as they are not so easy to
# identify.)
ExcludeTrivialImportBranchRule(),
# To exclude all vendor branches (branches that had "cvs import"s
# on them bug no other kinds of commits), uncomment the following
# line:
#ExcludeVendorBranchRule(),
# Usually you want this rule, to convert unambiguous symbols
# (symbols that were only ever used as tags or only ever used as
# branches in CVS) the same way they were used in CVS:
UnambiguousUsageRule(),
# If there was ever a commit on a symbol, then it cannot be
# converted as a tag. This rule causes all such symbols to be
# converted as branches. If you would like to resolve such
# ambiguities manually, comment out the following line:
BranchIfCommitsRule(),
# Last in the list can be a catch-all rule that is used for
# symbols that were not matched by any of the more specific rules
# above. (Assuming that BranchIfCommitsRule() was included above,
# then the symbols that are still indeterminate at this point can
# sensibly be converted as branches or tags.) Include at most one
# of these lines. If none of these catch-all rules are included,
# then the presence of any ambiguous symbols (that haven't been
# disambiguated above) is an error:
# Convert ambiguous symbols based on whether they were used more
# often as branches or as tags:
HeuristicStrategyRule(),
# Convert all ambiguous symbols as branches:
#AllBranchRule(),
# Convert all ambiguous symbols as tags:
#AllTagRule(),
# The last rule is here to choose the preferred parent of branches
# and tags, that is, the line of development from which the symbol
# sprouts.
HeuristicPreferredParentRule(),
]
# Specify a username to be used for commits for which CVS doesn't
# record the original author (for example, the creation of a branch).
# This should be a simple (unix-style) username, but it can be
# translated into a git-style name by the author_transforms map.
ctx.username = 'cvs2svn'
# ctx.svn_property_setters contains a list of rules used to set the
# svn properties on files in the converted archive. For each file,
# the rules are tried one by one. Any rule can add or suppress one or
# more svn properties. Typically the rules will not overwrite
# properties set by a previous rule (though they are free to do so).
#
# Obviously, SVN properties per se are not interesting for a cvs2git
# conversion, but some of these properties have side-effects that do
# affect the git output. FIXME: Document this in more detail.
ctx.svn_property_setters.extend([
# To read auto-props rules from a file, uncomment the following line
# and specify a filename. The boolean argument specifies whether
# case should be ignored when matching filenames to the filename
# patterns found in the auto-props file:
#AutoPropsPropertySetter(
# r'/home/username/.subversion/config',
# ignore_case=True,
# ),
# To read mime types from a file, uncomment the following line and
# specify a filename:
#MimeMapper(r'/etc/mime.types'),
# Omit the svn:eol-style property from any files that are listed
# as binary (i.e., mode '-kb') in CVS:
CVSBinaryFileEOLStyleSetter(),
# If the file is binary and its svn:mime-type property is not yet
# set, set svn:mime-type to 'application/octet-stream'.
CVSBinaryFileDefaultMimeTypeSetter(),
# To try to determine the eol-style from the mime type, uncomment
# the following line:
#EOLStyleFromMimeTypeSetter(),
# Choose one of the following lines to set the default
# svn:eol-style if none of the above rules applied. The argument
# is the svn:eol-style that should be applied, or None if no
# svn:eol-style should be set (i.e., the file should be treated as
# binary).
#
# The default is to treat all files as binary unless one of the
# previous rules has determined otherwise, because this is the
# safest approach. However, if you have been diligent about
# marking binary files with -kb in CVS and/or you have used the
# above rules to definitely mark binary files as binary, then you
# might prefer to use 'native' as the default, as it is usually
# the most convenient setting for text files. Other possible
# options: 'CRLF', 'CR', 'LF'.
DefaultEOLStyleSetter(None),
#DefaultEOLStyleSetter('native'),
# Prevent svn:keywords from being set on files that have
# svn:eol-style unset.
SVNBinaryFileKeywordsPropertySetter(),
# If svn:keywords has not been set yet, set it based on the file's
# CVS mode:
KeywordsPropertySetter(config.SVN_KEYWORDS_VALUE),
# Set the svn:executable flag on any files that are marked in CVS as
# being executable:
ExecutablePropertySetter(),
])
# The directory to use for temporary files:
ctx.tmpdir = r'cvs2svn-tmp'
# To skip the cleanup of temporary files, uncomment the following
# option:
#ctx.skip_cleanup = True
# In CVS, it is perfectly possible to make a single commit that
# affects more than one project or more than one branch of a single
# project. Subversion also allows such commits. Therefore, by
# default, when cvs2svn sees what looks like a cross-project or
# cross-branch CVS commit, it converts it into a
# cross-project/cross-branch Subversion commit.
#
# However, other tools and SCMs have trouble representing
# cross-project or cross-branch commits. (For example, Trac's Revtree
# plugin, http://www.trac-hacks.org/wiki/RevtreePlugin is confused by
# such commits.) Therefore, we provide the following two options to
# allow cross-project/cross-branch commits to be suppressed.
# cvs2git only supports single-project conversions (multiple-project
# conversions wouldn't really make sense for git anyway). So this
# option must be set to False:
ctx.cross_project_commits = False
# git itself doesn't allow commits that affect more than one branch,
# so this option must be set to False:
ctx.cross_branch_commits = False
# cvs2git does not yet handle translating .cvsignore files into
# .gitignore files, so by default, the .cvsignore files are included
# in the conversion output. If you would like to omit the .cvsignore
# files from the output, set this option to False:
ctx.keep_cvsignore = True
# By default, it is a fatal error for a CVS ",v" file to appear both
# inside and outside of an "Attic" subdirectory (this should never
# happen, but frequently occurs due to botched repository
# administration). If you would like to retain both versions of such
# files, change the following option to True, and the attic version of
# the file will be written to a subdirectory called "Attic" in the
# output repository:
ctx.retain_conflicting_attic_files = False
# CVS uses unix login names as author names whereas git requires
# author names to be of the form "foo <bar>". The default is to set
# the git author to "cvsauthor <cvsauthor>". author_transforms can be
# used to map cvsauthor names (e.g., "jrandom") to a true name and
# email address (e.g., "J. Random <jrandom@example.com>" for the
# example shown). All values should be either Unicode strings (i.e.,
# with "u" as a prefix) or 8-bit strings in the utf-8 encoding.
# Please substitute your own project's usernames here to use with the
# author_transforms option of GitOutputOption below.
author_transforms={
'alain' : ('Alain Greiner' , 'alliance-cvs@asim.lip6.fr'),
'boris' : ('Boris Boutillier' , 'alliance-cvs@asim.lip6.fr'),
'czo' : ('Olivier Sirol' , 'alliance-cvs@asim.lip6.fr'),
'd2' : ('Damien Dupuis' , 'alliance-cvs@asim.lip6.fr'),
'dom' : ('Dominique Ledu' , 'alliance-cvs@asim.lip6.fr'),
'franck' : ('Franck Wajsburt' , 'alliance-cvs@asim.lip6.fr'),
'francois' : ('Francois Donnet' , 'alliance-cvs@asim.lip6.fr'),
'fred' : ('Frederic Petrot' , 'alliance-cvs@asim.lip6.fr'),
'gregoire' : ('Gregoire Avot' , 'alliance-cvs@asim.lip6.fr'),
'hcl' : ('Hugo Clement' , 'alliance-cvs@asim.lip6.fr'),
'jpc' : ('Jean-Paul Chaput' , 'Jean-Paul.Chaput@lip6.fr' ),
'karim' : ('Karim Dioury' , 'alliance-cvs@asim.lip6.fr'),
'ludo' : ('Ludovic Jacomme' , 'alliance-cvs@asim.lip6.fr'),
'noury' : ('Ludovic Noury' , 'alliance-cvs@asim.lip6.fr'),
'pnt' : ('Pierre Nguyen Tuong' , 'alliance-cvs@asim.lip6.fr'),
'sirol' : ('Olivier Sirol' , 'alliance-cvs@asim.lip6.fr'),
'xtof' : ('Christophe Alexandre' , 'alliance-cvs@asim.lip6.fr'),
'alliance' : ('The Alliance Tool' , 'alliance-cvs@asim.lip6.fr'),
'asimut' : ('The Asimut Tool' , 'alliance-cvs@asim.lip6.fr'),
'asm' : ('The ASM Tool' , 'alliance-cvs@asim.lip6.fr'),
'beh' : ('The BEH Tool' , 'alliance-cvs@asim.lip6.fr'),
'behvhdl' : ('The BEHVHDL Tool' , 'alliance-cvs@asim.lip6.fr'),
'cns' : ('The CNS Tool' , 'alliance-cvs@asim.lip6.fr'),
'dreal' : ('The Dreal Tool' , 'alliance-cvs@asim.lip6.fr'),
'graal' : ('The Graal Tool' , 'alliance-cvs@asim.lip6.fr'),
'lynx' : ('The Lynx Tool' , 'alliance-cvs@asim.lip6.fr'),
'outil' : ('The Generic Tool' , 'alliance-cvs@asim.lip6.fr'),
'rds' : ('The RDS Tool' , 'alliance-cvs@asim.lip6.fr'),
'simcity' : ('The Simcity Tool' , 'alliance-cvs@asim.lip6.fr'),
'syf' : ('The Syf Tool' , 'alliance-cvs@asim.lip6.fr'),
'ac' : ('Forgotten Author (ac)' , 'alliance-cvs@asim.lip6.fr'),
'ana' : ('Forgotten Author (ana)' , 'alliance-cvs@asim.lip6.fr'),
'dea9527' : ('Forgotten Author (dea9527)', 'alliance-cvs@asim.lip6.fr'),
'mai0009' : ('Forgotten Author (mai0009)', 'alliance-cvs@asim.lip6.fr'),
'nagat' : ('Forgotten Author (nagat)' , 'alliance-cvs@asim.lip6.fr'),
'olivier' : ('Forgotten Author (olivier)', 'alliance-cvs@asim.lip6.fr'),
'uid809' : ('Forgotten Author (uid809)' , 'alliance-cvs@asim.lip6.fr'),
'vancour' : ('Forgotten Author (vancour)', 'alliance-cvs@asim.lip6.fr'),
'vincent' : ('Forgotten Author (vincent)', 'alliance-cvs@asim.lip6.fr'),
# This one will be used for commits for which CVS doesn't record
# the original author, as explained above.
'cvs2svn' : ('cvs2svn', 'alliance-cvs@asim.lip6.fr'),
}
# This is the main option that causes cvs2svn to output to a
# "fastimport"-format dumpfile rather than to Subversion:
ctx.output_option = GitOutputOption(
# The file in which to write the git-fast-import stream that
# contains the changesets and branch/tag information:
'cvs2svn-tmp/git-dump.dat',
# The blobs will be written via the revision recorder, so in
# OutputPass we only have to emit references to the blob marks:
GitRevisionMarkWriter(),
# Optional map from CVS author names to git author names:
author_transforms=author_transforms,
)
# Change this option to True to turn on profiling of cvs2svn (for
# debugging purposes):
run_options.profiling = False
# Should CVSItem -> Changeset database files be memory mapped? In
# some tests, using memory mapping speeded up the overall conversion
# by about 5%. But this option can cause the conversion to fail with
# an out of memory error if the conversion computer runs out of
# virtual address space (e.g., when running a very large conversion on
# a 32-bit operating system). Therefore it is disabled by default.
# Uncomment the following line to allow these database files to be
# memory mapped.
#changeset_database.use_mmap_for_cvs_item_to_changeset_table = True
# Now set the project to be converted to git. cvs2git only supports
# single-project conversions, so this method must only be called
# once:
run_options.set_project(
# The filesystem path to the part of the CVS repository (*not* a
# CVS working copy) that should be converted. This may be a
# subdirectory (i.e., a module) within a larger CVS repository.
r'/dsk/l1/alliance/cvsroot',
# A list of symbol transformations that can be used to rename
# symbols in this project.
symbol_transforms=[
# Use IgnoreSymbolTransforms like the following to completely
# ignore symbols matching a regular expression when parsing
# the CVS repository, for example to avoid warnings about
# branches with two names and to choose the preferred name.
# It is *not* recommended to use this instead of
# ExcludeRegexpStrategyRule; though more efficient,
# IgnoreSymbolTransforms are less flexible and don't exclude
# branches correctly. The argument is a Python-style regular
# expression that has to match the *whole* CVS symbol name:
#IgnoreSymbolTransform(r'nightly-build-tag-.*')
# RegexpSymbolTransforms transform symbols textually using a
# regular expression. The first argument is a Python regular
# expression pattern and the second is a replacement pattern.
# The pattern is matched against each symbol name. If it
# matches the whole symbol name, then the symbol name is
# replaced with the corresponding replacement text. The
# replacement can include substitution patterns (e.g., r'\1'
# or r'\g<name>'). Typically you will want to use raw strings
# (strings with a preceding 'r', like shown in the examples)
# for the regexp and its replacement to avoid backslash
# substitution within those strings.
#RegexpSymbolTransform(r'release-(\d+)_(\d+)',
# r'release-\1.\2'),
#RegexpSymbolTransform(r'release-(\d+)_(\d+)_(\d+)',
# r'release-\1.\2.\3'),
# Simple 1:1 character replacements can also be done. The
# following transform, which converts backslashes into forward
# slashes, should usually be included:
ReplaceSubstringsSymbolTransform('\\','/'),
# This last rule eliminates leading, trailing, and repeated
# slashes within the output symbol names:
NormalizePathsSymbolTransform(),
],
# See the definition of global_symbol_strategy_rules above for a
# description of this option:
symbol_strategy_rules=global_symbol_strategy_rules,
)

View File

@ -0,0 +1,622 @@
# (Be in -*- mode: python; coding: utf-8 -*- mode.)
#
# ====================================================================
# Copyright (c) 2006-2009 CollabNet. All rights reserved.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at http://subversion.tigris.org/license-1.html.
# If newer versions of this license are posted there, you may use a
# newer version instead, at your option.
#
# This software consists of voluntary contributions made by many
# individuals. For exact contribution history, see the revision
# history and logs, available at http://cvs2svn.tigris.org/.
# ====================================================================
# #####################
# ## PLEASE READ ME! ##
# #####################
#
# This is a template for an options file that can be used to configure
# cvs2svn to convert to git rather than to Subversion. See
# www/cvs2svn.html and www/cvs2svn.html for general information, and
# see the comments in this file for information about what options are
# available and how they can be set.
#
# The program that is run to convert from CVS to git is called
# cvs2svn. Run it with the --options option, passing it this file
# like this:
#
# cvs2svn --options=cvs2svn-example.options
#
# The output of cvs2svn is a blob file and a dump file that can be
# loaded into git using the "git fast-import" command. Please read
# www/cvs2svn.html for more information.
#
# Many options do not have defaults, so it is easier to copy this file
# and modify what you need rather than creating a new options file
# from scratch. This file is in Python syntax, but you don't need to
# know Python to modify it. But if you *do* know Python, then you
# will be happy to know that you can use arbitary Python constructs to
# do fancy configuration tricks.
#
# But please be aware of the following:
#
# * In many places, leading whitespace is significant in Python (it is
# used instead of curly braces to group statements together).
# Therefore, if you don't know what you are doing, it is best to
# leave the whitespace as it is.
#
# * In normal strings, Python treats a backslash ("\") as an escape
# character. Therefore, if you want to specify a string that
# contains a backslash, you need either to escape the backslash with
# another backslash ("\\"), or use a "raw string", as in one if the
# following equivalent examples:
#
# cvs_executable = 'c:\\windows\\system32\\cvs.exe'
# cvs_executable = r'c:\windows\system32\cvs.exe'
#
# See http://docs.python.org/tutorial/introduction.html#strings for
# more information.
#
# Two identifiers will have been defined before this file is executed,
# and can be used freely within this file:
#
# ctx -- a Ctx object (see cvs2svn_lib/context.py), which holds
# many configuration options
#
# run_options -- an instance of the GitRunOptions class (see
# cvs2svn_lib/git_run_options.py), which holds some variables
# governing how cvs2svn is run
# Import some modules that are used in setting the options:
import re
from cvs2svn_lib import config
from cvs2svn_lib import changeset_database
from cvs2svn_lib.common import CVSTextDecoder
from cvs2svn_lib.log import Log
from cvs2svn_lib.project import Project
from cvs2svn_lib.git_revision_recorder import GitRevisionRecorder
from cvs2svn_lib.git_output_option import GitRevisionMarkWriter
from cvs2svn_lib.git_output_option import GitOutputOption
from cvs2svn_lib.revision_manager import NullRevisionRecorder
from cvs2svn_lib.revision_manager import NullRevisionExcluder
from cvs2svn_lib.fulltext_revision_recorder \
import SimpleFulltextRevisionRecorderAdapter
from cvs2svn_lib.rcs_revision_manager import RCSRevisionReader
from cvs2svn_lib.cvs_revision_manager import CVSRevisionReader
from cvs2svn_lib.checkout_internal import InternalRevisionRecorder
from cvs2svn_lib.checkout_internal import InternalRevisionExcluder
from cvs2svn_lib.checkout_internal import InternalRevisionReader
from cvs2svn_lib.symbol_strategy import AllBranchRule
from cvs2svn_lib.symbol_strategy import AllTagRule
from cvs2svn_lib.symbol_strategy import BranchIfCommitsRule
from cvs2svn_lib.symbol_strategy import ExcludeRegexpStrategyRule
from cvs2svn_lib.symbol_strategy import ForceBranchRegexpStrategyRule
from cvs2svn_lib.symbol_strategy import ForceTagRegexpStrategyRule
from cvs2svn_lib.symbol_strategy import ExcludeTrivialImportBranchRule
from cvs2svn_lib.symbol_strategy import ExcludeVendorBranchRule
from cvs2svn_lib.symbol_strategy import HeuristicStrategyRule
from cvs2svn_lib.symbol_strategy import UnambiguousUsageRule
from cvs2svn_lib.symbol_strategy import HeuristicPreferredParentRule
from cvs2svn_lib.symbol_strategy import SymbolHintsFileRule
from cvs2svn_lib.symbol_transform import ReplaceSubstringsSymbolTransform
from cvs2svn_lib.symbol_transform import RegexpSymbolTransform
from cvs2svn_lib.symbol_transform import IgnoreSymbolTransform
from cvs2svn_lib.symbol_transform import NormalizePathsSymbolTransform
from cvs2svn_lib.property_setters import AutoPropsPropertySetter
from cvs2svn_lib.property_setters import CVSBinaryFileDefaultMimeTypeSetter
from cvs2svn_lib.property_setters import CVSBinaryFileEOLStyleSetter
from cvs2svn_lib.property_setters import DefaultEOLStyleSetter
from cvs2svn_lib.property_setters import EOLStyleFromMimeTypeSetter
from cvs2svn_lib.property_setters import ExecutablePropertySetter
from cvs2svn_lib.property_setters import KeywordsPropertySetter
from cvs2svn_lib.property_setters import MimeMapper
from cvs2svn_lib.property_setters import SVNBinaryFileKeywordsPropertySetter
# To choose the level of logging output, uncomment one of the
# following lines:
#Log().log_level = Log.WARN
#Log().log_level = Log.QUIET
Log().log_level = Log.NORMAL
#Log().log_level = Log.VERBOSE
#Log().log_level = Log.DEBUG
# During CollectRevsPass, cvs2svn records the contents of file
# revisions into a "blob" file in git-fast-import format. This option
# configures that process:
ctx.revision_recorder = SimpleFulltextRevisionRecorderAdapter(
# The following option specifies how the revision contents of the RCS
# files should be read.
#
# RCSRevisionReader uses RCS's "co" program to extract the revision
# contents of the RCS files during CollectRevsPass. The constructor
# argument specifies how to invoke the "co" executable.
#
# CVSRevisionReader uses the "cvs" program to extract the revision
# contents out of the RCS files during OutputPass. This option is
# considerably slower than RCSRevisionReader because "cvs" is
# considerably slower than "co". However, it works in some situations
# where RCSRevisionReader fails; see the HTML documentation of the
# "--use-cvs" option for details. The constructor argument specifies
# how to invoke the "co" executable.
#
# Uncomment one of the two following lines:
#RCSRevisionReader(co_executable=r'co'),
CVSRevisionReader(cvs_executable=r'cvs'),
# The file in which to write the git-fast-import stream that
# contains the file revision contents:
GitRevisionRecorder('cvs2svn-tmp/git-blob.dat'),
)
# cvs2svn does not need to keep track of what revisions will be
# excluded, so leave this option unchanged:
ctx.revision_excluder = NullRevisionExcluder()
# cvs2svn doesn't need a revision reader because OutputPass only
# refers to blobs that were output during CollectRevsPass, so leave
# this option set to None.
ctx.revision_reader = None
# Change the following line to True if the conversion should only
# include the trunk of the repository (i.e., all branches and tags
# should be omitted from the conversion):
ctx.trunk_only = False
# How to convert CVS author names, log messages, and filenames to
# Unicode. The first argument to CVSTextDecoder is a list of encoders
# that are tried in order in 'strict' mode until one of them succeeds.
# If none of those succeeds, then fallback_encoder (if it is
# specified) is used in lossy 'replace' mode. Setting a fallback
# encoder ensures that the encoder always succeeds, but it can cause
# information loss.
ctx.cvs_author_decoder = CVSTextDecoder(
[
'latin1',
'utf8',
'ascii',
],
fallback_encoding='latin1'
)
ctx.cvs_log_decoder = CVSTextDecoder(
[
'latin1',
'utf8',
'ascii',
],
fallback_encoding='latin1'
)
# You might want to be especially strict when converting filenames to
# Unicode (e.g., maybe not specify a fallback_encoding).
ctx.cvs_filename_decoder = CVSTextDecoder(
[
'latin1',
'utf8',
'ascii',
],
fallback_encoding='latin1'
)
# Template for the commit message to be used for initial project
# commits.
ctx.initial_project_commit_message = (
'Standard project directories initialized by cvs2svn.'
)
# Template for the commit message to be used for post commits, in
# which modifications to a vendor branch are copied back to trunk.
# This message can use '%(revnum)d' to include the SVN revision number
# of the revision that included the change to the vendor branch
# (admittedly rather pointless in a cvs2svn conversion).
ctx.post_commit_message = (
'This commit was generated by cvs2svn to track changes on a CVS '
'vendor branch.'
)
# Template for the commit message to be used for commits in which
# symbols are created. This message can use '%(symbol_type)s' to
# include the type of the symbol ('branch' or 'tag') or
# '%(symbol_name)s' to include the name of the symbol.
ctx.symbol_commit_message = (
"This commit was manufactured by cvs2svn to create %(symbol_type)s "
"'%(symbol_name)s'."
)
# Template for the commit message to be used for commits in which
# tags are pseudo-merged back to their source branch. This message can
# use '%(symbol_name)s' to include the name of the symbol.
# (Not used by default unless you enable tie_tag_fixup_branches on
# GitOutputOption.)
ctx.tie_tag_ancestry_message = (
"This commit was manufactured by cvs2svn to tie ancestry for "
"tag '%(symbol_name)s' back to the source branch."
)
# Some CVS clients for MacOS store resource fork data into CVS along
# with the file contents itself by wrapping it all up in a container
# format called "AppleSingle". Subversion currently does not support
# MacOS resource forks. Nevertheless, sometimes the resource fork
# information is not necessary and can be discarded. Set the
# following option to True if you would like cvs2svn to identify files
# whose contents are encoded in AppleSingle format, and discard all
# but the data fork for such files before committing them to
# Subversion. (Please note that AppleSingle contents are identified
# by the AppleSingle magic number as the first four bytes of the file.
# This check is not failproof, so only set this option if you think
# you need it.)
ctx.decode_apple_single = False
# This option can be set to the name of a filename to which are stored
# statistics and conversion decisions about the CVS symbols.
ctx.symbol_info_filename = None
#ctx.symbol_info_filename = 'symbol-info.txt'
# cvs2svn uses "symbol strategy rules" to help decide how to handle
# CVS symbols. The rules in a project's symbol_strategy_rules are
# applied in order, and each rule is allowed to modify the symbol.
# The result (after each of the rules has been applied) is used for
# the conversion.
#
# 1. A CVS symbol might be used as a tag in one file and as a branch
# in another file. cvs2svn has to decide whether to convert such a
# symbol as a tag or as a branch. cvs2svn uses a series of
# heuristic rules to decide how to convert a symbol. The user can
# override the default rules for specific symbols or symbols
# matching regular expressions.
#
# 2. cvs2svn is also capable of excluding symbols from the conversion
# (provided no other symbols depend on them.
#
# 3. CVS does not record unambiguously the line of development from
# which a symbol sprouted. cvs2svn uses a heuristic to choose a
# symbol's "preferred parents".
#
# The standard branch/tag/exclude StrategyRules do not change a symbol
# that has already been processed by an earlier rule, so in effect the
# first matching rule is the one that is used.
global_symbol_strategy_rules = [
# It is possible to specify manually exactly how symbols should be
# converted and what line of development should be used as the
# preferred parent. To do so, create a file containing the symbol
# hints and enable the following option.
#
# The format of the hints file is described in the documentation
# for the --symbol-hints command-line option. The file output by
# the --write-symbol-info (i.e., ctx.symbol_info_filename) option
# is in the same format. The simplest way to use this option is
# to run the conversion through CollateSymbolsPass with
# --write-symbol-info option, copy the symbol info and edit it to
# create a hints file, then re-start the conversion at
# CollateSymbolsPass with this option enabled.
#SymbolHintsFileRule('symbol-hints.txt'),
# To force all symbols matching a regular expression to be
# converted as branches, add rules like the following:
#ForceBranchRegexpStrategyRule(r'branch.*'),
# To force all symbols matching a regular expression to be
# converted as tags, add rules like the following:
#ForceTagRegexpStrategyRule(r'tag.*'),
# To force all symbols matching a regular expression to be
# excluded from the conversion, add rules like the following:
#ExcludeRegexpStrategyRule(r'unknown-.*'),
# Sometimes people use "cvs import" to get their own source code
# into CVS. This practice creates a vendor branch 1.1.1 and
# imports the code onto the vendor branch as 1.1.1.1, then copies
# the same content to the trunk as version 1.1. Normally, such
# vendor branches are useless and they complicate the SVN history
# unnecessarily. The following rule excludes any branches that
# only existed as a vendor branch with a single import (leaving
# only the 1.1 revision). If you want to retain such branches,
# comment out the following line. (Please note that this rule
# does not exclude vendor *tags*, as they are not so easy to
# identify.)
ExcludeTrivialImportBranchRule(),
# To exclude all vendor branches (branches that had "cvs import"s
# on them bug no other kinds of commits), uncomment the following
# line:
#ExcludeVendorBranchRule(),
# Usually you want this rule, to convert unambiguous symbols
# (symbols that were only ever used as tags or only ever used as
# branches in CVS) the same way they were used in CVS:
UnambiguousUsageRule(),
# If there was ever a commit on a symbol, then it cannot be
# converted as a tag. This rule causes all such symbols to be
# converted as branches. If you would like to resolve such
# ambiguities manually, comment out the following line:
BranchIfCommitsRule(),
# Last in the list can be a catch-all rule that is used for
# symbols that were not matched by any of the more specific rules
# above. (Assuming that BranchIfCommitsRule() was included above,
# then the symbols that are still indeterminate at this point can
# sensibly be converted as branches or tags.) Include at most one
# of these lines. If none of these catch-all rules are included,
# then the presence of any ambiguous symbols (that haven't been
# disambiguated above) is an error:
# Convert ambiguous symbols based on whether they were used more
# often as branches or as tags:
HeuristicStrategyRule(),
# Convert all ambiguous symbols as branches:
#AllBranchRule(),
# Convert all ambiguous symbols as tags:
#AllTagRule(),
# The last rule is here to choose the preferred parent of branches
# and tags, that is, the line of development from which the symbol
# sprouts.
HeuristicPreferredParentRule(),
]
# Specify a username to be used for commits for which CVS doesn't
# record the original author (for example, the creation of a branch).
# This should be a simple (unix-style) username, but it can be
# translated into a git-style name by the author_transforms map.
ctx.username = 'cvs2svn'
# ctx.svn_property_setters contains a list of rules used to set the
# svn properties on files in the converted archive. For each file,
# the rules are tried one by one. Any rule can add or suppress one or
# more svn properties. Typically the rules will not overwrite
# properties set by a previous rule (though they are free to do so).
#
# Obviously, SVN properties per se are not interesting for a cvs2svn
# conversion, but some of these properties have side-effects that do
# affect the git output. FIXME: Document this in more detail.
ctx.svn_property_setters.extend([
# To read auto-props rules from a file, uncomment the following line
# and specify a filename. The boolean argument specifies whether
# case should be ignored when matching filenames to the filename
# patterns found in the auto-props file:
#AutoPropsPropertySetter(
# r'/home/username/.subversion/config',
# ignore_case=True,
# ),
# To read mime types from a file, uncomment the following line and
# specify a filename:
#MimeMapper(r'/etc/mime.types'),
# Omit the svn:eol-style property from any files that are listed
# as binary (i.e., mode '-kb') in CVS:
CVSBinaryFileEOLStyleSetter(),
# If the file is binary and its svn:mime-type property is not yet
# set, set svn:mime-type to 'application/octet-stream'.
CVSBinaryFileDefaultMimeTypeSetter(),
# To try to determine the eol-style from the mime type, uncomment
# the following line:
#EOLStyleFromMimeTypeSetter(),
# Choose one of the following lines to set the default
# svn:eol-style if none of the above rules applied. The argument
# is the svn:eol-style that should be applied, or None if no
# svn:eol-style should be set (i.e., the file should be treated as
# binary).
#
# The default is to treat all files as binary unless one of the
# previous rules has determined otherwise, because this is the
# safest approach. However, if you have been diligent about
# marking binary files with -kb in CVS and/or you have used the
# above rules to definitely mark binary files as binary, then you
# might prefer to use 'native' as the default, as it is usually
# the most convenient setting for text files. Other possible
# options: 'CRLF', 'CR', 'LF'.
DefaultEOLStyleSetter(None),
#DefaultEOLStyleSetter('native'),
# Prevent svn:keywords from being set on files that have
# svn:eol-style unset.
SVNBinaryFileKeywordsPropertySetter(),
# If svn:keywords has not been set yet, set it based on the file's
# CVS mode:
KeywordsPropertySetter(config.SVN_KEYWORDS_VALUE),
# Set the svn:executable flag on any files that are marked in CVS as
# being executable:
ExecutablePropertySetter(),
])
# The directory to use for temporary files:
ctx.tmpdir = r'cvs2svn-tmp'
# To skip the cleanup of temporary files, uncomment the following
# option:
#ctx.skip_cleanup = True
# In CVS, it is perfectly possible to make a single commit that
# affects more than one project or more than one branch of a single
# project. Subversion also allows such commits. Therefore, by
# default, when cvs2svn sees what looks like a cross-project or
# cross-branch CVS commit, it converts it into a
# cross-project/cross-branch Subversion commit.
#
# However, other tools and SCMs have trouble representing
# cross-project or cross-branch commits. (For example, Trac's Revtree
# plugin, http://www.trac-hacks.org/wiki/RevtreePlugin is confused by
# such commits.) Therefore, we provide the following two options to
# allow cross-project/cross-branch commits to be suppressed.
# cvs2svn only supports single-project conversions (multiple-project
# conversions wouldn't really make sense for git anyway). So this
# option must be set to False:
ctx.cross_project_commits = False
# git itself doesn't allow commits that affect more than one branch,
# so this option must be set to False:
ctx.cross_branch_commits = False
# cvs2svn does not yet handle translating .cvsignore files into
# .gitignore files, so by default, the .cvsignore files are included
# in the conversion output. If you would like to omit the .cvsignore
# files from the output, set this option to False:
ctx.keep_cvsignore = True
# By default, it is a fatal error for a CVS ",v" file to appear both
# inside and outside of an "Attic" subdirectory (this should never
# happen, but frequently occurs due to botched repository
# administration). If you would like to retain both versions of such
# files, change the following option to True, and the attic version of
# the file will be written to a subdirectory called "Attic" in the
# output repository:
ctx.retain_conflicting_attic_files = False
# CVS uses unix login names as author names whereas git requires
# author names to be of the form "foo <bar>". The default is to set
# the git author to "cvsauthor <cvsauthor>". author_transforms can be
# used to map cvsauthor names (e.g., "jrandom") to a true name and
# email address (e.g., "J. Random <jrandom@example.com>" for the
# example shown). All values should be either Unicode strings (i.e.,
# with "u" as a prefix) or 8-bit strings in the utf-8 encoding.
# Please substitute your own project's usernames here to use with the
# author_transforms option of GitOutputOption below.
author_transforms={
'alain' : ('Alain Greiner' , 'arith-devel@soc.lip6.fr'),
'boris' : ('Boris Boutillier' , 'arith-devel@soc.lip6.fr'),
'czo' : ('Olivier Sirol' , 'arith-devel@soc.lip6.fr'),
'cobell' : ('Sophie Belloeil' , 'arith-devel@soc.lip6.fr'),
'd2' : ('Damien Dupuis' , 'arith-devel@soc.lip6.fr'),
'dom' : ('Dominique Ledu' , 'arith-devel@soc.lip6.fr'),
'franck' : ('Franck Wajsburt' , 'arith-devel@soc.lip6.fr'),
'francois' : ('Francois Donnet' , 'arith-devel@soc.lip6.fr'),
'fred' : ('Frederic Petrot' , 'arith-devel@soc.lip6.fr'),
'gregoire' : ('Gregoire Avot' , 'arith-devel@soc.lip6.fr'),
'hcl' : ('Hugo Clement' , 'arith-devel@soc.lip6.fr'),
'jpc' : ('Jean-Paul Chaput' , 'Jean-Paul.Chaput@lip6.fr' ),
'karim' : ('Karim Dioury' , 'arith-devel@soc.lip6.fr'),
'ludo' : ('Ludovic Jacomme' , 'arith-devel@soc.lip6.fr'),
'noury' : ('Ludovic Noury' , 'arith-devel@soc.lip6.fr'),
'pnt' : ('Pierre Nguyen Tuong' , 'arith-devel@soc.lip6.fr'),
'roselyne' : ('Roselyne Chotin-Avot' , 'Roselyne.Chotin-Avot@lip6.fr'),
'sirol' : ('Olivier Sirol' , 'arith-devel@soc.lip6.fr'),
'xtof' : ('Christophe Alexandre' , 'arith-devel@soc.lip6.fr'),
'alliance' : ('The Alliance Tool' , 'arith-devel@soc.lip6.fr'),
'asimut' : ('The Asimut Tool' , 'arith-devel@soc.lip6.fr'),
'asm' : ('The ASM Tool' , 'arith-devel@soc.lip6.fr'),
'beh' : ('The BEH Tool' , 'arith-devel@soc.lip6.fr'),
'behvhdl' : ('The BEHVHDL Tool' , 'arith-devel@soc.lip6.fr'),
'cns' : ('The CNS Tool' , 'arith-devel@soc.lip6.fr'),
'dreal' : ('The Dreal Tool' , 'arith-devel@soc.lip6.fr'),
'graal' : ('The Graal Tool' , 'arith-devel@soc.lip6.fr'),
'lynx' : ('The Lynx Tool' , 'arith-devel@soc.lip6.fr'),
'outil' : ('The Generic Tool' , 'arith-devel@soc.lip6.fr'),
'rds' : ('The RDS Tool' , 'arith-devel@soc.lip6.fr'),
'simcity' : ('The Simcity Tool' , 'arith-devel@soc.lip6.fr'),
'syf' : ('The Syf Tool' , 'arith-devel@soc.lip6.fr'),
'ac' : ('Forgotten Author (ac)' , 'arith-devel@soc.lip6.fr'),
'ana' : ('Forgotten Author (ana)' , 'arith-devel@soc.lip6.fr'),
'dea9527' : ('Forgotten Author (dea9527)', 'arith-devel@soc.lip6.fr'),
'mai0009' : ('Forgotten Author (mai0009)', 'arith-devel@soc.lip6.fr'),
'nagat' : ('Forgotten Author (nagat)' , 'arith-devel@soc.lip6.fr'),
'olivier' : ('Forgotten Author (olivier)', 'arith-devel@soc.lip6.fr'),
'uid809' : ('Forgotten Author (uid809)' , 'arith-devel@soc.lip6.fr'),
'vancour' : ('Forgotten Author (vancour)', 'arith-devel@soc.lip6.fr'),
'vincent' : ('Forgotten Author (vincent)', 'arith-devel@soc.lip6.fr'),
# This one will be used for commits for which CVS doesn't record
# the original author, as explained above.
'cvs2svn' : ('cvs2svn', 'arith-devel@soc.lip6.fr'),
}
# This is the main option that causes cvs2svn to output to a
# "fastimport"-format dumpfile rather than to Subversion:
ctx.output_option = GitOutputOption(
# The file in which to write the git-fast-import stream that
# contains the changesets and branch/tag information:
'cvs2svn-tmp/git-dump.dat',
# The blobs will be written via the revision recorder, so in
# OutputPass we only have to emit references to the blob marks:
GitRevisionMarkWriter(),
# Optional map from CVS author names to git author names:
author_transforms=author_transforms,
)
# Change this option to True to turn on profiling of cvs2svn (for
# debugging purposes):
run_options.profiling = False
# Should CVSItem -> Changeset database files be memory mapped? In
# some tests, using memory mapping speeded up the overall conversion
# by about 5%. But this option can cause the conversion to fail with
# an out of memory error if the conversion computer runs out of
# virtual address space (e.g., when running a very large conversion on
# a 32-bit operating system). Therefore it is disabled by default.
# Uncomment the following line to allow these database files to be
# memory mapped.
#changeset_database.use_mmap_for_cvs_item_to_changeset_table = True
# Now set the project to be converted to git. cvs2svn only supports
# single-project conversions, so this method must only be called
# once:
run_options.set_project(
# The filesystem path to the part of the CVS repository (*not* a
# CVS working copy) that should be converted. This may be a
# subdirectory (i.e., a module) within a larger CVS repository.
r'/users/outil/arith/cvs',
# A list of symbol transformations that can be used to rename
# symbols in this project.
symbol_transforms=[
# Use IgnoreSymbolTransforms like the following to completely
# ignore symbols matching a regular expression when parsing
# the CVS repository, for example to avoid warnings about
# branches with two names and to choose the preferred name.
# It is *not* recommended to use this instead of
# ExcludeRegexpStrategyRule; though more efficient,
# IgnoreSymbolTransforms are less flexible and don't exclude
# branches correctly. The argument is a Python-style regular
# expression that has to match the *whole* CVS symbol name:
#IgnoreSymbolTransform(r'nightly-build-tag-.*')
# RegexpSymbolTransforms transform symbols textually using a
# regular expression. The first argument is a Python regular
# expression pattern and the second is a replacement pattern.
# The pattern is matched against each symbol name. If it
# matches the whole symbol name, then the symbol name is
# replaced with the corresponding replacement text. The
# replacement can include substitution patterns (e.g., r'\1'
# or r'\g<name>'). Typically you will want to use raw strings
# (strings with a preceding 'r', like shown in the examples)
# for the regexp and its replacement to avoid backslash
# substitution within those strings.
#RegexpSymbolTransform(r'release-(\d+)_(\d+)',
# r'release-\1.\2'),
#RegexpSymbolTransform(r'release-(\d+)_(\d+)_(\d+)',
# r'release-\1.\2.\3'),
# Simple 1:1 character replacements can also be done. The
# following transform, which converts backslashes into forward
# slashes, should usually be included:
ReplaceSubstringsSymbolTransform('\\','/'),
# This last rule eliminates leading, trailing, and repeated
# slashes within the output symbol names:
NormalizePathsSymbolTransform(),
],
# See the definition of global_symbol_strategy_rules above for a
# description of this option:
symbol_strategy_rules=global_symbol_strategy_rules,
)

View File

@ -20,9 +20,9 @@
# ${output_dir}/README.pdf # ${output_dir}/README.pdf
# DESTINATION ${latexInstallDir} ) # DESTINATION ${latexInstallDir} )
# install ( DIRECTORY ${output_dir}/README DESTINATION ${htmlInstallDir} ) # install ( DIRECTORY ${output_dir}/README DESTINATION ${htmlInstallDir} )
install ( FILES general-index.html DESTINATION ${htmlInstallDir} RENAME index.html ) # install ( FILES general-index.html DESTINATION ${htmlInstallDir} RENAME index.html )
IF(DOXYGEN_FOUND) IF(DOXYGEN_FOUND)
add_subdirectory(crlcore) add_subdirectory(crlcore)
ENDIF(DOXYGEN_FOUND) ENDIF(DOXYGEN_FOUND)
add_subdirectory(UsersGuide) #add_subdirectory(UsersGuide)

View File

@ -1,682 +0,0 @@
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
%\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage{palatino}
\usepackage{marvosym}
\usepackage{pifont}
\usepackage{xspace}
\usepackage{longtable}
\usepackage{array}
\usepackage{fancyhdr}
\usepackage[sf,bf]{titlesec}
\usepackage{titletoc}
\usepackage{float}
\usepackage[dvips]{graphicx}
%\usepackage[dvips]{color}
\usepackage{listings}
\usepackage[dvips]{hyperref}
%\usepackage[hyphens]{url}
%\usepackage{html}
\usepackage[paper=a4paper
,headheight=30pt
]{geometry}
%\usepackage{layouts}
\newcommand{\key}[1]{\fbox{\textsf{#1}}}
\newcommand{\menu}[1]{\fbox{\textsf{\textbf{{#1}}}}}
\newcommand {\crlWebUrl} [1] {http://asim.lip6.fr/recherche/coriolis/#1}
\newcommand {\crlFtpUrl} [1] {http://asim.lip6.fr/pub/coriolis/2.0/#1}
\newcommand {\alcFtpUrl} [1] {http://asim.lip6.fr/pub/alliance/distribution/5.0/#1}
\newcommand {\slSocSrpmsUrl}[1] {http://ftp.lip6.fr/pub/linux/distributions/slsoc/5x/i386/SLSoC/SRPMS/#1}
\newcommand {\slRpmsiUrl} [1] {http://ftp.lip6.fr/pub/linux/distributions/slsoc/5x/i386/i386/SL/#1}
\newcommand {\slRpmsxUrl} [1] {http://ftp.lip6.fr/pub/linux/distributions/slsoc/5x/x86\_64/x86\_64/SL/#1}
\latexhtml{
%% LaTeX specific code.
\newcommand{\xhref} [2]{\href{#2}{#1}}
\newcommand{\crlWebRef} [1]{\href{\crlWebUrl{#1}}{\texttt{\footnotesize #1}}}
\newcommand{\crlFtpRef} [1]{\href{\crlFtpUrl{#1}}{\texttt{\footnotesize #1}}}
\newcommand{\alcFtpRef} [1]{\href{\alcFtpUrl{#1}}{\texttt{\footnotesize #1}}}
\newcommand{\slSocSrpmsRef}[1]{\href{\slSocSrpmsUrl{#1}}{\texttt{\footnotesize #1}}}
\newcommand{\slRpmsiRef} [1]{\href{\slRpmsiUrl{#1}}{\texttt{\footnotesize #1}}}
\newcommand{\slRpmsxRef} [1]{\href{\slRpmsxUrl{#1}}{\texttt{\footnotesize #1}}}
}{
%% LaTeX2HTML specific code.
\newcommand{\xhref} [2]{\htmladdnormallink{#1}{#2}}
\newcommand{\crlWebRef} [1]{\htmladdnormallink{#1}{\crlWebUrl{#1}}}
\newcommand{\crlFtpRef} [1]{\htmladdnormallink{#1}{\crlFtpUrl{#1}}}
\newcommand{\alcFtpRef} [1]{\htmladdnormallink{#1}{\alcFtpUrl{#1}}}
\newcommand{\slSocSrpmsRef}[1]{\htmladdnormallink{#1}{\slSocSrpmsUrl{#1}}}
\newcommand{\slRpmsiRef} [1]{\htmladdnormallink{#1}{\slRpmsiUrl{#1}}}
\newcommand{\slRpmsxRef} [1]{\htmladdnormallink{#1}{\slRpmsxUrl{#1}}}
}
\newcommand {\Alexandre} {\textsc{Alexandre}\xspace}
\newcommand {\Belloeil} {\textsc{Belloeil}\xspace}
\newcommand {\Chu} {\textsc{Chu}\xspace}
\newcommand {\Chaput} {\textsc{Chaput}\xspace}
\newcommand {\Dupuis} {\textsc{Dupuis}\xspace}
\newcommand {\Escassut} {\textsc{Escassut}\xspace}
\newcommand {\Masson} {\textsc{Masson}\xspace}
\newcommand {\LIP} {\textsc{lip6}\xspace}
\newcommand {\SoC} {\textsc{S}o\textsc{C}\xspace}
\newcommand {\LGPL} {\textsc{lgpl}\xspace}
\newcommand {\GPL} {\textsc{gpl}\xspace}
\newcommand {\ANSI} {\textsc{ansi}\xspace}
\newcommand {\XML} {\textsc{xml}\xspace}
\newcommand {\VHDL} {\textsc{vhdl}\xspace}
\newcommand {\FEL} {\xhref{\textsc{fel}}{http://spins.fedoraproject.org/fel/}\xspace}
\newcommand {\SiII} {\xhref{\textsc{Si2}}{http://www.si2.org/}\xspace}
\newcommand {\Bull} {\xhref{\textsc{Bull}}{http://www.bull.com/}\xspace}
\newcommand {\UPMC} {\xhref{\textsc{upmc}}{http://www.upmc.fr/}\xspace}
\newcommand {\Cadence} {\xhref{\textsc{Cadence}}{http://www.cadence.com/}\xspace}
\newcommand {\LEFDEF} {\textsc{lef/def}\xspace}
\newcommand {\RHELV} {\textsc{rhel 5}\xspace}
\newcommand {\CentOSV} {\textsc{CentOS 5}\xspace}
\newcommand {\SLV} {\textsc{SL 5}\xspace}
\newcommand {\Fedora} {\textsc{Fedora}\xspace}
\newcommand {\FedoraXII} {\textsc{Fedora 12}\xspace}
\newcommand {\FedoraXIII} {\textsc{Fedora 13}\xspace}
\newcommand {\Karmik} {\textsc{Ubuntu Karmik}\xspace}
\newcommand {\Lucid} {\textsc{Ubuntu Lucid}\xspace}
\newcommand {\QtIV} {\textsc{Qt 4}\xspace}
\newcommand {\rpm} {\texttt{rpm}\xspace}
\newcommand {\alien} {\texttt{alien}\xspace}
\newcommand {\boost} {\texttt{boost}\xspace}
\newcommand {\tty} {\texttt{tty}\xspace}
\newcommand {\BoxRouter} {\textsc{BoxRouter}\xspace}
\newcommand {\BoxRouterRef} {\xhref{\BoxRouter}%
{http://www.cerc.utexas.edu/~thyeros/boxrouter/boxrouter.htm}\xspace}
\newcommand {\Flute} {\textsc{Flute}\xspace}
\newcommand {\FluteRef} {\xhref{http://home.eng.iastate.edu/\~{}cnchu/}%
{http://home.eng.iastate.edu/~cnchu/}\xspace}
\newcommand {\netlist} {\textit{netlist}\xspace}
\newcommand {\physical} {\textit{physical}\xspace}
\newcommand {\logical} {\textit{logical}\xspace}
\newcommand {\Alliance} {\textsc{Alliance}\xspace}
\newcommand {\MBK} {\textsc{mbk}\xspace}
\newcommand {\SxLib} {\texttt{SxLib}\xspace}
\newcommand {\Nero} {\texttt{Nero}\xspace}
\newcommand {\vst} {\texttt{vst}\xspace}
\newcommand {\ap} {\texttt{ap}\xspace}
\newcommand {\PHFIG} {\texttt{PHFIG}\xspace}
\newcommand {\LOFIG} {\texttt{LOFIG}\xspace}
\newcommand {\Coriolis} {\textsc{Coriolis}\xspace}
\newcommand {\CoriolisI} {\textsc{Coriolis 1}\xspace}
\newcommand {\CoriolisII} {\textsc{Coriolis 2}\xspace}
\newcommand {\Hurricane} {\textsc{Hurricane}\xspace}
\newcommand {\Stratus} {\texttt{Status}\xspace}
\newcommand {\GenLib} {\texttt{GenLib}\xspace}
\newcommand {\Mauka} {\texttt{Mauka}\xspace}
\newcommand {\Knik} {\texttt{Knik}\xspace}
\newcommand {\Kite} {\texttt{Kite}\xspace}
\newcommand {\Viewer} {\texttt{Viewer}\xspace}
\newcommand {\kgr} {\texttt{kgr}\xspace}
\newcommand {\cgt} {\texttt{cgt}\xspace}
\newcommand {\CELLTOP} {\texttt{CELL\_TOP}\xspace}
\newcommand {\confcoriolisIIalc} {\texttt{/etc/coriolis2/environment.alliance.xml}\xspace}
\newcommand {\usercoriolisIIalc} {\texttt{.environment.alliance.xml}\xspace}
\newcommand {\Cell} {\texttt{Cell}\xspace}
\newcommand {\POWER} {\texttt{POWER}\xspace}
\newcommand {\GROUND} {\texttt{GROUND}\xspace}
\newcommand {\MII} {\texttt{M2}\xspace}
\newcommand {\MV} {\texttt{M5}\xspace}
\newcommand {\knikThesis}%
{\xhref{\texttt{http://www-soc.lip6.fr/en/users/damiendupuis/PhD/}}%
{http://www-soc.lip6.fr/en/users/damiendupuis/PhD/}\xspace}
\newcommand {\coriolisIIfcXIIIirpm}{\crlFtpRef{coriolis2-1.0.1963-1.fc13.i686.rpm}\xspace}
\newcommand {\coriolisIIfcXIIIxrpm}{\crlFtpRef{coriolis2-1.0.1963-1.fc13.x86\_64.rpm}\xspace}
\newcommand {\coriolisIIfcXIIirpm} {\crlFtpRef{coriolis2-1.0.1963-1.fc12.i686.rpm}\xspace}
\newcommand {\coriolisIIfcXIIxrpm} {\crlFtpRef{coriolis2-1.0.1963-1.fc12.x86\_64.rpm}\xspace}
\newcommand {\coriolisIIslVirpm} {\crlFtpRef{coriolis2-1.0.1963-1.el5\_soc.i386.rpm}\xspace}
\newcommand {\coriolisIIslVxrpm} {\crlFtpRef{coriolis2-1.0.1963-1.el5\_soc.x86\_64.rpm}\xspace}
\newcommand {\coriolisIILucidideb} {\crlFtpRef{coriolis2\_1.0.1963-1.fc13\_i386.deb}\xspace}
\newcommand {\coriolisIILucidxdeb} {\crlFtpRef{coriolis2\_1.0.1963-1.fc13\_amd64.deb}\xspace}
\newcommand {\qtIVsrpm} {\slSocSrpmsRef{qt4-4.6.2-17.sl5soc.src.rpm}\xspace}
\newcommand {\qtIVirpm} {\slRpmsiRef{qt4-4.6.2-17.sl5soc.i386.rpm}\xspace}
\newcommand {\qtIVdevelirpm} {\slRpmsiRef{qt4-devel-4.6.2-17.sl5soc.i386.rpm}\xspace}
\newcommand {\qtIVdocirpm} {\slRpmsiRef{qt4-doc-4.6.2-17.sl5soc.i386.rpm}\xspace}
\newcommand {\qtIVmysqlirpm} {\slRpmsiRef{qt4-mysql-4.6.2-17.sl5soc.i386.rpm}\xspace}
\newcommand {\qtIVodbcirpm} {\slRpmsiRef{qt4-odbc-4.6.2-17.sl5soc.i386.rpm}\xspace}
\newcommand {\qtIVpostgresqlirpm} {\slRpmsiRef{qt4-postgresql-4.6.2-17.sl5soc.i386.rpm}\xspace}
\newcommand {\qtIVxXIirpm} {\slRpmsiRef{qt4-x11-4.6.2-17.sl5soc.i386.rpm}\xspace}
\newcommand {\qtIVxrpm} {\slRpmsxRef{qt4-4.6.2-17.sl5soc.x86\_64.rpm}\xspace}
\newcommand {\qtIVdevelxrpm} {\slRpmsxRef{qt4-devel-4.6.2-17.sl5soc.x86\_64.rpm}\xspace}
\newcommand {\qtIVdocxrpm} {\slRpmsxRef{qt4-doc-4.6.2-17.sl5soc.x86\_64.rpm}\xspace}
\newcommand {\qtIVmysqlxrpm} {\slRpmsxRef{qt4-mysql-4.6.2-17.sl5soc.x86\_64.rpm}\xspace}
\newcommand {\qtIVodbcxrpm} {\slRpmsxRef{qt4-odbc-4.6.2-17.sl5soc.x86\_64.rpm}\xspace}
\newcommand {\qtIVpostgresqlxrpm} {\slRpmsxRef{qt4-postgresql-4.6.2-17.sl5soc.x86\_64.rpm}\xspace}
\newcommand {\qtIVxXIxrpm} {\slRpmsxRef{qt4-x11-4.6.2-17.sl5soc.x86\_64.rpm}\xspace}
\latexhtml{ %% LaTeX version.
\newcommand {\keyUP} {\key{UP}\xspace}
\newcommand {\keyDOWN} {\key{DOWN}\xspace}
\newcommand {\keyLEFT} {\key{LEFT}\xspace}
\newcommand {\keyRIGHT} {\key{RIGHT}\xspace}
\newcommand {\keyCTRL} {\key{CTRL}\xspace}
\newcommand {\keyESC} {\key{ESC}\xspace}
\newcommand {\keyf} {\key{f}\xspace}
\newcommand {\keyG} {\key{G}\xspace}
\newcommand {\keyI} {\key{I}\xspace}
\newcommand {\keyL} {\key{L}\xspace}
\newcommand {\keym} {\key{m}\xspace}
\newcommand {\keyk} {\key{k}\xspace}
\newcommand {\keyK} {\key{K}\xspace}
\newcommand {\keyO} {\key{O}\xspace}
\newcommand {\keyP} {\key{P}\xspace}
\newcommand {\keyQ} {\key{Q}\xspace}
\newcommand {\keys} {\key{s}\xspace}
\newcommand {\keyW} {\key{W}\xspace}
\newcommand {\keyS} {\key{S}\xspace}
\newcommand {\keyz} {\key{z}\xspace}
\newcommand {\keyPlus} {$+$\xspace}
\newcommand {\BigMouse} {{\Huge \ComputerMouse}\xspace}
}{ %% HTML version.
\newcommand {\keyUP} {\includegraphics{images/key_UP}\xspace}
\newcommand {\keyDOWN} {\includegraphics{images/key_DOWN}\xspace}
\newcommand {\keyLEFT} {\includegraphics{images/key_LEFT}\xspace}
\newcommand {\keyRIGHT} {\includegraphics{images/key_RIGHT}\xspace}
\newcommand {\keyCTRL} {\includegraphics{images/key_CTRL}\xspace}
\newcommand {\keyESC} {\includegraphics{images/key_ESC}\xspace}
\newcommand {\keyf} {\includegraphics{images/key_F}\xspace}
\newcommand {\keyG} {\includegraphics{images/key_Gcap}\xspace}
\newcommand {\keyI} {\includegraphics{images/key_Icap}\xspace}
\newcommand {\keyL} {\includegraphics{images/key_Lcap}\xspace}
\newcommand {\keym} {\includegraphics{images/key_M}\xspace}
\newcommand {\keyk} {\includegraphics{images/key_K}\xspace}
\newcommand {\keyK} {\includegraphics{images/key_Kcap}\xspace}
\newcommand {\keyO} {\includegraphics{images/key_Ocap}\xspace}
\newcommand {\keyP} {\includegraphics{images/key_Pcap}\xspace}
\newcommand {\keyQ} {\includegraphics{images/key_Qcap}\xspace}
\newcommand {\keys} {\includegraphics{images/key_S}\xspace}
\newcommand {\keyW} {\includegraphics{images/key_Wcap}\xspace}
\newcommand {\keyS} {\includegraphics{images/key_Scap}\xspace}
\newcommand {\keyz} {\includegraphics{images/key_Z}\xspace}
\newcommand {\keyPlus} {\includegraphics{images/key_PLUS}\xspace}
\newcommand {\BigMouse} {\includegraphics[scale=.4]{images/ComputerMouse}\xspace}
}
%\setlength {\parskip} {4mm}
%\setlength {\itemsep} {4mm}
\pagestyle{fancy}
%\renewcommand{\headheight}{14pt}
\renewcommand{\headrulewidth}{0.2mm}
\renewcommand{\footrulewidth}{0.2mm}
\renewcommand{\sectionmark}[1]{\markboth{\thesection\ #1}{\thesection\ #1}}
\renewcommand{\subsectionmark}[1]{}
\lhead[]{Coriolis 2}
\rhead[]{May 20, 2010}
\lfoot[]{\LIP/\SoC}
\rfoot[]{\thepage}
\cfoot[]{}
%% The LaTeX Companion -- p. 204.
%% Miniature display of the page layout.
%\newcommand{\showpage}{%
% \setlayoutscale{0.65}\setlabelfont{\tiny}%
% \printheadingsfalse\printparametersfalse%
% \currentpage\pagedesign%
%}
\titlecontents{section}[1pc]
{\sffamily\bfseries} % above code.
{\contentslabel{1pc}} % numbered entry format.
{The Numberless Entry Format} % numberless entry format.
{\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format.
\titlecontents{subsection}[3pc]
{\sffamily} % above code.
{\contentslabel{2pc}} % numbered entry format.
{The Numberless Entry Format} % numberless entry format.
{\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format.
\begin{document}
\title{\CoriolisII}
\author{The Coriolis Team}
\date{April 2011}
\maketitle
\thispagestyle{fancy}
\tableofcontents
\section{Credits \& Licenses}
\begin{center}
\Hurricane \dotfill\ Rémy \Escassut \& Christian \Masson \\
\Mauka \dotfill\ Christophe \Alexandre \\
\Stratus \dotfill Sophie \Belloeil \\
\Knik \dotfill\ Damien \Dupuis \\
\Kite, \Viewer \dotfill\ Jean-Paul \Chaput \\
\end{center}
The \Hurricane data-base is copyright\textcopyright\ \Bull 2000-2010 and is
released under the terms of the \LGPL license. All other tools are
copyright\textcopyright\ \UPMC 2008-2010 and released under the \GPL
license.
The \Knik router makes use of the \Flute software, which is
copyright\textcopyright\ Chris C. N. \Chu from the Iowa State University
(\FluteRef).
\newpage
\section{Release Notes}
\subsection{Release 1.0.1475}
This is the first preliminary release of the \CoriolisII framework.
This release mainly ships the global router \Knik and the detailed router
\Kite. Together they aim to replace the \Alliance \Nero router.
Unlike \Nero, \Kite is based on an innovating routing modeling and ad-hoc
algorithm. Although it is released under \GPL license, the source code
will be avalaible later.
\medskip
\noindent Contents of this release:
\begin{enumerate}
\item A graphical user interface (viewer only).
\item The \Knik global router.
\item The \Kite detailed router.
\end{enumerate}
\noindent Supported input/output formats:
\begin{itemize}
\item \Alliance \vst (netlist) \& \ap (physical) formats.
\item Even if there are some references to the \Cadence \LEFDEF format, its
support is not included because it depends on a library only available
to \SiII affiliated members.
\end{itemize}
\subsection{Release 1.0.1963}
Release 1963 is alpha. All the tools from \CoriolisI have been ported into
this release.
\noindent Contents of this release:
\begin{enumerate}
\item The \Stratus netlist capture language (\GenLib replacement).
\item The \Mauka placer (still contains bugs).
\item A graphical user interface (viewer only).
\item The \Knik global router.
\item The \Kite detailed router.
\item Partially implemented python support for configuration files
(alternative to \XML).
\item A documentation (imcomplete/obsoleted in \Hurricane's case).
\end{enumerate}
\section{Installation}
Binary \rpm packages avalaible:
\begin{center}
\begin{tabular}{|c|l|}
\hline
\FedoraXIII & \coriolisIIfcXIIIirpm \\
& \coriolisIIfcXIIIxrpm \\
\hline
\FedoraXII & \coriolisIIfcXIIirpm \\
& \coriolisIIfcXIIxrpm \\
\hline
\RHELV & \coriolisIIslVirpm \\
\CentOSV & \coriolisIIslVxrpm \\
\SLV & \\
\hline
\Lucid & \coriolisIILucidideb \\
& \coriolisIILucidxdeb \\
\hline
\end{tabular}
\end{center}
\noindent\textbf{Note:}\ The \Lucid packages have not beeing natively
compiled but converted from \Fedora with \alien, they might not work as
well as under \Fedora. As they uses slightly different versions of \boost,
you have to create the following link~:
\begin{verbatim}
> sudo ln -s /usr/lib/libboost_program_options.so.1.40.0 \
/usr/lib/libboost_program_options-mt.so.1.41.0
\end{verbatim}
\newpage
For \RHELV based distributions, additionnal \QtIV packages are needed:
\begin{center}
\begin{tabular}{|l|l|}
\hline
\multicolumn{2}{|l|}{\qtIVsrpm} \\
\hline
\hline
\qtIVirpm & \qtIVxrpm \\
\qtIVdevelirpm & \qtIVdevelxrpm \\
\qtIVdocirpm & \qtIVdocxrpm \\
\qtIVmysqlirpm & \qtIVmysqlxrpm \\
\qtIVodbcirpm & \qtIVodbcxrpm \\
\qtIVpostgresqlirpm & \qtIVpostgresqlxrpm \\
\qtIVxXIirpm & \qtIVxXIxrpm \\
\hline
\end{tabular}
\end{center}
\section{Configuration}
Configuration of \CoriolisII no longer depends on environment variables.
All pathes and options are sets through \XML configuration files. The main
configuration file is~:
\begin{center}
\confcoriolisIIalc
\end{center}
Contents of this file should be familiar to all thoses already acquainted
with \Alliance as the \XML node names takes back former shell environment
variables.
You may want to customize \CELLTOP to point to the directory where the \Alliance cells
libraries are installed (\texttt{/usr/share/alliance}\ if you installed
the \Alliance package from \FEL.
All system settings can be overwritten by a \usercoriolisIIalc file in the
user's root directory.
\section{Tools}
\subsection{The \Hurricane Data-Base}
The \Alliance flow is based on the \MBK data-base, which has one data-structure
for each view. That is, \LOFIG for the \logical view and \PHFIG for the \physical
view. The place and route tools were responsible for maintaining (or not) the
coherency between views. Reflecting this weak coupling between views, each one
was stored in a separate file with a specific format. The \logical view is stored
in a \vst file in \VHDL format and the \physical in an \ap file in an ad-hoc format.
The \Coriolis flow is based on the \Hurricane data-base, which has a unified
structure for \logical and \physical view. That data structure is the \Cell object.
The \Cell can have any state between pure netlist and completly placed and
routed design. Although the memory representation of the views has deeply
changed we still use the \Alliance files format, but they now really represent
views of the same object. The point is that one must be very careful about
view coherency when going to and from \Coriolis.
\newpage
As for the first release, \Coriolis can be used only for two purposes~:
\begin{itemize}
\item \textbf{Routing a design}\xspace, in that case the \netlist\xspace
view and the \physical view must be present and \physical view must contain
a placement. Both views must have the same name. When saving the routed design,
it is advised to change the design name otherwise the original unrouted placement
in the \physical view will be overwritten.
\item \textbf{Viewing a design}, the \logical view must be present, if a \physical
view is present it still must have the same name but it can be in any
state.
\end{itemize}
\subsection{Knik -- Global Router}
The global router is (not yet) deterministic. To circumvent this limitation,
a global routing (also called a ``solution'') can be saved to disk and reloaded
for later uses.
A global routing is saved into a file with the same name as the design and a
\kgr extention. It is in \BoxRouterRef output format.
For an in-depth description of \Knik algorithms, you may download the thesis of
D. \Dupuis avalaible from here~:
\begin{center}\knikThesis\end{center}
\noindent Menus~:
\begin{itemize}
\item
\latexhtml{\menu{P\&R}$\rightarrow$\menu{\underline{S}tep by Step}
$\rightarrow$\menu{Kite -- \underline{S}ave Global Routing}}
{\includegraphics{images/PR-SBS-SaveGlobal}}
\item
\latexhtml{\menu{P\&R}$\rightarrow$\menu{\underline{S}tep by Step}
$\rightarrow$\menu{Kite -- \underline{L}oad Global Routing}}
{\includegraphics{images/PR-SBS-LoadGlobal}}
\end{itemize}
\subsection{Kite -- Detailed Router}
\Kite no longer suffers from the limitations of \Nero. It can route big designs
as its runtime and memory footprint is almost linear (with respect to the number
of gates). It has successfully routed design of more than \texttt{150K}\ gates.
\medskip\noindent
However, this first release has the following restrictions:
\begin{itemize}
\item Works only with \SxLib standard cell gauge.
\item Works always with 4 routing metal layers (\MII through \MV).
\item Do not allow (take into account) pre-routed wires on signals
other than \POWER or \GROUND.
\end{itemize}
After each run, \Kite displays a set of \textit{completion ratios}\ which must all
be equal to \textsf{100\%}\ if the detailed routing has been successfull.
In the event of a failure, on saturated design, you may decrease the \textit{edge
saturation ration} (argument \texttt{--edge}) to balance more evenly the design
saturation. That is, the maximum saturation decrease at the price of a wider
saturated area and increased wirelength.
\newpage
\medskip\noindent
Routing a design is done in three ordered steps~:
\begin{enumerate}
\item Global routing
\latexhtml{\menu{P\&R}$\rightarrow$\menu{Kite -- \underline{G}lobal Route}}
{\includegraphics{images/PR-GlobalRoute}}
\item Detailed routing
\latexhtml{\menu{P\&R}$\rightarrow$\menu{Kite -- \underline{D}etailed Route}}
{\includegraphics{images/PR-DetailedRoute}}
\item Finalize routing
\latexhtml{\menu{P\&R}$\rightarrow$\menu{Kite -- \underline{F}inalize Route}}
{\includegraphics{images/PR-FinalizeRoute}}
\end{enumerate}
After the detailed routing step the \Kite data-structure is still active.
The wiring is thus represented in a way that allows \Kite to manage it but
which is not completly finished. The finalize step performs the removal of
the \Kite data-structure and finish/cleanup the wiring so that its
connex in the sense of \Hurricane. \textit{Do not}\xspace try to save
your design before that step, you would get gaps in it.
\subsection{Viewer Small Memento}
The main application binary is \cgt.
\begin{center}
\newlength{\keyheight} \settoheight{\keyheight}{\keyUP} \addtolength{\keyheight}{5pt}
\newlength{\keydepth} \settodepth {\keydepth} {\keyUP} \addtolength{\keydepth} {5pt}
\newcommand{\keytabpar}[1]{\parbox[t]{.2\textwidth}{\rule{0pt}{\keyheight} \centering #1 \rule[-\keydepth]{0pt}{0pt}}}
\newcommand{\sfbf}[1]{\textsf{\textbf{#1}}}
\begin{longtable}{|c|c|p{.55\textwidth}|}
\endfirsthead
\hline
\endhead
\hline
\endfoot
\endlastfoot
\hline
\sfbf{Moves}
& \keytabpar{\keyUP \keyDOWN \\ \keyLEFT \keyRIGHT}
& Shift the view \\
\hline
\sfbf{Fit}
& \keytabpar{\keyf}
& Fit contents to window \\
\hline
\sfbf{Refresh}
& \keytabpar{\keyCTRL\keyPlus\keyL}
& Triggers a complete display redraw \\
\hline
\sfbf{Goto}
& \keytabpar{\keyG}
& \texttt{aperture} is the minimum side of the area displayed around
the point to go to. It's an alternative way of setting the zoom level \\
\hline
\sfbf{Zoom}
& \keytabpar{\keyz \keym}
& \keyz zoom by 2, \keym unzoom by 2 \\
\cline{2-3}
& \keytabpar{\BigMouse \\ \texttt{Area Zoom}}
& You can perform a zoom to an area.
Define the zoom area by \textit{holding down the left mouse button}\
while moving the mouse. \\
\hline
\sfbf{Selection}
& \keytabpar{\BigMouse \\ \texttt{Area Selection}}
& You can select displayed object under an area. Define the selection area
by \textit{holding down the right mouse button}\ while moving the mouse. \\
\cline{2-3}
& \keytabpar{\BigMouse \\ \texttt{Toggle Selection}}
& You can toggle the selection of one object under the mouse position by
pressing \keyCTRL and pressing down \textit{the right mouse button}.
A popup list of what's under the position shows up into which you can
toggle the selection state of one item. \\
\cline{2-3}
& \keytabpar{\keys}
& Toggle the selection visibility \\
\hline
\sfbf{Controller}
& \keytabpar{\keyCTRL\keyPlus\keyI}
& Show/hide the controller window.
It's the Swiss Army Knife of the viewer. From it, you can fine-control
the display and inspect almost everything in your design. \\
\hline
\sfbf{Rulers}
& \keytabpar{\keyk \\ \keyESC}
& One stroke on \keyk enters the ruler mode, in which you can draw one
ruler. You can exit the ruler mode by pressing \keyESC.
Once in ruler mode, the first click on the \textit{left mouse button}
sets the ruler's starting point and the second click the ruler's end
point. The second click exits automatically the ruler mode. \\
\cline{2-3}
& \keytabpar{\keyK}
& Clears all the drawn rulers \\
\hline
\sfbf{Print}
& \keytabpar{\keyCTRL\keyPlus\keyP}
& Currently rather crude. It's a direct copy of what's displayed in pixels.
So the resulting picture will be a little blurred due to anti-aliasing
mechanism. \\
\hline
\sfbf{Open/Close}
& \keytabpar{\keyCTRL\keyPlus\keyO}
& Opens a new design. The design name must be given without path or extention. \\
\cline{2-3}
& \keytabpar{\keyCTRL\keyPlus\keyW}
& Close the current viewer window, but do not quit the application. \\
\cline{2-3}
& \keytabpar{\keyCTRL\keyPlus\keyQ}
& CTRL+Q quit the application (closing all windows). \\
\hline
\sfbf{Hierarchy}
& \keytabpar{\keyCTRL\keyPlus\keyDOWN}
& Go one hierarchy level down. That is, if there is an \textit{instance}\ under
the cursor position, load it's \textit{model}\ (\Cell) in place of the current one. \\
\cline{2-3}
& \keytabpar{\keyCTRL\keyPlus\keyUP}
& Go one hierarchy level up. if we have entered the current model through
\keyCTRL\keyPlus\keyDOWN, reload the previous model (the one in which this model is
instanciated). \\
\latex{\hline}
\end{longtable}
\end{center}
\newpage
\subsection{Running \cgt in text mode}
\begin{center}
\begin{longtable}{|c|p{.55\textwidth}|}
\hline
\textbf{Argument} & Meaning \\
\latex{\hline}
\hline
\endfirsthead
\hline
\textbf{Argument} & Meaning \\
\latex{\hline}
\hline
\endhead
\hline
\endfoot
\endlastfoot
\latex{\hline}
\texttt{-t|--text}
& Instruct \cgt to run in text mode. \\
\hline
\texttt{-L|--log-mode}
& Disable the uses of \ANSI escape sequence on the \tty. Useful when
the output is redirected to a file. \\
\hline
\texttt{-c|--cell=<design>}
& The name of the design to load, without leading path or
extention. \\
\hline
\texttt{-g|--load-global}
& Reload a global routing solution from disk. \linebreak
The file containing the solution must be named \texttt{<design>.kgr}. \\
\hline
\texttt{--save-global}
& Save the global routing solution, into a file named \texttt{<design>.kgr}. \\
\hline
\texttt{--edge|-e <ratio>}
& Change the edge capacity for the global router, between 0 and 1 (\Knik). \\
\hline
\texttt{--global-route|-G}
& Run the global router (\Knik). \\
\hline
\texttt{--detailed-route|-R}
& Run the detailed router (\Kite). \\
\hline
\multicolumn{2}{|l|}{\texttt{-s|--save-design=<routed\_design>}} \\
\cline{1-1}
& The design into which the routed layout will be saved. It is strongly
recommanded to choose a different name from the source (unrouted)
design. \\
\hline
\texttt{--events-limit=<LIMIT>}
& The maximal number of events after which the router will stops. This is
mainly a failsafe against looping. The limit is sets to 4 millions of
iteration which should suffice to any design of \texttt{100K}\xspace
gates. For bigger designs you may wants to increase this limit. \\
\latex{\hline}
\end{longtable}
\end{center}
\noindent
Some examples~:
\begin{itemize}
\item Run both global and detailed router, then save the routed design~: \\
\texttt{> cgt -v -t -G -R --cell=design --save-design=design\_kite}
\item Load a previous global solution, run the detailed router, then save the
routed design~: \\
\texttt{> cgt -v -t --load-global -R --cell=design --save-design=design\_kite}
\item Run the global router, then save the global routing solution~: \\
\texttt{> cgt -v -t -G --save-global --cell=design}
\end{itemize}
\end{document}

View File

@ -1,559 +0,0 @@
/*
* +-----------------------------------------------------------------+
* | HTML Standart Tags |
* +-----------------------------------------------------------------+
*/
html, body, th, td, tr, p, li, h1, h2, h3, h4, h5, h6 {
font-size: 11pt;
/* The Open Sans font family is supplied by TexLive. */
font-family: "Open Sans", Verdana, sans-serif;;
}
body {
color: black;
background: white;
background-color: white;
background-position: top left;
background-attachment: fixed;
background-repeat: no-repeat;
margin-top: 2em;
width: 550pt;
margin-right: auto;
margin-left: auto;
/*
margin-right: 12%;
margin-left: 12%;
*/
}
hr {
height: 1px;
border: 0;
color: #004400;
background-color: #004400;
}
h1, h2, h3, h4, h5, h6 {
/*font-family: "Liberation Serif", sans-serif;*/
}
h1 { text-align: center; }
h2, h3, h4, h5, h6 { text-align: left;
padding-top: 11pt;
}
h1, h2, h3 { /*font-family: "Liberation Serif", sans-serif; */
/*color: #09550B;*/
}
h1 { font-weight:normal; font-size: 170%; letter-spacing:0.2em; word-spacing:0.4em; }
h2 { font-weight:normal; font-size: 140%; letter-spacing:0.2em; word-spacing:0.4em; }
h3 { font-weight: bold; font-size: 118%; letter-spacing:0.2em; word-spacing:0.4em; }
h4 { font-weight: bold; font-size: 100%; }
h5 { font-style: italic; font-size: 100%; }
h6 { font-variant: small-caps; font-size: 100%; }
h2.classHierarchy {
/*border: 1px none #008500;*/
border: 1px none #000000;
border-top-width: 1px;
border-top-style: dotted;
padding-top: 1em;
}
.hide {
display: none;
color: white;
}
p {
margin-top: 0.6em;
margin-bottom: 0.6em;
margin-left: 0.0em;
margin-right: 0.0em;
}
address {
text-align: right;
font-weight: bold;
font-style: italic;
font-size: 80%;
}
caption { font-weight: bold }
blockquote {
margin-left: 4em;
margin-right: 4em;
margin-top: 0.8em;
margin-bottom: 0.8em;
font-style: italic;
color: #003300;
}
blockquote p {
margin-bottom: 0;
}
blockquote address {
margin: 0;
}
table {
border-collapse: collapse;
}
dt, dd { margin-top: 0; margin-bottom: 0; }
dt { font-weight: bold; }
pre, tt, code {
/*font-family: "andale mono", monospace;*/
font-size: 100%;
white-space: pre;
}
pre {
font-size: 80%;
border: dashed;
border-width: thin;
border-color: #003300;
/*
background-color: #EEEEEE;
*/
background-color: #FCFCE1;
padding: 0.5em;
margin-left: 2em;
margin-right: 2em
}
tt { color: green; }
em { font-style: italic;
font-weight: normal; }
strong { font-weight: bold; }
span.textit { font-style: italic; }
span.textbf { font-weight: bold; }
.small { font-size: 90%; }
.white { color: #FFFFFF; }
ul.toc {
list-style: disc;
list-style: none;
}
a:link img, a:visited img { border-style: none; }
a img { color: white; }
a:link, a:active, a:visited {
color: #09550B;
text-decoration: none;
}
a:hover, a:focus {
color: #FF9900;
text-decoration: underline;
}
/*
* +-----------------------------------------------------------------+
* | Doxygen Specific Classes |
* +-----------------------------------------------------------------+
*/
/* -------------------------------------------------------------------
* Header & Footer Classes (customized top page navigation bar).
*/
h1.header {
font-size: 200%;
/*font-family: times, verdana, sans-serif;*/
}
center.header {
background-color: #CCE6CA;
}
table.header {
/*width: 100%;*/
/*background-color: #EEEEEE;*/
background-color: #CCE6CA;
}
table.header td {
padding: 2px 14px;
text-align: center;
font-weight: bold;
/*font-family: verdana, sans-serif;*/
font-size: 110%;
}
table.DoxUser td, table.DoxUser th {
padding: 0px 5px;
border: 0px;
}
table.DoxUser th {
background-color: #CCE6CA;
}
table.footer1, table.footer2 { width: 100%; }
td.LFooter { text-align: left; }
td.RFooter { text-align: right; }
td.CFooter { text-align: center;}
table.footer2 td.RFooter { font-weight: bold; width: 35% }
table.footer2 td.CFooter { width: 30% }
table.footer2 td.LFooter { font-weight: bold; width: 35%; /*font-family: time;*/ }
table.classHierarchy {
border-collapse: separate;
border-spacing: 5px;
font-size: 110%;
}
table.classHierarchy tr {
border: 1px solid blue;
}
table.classHierarchy td.normal {
border: 1px solid #CCE6CA;
width: 140pt;
text-align: center;
font-weight: bold;
background-color: #CCE6CA;
}
table.classHierarchy td.virtual {
border: 1px solid black;
width: 140pt;
text-align: center;
font-weight: bold;
}
table.classHierarchy td.wnormal {
border: 1px solid #CCE6CA;
width: 240pt;
text-align: center;
font-weight: bold;
background-color: #CCE6CA;
}
table.classHierarchy td.wvirtual {
border: 1px solid black;
width: 240pt;
text-align: center;
font-weight: bold;
}
div.ah {
/*font-family: time;*/
font-size: 250%;
}
/* -------------------------------------------------------------------
* Quick Index Class (top page navigation bar).
*/
div.qindex, div.nav {
width: 100%-4px;
/*background-color: #DADAEF;*/
/*background-color: #eeeeff;*/
/*background-color: #EEEEEE;*/
background-color: #CCE6CA;
border: 0px solid #003300;
text-align: center;
margin: 0px;
padding: 2px;
line-height: 140%;
}
a.qindex, a.qindex:visited, a.qindex:hover, a.qindexHL, a.el, a.elRef {
text-decoration: none;
/*font-family: Courier;*/
font-weight: normal;
/*font-size: 110%;*/
}
a.qindex, a.qindex:visited {
color: #09550B;
}
a.qindex:hover {
background-color: #ddddff;
}
a.qindexHL, a.qindexHL:hover, a.qindexHL:visited {
background-color: #0c780c;
color: #ffffff;
border: 1px double #9295C2;
}
a.code:link, a.code:visited, a.codeRef:link, a.codeRef:visited {
text-decoration: none;
font-weight: normal;
color: #0000ff;
}
.indexkey {
background-color: #eeeeff;
border: 1px solid #b0b0b0;
padding: 2px 15px;
}
.indexkey, .indexvalue {
background-color: #eeeeff;
border: 1px solid #b0b0b0;
padding: 2px 15px;
}
.indexkey {
width: 40%;
}
.indexvalue {
width: 80%;
}
h3 a[name="index__"],
h3 a[name="index_a"],
h3 a[name="index_b"],
h3 a[name="index_c"],
h3 a[name="index_d"],
h3 a[name="index_e"],
h3 a[name="index_f"],
h3 a[name="index_g"],
h3 a[name="index_h"],
h3 a[name="index_i"],
h3 a[name="index_j"],
h3 a[name="index_k"],
h3 a[name="index_l"],
h3 a[name="index_m"],
h3 a[name="index_n"],
h3 a[name="index_o"],
h3 a[name="index_p"],
h3 a[name="index_q"],
h3 a[name="index_r"],
h3 a[name="index_s"],
h3 a[name="index_t"],
h3 a[name="index_u"],
h3 a[name="index_v"],
h3 a[name="index_w"],
h3 a[name="index_x"],
h3 a[name="index_y"],
h3 a[name="index_z"],
h3 a[name="index_0"],
h3 a[name="index_1"],
h3 a[name="index_2"],
h3 a[name="index_3"],
h3 a[name="index_4"],
h3 a[name="index_5"],
h3 a[name="index_6"],
h3 a[name="index_7"],
h3 a[name="index_8"],
h3 a[name="index_9"]
h3 a[id="index__"],
h3 a#index_a,
h3 a#index_b,
h3 a#index_c,
h3 a#index_d,
h3 a#index_e,
h3 a#index_f,
h3 a#index_g,
h3 a#index_h,
h3 a#index_i,
h3 a#index_j,
h3 a#index_k,
h3 a#index_l,
h3 a#index_m,
h3 a#index_n,
h3 a#index_o,
h3 a#index_p,
h3 a#index_q,
h3 a#index_r,
h3 a#index_s,
h3 a#index_t,
h3 a#index_u,
h3 a#index_v,
h3 a#index_w,
h3 a#index_x,
h3 a#index_y,
h3 a#index_z,
h3 a#index_0,
h3 a#index_1,
h3 a#index_2,
h3 a#index_3,
h3 a#index_4,
h3 a#index_5,
h3 a#index_6,
h3 a#index_7,
h3 a#index_8,
h3 a#index_9,
h3 a#index_0x7e
{
font-family: time;
font-size: 250%;
}
/* -------------------------------------------------------------------
* Verbatim Source Code / Examples.
*/
/* pre.fragment { background-color: #EEEEEE; } */
span.keyword { color: #008000 }
span.keywordtype { color: #604020 }
span.keywordflow { color: #e08000 }
span.comment { color: #800000 }
span.preprocessor { color: #806020 }
span.stringliteral { color: #002080 }
span.charliteral { color: #008080 }
span.red { color: red }
/* -------------------------------------------------------------------
* Attributes Listing.
*/
p.formulaDsp {
text-align: center;
}
.mdTable {
/*border: 1px solid #868686;*/
/*background-color: #DADAEF;*/
/*background-color: #F4F4FB;*/
border: 1px none #008500;
border-left-width: 1px;
border-left-style: solid;
/*background-color: #B8E6B8;*/
/*background-color: #CCE6CA;*/
margin-top: 25px;
font-size: 105%;
}
.mdRow {
padding: 5px 10px;
}
/* This Mozilla/Firefox bug has been corrected from v1.5.
* .mdname1 {
* padding: 3px 0px 0px 0px;
* }
*/
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
font-size: 11px;
font-style: italic;
/*background-color: #FAFAFA;*/
border-top: 1px none #E0E0E0;
border-right: 1px none #E0E0E0;
border-bottom: 1px none #E0E0E0;
border-left: 1px none #E0E0E0;
margin: 0px;
}
.memitem {
margin-bottom: 30px;
border: 1px none #008500;
}
.memproto {
background-color: #CCE6CA;
border-left-width: 4px;
border-left-style: solid;
border-color: #008500;
}
.memname {
white-space: nowrap;
padding-left: 5px;
font-size: 105%;
}
table.memname * {
font-family: "Monospace";
}
.memdoc{
padding-left: 5px;
/*margin-top: -8px;*/
border-left-width: 1px;
border-left-style: solid;
border-color: #008500;
}
div.contents * table tr {
padding: 3px 3px 3px 8px;
}
.memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight {
/*padding: 1px 0px 0px 8px;*/
padding: 3px 3px 3px 8px;
margin: 4px;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
/*
border-top-color: #0c0c0c;
border-right-color: #0c0c0c;
border-bottom-color: #0c0c0c;
border-left-color: #0c0c0c;
*/
border-top-style: none;
border-right-style: none;
border-bottom-style: dotted;
border-left-style: none;
/*background-color: #DADAEF;*/
/*background-color: #eeeeff;*/
/*background-color: #EEEEEE;*/
/*background-color: #CCE6CA;*/
font-family: "Monospace";
}
.memTemplItemLeft, .memTemplItemRight {
border-bottom-width: 2px;
border-bottom-style: solid;
font-weight: bold;
}
.memItemLeft { font-size: 11px; width: 35%; }
.memItemRight { font-size: 12px; }
.memTemplItemLeft { font-size: 11px; }
.memTemplItemRight { font-size: 12px; }
.memTemplParams {
color: #FFFFFF;
background-color: #000000;
font-size: 11px;
font-weight: bold;
}
.groupText, .groupHeader {
color: #09550B;
font-size: 130%;
font-weight: bold;
margin-top: 15px;
}
.groupHeader {
margin-bottom: -30pt;
}

View File

@ -1,17 +0,0 @@
set ( htmlInstallDir share/doc/coriolis2/en/html/users-guide )
set ( latexInstallDir share/doc/coriolis2/en/latex/users-guide )
add_custom_target ( doc_LaTeX ALL cd ${CRLCORE_SOURCE_DIR}/doc/UsersGuide
&& rst2html --link-stylesheet --stylesheet=./SoC.css,./Pygments.css UsersGuide_HTML.rst UsersGuide.html )
add_custom_target ( doc_HTML ALL cd ${CRLCORE_SOURCE_DIR}/doc/UsersGuide
&& rst2latex --use-latex-toc --stylesheet=./socstyle.tex UsersGuide_LaTeX.rst UsersGuide.tex )
install ( DIRECTORY images DESTINATION ${htmlInstallDir} )
install ( FILES SoC.css
Pygments.css
UsersGuide.html DESTINATION ${htmlInstallDir} )
install ( FILES socstyle.tex
UsersGuide.tex DESTINATION ${latexInstallDir} )

View File

@ -1,116 +0,0 @@
\relax
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\select@language{english}
\@writefile{toc}{\select@language{english}}
\@writefile{lof}{\select@language{english}}
\@writefile{lot}{\select@language{english}}
\newlabel{coriolis-user-s-guide}{{}{1}{\relax }{section*.1}{}}
\newlabel{contents}{{}{1}{\relax }{section*.2}{}}
\@writefile{toc}{\contentsline {section}{Credits \& License}{2}{section*.3}}
\newlabel{credits-license}{{}{2}{\relax }{section*.3}{}}
\@writefile{toc}{\contentsline {section}{Release Notes}{3}{section*.4}}
\newlabel{release-notes}{{}{3}{\relax }{section*.4}{}}
\@writefile{toc}{\contentsline {subsection}{Release 1.0.1475}{3}{section*.5}}
\newlabel{release-1-0-1475}{{}{3}{\relax }{section*.5}{}}
\@writefile{toc}{\contentsline {subsection}{Release 1.0.1963}{3}{section*.6}}
\newlabel{release-1-0-1963}{{}{3}{\relax }{section*.6}{}}
\@writefile{toc}{\contentsline {subsection}{Release 1.0.xxxx}{3}{section*.7}}
\newlabel{release-1-0-xxxx}{{}{3}{\relax }{section*.7}{}}
\gdef \LT@i {\LT@entry
{1}{131.5826pt}\LT@entry
{1}{242.85562pt}}
\@writefile{toc}{\contentsline {section}{Installation}{4}{section*.8}}
\newlabel{installation}{{}{4}{\relax }{section*.8}{}}
\gdef \LT@ii {\LT@entry
{1}{49.60522pt}\LT@entry
{1}{165.90092pt}\LT@entry
{1}{217.76141pt}}
\@writefile{toc}{\contentsline {section}{Coriolis Configuration \& Initialisation}{5}{section*.9}}
\newlabel{coriolis-configuration-initialisation}{{}{5}{\relax }{section*.9}{}}
\@writefile{toc}{\contentsline {subsection}{Configuration Helpers}{5}{section*.10}}
\newlabel{configuration-helpers}{{}{5}{\relax }{section*.10}{}}
\@writefile{toc}{\contentsline {subsubsection}{Alliance Helper}{5}{section*.11}}
\newlabel{alliance-helper}{{}{5}{\relax }{section*.11}{}}
\@writefile{toc}{\contentsline {subsubsection}{Tools Configuration Helpers}{7}{section*.12}}
\newlabel{tools-configuration-helpers}{{}{7}{\relax }{section*.12}{}}
\@writefile{toc}{\contentsline {section}{CGT - The Graphical Interface}{8}{section*.13}}
\newlabel{cgt-the-graphical-interface}{{}{8}{\relax }{section*.13}{}}
\@writefile{toc}{\contentsline {section}{Viewer \& Tools}{9}{section*.14}}
\newlabel{id1}{{}{9}{\relax }{section*.14}{}}
\newlabel{viewer-tools}{{}{9}{\relax }{section*.14}{}}
\@writefile{toc}{\contentsline {subsection}{The Hurricane Data-Base}{9}{section*.15}}
\newlabel{the-hurricane-data-base}{{}{9}{\relax }{section*.15}{}}
\@writefile{toc}{\contentsline {subsection}{Mauka -{}- Placer}{10}{section*.16}}
\newlabel{mauka-placer}{{}{10}{\relax }{section*.16}{}}
\@writefile{toc}{\contentsline {subsection}{Knik -{}- Global Router}{10}{section*.17}}
\newlabel{knik-global-router}{{}{10}{\relax }{section*.17}{}}
\@writefile{toc}{\contentsline {subsection}{Kite -{}- Detailed Router}{10}{section*.18}}
\newlabel{kite-detailed-router}{{}{10}{\relax }{section*.18}{}}
\@writefile{toc}{\contentsline {subsection}{Executing Python Scripts in Cgt}{11}{section*.19}}
\newlabel{executing-python-scripts-in-cgt}{{}{11}{\relax }{section*.19}{}}
\newlabel{python-scripts-in-cgt}{{}{11}{\relax }{section*.19}{}}
\@writefile{toc}{\contentsline {subsection}{Printing \& Snapshots}{11}{section*.20}}
\newlabel{printing-snapshots}{{}{11}{\relax }{section*.20}{}}
\gdef \LT@iii {\LT@entry
{1}{85.57443pt}\LT@entry
{1}{93.96251pt}\LT@entry
{1}{253.3158pt}}
\gdef \LT@iv {\LT@entry
{1}{79.7221pt}\LT@entry
{1}{95.63461pt}\LT@entry
{1}{257.49603pt}}
\@writefile{toc}{\contentsline {subsection}{Memento of Shortcuts in Graphic Mode}{12}{section*.21}}
\newlabel{memento-of-shortcuts-in-graphic-mode}{{}{12}{\relax }{section*.21}{}}
\gdef \LT@v {\LT@entry
{1}{160.86342pt}\LT@entry
{1}{252.89458pt}}
\@writefile{toc}{\contentsline {subsection}{Cgt Command Line Options}{13}{section*.22}}
\newlabel{cgt-command-line-options}{{}{13}{\relax }{section*.22}{}}
\@writefile{toc}{\contentsline {section}{The Controller}{14}{section*.23}}
\newlabel{id2}{{}{14}{\relax }{section*.23}{}}
\newlabel{the-controller}{{}{14}{\relax }{section*.23}{}}
\@writefile{toc}{\contentsline {subsection}{The Look Tab}{15}{section*.24}}
\newlabel{id3}{{}{15}{\relax }{section*.24}{}}
\newlabel{the-look-tab}{{}{15}{\relax }{section*.24}{}}
\@writefile{toc}{\contentsline {subsection}{The Filter Tab}{15}{section*.25}}
\newlabel{id4}{{}{15}{\relax }{section*.25}{}}
\newlabel{the-filter-tab}{{}{15}{\relax }{section*.25}{}}
\@writefile{toc}{\contentsline {subsection}{The Layers\&Go Tab}{16}{section*.26}}
\newlabel{id5}{{}{16}{\relax }{section*.26}{}}
\newlabel{the-layers-go-tab}{{}{16}{\relax }{section*.26}{}}
\@writefile{toc}{\contentsline {subsection}{The Netlist Tab}{17}{section*.27}}
\newlabel{id6}{{}{17}{\relax }{section*.27}{}}
\newlabel{the-netlist-tab}{{}{17}{\relax }{section*.27}{}}
\@writefile{toc}{\contentsline {subsection}{The Selection Tab}{18}{section*.28}}
\newlabel{id7}{{}{18}{\relax }{section*.28}{}}
\newlabel{the-selection-tab}{{}{18}{\relax }{section*.28}{}}
\@writefile{toc}{\contentsline {subsection}{The Inspector Tab}{19}{section*.29}}
\newlabel{id8}{{}{19}{\relax }{section*.29}{}}
\newlabel{the-inspector-tab}{{}{19}{\relax }{section*.29}{}}
\@writefile{toc}{\contentsline {subsection}{The Settings Tab}{21}{section*.30}}
\newlabel{id9}{{}{21}{\relax }{section*.30}{}}
\newlabel{the-settings-tab}{{}{21}{\relax }{section*.30}{}}
\gdef \LT@vi {\LT@entry
{1}{209.37971pt}\LT@entry
{1}{106.92445pt}\LT@entry
{1}{73.04855pt}}
\@writefile{toc}{\contentsline {section}{Tools Fine Tuning}{22}{section*.31}}
\newlabel{tools-fine-tuning}{{}{22}{\relax }{section*.31}{}}
\@writefile{toc}{\contentsline {subsection}{Detailed Routing Configuration Parameters}{22}{section*.32}}
\newlabel{id10}{{}{22}{\relax }{section*.32}{}}
\newlabel{detailed-routing-configuration-parameters}{{}{22}{\relax }{section*.32}{}}
\ttl@finishall

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

View File

@ -1,20 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
6 2700 1800 3300 2100
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2700 1800 3300 1800 3300 2100 2700 2100 2700 1800
4 1 0 50 -1 18 11 0.0000 4 135 390 3000 2025 P&R\001
-6
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 1.00 90.00 180.00
3300 1950 3600 1950
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
3600 1800 5700 1800 5700 2100 3600 2100 3600 1800
4 1 0 50 -1 18 11 0.0000 4 135 1860 4650 2025 Kite - Detailed Route\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,20 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
6 2700 1800 3300 2100
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2700 1800 3300 1800 3300 2100 2700 2100 2700 1800
4 1 0 50 -1 18 11 0.0000 4 135 390 3000 2025 P&R\001
-6
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 1.00 90.00 180.00
3300 1950 3600 1950
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
3600 1800 5700 1800 5700 2100 3600 2100 3600 1800
4 1 0 50 -1 18 11 0.0000 4 135 1785 4650 2025 Kite - Finalize Route\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,20 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
6 2700 1800 3300 2100
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2700 1800 3300 1800 3300 2100 2700 2100 2700 1800
4 1 0 50 -1 18 11 0.0000 4 135 390 3000 2025 P&R\001
-6
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 1.00 90.00 180.00
3300 1950 3600 1950
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
3600 1800 5475 1800 5475 2100 3600 2100 3600 1800
4 1 0 50 -1 18 11 0.0000 4 135 1695 4575 2025 Kite - Global Route\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,28 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
6 2700 1800 3300 2100
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2700 1800 3300 1800 3300 2100 2700 2100 2700 1800
4 1 0 50 -1 18 11 0.0000 4 135 390 3000 2025 P&R\001
-6
6 3600 1800 4950 2100
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
3600 1800 4950 1800 4950 2100 3600 2100 3600 1800
4 1 0 50 -1 18 11 0.0000 4 180 1185 4275 2025 Step by Step\001
-6
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 1.00 90.00 180.00
3300 1950 3600 1950
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 1.00 90.00 180.00
4950 1950 5250 1950
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
5250 1800 7800 1800 7800 2100 5250 2100 5250 1800
4 1 0 50 -1 18 11 0.0000 4 180 2325 6525 2025 Kite - Load Global Routing\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,30 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
6 2700 1800 3300 2100
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2700 1800 3300 1800 3300 2100 2700 2100 2700 1800
4 1 0 50 -1 18 11 0.0000 4 135 390 3000 2025 P&R\001
-6
6 3600 1800 4950 2100
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
3600 1800 4950 1800 4950 2100 3600 2100 3600 1800
4 1 0 50 -1 18 11 0.0000 4 180 1185 4275 2025 Step by Step\001
-6
6 5250 1800 7800 2100
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
5250 1800 7800 1800 7800 2100 5250 2100 5250 1800
4 1 0 50 -1 18 11 0.0000 4 180 2370 6525 2025 Kite - Save Global Routing\001
-6
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 1.00 90.00 180.00
3300 1950 3600 1950
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
1 1 1.00 90.00 180.00
4950 1950 5250 1950

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2700 1800 3300 1800 3300 2100 2700 2100 2700 1800
4 1 0 50 -1 18 11 0.0000 4 135 480 3000 2025 CTRL\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2625 1800 3375 1800 3375 2100 2625 2100 2625 1800
4 1 0 50 -1 18 11 0.0000 4 135 570 3000 2025 DOWN\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2775 1800 3225 1800 3225 2100 2775 2100 2775 1800
4 1 0 50 -1 18 11 0.0000 4 135 375 3000 2025 ESC\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 f\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 388 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 G\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 I\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 k\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 K\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2700 1800 3300 1800 3300 2100 2700 2100 2700 1800
4 1 0 50 -1 18 11 0.0000 4 135 450 3000 2025 LEFT\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 L\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 m\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 391 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 O\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

View File

@ -1,13 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
3375 1950 3525 1950
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
3450 1875 3450 2025

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 P\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 398 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 Q\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2625 1800 3375 1800 3375 2100 2625 2100 2625 1800
4 1 0 50 -1 18 11 0.0000 4 135 600 3000 2025 RIGHT\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 s\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 S\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 435 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2775 1800 3225 1800 3225 2100 2775 2100 2775 1800
4 1 0 50 -1 18 11 0.0000 4 135 255 3000 2025 UP\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 427 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 W\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 413 B

View File

@ -1,12 +0,0 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Inches
Letter
100.00
Single
-2
1200 2
2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2850 1800 3150 1800 3150 2100 2850 2100 2850 1800
4 1 0 50 -1 14 18 0.0000 4 150 105 3000 2025 z\001

Binary file not shown.

Before

Width:  |  Height:  |  Size: 400 B

View File

@ -5,22 +5,14 @@ parametersTable = \
( ("katabatic.globalLengthThreshold",TypeInt ,1450 ) # Katabatic parameters. ( ("katabatic.globalLengthThreshold",TypeInt ,1450 ) # Katabatic parameters.
, ("katabatic.saturateRatio" ,TypePercentage,80 ) , ("katabatic.saturateRatio" ,TypePercentage,80 )
, ("katabatic.saturateRp" ,TypeInt ,8 ) , ("katabatic.saturateRp" ,TypeInt ,8 )
, ("kite.borderRipupLimit" ,TypeInt ,26 )
# Kite parameters. # Kite parameters.
, ("kite.edgeCapacity" ,TypePercentage,75 , { 'min':0, 'max':110 } ) , ("kite.edgeCapacity" ,TypePercentage,85 , { 'min':0, 'max':110 } )
, ("kite.eventsLimit" ,TypeInt ,4000002) , ("kite.eventsLimit" ,TypeInt ,4000002)
, ("kite.ripupCost" ,TypeInt ,3 , { 'min':0 } ) , ("kite.ripupCost" ,TypeInt ,3 , { 'min':0 } )
, ("kite.globalRipupLimit" ,TypeInt ,5 , { 'min':1 } )
, ("kite.localRipupLimit" ,TypeInt ,9 , { 'min':1 } )
, ("kite.longGlobalRipupLimit" ,TypeInt ,5 , { 'min':1 } )
, ("kite.strapRipupLimit" ,TypeInt ,16 , { 'min':1 } ) , ("kite.strapRipupLimit" ,TypeInt ,16 , { 'min':1 } )
, ("kite.metal1MinBreak" ,TypeDouble ,100 ) , ("kite.localRipupLimit" ,TypeInt ,9 , { 'min':1 } )
, ("kite.metal2MinBreak" ,TypeDouble ,100 ) , ("kite.globalRipupLimit" ,TypeInt ,5 , { 'min':1 } )
, ("kite.metal3MinBreak" ,TypeDouble ,100 ) , ("kite.longGlobalRipupLimit" ,TypeInt ,5 , { 'min':1 } )
, ("kite.metal4MinBreak" ,TypeDouble ,1450 )
, ("kite.metal5MinBreak" ,TypeDouble ,1450 )
, ("kite.metal6MinBreak" ,TypeDouble ,1450 )
, ("kite.metal7MinBreak" ,TypeDouble ,1450 )
) )
# Kite Layout. # Kite Layout.
@ -35,15 +27,7 @@ layoutTable = \
, (TypeOption , "kite.edgeCapacity" , "Edge Capacity (%)" , 0 ) , (TypeOption , "kite.edgeCapacity" , "Edge Capacity (%)" , 0 )
, (TypeOption , "kite.eventsLimit" , "Events Limit" , 0 ) , (TypeOption , "kite.eventsLimit" , "Events Limit" , 0 )
, (TypeOption , "kite.ripupCost" , "Ripup Cost" , 1, 1, Cfg.ParameterWidgetFlags.UseSpinBox ) , (TypeOption , "kite.ripupCost" , "Ripup Cost" , 1, 1, Cfg.ParameterWidgetFlags.UseSpinBox )
, (TypeOption , "kite.metal1MinBreak", "METAL1 Length Min Break", 0 )
, (TypeOption , "kite.metal2MinBreak", "METAL2 Length Min Break", 0 )
, (TypeOption , "kite.metal3MinBreak", "METAL3 Length Min Break", 0 )
, (TypeOption , "kite.metal4MinBreak", "METAL4 Length Min Break", 0 )
, (TypeOption , "kite.metal5MinBreak", "METAL5 Length Min Break", 0 )
, (TypeOption , "kite.metal6MinBreak", "METAL6 Length Min Break", 0 )
, (TypeOption , "kite.metal7MinBreak", "METAL7 Length Min Break", 0 )
, (TypeSection, "Ripup Limits", 1 ) , (TypeSection, "Ripup Limits", 1 )
, (TypeOption , "kite.borderRipupLimit" , "Borders" , 1, 1, Cfg.ParameterWidgetFlags.UseSpinBox )
, (TypeOption , "kite.strapRipupLimit" , "Straps" , 1, 1, Cfg.ParameterWidgetFlags.UseSpinBox ) , (TypeOption , "kite.strapRipupLimit" , "Straps" , 1, 1, Cfg.ParameterWidgetFlags.UseSpinBox )
, (TypeOption , "kite.localRipupLimit" , "Locals" , 1, 1, Cfg.ParameterWidgetFlags.UseSpinBox ) , (TypeOption , "kite.localRipupLimit" , "Locals" , 1, 1, Cfg.ParameterWidgetFlags.UseSpinBox )
, (TypeOption , "kite.globalRipupLimit" , "Globals" , 1, 1, Cfg.ParameterWidgetFlags.UseSpinBox ) , (TypeOption , "kite.globalRipupLimit" , "Globals" , 1, 1, Cfg.ParameterWidgetFlags.UseSpinBox )

View File

@ -0,0 +1,31 @@
# -*- mode: CMAKE; explicit-buffer-name: "CMakeLists.txt<documentation>" -*-
project(DOCUMENTATION)
cmake_minimum_required(VERSION 2.4.0)
OPTION(BUILD_DOC "Build the documentation (html+latex)" OFF)
list(INSERT CMAKE_MODULE_PATH 0 "${DESTDIR}/$ENV{CORIOLIS_TOP}/share/cmake/Modules/")
find_package(Bootstrap REQUIRED)
setup_project_paths(CORIOLIS)
list(INSERT CMAKE_MODULE_PATH 0 "${CRLCORE_SOURCE_DIR}/cmake_modules/")
print_cmake_module_path()
set_cmake_policies()
check_distribution()
#if(BUILD_DOC)
# include(UseLATEX)
#endif(BUILD_DOC)
add_subdirectory(examples)
if(BUILD_DOC)
add_subdirectory(UsersGuide)
endif(BUILD_DOC)
set ( htmlInstallDir share/doc/coriolis2/ )
set ( latexInstallDir share/doc/coriolis2/ )
install ( FILES general-index.html DESTINATION ${htmlInstallDir} RENAME index.html )

View File

@ -0,0 +1,27 @@
set ( htmlInstallDir share/doc/coriolis2/en/html/users-guide )
set ( latexInstallDir share/doc/coriolis2/en/latex/users-guide )
add_custom_target ( doc_HTML ALL
cd ${DOCUMENTATION_SOURCE_DIR}/UsersGuide
&& rst2html --link-stylesheet --stylesheet=./SoC.css,./Pygments.css UsersGuide_HTML.rst UsersGuide.html )
add_custom_target ( doc_LaTeX ALL
cd ${DOCUMENTATION_SOURCE_DIR}/UsersGuide
&& rst2latex --use-latex-toc --stylesheet=./socstyle.tex UsersGuide_LaTeX.rst UsersGuide-raw.tex
&& sed 's, \& \\\\multicolumn{2}{l|}{, \& \\\\multicolumn{2}{p{0.6\\\\DUtablewidth}|}{,' UsersGuide-raw.tex > UsersGuide.tex )
install ( DIRECTORY images/
DESTINATION ${htmlInstallDir}/images
FILES_MATCHING PATTERN "*.png" )
install ( FILES SoC.css
Pygments.css
UsersGuide.html DESTINATION ${htmlInstallDir} )
install ( DIRECTORY images/
DESTINATION ${latexInstallDir}/images
FILES_MATCHING PATTERN "*.pdf"
PATTERN "*.eps" )
install ( FILES socstyle.tex
UsersGuide.tex DESTINATION ${latexInstallDir} )

View File

@ -4,6 +4,11 @@
.. role:: raw-html(raw) .. role:: raw-html(raw)
:format: html :format: html
.. URLs that changes between the various backends.
.. _Coriolis Tools Documentation: file:///usr/share/doc/coriolis2/index.html
.. _Stratus Documentation: file:///usr/share/doc/coriolis2/en/html/stratus/index.html
.. _Here: file:///usr/share/doc/coriolis2/en/latex/users-guide/UsersGuide.pdf
.. For HTML backend .. For HTML backend
.. |Key_ESC| image:: ./images/key_ESC.png .. |Key_ESC| image:: ./images/key_ESC.png
.. |Key_CTRL| image:: ./images/key_CTRL.png .. |Key_CTRL| image:: ./images/key_CTRL.png

View File

@ -4,6 +4,10 @@
.. role:: raw-latex(raw) .. role:: raw-latex(raw)
:format: latex :format: latex
.. URLs that changes between the various backends.
.. _Coriolis Tools Documentation: https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/
.. _Stratus Documentation: https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/en/html/stratus/index.html
.. |DONE| replace:: :raw-latex:`\marginpar{\fbox{\small\ding{56}}}` .. |DONE| replace:: :raw-latex:`\marginpar{\fbox{\small\ding{56}}}`
.. For LaTeX/PDF backend. .. For LaTeX/PDF backend.
@ -50,7 +54,7 @@
.. |ControllerInspector_3| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Inspector-3.eps}\end{center}` .. |ControllerInspector_3| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Inspector-3.eps}\end{center}`
.. |ControllerSettings_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Settings-1.eps}\end{center}` .. |ControllerSettings_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Settings-1.eps}\end{center}`
.. |BigMouse| image:: ./images/ComputerMouse.png .. |BigMouse| image:: ./images/ComputerMouse.eps
:scale: 25% :scale: 25%
.. Direct LaTeX commands encapsulation. .. Direct LaTeX commands encapsulation.

View File

@ -1,7 +1,10 @@
html, body, th, td, tr, p, li, h1, h2, h3, h4, h5, h6 { html, body, th, td, tr, p, li, h1, h2, h3, h4, h5, h6 {
font-size: 96%; font-size: 96%;
/*
font-family: verdana, sans-serif; font-family: verdana, sans-serif;
*/
font-family: "Open Sans", sans-serif;
} }
body { body {
@ -26,12 +29,12 @@ body.gsummary {
} }
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6 {
font-family: verdana, sans-serif; font-family: "Open Sans", sans-serif;
} }
h1 { text-align: left; } h1 { text-align: left; }
h2, h3, h4, h5, h6 { text-align: left; } h2, h3, h4, h5, h6 { text-align: left; }
h1, h2, h3 { font-family: "Liberation Serif"; h1, h2, h3 { font-family: "Serif";
} }
h1 { font-weight: normal; font-size: 170%; padding-top: 7pt; margin-top: 25pt; } h1 { font-weight: normal; font-size: 170%; padding-top: 7pt; margin-top: 25pt; }
h2 { font-weight: normal; font-size: 140%; padding-top: 7pt; margin-top: 25pt; } h2 { font-weight: normal; font-size: 140%; padding-top: 7pt; margin-top: 25pt; }
@ -50,6 +53,12 @@ hr {
padding-bottom: 10pt; padding-bottom: 10pt;
} }
div#contents {
margin: 30pt;
padding: 2pt 10pt;
background-color: #fff676;
}
div#centered { div#centered {
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
@ -624,8 +633,8 @@ table.wiki th, table th {
} }
table.docutils { table.docutils {
margin-left: 10%; margin-left: 5%;
margin-right: 10%; margin-right: 5%;
} }
table.wiki, table.wiki th, table.wiki td { border: 1px solid black; } table.wiki, table.wiki th, table.wiki td { border: 1px solid black; }
@ -691,6 +700,14 @@ span.cb {
white-space: pre; white-space: pre;
} }
span.fboxtt {
border: 1px solid black;
padding: 0px 4px;
font-family: "andale mono", monospace;
font-weight: bold;
white-space: pre;
}
#notice.system-message, .notice.system-message { #notice.system-message, .notice.system-message {
color: black; color: black;
background: #DDFFDD; background: #DDFFDD;

View File

@ -0,0 +1,165 @@
\relax
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand*\HyPL@Entry[1]{}
\HyPL@Entry{0<</P(1)>>}
\select@language{english}
\@writefile{toc}{\select@language{english}}
\@writefile{lof}{\select@language{english}}
\@writefile{lot}{\select@language{english}}
\newlabel{coriolis-user-s-guide}{{}{1}{\relax }{section*.1}{}}
\newlabel{contents}{{}{1}{\relax }{section*.2}{}}
\HyPL@Entry{1<</P(2)>>}
\@writefile{toc}{\contentsline {section}{Credits \& License}{2}{section*.3}}
\newlabel{credits-license}{{}{2}{\relax }{section*.3}{}}
\HyPL@Entry{2<</P(3)>>}
\@writefile{toc}{\contentsline {section}{Release Notes}{3}{section*.4}}
\newlabel{release-notes}{{}{3}{\relax }{section*.4}{}}
\@writefile{toc}{\contentsline {subsection}{Release 1.0.1475}{3}{section*.5}}
\newlabel{release-1-0-1475}{{}{3}{\relax }{section*.5}{}}
\@writefile{toc}{\contentsline {subsection}{Release 1.0.1963}{3}{section*.6}}
\newlabel{release-1-0-1963}{{}{3}{\relax }{section*.6}{}}
\@writefile{toc}{\contentsline {subsection}{Release 1.0.2049}{3}{section*.7}}
\newlabel{release-1-0-2049}{{}{3}{\relax }{section*.7}{}}
\HyPL@Entry{3<</P(4)>>}
\@writefile{toc}{\contentsline {subsection}{Release v2.0.0 (c0b9992)}{4}{section*.8}}
\newlabel{release-v2-0-0-c0b9992}{{}{4}{\relax }{section*.8}{}}
\gdef \LT@i {\LT@entry
{1}{114.85526pt}\LT@entry
{1}{303.50418pt}}
\HyPL@Entry{4<</P(5)>>}
\@writefile{toc}{\contentsline {section}{Installation}{5}{section*.9}}
\newlabel{installation}{{}{5}{\relax }{section*.9}{}}
\@writefile{toc}{\contentsline {subsection}{Fixed Directory Tree}{5}{section*.10}}
\newlabel{fixed-directory-tree}{{}{5}{\relax }{section*.10}{}}
\HyPL@Entry{5<</P(6)>>}
\@writefile{toc}{\contentsline {subsection}{Building Coriolis}{6}{section*.11}}
\newlabel{building-coriolis}{{}{6}{\relax }{section*.11}{}}
\@writefile{toc}{\contentsline {subsection}{Packaging Coriolis}{6}{section*.12}}
\newlabel{packaging-coriolis}{{}{6}{\relax }{section*.12}{}}
\@writefile{toc}{\contentsline {subsection}{Hooking up into Alliance}{6}{section*.13}}
\newlabel{hooking-up-into-alliance}{{}{6}{\relax }{section*.13}{}}
\HyPL@Entry{6<</P(7)>>}
\@writefile{toc}{\contentsline {subsection}{Environment Helper}{7}{section*.14}}
\newlabel{environment-helper}{{}{7}{\relax }{section*.14}{}}
\gdef \LT@ii {\LT@entry
{1}{49.60522pt}\LT@entry
{1}{165.90092pt}\LT@entry
{1}{217.76141pt}}
\HyPL@Entry{7<</P(8)>>}
\@writefile{toc}{\contentsline {section}{Documentation}{8}{section*.15}}
\newlabel{documentation}{{}{8}{\relax }{section*.15}{}}
\@writefile{toc}{\contentsline {section}{Coriolis Configuration \& Initialisation}{8}{section*.16}}
\newlabel{coriolis-configuration-initialisation}{{}{8}{\relax }{section*.16}{}}
\@writefile{toc}{\contentsline {subsection}{Configuration Helpers}{8}{section*.17}}
\newlabel{configuration-helpers}{{}{8}{\relax }{section*.17}{}}
\@writefile{toc}{\contentsline {subsubsection}{Alliance Helper}{8}{section*.18}}
\newlabel{id1}{{}{8}{\relax }{section*.18}{}}
\newlabel{alliance-helper}{{}{8}{\relax }{section*.18}{}}
\HyPL@Entry{8<</P(9)>>}
\HyPL@Entry{9<</P(10)>>}
\@writefile{toc}{\contentsline {subsubsection}{Tools Configuration Helpers}{10}{section*.19}}
\newlabel{tools-configuration-helpers}{{}{10}{\relax }{section*.19}{}}
\HyPL@Entry{10<</P(11)>>}
\@writefile{toc}{\contentsline {section}{CGT - The Graphical Interface}{11}{section*.20}}
\newlabel{cgt-the-graphical-interface}{{}{11}{\relax }{section*.20}{}}
\HyPL@Entry{11<</P(12)>>}
\HyPL@Entry{12<</P(13)>>}
\@writefile{toc}{\contentsline {section}{Viewer \& Tools}{13}{section*.21}}
\newlabel{id2}{{}{13}{\relax }{section*.21}{}}
\newlabel{viewer-tools}{{}{13}{\relax }{section*.21}{}}
\@writefile{toc}{\contentsline {subsection}{Stratus Netlist Capture}{13}{section*.22}}
\newlabel{stratus-netlist-capture}{{}{13}{\relax }{section*.22}{}}
\@writefile{toc}{\contentsline {subsection}{The Hurricane Data-Base}{13}{section*.23}}
\newlabel{the-hurricane-data-base}{{}{13}{\relax }{section*.23}{}}
\HyPL@Entry{13<</P(14)>>}
\@writefile{toc}{\contentsline {subsection}{Mauka -{}- Placer}{14}{section*.24}}
\newlabel{mauka-placer}{{}{14}{\relax }{section*.24}{}}
\@writefile{toc}{\contentsline {subsection}{Knik -{}- Global Router}{14}{section*.25}}
\newlabel{knik-global-router}{{}{14}{\relax }{section*.25}{}}
\@writefile{toc}{\contentsline {subsection}{Kite -{}- Detailed Router}{14}{section*.26}}
\newlabel{kite-detailed-router}{{}{14}{\relax }{section*.26}{}}
\gdef \LT@iii {\LT@entry
{1}{170.48116pt}\LT@entry
{1}{88.52501pt}\LT@entry
{5}{587.85477pt}}
\HyPL@Entry{14<</P(15)>>}
\@writefile{toc}{\contentsline {subsubsection}{Kite Configuration Parameters}{15}{section*.27}}
\newlabel{kite-configuration-parameters}{{}{15}{\relax }{section*.27}{}}
\@writefile{toc}{\contentsline {subsection}{Executing Python Scripts in Cgt}{15}{section*.28}}
\newlabel{executing-python-scripts-in-cgt}{{}{15}{\relax }{section*.28}{}}
\newlabel{python-scripts-in-cgt}{{}{15}{\relax }{section*.28}{}}
\gdef \LT@iv {\LT@entry
{1}{85.57443pt}\LT@entry
{1}{93.96251pt}\LT@entry
{1}{253.3158pt}}
\HyPL@Entry{15<</P(16)>>}
\@writefile{toc}{\contentsline {subsection}{Printing \& Snapshots}{16}{section*.29}}
\newlabel{printing-snapshots}{{}{16}{\relax }{section*.29}{}}
\gdef \LT@v {\LT@entry
{1}{79.7221pt}\LT@entry
{1}{95.63461pt}\LT@entry
{1}{257.49603pt}}
\HyPL@Entry{16<</P(17)>>}
\@writefile{toc}{\contentsline {subsection}{Memento of Shortcuts in Graphic Mode}{17}{section*.30}}
\newlabel{memento-of-shortcuts-in-graphic-mode}{{}{17}{\relax }{section*.30}{}}
\gdef \LT@vi {\LT@entry
{1}{160.86342pt}\LT@entry
{1}{252.89458pt}}
\HyPL@Entry{17<</P(18)>>}
\@writefile{toc}{\contentsline {subsection}{Cgt Command Line Options}{18}{section*.31}}
\newlabel{cgt-command-line-options}{{}{18}{\relax }{section*.31}{}}
\gdef \LT@vii {\LT@entry
{1}{170.48116pt}\LT@entry
{1}{88.52501pt}\LT@entry
{5}{328.64403pt}}
\HyPL@Entry{18<</P(19)>>}
\@writefile{toc}{\contentsline {subsection}{Miscellaneous Settings}{19}{section*.32}}
\newlabel{miscellaneous-settings}{{}{19}{\relax }{section*.32}{}}
\@writefile{toc}{\contentsline {section}{The Controller}{19}{section*.33}}
\newlabel{id3}{{}{19}{\relax }{section*.33}{}}
\newlabel{the-controller}{{}{19}{\relax }{section*.33}{}}
\@writefile{toc}{\contentsline {subsection}{The Look Tab}{19}{section*.34}}
\newlabel{id4}{{}{19}{\relax }{section*.34}{}}
\newlabel{the-look-tab}{{}{19}{\relax }{section*.34}{}}
\HyPL@Entry{19<</P(20)>>}
\@writefile{toc}{\contentsline {subsection}{The Filter Tab}{20}{section*.35}}
\newlabel{id5}{{}{20}{\relax }{section*.35}{}}
\newlabel{the-filter-tab}{{}{20}{\relax }{section*.35}{}}
\HyPL@Entry{20<</P(21)>>}
\@writefile{toc}{\contentsline {subsection}{The Layers\&Go Tab}{21}{section*.36}}
\newlabel{id6}{{}{21}{\relax }{section*.36}{}}
\newlabel{the-layers-go-tab}{{}{21}{\relax }{section*.36}{}}
\HyPL@Entry{21<</P(22)>>}
\@writefile{toc}{\contentsline {subsection}{The Netlist Tab}{22}{section*.37}}
\newlabel{id7}{{}{22}{\relax }{section*.37}{}}
\newlabel{the-netlist-tab}{{}{22}{\relax }{section*.37}{}}
\HyPL@Entry{22<</P(23)>>}
\@writefile{toc}{\contentsline {subsection}{The Selection Tab}{23}{section*.38}}
\newlabel{id8}{{}{23}{\relax }{section*.38}{}}
\newlabel{the-selection-tab}{{}{23}{\relax }{section*.38}{}}
\HyPL@Entry{23<</P(24)>>}
\@writefile{toc}{\contentsline {subsection}{The Inspector Tab}{24}{section*.39}}
\newlabel{id9}{{}{24}{\relax }{section*.39}{}}
\newlabel{the-inspector-tab}{{}{24}{\relax }{section*.39}{}}
\HyPL@Entry{24<</P(25)>>}
\HyPL@Entry{25<</P(26)>>}
\@writefile{toc}{\contentsline {subsection}{The Settings Tab}{26}{section*.40}}
\newlabel{id10}{{}{26}{\relax }{section*.40}{}}
\newlabel{the-settings-tab}{{}{26}{\relax }{section*.40}{}}
\HyPL@Entry{26<</P(27)>>}
\@writefile{toc}{\contentsline {section}{A complete Example: AM2901}{27}{section*.41}}
\newlabel{a-complete-example-am2901}{{}{27}{\relax }{section*.41}{}}
\ttl@finishall

View File

@ -4,6 +4,7 @@
.. role:: ul .. role:: ul
.. role:: cb .. role:: cb
.. role:: sc .. role:: sc
.. role:: fboxtt
.. Acronyms & names. .. Acronyms & names.
.. |GNU| replace:: :sc:`gnu` .. |GNU| replace:: :sc:`gnu`
@ -43,11 +44,13 @@
.. |hMetis| replace:: :sc:`hMetis` .. |hMetis| replace:: :sc:`hMetis`
.. |Mauka| replace:: :sc:`Mauka` .. |Mauka| replace:: :sc:`Mauka`
.. |Knik| replace:: :sc:`Knik` .. |Knik| replace:: :sc:`Knik`
.. |Katabatic| replace:: :sc:`Katabatic`
.. |Kite| replace:: :sc:`Kite` .. |Kite| replace:: :sc:`Kite`
.. |Stratus| replace:: :sc:`Stratus` .. |Stratus| replace:: :sc:`Stratus`
.. |Stratus1| replace:: :sc:`Stratus1` .. |Stratus1| replace:: :sc:`Stratus1`
.. |Stratus2| replace:: :sc:`Stratus2` .. |Stratus2| replace:: :sc:`Stratus2`
.. |Unicorn| replace:: :sc:`Unicorn` .. |Unicorn| replace:: :sc:`Unicorn`
.. |ccb| replace:: :cb:`ccb`
.. |cgt| replace:: :cb:`cgt` .. |cgt| replace:: :cb:`cgt`
.. |Chams| replace:: :sc:`Chams` .. |Chams| replace:: :sc:`Chams`
.. |OpenChams| replace:: :sc:`OpenChams` .. |OpenChams| replace:: :sc:`OpenChams`
@ -63,12 +66,18 @@
.. |RedHat| replace:: :sc:`RedHat` .. |RedHat| replace:: :sc:`RedHat`
.. |Fedora| replace:: :sc:`Fedora` .. |Fedora| replace:: :sc:`Fedora`
.. |FC13| replace:: :sc:`fc13` .. |FC13| replace:: :sc:`fc13`
.. |Debian| replace:: :sc:`Debian`
.. |Ubuntu| replace:: :sc:`Ubuntu` .. |Ubuntu| replace:: :sc:`Ubuntu`
.. |Qt| replace:: :sc:`qt` .. |Qt| replace:: :sc:`qt`
.. |tty| replace:: :cb:`tty` .. |tty| replace:: :cb:`tty`
.. |svn| replace:: :cb:`svn`
.. |git| replace:: :cb:`git`
.. |rpm| replace:: :cb:`rpm`
.. URLs .. URLs
.. _FGR: http://vlsicad.eecs.umich.edu/BK/FGR/
.. _Box Router: http://www.cerc.utexas.edu/~thyeros/boxrouter/boxrouter.htm .. _Box Router: http://www.cerc.utexas.edu/~thyeros/boxrouter/boxrouter.htm
.. _hMETIS: http://glaros.dtc.umn.edu/gkhome/views/metis
.. _Knik Thesis: http://www-soc.lip6.fr/en/users/damiendupuis/PhD/ .. _Knik Thesis: http://www-soc.lip6.fr/en/users/damiendupuis/PhD/
.. _coriolis2-1.0.2049-1.slsoc6.i686.rpm: http://asim.lip6.fr/pub/coriolis/2.0/coriolis2-1.0.2049-1.slsoc6.i686.rpm .. _coriolis2-1.0.2049-1.slsoc6.i686.rpm: http://asim.lip6.fr/pub/coriolis/2.0/coriolis2-1.0.2049-1.slsoc6.i686.rpm
@ -110,10 +119,20 @@
.. |dot_conf| replace:: :cb:`.conf` .. |dot_conf| replace:: :cb:`.conf`
|medskip|
===================== =====================
Coriolis User's Guide Coriolis User's Guide
===================== =====================
|medskip|
.. raw:: html
<div id="centered">
The pdf version of this document is available here:<br>
<a href="https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/en/latex/users-guide/UsersGuide.pdf">Coriolis User's Guide</a>
</div>
.. contents:: .. contents::
@ -159,9 +178,9 @@ Credits & License
|medskip| |medskip|
The |Hurricane| data-base is copyright© |Bull| 2000-2012 and is The |Hurricane| data-base is copyright© |Bull| 2000-2014 and is
released under the terms of the |LGPL| license. All other tools are released under the terms of the |LGPL| license. All other tools are
copyright© |UPMC| 2008-2012 and released under the |GPL| copyright© |UPMC| 2008-2014 and released under the |GPL|
license. license.
The |Knik| router makes use of the |Flute| software, which is The |Knik| router makes use of the |Flute| software, which is
@ -235,33 +254,148 @@ Release `2049` is Alpha.
#. The |cgt| main has been rewritten in Python. #. The |cgt| main has been rewritten in Python.
Release **v2.0.0**
~~~~~~~~~~~~~~~~~~
#. Migrated the repository from |svn| to |git|, and release complete sources.
As a consequence, we drop the distribution packaging support and give
public read-only access to the repository.
#. Deep rewrite of the |Katabatic| database and |Kite| detailed router,
achieve a speedup factor greater than 20...
|newpage| |newpage|
Installation Installation
============ ============
Binary packages avalaible: .. note::
As the sources are being released, the binary packaging is dropped.
You still may find older version here: http://asim.lip6.fr/pub/coriolis/2.0 .
+-----------------------+----------------------------------------------+ In a nutshell, building source consist in pulling the |git| repository then
| Distribution | Package | running the |ccb| installer.
+=======================+==============================================+
| |Scientific Linux| 6 | | coriolis2-1.0.2049-1.slsoc6.i686.rpm_ |
| | | coriolis2-1.0.2049-1.slsoc6.x86_64.rpm_ |
+-----------------------+----------------------------------------------+
| |Fedora| 16 | | coriolis2-1.0.2049-1.fc16.i686.rpm_ |
| | | coriolis2-1.0.2049-1.fc16.x86_64.rpm_ |
+-----------------------+----------------------------------------------+
| |Ubuntu| 10.04 LTS | | `coriolis2_1.0-2049-1_.i386.rpm (10.04)`_ |
| | | `coriolis2_1.0-2049-1_.amd64.rpm (10.04)`_ |
+-----------------------+----------------------------------------------+
| |Ubuntu| 12.04 LTS | | `coriolis2_1.0-2049-1_.i386.rpm (12.04)`_ |
| | | `coriolis2_1.0-2049-1_.amd64.rpm (12.04)`_ |
+-----------------------+----------------------------------------------+
Older version can be found here: http://asim.lip6.fr/pub/coriolis/2.0 . Main building prerequisites:
If you are installing from source, you should go to section `Installation From Sources`_. * cmake
* g++
* boost
* libxml2
* yacc & lex.
* Qt 4
* LEF/DEF (optional).
* hMetis (optional).
* doxygen.
* latex
* latex2html.
* python-docutils (for reStructuredText).
Fixed Directory Tree
~~~~~~~~~~~~~~~~~~~~
In order to simplificate the work of the |ccb| installer, the source, build
and installation tree is fixed. To successfully compile |Coriolis| you must
follow it exactly. The tree is relative to the home directory of the user
building it (noted :fboxtt:`~/` or :fboxtt:`$HOME/`). Only the source
directory needs to be manually created by the user, all others will be
automatically created either by |ccb| or the build system.
+--------------------------+-----------------------------------------------------------------------------+
| **Sources** |
+--------------------------+-----------------------------------------------------------------------------+
| | Sources root | | ~/coriolis-2.x/src |
| | **under git** | | ~/coriolis-2.x/src/coriolis |
+--------------------------+-----------------------------------------------------------------------------+
| **Architecture Dependant Build** |
+--------------------------+-----------------------------------------------------------------------------+
| | Linux, SL 6, 32 bits | | ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/build/<tool> |
| | Linux, SL 6, 64 bits | | ~/coriolis-2.x/Linux.slsoc6x_64/Release.Shared/build/<tool> |
| | FreeBSD 8, 32 bits | | ~/coriolis-2.x/FreeBSD.8x.i386/Release.Shared/build/<tool> |
| | FreeBSD 8, 64 bits | | ~/coriolis-2.x/FreeBSD.8x.amd64/Release.Shared/build/<tool> |
+--------------------------+-----------------------------------------------------------------------------+
| **Architecture Dependant Install** |
+--------------------------+-----------------------------------------------------------------------------+
| Linux, SL 6, 32 bits | ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/install/ |
+--------------------------+-----------------------------------------------------------------------------+
| **FHS Compliant Structure under Install** |
+--------------------------+-----------------------------------------------------------------------------+
| | Binaries | | .../install/bin |
| | Libraries (Python) | | .../install/lib |
| | Include by tool | | .../install/include/coriolis2/<project>/<tool> |
| | Configuration files | | .../install/etc/coriolis2/ |
| | Doc, by tool | | .../install/share/doc/coriolis2/en/html/<tool> |
+--------------------------+-----------------------------------------------------------------------------+
.. note:: *Alternate build types:* the ``Release.Shared`` means an optimized build
with shared libraries. But there are also available ``Static`` instead of ``Shared``
and ``Debug`` instead of ``Release`` and any combination of them.
``Static`` do not work because I don't know yet to mix statically linked binaries
and Python modules (which must be dynamic).
Building Coriolis
~~~~~~~~~~~~~~~~~
The first step is to create the source directory and pull the |git| repository: ::
dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src
dummy@lepka:~$ cd ~/coriolis-2.x/src
dummy@lepka:~$ git clone https://www-soc.lip6.fr/git/coriolis.git
dummy@lepka:~$ cd coriolis
Second and final step, build & install: ::
dummy@lepka:src$ ./bootstrap/ccp.py --project=coriolis --make="-j4 install"
dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis --doc --make="-j1 install"
We need two steps because the documentation do not support to be generated with
a parallel build. So we compile & install in a first step in ``-j4`` (or whatever)
then we generate the documentation in ``-j1``
The complete list of |ccb| functionalities can be accessed with the ``--help`` argument.
It also may be run in graphical mode (``--gui``).
Packaging Coriolis
~~~~~~~~~~~~~~~~~~
Packager should not uses |ccb|, instead ``bootstrap/Makefile.package`` is provided
to emulate a top-level ``autotool`` makefile. Just copy it in the root of the
|Coriolis| git repository (``~/corriolis-2.x/src/coriolis/``) and build.
Sligthly outaded packaging configuration files can also be found under ``bootstrap/``:
* ``bootstrap/coriolis2.spec.in`` for |rpm| based distributions.
* ``bootstrap/debian`` for |Debian| based distributions.
Hooking up into |Alliance|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|Coriolis| relies on |Alliance| for the cell libraries. So after installing or
packaging, you must configure it so that it can found those libraries.
This is done by editing the one variable :cb:`cellsTop` in the |Alliance| helper
(see `Alliance Helper`_). This variable must point to the directory of the
cells libraries. In a typical installation, this is generally
:cb:`/usr/share/alliance/cells`.
Environment Helper
~~~~~~~~~~~~~~~~~~
To simplify the tedious task of configuring your environment, a helper is provided
in the ``bootstrap`` source directory: ::
~/coriolis-2.x/src/bootstrap/coriolisEnv.py
Use it like this: ::
dummy@lepka:~> eval `~/coriolis-2.x/src/bootstrap/coriolisEnv.py`
|newpage| |newpage|
@ -271,7 +405,25 @@ Documentation
============= =============
The general index of the documentation for the various parts of Coriolis The general index of the documentation for the various parts of Coriolis
are avalaibles here file:///usr/share/doc/coriolis2/index.html . are avalaibles here `Coriolis Tools Documentation`_.
.. note:: **Python Documentation:**
Most of the documentation is related to the C++ API and implemetation of
the tools. However, the |Python| bindings have been created so they
mimic *as closely as possible* the C++ interface, so the documentation
applies to both languages with only minor syntactic changes.
**General Software Architecture**
|Coriolis| has been build with respect of the classical paradigm that the
computational instensive parts have been written in C++, and almost
everything else in |Python|. To build the |Python| interface we used
two methods:
* For self-contained modules :cb:`boost::python` (mainly in :cb:`vlsisapd`).
* For all modules based on |Hurricane|, we created our own wrappers due
to very specific requirements such as shared functions between modules
or C++/|Python| secure bi-directional object deletion.
Coriolis Configuration & Initialisation Coriolis Configuration & Initialisation
@ -290,7 +442,7 @@ file(s):
+-------+----------------------------------+----------------------------------------------+ +-------+----------------------------------+----------------------------------------------+
| Order | Meaning | File | | Order | Meaning | File |
+=======+==================================+==============================================+ +=======+==================================+==============================================+
| **1** | The system initialization | :cb:`/etc/coriolis2/coriolisInit.py` | | **1** | The system initialization | :cb:`/etc/coriolis2/<TOOL>.conf` |
+-------+----------------------------------+----------------------------------------------+ +-------+----------------------------------+----------------------------------------------+
| **2** | The user's global initialization | :cb:`${HOME}/.coriolis2.conf` | | **2** | The user's global initialization | :cb:`${HOME}/.coriolis2.conf` |
+-------+----------------------------------+----------------------------------------------+ +-------+----------------------------------+----------------------------------------------+
@ -298,7 +450,7 @@ file(s):
+-------+----------------------------------+----------------------------------------------+ +-------+----------------------------------+----------------------------------------------+
.. note:: *The loading policy is not hard-coded.* It is implemented .. note:: *The loading policy is not hard-coded.* It is implemented
at Python level in :cb:`coriolisInit.py`, and thus may be easyly be at Python level in :cb:`/etc/coriolis2/coriolisInit.py`, and thus may be easyly be
amended to whatever site policy. amended to whatever site policy.
The truly mandatory requirement is the existence of :cb:`coriolisInit.py` The truly mandatory requirement is the existence of :cb:`coriolisInit.py`
@ -310,8 +462,14 @@ Configuration Helpers
To ease the writing of configuration files, a set of small helpers To ease the writing of configuration files, a set of small helpers
is available. They allow to setup the configuration parameters through is available. They allow to setup the configuration parameters through
simple assembly of tuples. simple assembly of tuples. The helpers are installed under the directory: ::
<install>/etc/coriolis2/
Where :cb:`<install>/` is the root of the installation.
.. _Alliance Helper:
|Alliance| Helper |Alliance| Helper
----------------- -----------------
@ -319,7 +477,7 @@ simple assembly of tuples.
The configuration file must provide a :cb:`allianceConfig` tuple of The configuration file must provide a :cb:`allianceConfig` tuple of
the form: :: the form: ::
cellsTop = '/soc/alliance/cells/' cellsTop = '/usr/share/alliance/cells/'
allianceConfig = \ allianceConfig = \
( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml' ) ( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml' )
@ -459,7 +617,7 @@ Taxonomy of the file:
* ``parametersTable``, defines & initialise the configuration variables. * ``parametersTable``, defines & initialise the configuration variables.
* ``layoutTables``, defines how the various parameters will be displayed * ``layoutTables``, defines how the various parameters will be displayed
in the configuration window in the configuration window (`The Settings Tab`_).
* The ``parametersTable``, is a tuple (list) of tuples. Each entry in the list * The ``parametersTable``, is a tuple (list) of tuples. Each entry in the list
describe a configuration parameter. In it's simplest form, it's a quadruplet describe a configuration parameter. In it's simplest form, it's a quadruplet
@ -518,6 +676,14 @@ Features are detailed in `Viewer & Tools`_.
Viewer & Tools Viewer & Tools
============== ==============
|Stratus| Netlist Capture
~~~~~~~~~~~~~~~~~~~~~~~~~
|Stratus| is the replacement for |GenLib| procedural netlist capture language.
It is designed as a set of |Python| classes, and comes with it's own documentation
(`Stratus Documentation`_)
The |Hurricane| Data-Base The |Hurricane| Data-Base
~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
@ -551,30 +717,39 @@ As for the first release, |Coriolis| can be used only for two purposes :
Mauka -- Placer Mauka -- Placer
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
Mauka makes uses of hMetis. |Mauka| was originally designed to be a recursive quadri-partionner. Unfortunatly
it is was based on the hMETIS_ library (*not* :sc:`METIS`) which is no longer
maintained (only an old binary 32 bits version is available).
To be completed... So now it is only working in simulated annealing, with performances identical to
the |Alliance| placer :cb:`ocp`. In other words, it is slow...
.. note:: *Instance Duplication Problem:* a same logical instance cannot have .. note:: *Instance Duplication Problem:* a same logical instance cannot have
two different placements. So, either you manually make a clone of it or you two different placements. So, either you manually make a clone of it or you
supply a placement for it. This is currently a drawback of our *folded hierarchy* supply a placement for it. This is currently a drawback of our *folded hierarchy*
approach. approach.
**Reseting the Placement**
Once a placement has been done, the placer cannot reset it (will be implemented
later). To perform a new placement, you must restart |cgt|. In addition, if you
have saved the placement on disk, you must erase any :cb:`.ap` file, which are
automatically reloaded along with the netlist (:cb:`.vst`).
Knik -- Global Router Knik -- Global Router
~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
The quality of |Knik| global routing solutions are equivalent to those of FGR_ 1.0.
For an in-depth description of |Knik| algorithms, you may download the thesis of
D. |Dupuis| avalaible from here~: `Knik Thesis`_.
The global router is (not yet) deterministic. To circumvent this limitation, The global router is (not yet) deterministic. To circumvent this limitation,
a global routing (also called a *solution*) can be saved to disk and reloaded a global routing *solution* can be saved to disk and reloaded for later uses.
for later uses.
A global routing is saved into a file with the same name as the design and a A global routing is saved into a file with the same name as the design and a
|kgr| extention. It is in `Box Router`_ output format. |kgr| extention. It is in `Box Router`_ output format.
For an in-depth description of |Knik| algorithms, you may download the thesis of
D. |Dupuis| avalaible from here~: `Knik Thesis`_.
|medskip|
|noindent| Menus: |noindent| Menus:
* |menu_P&R| |rightarrow| |menu_StepByStep| |rightarrow| |menu_KiteSaveGlobalRouting|. * |menu_P&R| |rightarrow| |menu_StepByStep| |rightarrow| |menu_KiteSaveGlobalRouting|.
@ -589,19 +764,29 @@ as its runtime and memory footprint is almost linear (with respect to the number
of gates). It has successfully routed design of more than `150K` gates. of gates). It has successfully routed design of more than `150K` gates.
|medskip| |medskip|
|noindent| However, this first release has the following restrictions: |noindent| However, this first release comes with the temporary the following
restrictions:
* Works only with |SxLib| standard cell gauge. * Works only with |SxLib| standard cell gauge.
* Works always with 4 routing metal layers (`M2` through `M5`). * Works always with 4 routing metal layers (`M2` through `M5`).
* Do not allow (take into account) pre-routed wires on signals * Do not allow (take into account) pre-routed wires on signals
other than |POWER| or |GROUND|. other than |POWER| or |GROUND|.
.. note::
**Slow Layer Assignment.** Most of the time, the layer assignment stage is
fast (less than a dozen seconds), but in some instances it can take more
than a dozen *minutes*. This is a known bug and will be corrected in later
releases.
After each run, |Kite| displays a set of *completion ratios* which must all After each run, |Kite| displays a set of *completion ratios* which must all
be equal to `100%` if the detailed routing has been successfull. be equal to `100%` if the detailed routing has been successfull.
In the event of a failure, on saturated design, you may decrease the In the event of a failure, on a saturated design, you may decrease the
`edge saturation ration` (argument `--edge`) to balance more evenly the design `edge saturation ratio` (argument `--edge`) to balance more evenly the design
saturation. That is, the maximum saturation decrease at the price of a wider saturation. That is, the maximum saturation decrease at the price of a wider
saturated area and increased wirelength. saturated area and increased wirelength. This is the saturation of the
*global* router |Knik|, and you may increase/decrease by steps of ``5%``,
which represent one track. The maximum capacity of the |SxLib| gauge is
10 tracks in two layers, that makes 20 tracks by |Knik| edge.
|newpage| |newpage|
@ -618,7 +803,88 @@ the |Kite| data-structure and finish/cleanup the wiring so that its
connex in the sense of |Hurricane|. *Do not* try to save connex in the sense of |Hurricane|. *Do not* try to save
your design before that step, you would get gaps in it. your design before that step, you would get gaps in it.
The complete description of |Kite| parameters are described in `Detailed Routing Configuration Parameters`_. You may visualize the density (saturation) of either |Knik| (on edges) or
|Kite| (on GCells) until the routing is finalized. Special layers appears
to that effect in the `The Layers&Go Tab`_.
Kite Configuration Parameters
-----------------------------
As |Knik| is only called through |Kite|, it's parameters also have
the :cb:`kite.` prefix.
The |Katabatic| parameters control the layer assignment step.
+-----------------------------------+------------------+----------------------------+
| Parameter Identifier | Type | Default |
+===================================+==================+============================+
| **Katabatic Parameters** |
+-----------------------------------+------------------+----------------------------+
|``katabatic.globalLengthThreshold``| TypeInt | :cb:`1450` |
| +------------------+----------------------------+
| | This parameter is used by a layer assignment |
| | method which is no longer used (did not give |
| | good results) |
+-----------------------------------+------------------+----------------------------+
| ``katabatic.saturateRatio`` | TypePercentage | :cb:`80` |
| +------------------+----------------------------+
| | If ``M(x)`` density is above this ratio, |
| | move up feedthru global segments up from |
| | depth ``x`` to ``x+2`` |
+-----------------------------------+------------------+----------------------------+
| ``katabatic.saturateRp`` | TypeInt | :cb:`8` |
| +------------------+----------------------------+
| | If a GCell contains more terminals |
| | (:cb:`RoutingPad`) than that number, force a |
| | move up of the connecting segments to those |
| | in excess |
+-----------------------------------+------------------+----------------------------+
| **Knik Parameters** |
+-----------------------------------+------------------+----------------------------+
| ``kite.edgeCapacity`` | TypePercentage | :cb:`85` |
| +------------------+----------------------------+
| | Adjust the maximum capacity of the global |
| | router's edges. The GCells would be too |
| | saturated for the detailed router if the edge |
| | capacity is left to 100%. |
+-----------------------------------+------------------+----------------------------+
| **Kite Parameters** |
+-----------------------------------+------------------+----------------------------+
| ``kite.eventsLimit`` | TypeInt | :cb:`4000002` |
| +------------------+----------------------------+
| | The maximum number of segment displacements, |
| | this is a last ditch safety against infinite |
| | loop. It's perhaps a little too low for big |
| | designs |
+-----------------------------------+------------------+----------------------------+
| ``kite.ripupCost`` | TypeInt | :cb:`3` |
| +------------------+----------------------------+
| | Differential introduced between two ripup |
| | cost to avoid a loop between two ripped up |
| | segments |
+-----------------------------------+------------------+----------------------------+
| ``kite.strapRipupLimit`` | TypeInt | :cb:`16` |
| +------------------+----------------------------+
| | Maximum number of ripup for *strap* segments |
+-----------------------------------+------------------+----------------------------+
| ``kite.localRipupLimit`` | TypeInt | :cb:`9` |
| +------------------+----------------------------+
| | Maximum number of ripup for *local* segments |
+-----------------------------------+------------------+----------------------------+
| ``kite.globalRipupLimit`` | TypeInt | :cb:`5` |
| +------------------+----------------------------+
| | Maximum number of ripup for *global* segments,|
| | when this limit is reached, triggers topologic|
| | modification |
+-----------------------------------+------------------+----------------------------+
| ``kite.longGlobalRipupLimit`` | TypeInt | :cb:`5` |
| +------------------+----------------------------+
| | Maximum number of ripup for *long global* |
| | segments, when this limit is reached, triggers|
| | topological modification |
+-----------------------------------+------------------+----------------------------+
.. _Python Scripts in Cgt: .. _Python Scripts in Cgt:
@ -628,7 +894,7 @@ Executing Python Scripts in Cgt
Python/Stratus scripts can be executed either in text or graphical mode. Python/Stratus scripts can be executed either in text or graphical mode.
.. note:: *How Cgt Locates Python Scripts.* .. note:: **How Cgt Locates Python Scripts:**
|cgt| uses the Python ``import`` mechanism to load Python scripts. |cgt| uses the Python ``import`` mechanism to load Python scripts.
So you must give the name of your script whitout ``.py`` extention and So you must give the name of your script whitout ``.py`` extention and
it must be reachable through the ``PYTHONPATH``. You may uses the it must be reachable through the ``PYTHONPATH``. You may uses the
@ -638,6 +904,9 @@ A Python/Stratus script must contains a function called ``StratusScript``
with one optional argument, the graphical editor into which it may be with one optional argument, the graphical editor into which it may be
running (will be set to ``None`` in text mode). running (will be set to ``None`` in text mode).
Asides for this requirement, the python script can contains anything valid
in |Python|, so don't hesitate to use any package or extention.
Any script given on the command line will be run immediatly *after* the Any script given on the command line will be run immediatly *after* the
initializations and *before* any other argument is processed. initializations and *before* any other argument is processed.
@ -844,6 +1113,52 @@ Some Examples :
> cgt -v -t -G --save-global --cell=design > cgt -v -t -G --save-global --cell=design
Miscellaneous Settings
~~~~~~~~~~~~~~~~~~~~~~
+---------------------------------------+------------------+----------------------------+
| Parameter Identifier | Type | Default |
+=======================================+==================+============================+
| **Verbosity/Log Parameters** |
+---------------------------------------+------------------+----------------------------+
| ``misc.info`` | TypeBool | :cb:`False` |
| +------------------+----------------------------+
| | Enable display of *info* level message |
| | (:cb:`cinfo` stream) |
+---------------------------------------+------------------+----------------------------+
| ``misc.bug`` | TypeBool | :cb:`False` |
| +------------------+----------------------------+
| | Enable display of *bug* level message |
| | (:cb:`cbug` stream), messages can be a little |
| | scarry |
+---------------------------------------+------------------+----------------------------+
| ``misc.logMode`` | TypeBool | :cb:`False` |
| +------------------+----------------------------+
| | If enabled, assume that the output device |
| | is not a ``tty`` and suppress any escaped |
| | sequences |
+---------------------------------------+------------------+----------------------------+
| ``misc.verboseLevel1`` | TypeBool | :cb:`True` |
| +------------------+----------------------------+
| | First level of verbosity, disable level 2 |
+---------------------------------------+------------------+----------------------------+
| ``misc.verboseLevel2`` | TypeBool | :cb:`False` |
| +------------------+----------------------------+
| | Second level of verbosity |
+---------------------------------------+------------------+----------------------------+
| **Development/Debug Parameters** |
+---------------------------------------+------------------+----------------------------+
| ``misc.traceLevel`` | TypeInt | :cb:`0` |
| +------------------+----------------------------+
| | Display trace information *below* that level |
| | (:cb:`ltrace` stream) |
+---------------------------------------+------------------+----------------------------+
| ``misc.catchCore`` | TypeBool | :cb:`False` |
| +------------------+----------------------------+
| | By default, |cgt| do not dump core. |
| | To generate one set this flag to :cb:`True` |
+---------------------------------------+------------------+----------------------------+
.. _The Controller: .. _The Controller:
The Controller The Controller
@ -1002,106 +1317,11 @@ Here comes the description of the *Settings* tab.
|ControllerSettings_1| |ControllerSettings_1|
Tools Fine Tuning A Simple Example: AM2901
================= ========================
To illustrate the capabilities of |Coriolis| tools and |Python| scripting, a small
example, derived from the |Alliance| :cb:`AM2901` is supplied.
.. _`Detailed Routing Configuration Parameters`: This example contains only the synthetized netlists and the :cb:`design.py` script
which perform the whole P&R of the design. Just lanch |cgt| then execute :cb:`design.py`.
Detailed Routing Configuration Parameters
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+---------------------------------------+------------------+-----------+
| Parameter Identifier | Type | Default |
+=======================================+==================+===========+
| **Katabatic Parameters** |
+---------------------------------------+------------------+-----------+
| | ``katabatic.globalLengthThreshold`` | | TypeInt | | 1450 |
| | ``katabatic.saturateRatio`` | | TypePercentage | | 80 |
| | ``katabatic.saturateRp`` | | TypeInt | | 8 |
| | ``kite.borderRipupLimit`` | | TypeInt | | 26 |
+---------------------------------------+------------------+-----------+
| **Kite Parameters** |
+---------------------------------------+------------------+-----------+
| | ``kite.edgeCapacity`` | | TypePercentage | | 65 |
| | ``kite.eventsLimit`` | | TypeInt | | 4000002 |
| | ``kite.ripupCost`` | | TypeInt | | 3 |
| | ``kite.globalRipupLimit`` | | TypeInt | | 5 |
| | ``kite.localRipupLimit`` | | TypeInt | | 7 |
| | ``kite.longGlobalRipupLimit`` | | TypeInt | | 5 |
| | ``kite.strapRipupLimit`` | | TypeInt | | 16 |
| | ``kite.metal1MinBreak`` | | TypeDouble | | 100 |
| | ``kite.metal2MinBreak`` | | TypeDouble | | 100 |
| | ``kite.metal3MinBreak`` | | TypeDouble | | 100 |
| | ``kite.metal4MinBreak`` | | TypeDouble | | 1450 |
| | ``kite.metal5MinBreak`` | | TypeDouble | | 1450 |
| | ``kite.metal6MinBreak`` | | TypeDouble | | 1450 |
| | ``kite.metal7MinBreak`` | | TypeDouble | | 1450 |
+---------------------------------------+------------------+-----------+
.. _Installation from Sources:
Installation from Sources
=========================
Installation from source is done differently than what is done in the packaging
procedure. The archive is also structured differently and meant to be unpacked
and compiled under a user's home directory.
Main building prerequisites:
* cmake
* g++
* boost
* libxml2
* yacc & lex.
* Qt 4
* LEF/DEF (optional).
* hMetis (optional).
* doxygen.
* latex
* latex2html.
* python-docutils (for reStructuredText).
Simple building procedure: ::
dummy@lepka:~$ tar jxvf coriolis2-1.0-20121103.tar.bz2
dummy@lepka:~$ cd coriolis-2.x/src
dummy@lepka:src$ ./bootstrap/buildCoriolis.py \
--project=bootstrap --project=vlsisapd --project=coriolis \
--make="-j4 install"
dummy@lepka:src$ ./bootstrap/buildCoriolis.py \
--project=bootstrap --project=vlsisapd --project=coriolis \
--doc --make="-j1 install"
Installation is done according to the following tree structure:
========================= =========================================================================
Linux, SL 6, 32 bits ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/install
Linux, SL 6, 64 bits ~/coriolis-2.x/Linux.slsoc6x_64/Release.Shared/install
FreeBSD 8, 32 bits ~/coriolis-2.x/FreeBSD.8x.i386/Release.Shared/install
FreeBSD 8, 64 bits ~/coriolis-2.x/FreeBSD.8x.amd64/Release.Shared/install
========================= =========================================================================
.. note:: *Alternate build types:* the ``Release.Shared`` means an optimized build
with shared libraries. But there are also available ``Static`` instead of ``Shared``
and ``Debug`` instead of ``Release`` and any combination of them.
``Static`` do not work because I don't know yet to mix statically linked binaries
and Python modules (which must be dynamic).
Environment Helper
~~~~~~~~~~~~~~~~~~
To simplify the tedious task of configuring your environment, a helper is provided
in the ``bootstrap`` source directory: ::
~/coriolis-2.x/src/bootstrap/coriolisEnv.py
Use it like this: ::
dummy@lepka:~> eval `~/coriolis-2.x/src/bootstrap/coriolisEnv.py`

View File

@ -6,6 +6,11 @@
.. stored at a different URL on the website. Namely: .. stored at a different URL on the website. Namely:
.. https://soc-extras.lip6.fr/media/filer/2012/12/07/ .. https://soc-extras.lip6.fr/media/filer/2012/12/07/
.. URLs that changes between the various backends.
.. _Coriolis Tools Documentation: https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/
.. _Stratus Documentation: https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/en/html/stratus/index.html
.. _Here: https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/en/latex/users-guide/UsersGuide.pdf
.. role:: raw-html(raw) .. role:: raw-html(raw)
:format: html :format: html
@ -61,4 +66,3 @@
.. |noindent| replace:: :raw-html:`<p class="empty"></p>` .. |noindent| replace:: :raw-html:`<p class="empty"></p>`
.. |medskip| replace:: :raw-html:`<br>` .. |medskip| replace:: :raw-html:`<br>`
.. |newpage| replace:: :raw-html:`<hr>` .. |newpage| replace:: :raw-html:`<hr>`

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Some files were not shown because too many files have changed in this diff Show More