2025年6月8日 星期日

Install CustomExplorer









1. Download

We need to download the newest version of CustomExplorer. The downloaded file
name is:

customexplorer_2024.09-sp2_linux.tgz


2. Extract & Install

We need to use root permission to run:

# tar xfva customexplorer_2024.09-sp2_linux.tgz -C /opt/EDA

It will extract it to /opt/EDA/customexplorer

3. Config Env.

CustomExplorer="/opt/EDA/customexplorer/cur/bin"

export PATH=$PATH:$CustomExplorer

LM_LICENSE_FILE=26585@lstn
export LM_LICENSE_FILE

4. Test

$ cx 

5. Trouble Shooting

$ cx
  'spice_explorer' license is checked out for WaveView ADV feature.
Info: Could not load the Qt platform plugin "xcb" in "" even though it was found. (:0, )
Fatal: This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: minimal, offscreen, webgl, xcb.
 (:0, )

Since we can not use Ctrl+c to quit this command. We need to use kill command
to kill the PID of cx.

$/# ps aux |grep cx
# ps aux|grep cx
herman    266633  0.0  0.0   7420  3428 pts/9    S+   10:02   0:00 /bin/bash /opt/EDA/customexplorer/cur/bin/cx
root      268047  0.0  0.0   6688  2212 pts/4    S+   10:09   0:00 grep cx


We can see the PID of cx command is 266633. Then we can use the following
command to kill this process:

$/# kill -9 266633

The we can run :

$ ls -lt |more
total 349532
-rw-r--r--  1 herman herman      4096  425 10:02 sxcmd.log
..

There is a file called sxcmd.log which is the running log of cx.

We can check the contents inside:

### WaveView ADV log file, revision W-2024.09-SP1 (build Nov 27, ) ###
### created at 10:02:33 on Fri Apr 25 2025 (Linux AMD64) ###
### Host Name: f6018-15   User ID: herman   PID: 266652   ###
wv_start_log
# (0) running in waveview only mode
# (0) SW_SX_PERL_LIB defined
# (0) SW_SX_TCL_LIB defined
# (0) HOME defined
# (0) # TYPE S abort
# (0) # memory usage 433.99MB
# (0) 0x910945 /opt/EDA/customexplorer/cur/platforms/linux64/bin/wv() [0x910945]
# (0) 0x910EE5 /opt/EDA/customexplorer/cur/platforms/linux64/bin/wv() [0x910ee5]
# (0) 0x4B65B04F /lib/x86_64-linux-gnu/libc.so.6(+0x3c04f) [0x7ff74b65b04f]
# (0) 0x4B6A9EEC /lib/x86_64-linux-gnu/libc.so.6(+0x8aeec) [0x7ff74b6a9eec]
# (0) 0x4B65AFB1 /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x11) [0x7ff74b65afb1]
# (0) 0x4B645471 /lib/x86_64-linux-gnu/libc.so.6(abort+0xd2) [0x7ff74b645471]
# (0) 0x4889C9BE /opt/EDA/customexplorer/cur/platforms/linux64/lib/libQt5Core.so.5(_ZNK14QMessageLogger5fatalEPKcz+0xb6) [0x7ff74889c9be]
# (0) 0x491313C2 /opt/EDA/customexplorer/cur/platforms/linux64/lib/libQt5Gui.so.5(_ZN22QGuiApplicationPrivate25createPlatformIntegrationEv+0x18f2) [0x7ff7491313c2]
# (0) 0x4913182F /opt/EDA/customexplorer/cur/platforms/linux64/lib/libQt5Gui.so.5(_ZN22QGuiApplicationPrivate21createEventDispatcherEv+0x2f) [0x7ff74913182f]
..

We can see that the cx command is actually 

/opt/EDA/customexplorer/cur/platforms/linux64/bin/wv


Then we can check this file:

$ cd /opt/EDA/customexplorer/cur/platforms/linux64/bin/
/opt/EDA/customexplorer/cur/platforms/linux64/bin $ ls wv
-rwxr-xr-x 1 herman herman 44596312 1127 09:16 wv

/opt/EDA/customexplorer/cur/platforms/linux64/bin $ file wv
wv: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, stripped

We can us ldd command to check the dynamically linked file (library) for wv:

/opt/EDA/customexplorer/cur/platforms/linux64/bin # ldd wv
	linux-vdso.so.1 (0x00007fffc73bc000)
	libNPI.so => not found
	libndna.so => not found
	libnffr.so => not found
	libnffw.so => not found
	libnsys.so => not found
	libvirtuos_sh.so => not found
	libcdsCommon_sh.so => not found
	libfastt_sh.so => not found
	libcls_sh.so => not found
	libcdsenvutil.so => not found
	libcdsenvxml.so => not found
	libblosc.so.1 => not found
	libz_sh.so => not found
	libpsf.so => not found
	libsrr.so => not found
	libQt5Gui.so.5 => not found
	libQt5Core.so.5 => not found
	libQt5Sql.so.5 => not found
	libQt5Xml.so.5 => not found
	libQt5Widgets.so.5 => not found
	libQt5Svg.so.5 => not found
	libQt5X11Extras.so.5 => not found
	libQt5Network.so.5 => not found
	libicui18n.so.60 => not found
	libicuuc.so.60 => not found
	libicudata.so.60 => not found
	libssl.so.1.1 => not found
	libcrypto.so.1.1 => not found
	libXmu.so.6 => /lib/x86_64-linux-gnu/libXmu.so.6 (0x00007f4219874000)
	libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f4219829000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4219822000)
	libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007f421980e000)
	libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f4219801000)
	libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f42196bf000)
	libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f4219695000)
	libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f4219680000)
	libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f42195b4000)
	libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f42195a7000)
	libSM.so.6 => /lib/x86_64-linux-gnu/libSM.so.6 (0x00007f421959c000)
	libICE.so.6 => /lib/x86_64-linux-gnu/libICE.so.6 (0x00007f421957e000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f4219200000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4219579000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4219572000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4219492000)
	libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f4219054000)
	libNCX.so => not found
	libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f4218ef5000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4218d14000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f42198ae000)
	libXt.so.6 => /lib/x86_64-linux-gnu/libXt.so.6 (0x00007f4219426000)
	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f4218ce9000)
	libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f4219421000)
	libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f4218a00000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4218cca000)
	libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f4218c94000)
	libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f4218c87000)
	libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f4218c7d000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f4218c67000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4218c47000)
	libicuuc.so.72 => /lib/x86_64-linux-gnu/libicuuc.so.72 (0x00007f4218802000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f4218c18000)
	libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f42187df000)
	libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f4218c0b000)
	libicudata.so.72 => /lib/x86_64-linux-gnu/libicudata.so.72 (0x00007f4216a00000)



Now, we can find missing DLLs from packages.debian.org

libQt5Gui.so.5 ->	libqt5gui5
libQt5Sql.so.5 -> 	libqt5sql5
libQt5Xml.so.5 ->	libqt5xml5


We can install the missing files and verify it again:

# apt-get install libqt5gui5 libqt5sql5 libqt5xml5


We can find the rest of the missing files to run cx

	libNPI.so => not found
	libndna.so => not found
	libnffr.so => not found
	libnffw.so => not found
	libnsys.so => not found
	libvirtuos_sh.so => not found
	libcdsCommon_sh.so => not found
	libfastt_sh.so => not found
	libcls_sh.so => not found
	libcdsenvutil.so => not found
	libcdsenvxml.so => not found
	libblosc.so.1 => not found
	libz_sh.so => not found
	libpsf.so => not found
	libsrr.so => not found

All these files can not be found in packages.debian.org. However, you can
find these files using the following commands:

# cd /opt/EDA/customexplorer/cur
/opt/EDA/customexplorer/cur # find ./ -name libNPI.so
./platforms/linux64/lib/libNPI.so

/opt/EDA/customexplorer/cur # find ./ -name libndna.so
./platforms/linux64/lib/libndna.so

and so on..

Thus, all these files are included in CustomExplorer. We don't need to install
it manually.

Install TSMC N16 ADFP PDK






1. Extract TSMC N16 ADFP tar file

   TSMC N16 ADFP (Academic Design Foster Package) is an advance process
   design kit provided by TSMC. It is used for academic only, and only
   some universities is licensed to use it. NSYSU is one of them.

   In order to use TSMC N16 ADFP in virtuoso ICADVM, we need to extract
   it to our home directory. Please use your account to run

   $ tar xfva N16ADFP_iPDK.tar -C ~/

   It will extract all files to your ~/N16ADFP_iPDK

2. Create a new library

$ cd ~/N16ADFP_iPDK
~/N16ADFP_iPDK$ source /opt/EDA/bashrc_icadvm
~/N16ADFP_iPDK$ virtuoso 

We can create a new ADFP library using "Attach to an existing technology 
library", and attach it to tsmcN16. Then you can create you own new library.


3. Test run

Now, we can create a new inv layout view to see whether it has calibre
on it or not. There is no calibre in the menu list.

We need to add calibre to the menu list. Before we continue, we need to exit
ICADVM first.


4. Integrate calibre into virtuoso ICADVM

4.1 check CALIBRE_HOME environment variable:

$ env | grep CALI
CALIBRE_HOME=/opt/EDA/calibre/cur

You should see an environment variable called CALIBRE_HOME

4.2 edit .cdsinit

~/N16ADFP_iPDK$ vi .cdsinit
load( strcat( getShellEnvVar("CALIBRE_HOME")
"/shared/pkgs/icv/tools/queryskl/calibre.skl" ))

and save it.

*** If .cdsinit does not exists, you need to create a new one ***

After this configuration, we can run virtuoso again.


5. Test run again.

~/N16ADFP_iPDK$ virtuoso &

If your .cdsinit file is correct, you should see the following messages:

//
//  Calibre Skill Interface * (v2024.4_12.9) *
//
//                         Copyright Siemens 1996-2020     
//                             All Rights Reserved.
//         THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
//            WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
//              OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
//
//

Now, we can open an inv layout view to see the menu list.

However, if you run virtuoso from other directory. You may not be able
to use calibre inside virtuoso. Because .cdsinit file is only effective form
the directory you start virtuoso. Thus you need to create/copy .cdsinit file
form ~/N16ADFP_iPDK directory. The command is :

~$  cp  ~/N16ADFP_iPDK/.cdsinit  .

Then you can run virtuoso again.

Install Calibre









1. Download

We can download the following files from TSRI:

calibre_aoj_cal_2024.4_12.9_linux_1of4.tgz
calibre_aoj_cal_2024.4_12.9_linux_2of4.tgz
calibre_aoj_cal_2024.4_12.9_linux_3of4.tgz
calibre_aoj_cal_2024.4_12.9_linux_4of4.tgz

Please be noted that this version is "aoj" version. There are different
calibre versions released by Siemens. You may refer to 
https://calibre.mentorcloudservices.com/docs/Calibre_OS_Roadmap.htm
to see their differences.


2. Extract & Install

# tar xfva calibre_aoj_cal_2024.4_12.9_linux_1of4.tgz -C /opt/EDA
# tar xfva calibre_aoj_cal_2024.4_12.9_linux_2of4.tgz -C /opt/EDA
# tar xfva calibre_aoj_cal_2024.4_12.9_linux_3of4.tgz -C /opt/EDA
# tar xfva calibre_aoj_cal_2024.4_12.9_linux_4of4.tgz -C /opt/EDA

3. Config Env.

3.1 Env setting.
Calibrebin="/opt/EDA/calibre/cur/bin"

PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$Calibrebin"

#Mentor License Setup
MGLS_LICENSE_FILE=1717@lsncku
MGC_HOME=/opt/EDA/calibre/cur
CALIBRE_HOME=/opt/EDA/calibre/cur
MGC_TMPDIR=/tmp
MGC_LOCATION_MAP=NO_MAP

export USE_CALIBRE_VCO=aoj

export MGC_HOME CALIBRE_HOME MGC_TMPDIR MGC_LOCATION_MAP MGLS_LICENSE_FILE

LM_LICENSE_FILE=1717@lsncku

export PATH LM_LICENSE_FILE


3.2 Link to virtuoso

??


4. Test

$ source /opt/EDA/bashrc_eda
$ calibre -gui &
Invalid operating system environment, VENDOR=unknown OS VERSION=12

$ export USE_CALIBRE_VCO=aoj
$ calibre -gui &




Discussion of TSRI configuration files



Discussion of TSRI configuration files

=======
Cadence environment

In virtuoso download web page, we can see that there are some additional files
provided by TSRI, which are:

installation_guide_cadence.txt
CIC.tar

installation_guide_cadence.txt is to describe how to install EDA tools using
TSRI way.

CIC.tar is the environment setting. Basically, they are all C shell script.

We can use the following command to extract CIC.tar:

$ cat CIC.tar | tar xfv -

Then it will extract a CIC directory. Then we can take a look inside.

$ cd CIC
CIC $ ls
assura.cshrc   ext.cshrc      integrand.cshrc   pegasus.cshrc  ssv.cshrc
ccd.cshrc      genus.cshrc    jasper.cshrc      pvs.cshrc      stratus.cshrc
confrml.cshrc  ic6.cshrc      liberate.cshrc    quantus.cshrc  tempus.cshrc
ctos.cshrc     icadvm.cshrc   license.cshrc     rc.cshrc       verisium.cshrc
ddi.cshrc      ic.cshrc       mmsim.cshrc       sigrity.cshrc  vmanager.cshrc
edi.cshrc      incisiv.cshrc  modus.cshrc       spb.cshrc      xcelium.cshrc
ets.cshrc      innovus.cshrc  neocircuit.cshrc  spectre.cshrc


Inside this directory, there are some files relating to our environment setting
so far:

ic6.cshrc 	-> IC 6
icadvm.cshrc	-> ICADVM
ic.cshrc	-> IC 5141

license.cshrc	-> License Check, we need to check the license check port.
		   Basically, all cadence EDA softwares use 5280 port in
                   TSRI environment

One day, if you want to write a program or a shell script. Please remember 
KISS principle.

K eep
I t
S imple
S tupid

==
Why should we use Bash not CSH

You can type 

$ env |grep SHELL
bash

Basically all Linux operation system use bash as it's default SHELL environment.
However, TSRI provide only CSH setting. Thus I rewrite all the configurations
to bash. And it is much more easier to debug.

====================================
=======
Synopsys environment

If you check HSPICE Download web page, you will also see the following files:

installation_guide_synopsys.txt	-> Installation guide for Synopsys software.
TCAD_CIC.tar	-> This is the setting file for TCAD, we don't use it.
CIC.tar		-> This is the configurations files for Synopsys software.

We can use the same command to extract CIC.tar:

$ tar xfva CIC.tar
$ cd CIC
CIC $ ls 
3dicc.cshrc           icv.cshrc             protocompiler.cshrc
adp.cshrc             icv_wb.cshrc          qatk.cshrc
architect.cshrc       identify.cshrc        rtl_arch.cshrc
asip.cshrc            laker.cshrc           siliconsmart.cshrc
certify.cshrc         laker_oa.cshrc        spyglass.cshrc
coreconsultant.cshrc  lc.cshrc              star-rcxt.cshrc
cosmos_scope.cshrc    license.cshrc         synopsys_dc.setup.18
customcompiler.cshrc  license_TCAD.cshrc    synopsys_dc.setup.35
customexplorer.cshrc  milkyway.cshrc        synplify.cshrc
dsoai.cshrc           mwdt.cshrc            synthesis.cshrc
dwip.cshrc            nanosim.cshrc         tcad.cshrc
euclide.cshrc         optocompiler.cshrc    tmax.cshrc
fc.cshrc              optodesigner.cshrc    vc_formal.cshrc
finesim.cshrc         pa_virtualizer.cshrc  vcs.cshrc
formality.cshrc       powrep.cshrc          vcs-mx.cshrc
hercules.cshrc        primepower.cshrc      vera.cshrc
hsimplus.cshrc        primerail.cshrc       verdi.cshrc
hspice.cshrc          primesim.cshrc        verdi-ncverilog.cshrc
icc2.cshrc            primetime.cshrc       verdi-vcs.cshrc
icc.cshrc             primewave.cshrc       xa.cshrc


hspice.cshrc	-> HSPICE setting
license.cshrc	-> License setting, in this file, we can see that Synopsys's
	License check port is 265865. You need to remember it.


If you need to check Cadence & Synopsys Licenses, you need to configure
your environment like this:

LM_LICENSE_FILE=5280@lstn:26585@lstn
export LM_LICENSE_FIL

Install Synopsys HSpice








Install Synopsys HSPICE

1. Download

Please download the newest version of HSPICE, the file name is 
hspice_2024.09-sp1_linux.tgz

2. Extract/Install

Please use root permission to run:

# tar xfva hspice_2024.09-sp1_linux.tgz -C /opt/EDA

This procedure will extract and install hspice to /opt/EDA/hspice
directory.

3. Config Env.

3.1 We need to add more info to our bashrc_eda. Please all the following 
contents:

Hspice="/opt/EDA/hspice"
Hspicebin="/opt/EDA/hspice/cur/hspice/bin"

PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$Hspicebin"

LM_LICENSE_FILE=26585@lstn

export PATH LM_LICENSE_FILE

3.2 Modify hspice.ini

# cd /opt/EDA/hspice/cur/hspice
/opt/EDA/hspice/cur/hspice # cat hspice.ini

* READING FILE:  /usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/hspice.ini
.prot
.option
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/ad
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/behave
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/bjt
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/burr_brn
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/comlinear
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/dio
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/fet
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/lin_tech
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/pci
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/signet
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/ti
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/tline
+ search=/usr/cad/synopsys/hspice/cur/hspice/W-2024.09-SP1/hspice/parts/xilinx
**** add any user options, parameters, model includes,
**** subcircuit includes or libraries here

.unprot


We can see that the hspice directory settin is not /opt/EDA/hspice. Thus we 
need to fix it. Please run the following command:

# export INST_DIR1=/opt/EDA/hspice/cur
# /opt/EDA/hspice/cur/hspice/bin/config

This step is very important because if you don't modify hspice.ini. It may not
find some files when you run simulation.



4. We can run

$ source /opt/EDA/bashrc_eda

to load our EDA environment setting

Then run

$ hspice

                              PrimeSim HSPICE (R)

            Version W-2024.09-SP1 for linux64 - Dec 02, 2024 9404553

                    Copyright (c) 1986 - 2024 Synopsys, Inc.
   This software and the associated documentation are proprietary to Synopsys,
 Inc. This software may only be used in accordance with the terms and conditions
 of a written license agreement with Synopsys, Inc. All other use, reproduction,
   or distribution of this software is strictly prohibited.  Licensed Products
     communicate with Synopsys servers for the purpose of providing software
    updates, detecting software piracy and verifying that customers are using
    Licensed Products in conformity with the applicable License Key for such
  Licensed Products. Synopsys will use information gathered in connection with
    this process to deliver software updates and pursue software pirates and
                                   infringers.
..
 system
  -version          Outputs PrimeSim HSPICE version information
  -include_last     Insert the specified file in the end of the input file
  -include_first    Insert the specified file in the beginning of the input file
  -info             Outputs PrimeSim HSPICE supported TMI information
  -container        Runs Primesim HSPICE in container

Enter input file name:

This means that HSPICE is wating for your input file (SPICE netlist). If you
have an inv.sp. You can run:

$ hspice inv.sp 

to run simulation directory.

Using: /opt/EDA/hspice/2024.09-sp1/hspice/linux64/hspice inv.sp
 ****** PrimeSim HSPICE -- W-2024.09-SP1 linux64 (Dec 01 2024 9404553) ******
  Copyright (c) 1986 - 2025 by Synopsys, Inc. All Rights Reserved.
  This software and the associated documentation are proprietary
  to Synopsys, Inc. This software may only be used in accordance
  with the terms and conditions of a written license agreement with
  Synopsys, Inc. All other use, reproduction, or distribution of
  this software is strictly prohibited.
  Input File: inv.sp                                                            
  Command line options: /opt/EDA/hspice/2024.09-sp1/hspice/linux64/hspice inv.sp
  Start time: Fri Mar 21 10:33:45 2025

..

           peak memory used        488.35 megabytes
           total cpu time            0.03 seconds
           total elapsed time        1.20 seconds
           job started at     10:33:45 03/21/2025
           job ended   at     10:33:46 03/21/2025

>info:         ***** hspice job concluded
           job total runtime         1.20 seconds


 lic: Release hspice token(s) 
 lic: total license checkout elapse time:        1.16(s)

We can see that hspice job concluded which means our hspice is running 

successfully.



Install Laker







1. Download

Please download newest lake installation file:

laker_2024.12_linux.tgz

2. Extract & Install

# tar xfva laker_2024.12_linux.tgz -C /opt/EDA

This will extract laker to /opt/EDA/laker directory

3. Config Env.

Add the following settings to /opt/EDA/bashrc_eda

Lakerbin="/opt/EDA/laker/cur/bin"

PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$Lakerbin"

LM_LICENSE_FILE=5229@lstn


4. Test

$ source /opt/EDA/bashrc_eda

$ laker &
/opt/EDA/laker/cur/platform/LINUX64/bin/laker: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

We can search libpng12.so.0 in packages.debian.org. However, you can't find
any result. If you search libpng, you will get 
libpng16 file. We can also use the following command to find out what is 
installed in our system ?

$ dpkg -l | grep libpng
ii  libpng-dev:amd64                     1.6.39-2                        amd64        PNG library - development (version 1.6)
ii  libpng-tools                         1.6.39-2                        amd64        PNG library - tools (version 1.6)
ii  libpng16-16:amd64                    1.6.39-2                        amd64        PNG library - runtime (version 1.6)


Maybe we can use soft link to solve this problem like libdb ?

Let's go to shared library directory:

# cd /usr/lib/x86_64-linux-gnu/
/usr/lib/x86_64-linux-gnu# ls -l libpng*
-rw-r--r-- 1 root root 354122 1128  2022 libpng16.a
lrwxrwxrwx 1 root root     19 1128  2022 libpng16.so -> libpng16.so.16.39.0
lrwxrwxrwx 1 root root     19 1128  2022 libpng16.so.16 -> libpng16.so.16.39.0
-rw-r--r-- 1 root root 219056 1128  2022 libpng16.so.16.39.0
lrwxrwxrwx 1 root root     10 1128  2022 libpng.a -> libpng16.a
lrwxrwxrwx 1 root root     11 1128  2022 libpng.so -> libpng16.so

# /usr/lib/x86_64-linux-gnu# ln -s libpng16.so.16.39.0 libpng12.so.0
lrwxrwxrwx 1 root root     19  328 09:42 libpng12.so.0 -> libpng16.so.16.39.0
-rw-r--r-- 1 root root 354122 1128  2022 libpng16.a
lrwxrwxrwx 1 root root     19 1128  2022 libpng16.so -> libpng16.so.16.39.0
lrwxrwxrwx 1 root root     19 1128  2022 libpng16.so.16 -> libpng16.so.16.39.0
-rw-r--r-- 1 root root 219056 1128  2022 libpng16.so.16.39.0
lrwxrwxrwx 1 root root     10 1128  2022 libpng.a -> libpng16.a
lrwxrwxrwx 1 root root     11 1128  2022 libpng.so -> libpng16.so

Now, we can run laker again:

/opt/EDA/laker/cur/platform/LINUX64/bin/laker: /lib/x86_64-linux-gnu/libpng16.so.16: version `PNG12_0' not found (required by /opt/EDA/laker/cur/platform/LINUX64/bin/libQtGui.so.4)


We can see from the output that laker demands PNG12_0 not PNG16. Thus we really
need to install libpng12 file.

Before we find & install libpng12 file. We need to remove libpng12.so.0 
softlink.

/usr/lib/x86_64-linux-gnu# rm libpng12.so.0


=========================
How do we find libpng12 file ?

We can google libpng12 debian and it show that we can go to Debian archive 
website to download it. The directory is:
https://archive.debian.org/debian-security/pool/updates/main/libp/libpng/

And the download link is:
https://archive.debian.org/debian-security/pool/updates/main/libp/libpng/libpng12-0_1.2.50-2+deb8u2_amd64.deb

We can use wget command to download:

# wget https://archive.debian.org/debian-security/pool/updates/main/libp/libpng/libpng12-0_1.2.50-2+deb8u2_amd64.deb

And it will grab libpng12-0_1.2.50-2+deb8u2_amd64.deb

Normally, we can install a .deb file by using dpkg command:

# dpkg -i libpng12-0_1.2.50-2+deb8u2_amd64.deb
Selecting previously unselected package libpng12-0:amd64.
dpkg: regarding libpng12-0_1.2.50-2+deb8u2_amd64.deb containing libpng12-0:amd64, pre-dependency problem:
 libpng12-0 pre-depends on multiarch-support
  multiarch-support is not installed.

dpkg: error processing archive libpng12-0_1.2.50-2+deb8u2_amd64.deb (--install):
 pre-dependency problem - not installing libpng12-0:amd64
Errors were encountered while processing:
 libpng12-0_1.2.50-2+deb8u2_amd64.deb

The above message shows that libpng requires multiarch-support to install. 
However, we don't know whether multiarch-support depends on other packages
or not. 

Thus we need to extract and install libng manually.

# unar libpng12-0_1.2.50-2+deb8u2_amd64.deb 
libpng12-0_1.2.50-2+deb8u2_amd64.deb: Ar
  debian-binary  (4 B)... OK.
  control.tar.gz  (1303 B)... OK.
  data.tar.xz  (171112 B)... OK.

# cd libpng12-0_1.2.50-2+deb8u2_amd64
~/libpng12-0_1.2.50-2+deb8u2_amd64# tar xfva data.tar.xz 
./
./lib/
./lib/x86_64-linux-gnu/
./lib/x86_64-linux-gnu/libpng12.so.0.50.0
./usr/
./usr/share/
./usr/share/doc-base/
./usr/share/doc-base/libpng12
./usr/share/doc/
./usr/share/doc/libpng12-0/
./usr/share/doc/libpng12-0/changelog.Debian.gz
./usr/share/doc/libpng12-0/changelog.gz
./usr/share/doc/libpng12-0/README.gz
./usr/share/doc/libpng12-0/libpng-1.2.50.txt.gz
./usr/share/doc/libpng12-0/copyright
./usr/share/doc/libpng12-0/README.Debian
./usr/share/doc/libpng12-0/KNOWNBUG
./usr/share/doc/libpng12-0/ANNOUNCE
./usr/share/doc/libpng12-0/TODO
./usr/lib/
./usr/lib/x86_64-linux-gnu/
./lib/x86_64-linux-gnu/libpng12.so.0
./usr/lib/x86_64-linux-gnu/libpng12.so.0


We can see that there is a ./usr/lib/x86_64-linux-gnu/libpng12.so.0 exists.
This is what we need to run laker. We need to copy it to 
/usr/lib/x86_64-linux-gnu directory

~/libpng12-0_1.2.50-2+deb8u2_amd64# cp -a ./lib/x86_64-linux-gnu/libpng12.so.0* /usr/lib/x86_64-linux-gnu/

# ls -l /usr/lib/x86_64-linux-gnu/libpng12*
lrwxrwxrwx 1 root root     18  18  2016 /usr/lib/x86_64-linux-gnu/libpng12.so.0 -> libpng12.so.0.50.0
-rw-r--r-- 1 root root 158616  18  2016 /usr/lib/x86_64-linux-gnu/libpng12.so.0.50.0



After we installed libpng12 manually, we can run 

$ laker &

This time, laker should be able to executed successfully.




export PATH LM_LICENSE_FILE

Upgrade Debian Linux from 12.9 to 12.10


 


1. Upgrade Debian Linux from 12.9 to 12.10

# cat /etc/debian_version
12.9

# apt-get update

# apt-get upgrade

# cat /etc/debian_version
12.10

# uname -a
Linux edaTC 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux

# apt-get install linux-image-amd64

# reboot

# uname -a
$ uname -a
Linux edaTC 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64 GNU/Linux