Sie sind auf Seite 1von 29

Migrating to OnSemi network &

Cliosoft

06/23/2020
OnSemi CDE (common design environment) Setup
• Supported Shell : bash
• Users login to the Project by doing ‘cd’ to the project workarea:
• Ex: cd /proj/emerald/workarea/$USER
• Configuring the Shell with all Required tools (for a project)
• Launch init_cde
• Alternatively, you can manually setup .cde_setup:
• In the project area (ex: /proj/emerald/workarea/$USER)
• % init_cde create
• This will generate .cde_setup file.
• By default, all the tools are disabled. Edit .cde_setup to enable any tools required.
• Once .cde_setup file created, please launch init_cde

2 08/24/2020
EDA Tool Configuration

 EDA Tool Configuration Inside Each Design Project


 Supports Both Text as GUI Based Modification EDA tool Configuration
 Project and User Level Settings
 Configures the Shell with All required Tool Versions
 Direct Link to central DE CDE database (High level Information …)
How to setup tools/paths/versions in CDE?
Each tool entry in the .cde_setup file has different possibilities

Default
export ON_IC=t
CustomThe default ICTOOLS version (Cadence IC) is configured according to the default
version identified by the DE organization

export ON_IC=ic61_4
The version is used defined in the export command. The available versions for a particular EDA tool can be found at
/custom/tools/wrappers/release/shell_home/<vendor>/<package>
Or use the shellGetRevList command
Path
export ON_IC=ic61_4,/devel/cad/cds/cds
A certain version of an EDA tool is used but a custom source location of the EDA tool is defined as extra parameter.
Use model used within DE for qualification purpose.
Configuration contd.
.proj_id
Automatically generated through web interface
Data Managed
Created at Project Start
.cde_setup
Initially Created from Template
Configurable through GUI
Managed by Project Leader or Design Manager
Configurable by CdeToolSetup UI with Input From PDK Qualification Information
Data Managed
.cde_setup_<user>
Optionally Created from Template
Configurable With CdeToolSetup UI
Managed by User
Only required when need to override the Project EDA tool versions
Driven by a solution provided by DE through support
Driven by extra functionality required by the user
.cde_setup_post
Override variables already set by the DE Default Setup (ex: 64bits EDA tool config ….)
.cde_setup_post_<user>
Override variables already set by Default DE setup but on Individual basis
Useful Tools
• Get a revision for a tool :
• shellGetRevList [-help | -list | <tool> | -cad <tool> | -var <ON_VAR>]
This will list available versions for a given tool
shellGetRevList -list
Will return list of tool suites
shellGetRevList –var ON_IC
Will list all supported Cadence IC versions
• Configuring an Existing Shell
• shellConfig <tool> <version>
will reconfigure current shell with new path
shellConfig synopsys E-2010.12
Adds synopsys (synthesis) E-2010.12 to the shell config and PATH
Tool : Current Versus Alpha

• Each EDA/Custom Tool Package Can Have 2 Types of Pointers


Alpha (alpha) :
Pointing Always to the Latest Version of the Tool Package
Version is Not Regression Tested by the DE Department
Current (t): (default)
Tool Went Through DE Regression Test and/or Has been Used Successfully by
the BU Design Groups
Version is the Recommended Versions to IP Groups for Their Development
Flows
Cliosoft for Emerald Project
Cliosoft Projects for Client Chip (Emerald)
• We have created 6 projects for Client Chip.
• Emerald, qcs-bb, qcs-mac, qcs-hdp, qcs-ip and qcs-lib.
• Supported Project based directory structure:

.cde_setup
  /proj emerald workareas zbmd3c
.proj_id
<Project Data>
$USER

zbjjfr

projmgr

9 08/24/2020
Cliosoft Projects for Client Chip (Emerald) contd..
• Project based directories:
• /proj/emerald/workareas/$USER
• SoC/Top Level/Full Chip development is under “emerald”
• /proj/qcs-bb/workareas/$USER
• All baseband development is under “qcs-bb”
• /proj/qcs-mac/workareas/$USER
• All wmac development is under “qcs-mac”
• /proj/qcs-hdp/workareas/$USER
• All hdp/switch development is under “qcs-hdp”
• /proj/qcs-ip/workareas/$USER
• All vendor & internal IP’s and common code.
• /proj/qcs-lib/workareas/$USER
• Standard libraries & memories for a given process (22FDX).

10 08/24/2020
Cliosoft Data Management
Repository SiteA
1
2
...
0 10

Cache SiteA Cache SiteB Cache SiteC …


link
link link

lin
k

lin
k
lin

lin
lin
k
link

link

k
k
...

Workarea Workarea Workarea


fg396c ffxxxx ffx3tc
Workarea Workarea
ffx7hm ffx7tc
Initial Steps : Create workarea

• /proj/<project>/workarea/<username>
• $ sos
• File → New workarea
• Server Name
• Project Name
• Links to Smart Cache
• In most cases the connection is already established by Project
Setup tool
• In that case this particular step is not needed anymore
• For windows the field „Workarea Dir“ is also required
• Place, where the data will be downloaded
• Separate directory for each project
Populate directories and files

• Downloads the data from repository in


workarea
• With the proper setup cliosoft should create
links into smart cache
• Mark selected directories
• Can run recursively
• Tree → Populate
• The entire directory tree under the selected
directory will be downloaded in the workarea
Basic commands – quick menu
• Create file or directory in cliosoft (initial submitting)
• Check out - download files to workarea and lock them
• Check in - upload changes into repository
• Cancel check in and discard changes
• Dialog for making and removing tags
• Compare differences between two revisions of file
• Show history of file
• Show list of selected files
• Allow user to edit files in predefined editor
• Allow to chat users even on different sites
• Updates workarea
Icons in SOS Partially populated directory
Flags propagate up the
directory tree

Revision in workarea is not


the latest
Directory marked an Never
populate
Update will bring a new
revision to workarea
Populated directory
Revision

Populated file
Revision in workarea

Alternative development Label - Tag


branch

Label - Snapshot
Managed symbolic link
File checked out by you in
Colors legend: this workarea
Unmanaged directory

Type of object Branch merged


Unmanaged File
Status Information Terminated branch

Unpopulated directory
Informational icons Check-out without lock

Unpopulated file Unmerged branch

External referenced
directory File locked by someone else

External referenced file


Documentation & Help
• More info in documentation
• SOS GUI  Help  Documentation
• /cad/cliosoft/sos/sos_7.04.p12/docs/SOS_User_Guide.pdf
• SOSCMD : Command Line
• The basic non-gui command $ soscmd help update
• soscmd help
• writes all parameters available
• soscmd help parameter
• Writes help of particular command

16 08/24/2020
SVN  Cliosoft SOSCMD Mapping
svn Command Command Info Equivalent SOSCMD
svn Checkout/CO svn checkout creates the working copy, from where you can do edit, delete, or add contents. You can checkout a file, directory,
trunk or whole project. soscmd co
Save changes to the repository
svn Commit soscmd ci
svn list is useful when you want to view the content of the svn repository, without downloading a working copy.
svn list Nothing equivalent
Add a new file to svn repository. The repository will have newly added file, only when you do svn commit
svn add soscmd create
svn delete command deletes an item from the working copy (or repository). File will be deleted from the repository when you do a
svn delete svn commit. soscmd delete
Display the difference. svn diff displays the differences between your working copy and the copy in the svn repository. You can
svn diff find the difference between two revisions and two paths etc., soscmd diff
Status of the working copy. It displays whether the working copy is modified, or its been added/deleted, or file is not under
svn status revision control, etc soscmd status
Rename file or directory. This command moves a file from one directory to another or renames a file. The file will be moved on
svn move your local sandbox immediately. (as well as on the repository after committing). soscmd rename
Update the working copy. svn update command brings changes from the repository into your working copy. If no revision is
svn update specified, it brings your working copy up-to-date with the HEAD revision soscmd update
svn log command shows log messages from the repository
svn log soscmd objstatus
svn revert command reverts changes in your working copy, as well as property changes
svn revert soscmd revertrev
svn shelve command stores your changes without submitting them.
svn shelve No Shelve option.
svn merge svn merge command combines two different versions into your working copy
soscmd merge
svn help Request help
soscmd help
svn info Display information about the current client and server.
soscmd query
Some more useful commands
discardco - Discard check out
neverpopulate - Mark the specified directory to never be populated in this workarea
unpopulate - Unpopulate the specified directory
populate - Populate the specified directory
query – Get project-specific information
tag - Tag a revision with the given name
retire command
retirebranch - retire/activate an existing branch
retiresnapshot - retire/activate an existing snapshot
retiretag - retire/activate an existing
undelete - Undelete objects from a specified directory
updatesel - Update selected objects in the workarea
Re-creating a failure in Emerald/QCS-BB/QCS-MAC using Tags
• Once the RTL bug is found, we need to create a tag to identify the version
that has the bug in RTL.
• Open RTL ticket in JIRA. Ex: QCLIENT_1001
• Create a tag in sos to identify this version of the RTL.
• To simplify things, use bug number as the tag : QCLIENT_1001
• Update the JIRA with new tag created.

• User who is trying to re-create this bug shall change their RSO in SOS.
Shown here.
• Pick the tag from the left column, move it to the RSO column. Picture
is showing “gold tag”.
• You can keep “main” in the window and change the order such that
new tag is the first in the order.
• Alternatively you can just keep the new tag and move the “main” to left
window.
• Now update the work area.
• You will now get the exact version of the RTL that has the bug.

19 08/24/2020
Daily RTL Release Flow
• We will be using a feature called referencing for this feature.
• Daily regressions will qualify the “main” trunk by running a suite of tests. Once
the regression is clean, we will tag newly qualified trunk as
“Ready_for_simulation”
• All the verification collateral will only use this tag “Ready_for_simulation”.
• This can be done by changing RSO order.
• Design team will also use the same “Ready_for_simulation” tag except when
making modifications to RTL.
• The tag “Ready_for_simulation” will move the versions as and when the daily
regressions qualify the main trunk and release.
• Everyone will simply do an update in cliosoft to get the updated
“Ready_for_simulation” version of the design.

20 08/24/2020
Shared Work Area And Shared Access
• Given that there are no shared disks on OnSemi network, we created “shared”
directory for each project.
/proj/qcs-bb/workareas/shared
/proj/qcs-mac/workareas/shared
/proj/emerald/workareas/shared
• All users in “engr” group have read/write/execute permission to “shared” dir.
• Allow others to have read access to your workarea
• chmod o+rx $USER

21 08/24/2020
Simulation/Regression Outputs

• All machines on OnSemi network has a mount : /sim/tmp


• All simulation outputs should be directed to “/sim/tmp/$USER”
• create $USER directory under /sim/tmp.
• All scripts outputs should be directed to “/sim/tmp/$USER”

22 08/24/2020
LSF
• Basic Terminology
• Job
• One complete task sent to the LSF scheduler​
• 1 LSF submission (bsub) command = 1 job​
• Resource
• Parameter required to run the job​. Ex:license, memory, cpu quantity etc
• LSF will keep the job on hold until the required resources are available​
• Queue​
• “Container” for jobs​
• Queues are on dedicated hardware optimized to application layer ​
• Should have some Resource required​
• Should have some user/queue jobs limitations
• Jobs should be submitted to a specific queue, never to a specific server host
LSF Contd..
• Standard ONSEMI queues
• “normal”: default queue, no special resources are assigned​
• Tool specific queues: “spectre”, “eldo”, “cdrc”
• How to find out what queues are available?
• “bqueues” to see list of queues
• How to find out which queue is right one?
• which_queue <cmd> to get the right queue name to be used
• which_queue –tools will give the list of tools and its corresponding queues.
LSF Contd..
• How to submit the jobs to LSF?
• %bsub run_vlog_sim
• By default the jobs gets submitted to ‘Normal’ queue
• How to submit interactive jobs to LSF?
• %bsub -Is run_verdi
• “Is” for interactive
• How to submit a job to a specific queue?
• %bsub -Is run_verdi –q interactive
• Specifically submitting to a ‘interactive’ queue.
• How to find out the status of a submitted job?
• %bjobs <job_id>
• How to kill a submitted job?
• %bkill <job_id>  Kill the given job id
• %bkill –u <user_name>  Kill all jobs by user_name
LSF Contd..
• How to know if you have free license available?
• %blstat –t ls_questsim
• Gives info on used/free/reserved license for questasim.
• How to get an overview of all available license resource names?
• %blinfo
• Overview of all available license resource names
• How to use resources?
• -R “select[mem>1000]”​
• Job to be launched on a server with at least 1 Gb memory free​
• -R “rusage[mem=500]”​
• For the duration of the job, reserve 500 Mb memory on the selected server
LSF Contd..
% bsub –Is –q ncsim_high ./runInteractiveSimulation​
• –q ncsim_high: submit the job to the “incsim” queue which has to be interactive​
• ./runInteractiveSimulation : the actual command/script to run the job
• bsub –J sim1 –q normal –n 4 --R  “span[hosts=1] rusage[ls_eldo=2]” ./runSimulation​
• –J sim1: give the job a name “sim1” for easier identification​
• –q normal: submit the job to the “normal” queue
• –n 4: this job needs 4 CPUs​
• –R “ ”: add list of resources​
• span[hosts=1]: all CPUs need to be on 1 host​
• rusage[ls_eldo=2]: this job needs 2 eldo licenses
• ./runSimulation: the actual command/script to run the job​
LSF Contd..
% More useful commands
• bpeek <job_id>​
• Look at the output of a running job​
• bkill <job_id>​
• Kill the specified job​
• bsuspend <job_id>​
• Suspend/pause the specified job​
• bresume <job_id>​
• Resume the specified suspended job​
• btop <job_id>​
• Move the queued job to the top of your list​
• bbot <job_id>​
• Move the queued job to the bottom of your list
LSF Contd..
• More useful commands
• bhosts​
• Shows all servers in cluster and status​
• lshosts​
• Shows servers + clients in cluster​
• bqueues​
• Shows available queues and status​
• bqueues –l <queue_name>​
• Get more information about a certain queue​
• lsload​
• Shows load status of servers

Das könnte Ihnen auch gefallen