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 4月 25 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 11月 27 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.
2025年6月8日 星期日
Install CustomExplorer
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 11月 28 2022 libpng16.a lrwxrwxrwx 1 root root 19 11月 28 2022 libpng16.so -> libpng16.so.16.39.0 lrwxrwxrwx 1 root root 19 11月 28 2022 libpng16.so.16 -> libpng16.so.16.39.0 -rw-r--r-- 1 root root 219056 11月 28 2022 libpng16.so.16.39.0 lrwxrwxrwx 1 root root 10 11月 28 2022 libpng.a -> libpng16.a lrwxrwxrwx 1 root root 11 11月 28 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 3月 28 09:42 libpng12.so.0 -> libpng16.so.16.39.0 -rw-r--r-- 1 root root 354122 11月 28 2022 libpng16.a lrwxrwxrwx 1 root root 19 11月 28 2022 libpng16.so -> libpng16.so.16.39.0 lrwxrwxrwx 1 root root 19 11月 28 2022 libpng16.so.16 -> libpng16.so.16.39.0 -rw-r--r-- 1 root root 219056 11月 28 2022 libpng16.so.16.39.0 lrwxrwxrwx 1 root root 10 11月 28 2022 libpng.a -> libpng16.a lrwxrwxrwx 1 root root 11 11月 28 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 1月 8 2016 /usr/lib/x86_64-linux-gnu/libpng12.so.0 -> libpng12.so.0.50.0 -rw-r--r-- 1 root root 158616 1月 8 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
Install Cadence ICADVM
Purpose: Install Cadence ICADVM
1. Download files from TSRI, the files are: ICADVM_20.10.340_linux_1of4.tgz ICADVM_20.10.340_linux_2of4.tgz ICADVM_20.10.340_linux_3of4.tgz ICADVM_20.10.340_linux_4of4.tgz 2. Extract/Install the downloaded files: # tar xfva ICADVM_20.10.340_linux_1of4.tgz -C /opt/EDA # tar xfva ICADVM_20.10.340_linux_2of4.tgz -C /opt/EDA # tar xfva ICADVM_20.10.340_linux_3of4.tgz -C /opt/EDA # tar xfva ICADVM_20.10.340_linux_4of4.tgz -C /opt/EDA 3. Configure Env. # cd /opt/EDA /opt/EDA # cp bashrc_eda bashrc_icadvm /opt/EDA # vi bashrc_icadvm
2025年6月7日 星期六
Install Cadence Virtuoso
Step 1: Download all the required files.
In this case, we need to download the following files:
- IC_06.18.350_linux_1of4.tgz
- IC_06.18.350_linux_2of4.tgz
- IC_06.18.350_linux_3of4.tgz
- IC_06.18.350_linux_4of4.tgz
Step2: Extrac & Installation
1. Create /opt/EDA directory, you need to use root permission.
Before we begin, we can check the content of /opt directory:
# ls -l /opt
total 0
It shows there is nothing inside. Then we can create /opt/EDA directory:
# mkdir -p /opt/EDA
# ls -l /opt
total 4
drwxr-xr-x 2 root root 4096 3月 7 10:03 EDA
Now you can see that we've already created /opt/EDA directory.
** You only need to do this once **
Extract virtuoso to /opt/EDA directory, please go to your download directory, then type the following commands:
# tar xfva IC_06.18.350_linux_1of4.tgz -C /opt/EDA
./IC/cur
./IC/IC_06.18.350/Hotfix_IC06.18.350_lnx86.sdp
./IC/IC_06.18.350/ic_index.sdx
./IC/IC_06.18.350/IC_README
./IC/IC_06.18.350/IC_ReleaseInfo.pdf
./IC/IC_06.18.350/tools
..
The above command is to extract IC_06.18.350_linux_1of4.tgz to /opt/EDA directory. If there is no error message (no output)
# tar xfva IC_06.18.350_linux_2of4.tgz -C /opt/EDA
# tar xfva IC_06.18.350_linux_3of4.tgz -C /opt/EDA
# tar xfva IC_06.18.350_linux_4of4.tgz -C /opt/EDA
When all the 4 files are extracted & installed. We can proceed to Config Env. step.
Step 3. Config Env.
I usually put bashrc_eda in /opt/EDA directory for everyone to use.
Config /etc/hosts, and add the following lines in it.
140.126.24.16 lshc
140.110.140.29 lstc
140.110.127.149 lstn
Step: 4. Test
Before we run virtuoso, we need to load the configuration file, please run
the following command:
$ source /opt/EDA/bashrc_eda
If you do not load the config file (bashrc_eda), you will see errors like
this:
$ virtuoso
-bash: virtuoso: command not found
$ virtuoso
-bash: /opt/EDA/IC/cur/tools/dfII/bin/virtuoso: cannot execute: required file not found
Basically, virtuoso is installed. However, there are a lot of errors that
need to be fixed. Thus, we are going to Trouble shooting section.
Step. 5: Trouble shooting
We are going to troubleshoot errors one by one.
Error1:
$ virtuoso
-bash: /opt/EDA/IC/cur/tools/dfII/bin/virtuoso: cannot execute: required file not found
Solution:
# cd /bin
# ls -l sh
lrwxrwxrwx 1 root root 4 1月 5 2023 sh -> dash
# rm sh
# ln -s /bin/bash sh
# ls -l sh
lrwxrwxrwx 1 root root 9 3月 7 11:34 sh -> /bin/bash
First, we need to change the softlink of /bin/sh to /bin/bash, not to use
/bin/dash anymore.
# # apt-get install csh ksh
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
ksh93u+m
Suggested packages:
binfmt-support
The following NEW packages will be installed:
csh ksh ksh93u+m
0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded.
Need to get 1,175 kB of archives.
After this operation, 3,675 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y \Enter
..
Once you have installed csh & ksh, you may run virtuoso again:
$ virtuoso
2025/03/07 11:36:06 System is not a supported distribution
2025/03/07 11:36:06 An error occurred. We don't recognize OS
2025/03/07 11:36:06 WARNING This OS does not appear to be a Cadence supported Linux configuration.
2025/03/07 11:36:06 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId>
/opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory
This time, it shows another error message which is different than the prior
error message. This means that we have solve the prior error. However, we've
encountered another error here.
-- Missing libcrypto.so.10 --
================================
1. Upgrade our system
We need to upgrade our system at least once per week. Please use root permission to run the following commands: # apt-get update # apt-get upgrade Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: chromium chromium-common chromium-sandbox google-chrome-stable 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 98.6 MB/213 MB of archives. After this operation, 98.3 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://security.debian.org/debian-security bookworm-security/main amd64 chromium amd64 134.0.6998.88-1~deb12u1 [78.3 MB] Get:2 http://security.debian.org/debian-security bookworm-security/main amd64 chromium-sandbox amd64 134.0.6998.88-1~deb12u1 [101 kB] Get:3 http://security.debian.org/debian-security bookworm-security/main amd64 chromium-common amd64 134.0.6998.88-1~deb12u1 [20.2 MB] Fetched 97.2 MB in 4s (27.4 MB/s) 讀取改變紀錄(changelogs)... 完成 (Reading database ... 345343 files and directories currently installed.) Preparing to unpack .../google-chrome-stable_134.0.6998.88-1_amd64.deb ... Unpacking google-chrome-stable (134.0.6998.88-1) over (134.0.6998.35-1) ... Preparing to unpack .../chromium_134.0.6998.88-1~deb12u1_amd64.deb ... Unpacking chromium (134.0.6998.88-1~deb12u1) over (134.0.6998.35-1~deb12u1) ... Preparing to unpack .../chromium-sandbox_134.0.6998.88-1~deb12u1_amd64.deb ... Unpacking chromium-sandbox (134.0.6998.88-1~deb12u1) over (134.0.6998.35-1~deb12u1) ... Preparing to unpack .../chromium-common_134.0.6998.88-1~deb12u1_amd64.deb ... Unpacking chromium-common (134.0.6998.88-1~deb12u1) over (134.0.6998.35-1~deb12u1) ... Setting up google-chrome-stable (134.0.6998.88-1) ... Setting up chromium-sandbox (134.0.6998.88-1~deb12u1) ... Setting up chromium-common (134.0.6998.88-1~deb12u1) ... Setting up chromium (134.0.6998.88-1~deb12u1) ... Processing triggers for mailcap (3.70+nmu1) ... Processing triggers for desktop-file-utils (0.26-1) ... Processing triggers for hicolor-icon-theme (0.17-2) ... Processing triggers for libc-bin (2.36-9+deb12u9) ... Processing triggers for man-db (2.11.2-2) ... Processing triggers for menu (2.1.49) ... Once you complete system upgrade (patch), you may run the same commands again: # apt-get update # apt-get upgrade ================ $ virtuoso 2025/03/14 09:50:29 System is not a supported distribution 2025/03/14 09:50:29 An error occurred. We don't recognize OS 2025/03/14 09:50:29 WARNING This OS does not appear to be a Cadence supported Linux configuration. 2025/03/14 09:50:29 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId> /opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory We can go to packages.debian.org to search libcrypto.so.10, and it shows this file is inside nsight-systems-target package. Thus, we need to install nsight-systems-target: # apt-get install nsight-systems-target If you are unable to locate nsight-systems-target, you need to modify your Debian apt setting: # cd /etc/apt # vi sources.list deb http://140.117.166.164/bookworm/ bookworm main contrib non-free non-free-firmware deb http://140.117.166.164/bookworm/ bookworm-updates main contrib non-free non-free-firmware You need to add "contrib non-free" into your download setting. Then type: # apt-get update # apt-get install nsight-systems-target You maybe able to install this file now. Now, you can run virtuoso again: $ virtuoso 2025/03/14 10:09:03 System is not a supported distribution 2025/03/14 10:09:03 An error occurred. We don't recognize OS 2025/03/14 10:09:03 WARNING This OS does not appear to be a Cadence supported Linux configuration. 2025/03/14 10:09:03 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId> /opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory However, the same error message appears. Why ? If you look at the packages.debian.org website, you can see the the full path of libcrypto.so.10 is: /usr/lib/x86_64-linux-gnu/nsight-systems/target-linux-x64/CollectX/libcrypto.so.10 You need to add /usr/lib/x86_64-linux-gnu/nsight-systems/target-linux-x64/CollectX for virtuoso to find libcrypto.so.10. We can use temporary solution: $ env | grep LD LD_LIBRARY_PATH=/opt/EDA/IC/cur/tools/lib:/opt/EDA/IC/cur/tools/dfII/lib Your current library path is like above, we can add one more path: $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/nsight-systems/target-linux-x64/CollectX The you can verify it: $ env | grep LD LD_LIBRARY_PATH=/opt/EDA/IC/cur/tools/lib:/opt/EDA/IC/cur/tools/dfII/lib:/usr/lib/x86_64-linux-gnu/nsight-systems/target-linux-x64/CollectX Now you have the path in the LD_LIBRARY_PATH setting, and you can run: $ virtuoso 2025/03/14 10:12:27 System is not a supported distribution 2025/03/14 10:12:27 An error occurred. We don't recognize OS 2025/03/14 10:12:27 WARNING This OS does not appear to be a Cadence supported Linux configuration. 2025/03/14 10:12:27 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId> /opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared libraries: libdb-4.7.so: cannot open shared object file: No such file or directory We can see that this time it didn't show the error message. However, another error message appears: ***** If you need to make permanent modification, you need to modify /opt/EDA/bashrc_eda, and change the setting like this: LD_LIBRARY_PATH="/opt/EDA/IC/cur/tools/lib:/opt/EDA/IC/cur/tools/dfII/lib:/usr/lib/x86_64-linux-gnu/nsight-systems/target-linux-x64/CollectX" Next time, you don't need to set LD_LIBRARY_PATH manually. When you source /opt/EDA/bashrc_eda file, it will be loaded automatically. ***** $ virtuoso 2021/01/26 12:03:12 System is not a supported distribution 2021/01/26 12:03:12 An error occurred. We don't recognize OS 2021/01/26 12:03:12 WARNING This OS does not appear to be a Cadence supported Li nux configuration. 2021/01/26 12:03:12 For more info, please run CheckSysConf in <cdsRoot/tools.lnx 86/bin/checkSysConf <productId> /opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared librar ies: libaprutil-1.so.0: cannot open shared object file: No such file or director y Solution: # apt-get install libaprutil1 $ virtuoso 2025/03/14 10:12:27 System is not a supported distribution 2025/03/14 10:12:27 An error occurred. We don't recognize OS 2025/03/14 10:12:27 WARNING This OS does not appear to be a Cadence supported Linux configuration. 2025/03/14 10:12:27 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId> /opt/EDA/IC/cur/tools/dfII/bin/64bit/virtuoso: error while loading shared libraries: libdb-4.7.so: cannot open shared object file: No such file or directory Now we see this error shows that libdb-4.7.so is missing. However, this file can not be found in packages.debian.org. You may go to /usr/lib/x86_64-linux-gnu directory and run: # cd /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu # ls -l libdb-* -rw-r--r-- 1 root root 1843792 1月 17 2023 libdb-5.3.so There is a file called libdb-5.3.so, which is a newer version of libdb. We can create a soft link for libdb-4.7.so# /usr/lib/x86_64-linux-gnu # ln -s libdb-5.3.so libdb-4.7.so /usr/lib/x86_64-linux-gnu # ls -l libdb-* lrwxrwxrwx 1 root root 12 3月 14 10:51 libdb-4.7.so -> libdb-5.3.so -rw-r--r-- 1 root root 1843792 1月 17 2023 libdb-5.3.so Then you can run: $ virtuoso 2025/03/14 10:51:53 System is not a supported distribution 2025/03/14 10:51:53 An error occurred. We don't recognize OS 2025/03/14 10:51:53 WARNING This OS does not appear to be a Cadence supported Linux configuration. 2025/03/14 10:51:53 For more info, please run CheckSysConf in <cdsRoot/tools.lnx86/bin/checkSysConf <productId> dlopen failed to open 'libdl.so' If you find libdl.so in packages.debian.org, there is nothing. However, if you go to /usr/lib/x86_64-linux-gnu directory # cd /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu # ls -l libdl* -rw-r--r-- 1 root root 8 11月 1 20:42 libdl.a -rw-r--r-- 1 root root 14480 11月 1 20:42 libdl.so.2 There is a file called libdl.so.2, so we need to create a soft link for it: /usr/lib/x86_64-linux-gnu # ln -s libdl.so.2 libdl.so /usr/lib/x86_64-linux-gnu # ls -l libdl* -rw-r--r-- 1 root root 8 11月 1 20:42 libdl.a lrwxrwxrwx 1 root root 10 3月 14 10:58 libdl.so -> libdl.so.2 -rw-r--r-- 1 root root 14480 11月 1 20:42 libdl.so.2 Then you may run virtuoso again: $ virtuoso This time, virtuoso can be executed (If you are lucky.)
訂閱:
文章 (Atom)