Sunday, April 15, 2018

Netlist Remapping

use the following sample .simrc (placed in project directory) for netlist net name remapping:

vlogifVicSVTextCellViewList = (list "systemVerilogText" "text.v" "VerilogAMSText")
hnlVerilogNetlistBehavioralExplicit = 't
simVerilogNetlistExplicit = 't
;envSetVal("asimenv" "mappingMode" 'string "nmp")   ;default
envSetVal("asimenv" "mappingMode" 'string "oss")
hnlSpectreMapNetInName='("." "\.")
hnlSpectreMapNetInName='((">" "\\>") ("<" "\\<") )

Sunday, April 1, 2018

clone HDD - Compressed File Method

(This is copied from https://superuser.com/questions/1097210/clone-only-space-in-use-from-hard-disk)

Compressed file method

To generate the image:

## dd probably needs sudo here.
dd if=/dev/sdb bs=32M | gzip -c > /foo/bar/my_image.dd.gz
To write the image back:

## dd probably needs sudo here.
gzip -cd < /foo/bar/my_image.dd.gz | dd of=/dev/sdb bs=32M
These commands might be built without dd, with gzip only. I used dd to ensure 32 MiB buffer.

Advantages:

The resulting file is non-sparse, it needs no special treatment.
The image size will be reduced even more if the files on your source disk are prone to compression.
Disadvantages:

It is hard to access the files within the compressed image without full decompression (some FUSE may be useful, although I'm not sure, never tried; consider a squashfs approach).

-----------------------
The easiest way, if you use Windows, is to use Paragon Backup & Recovery Free.

1. Backup your original SD card to VM (virtual disk).
2. Restore it to another card, could be a smaller one. The application will ask if the partitions should be shrinked proportionally.

Thursday, February 1, 2018

Cadence Schematic/Layout Probe Nets

Ø  Probe nets in both schematic and layout: From schematic window ->Create->Probe -> Add Net (9)
Ø  Save the probed nets in a file: From schematic window ->Create->Probe ->Save
            
Ø  To recover the probed nets in schematic: From schematic window ->Create->Probe ->Load
Ø  To load the probed nets in layout: Select the layout window and type command below in CIW:
geLoadProbe(getCurrentWindow() infile("./probe.out"))
Ø  To delete all the probes in schematic window: Create->Probe->Remove All

Ø  To delete all the probes in layout window: geDeleteAllProbe(getCurrentWindow())

Thursday, August 10, 2017

How to Run Cadence QRC with Parasitic Cell Blocking

If you are using the parasitic cell blocking use mode, ie, using the extraction_setup -parasitic_blocking_device_cells_file “hcell_qci” CCL in QRC, please simultaneously make sure that the hierarchy of the cfmom device is preserved during LVS stage. So, if using PVS LVS flow, you need to ensure to run LVS with layout_cell_list and preserve_cell_list. For eg:

layout_cell_list hcell_qci “cfmom*” “cmom*” ind*”
preserve_cell_list hcell_qci

Also, need to ensure to run LVS hierarchically (Eg: use -automatch or Hcell option in PVS). Also, ensure to run LVS with lvs_push_devices_properties yes to ensure no device climbing occurs due to LPE extraction in QRCLVS or RC_DECK On flow.

Sunday, July 16, 2017

Determine USB Port in Ubuntu

Method 1: 
ls /dev > notplugged
# plug in device
ls /dev > plugged
diff notplugged plugged

Method 2:
 Run dmesg | grep tty after plugging in your device. The device file should be apparent in one of the lines.

Wednesday, November 23, 2016

Monday, July 4, 2016

Install TA-LIB for Python in Ubuntu

Step 1.  Install pip:
  a.  sudo apt-get update
  b. curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
  c. sudo python get-pip.py
  d. rehash

Step 2. Install talib for linux:
  a. Download ta-lib-0.4.0-src.tar.gz
  b.  untar and cd to the untared directory
  c. ./configure --prefix=/usr
  d. make
  e.  sudo make install

Step 3.  install necessary python modules:
  a. sudo apt-get install python-dev libxml2-dev libxslt-dev

Step 4. Install TA_LIB Python Wrapper:
a. sudo pip install TA-Lib

Monday, May 23, 2016

Spectre Save Statement

save I1.I2.I3  //--- save all I3 I/O currents
save I1.I2.I3.* // --- save all hierarchical voltages inside I3

two ways to use the save statement, suppose the two lines above are in a file save.scs:
1.  use include in input.scs
    include "/try/save.scs"

2. in ocean:
    definitionFile(
    "/doc/ocean/sim/save.scs"
    )

Wednesday, May 18, 2016

VerilogIn creates a schematic which has shorted nets

Problem:

When importing a verilog netlist in Virtuoso to create schematic using File->Import->Verilog.  The netlist seems to import successfully, however in schematic, the power nets are shorted

Solution:

On the Verilog In form, in the "Schematic Generation Options" tab enable the option "Minimize Crossovers".   This will relax some of the placement constraints that verilogIn uses to create a schematic. This will give you the correct schematic.

Thursday, May 12, 2016

Cadence doesn't show Cell Name in Symbol

Problem:  New Cadence version doesn't create cell name by any reason as shown below(2nd symbol)

Solution:


Monday, May 9, 2016

Plotting temperature when it is changed as a dynamic transient parameter



The simulation temperature is changed during a transient analysis, by making it a 
dynamic parameter.

For example:
tran tran stop=20n errpreset=conservative write="spectre.ic" \
    writefinal="spectre.fc" annotate=status maxiters=5 \
    param=temp param_vec=[0 120 1u 170] param_step=1m
This will change the simulation temperature from 120 degrees at time=0, to 170 
degrees at time=1us.
How can the temperature be plotted as a function of time?

Add this line to a file which is included in the netlist:
save temp
When using ADE, type "save temp" in a new file with .scs extension such as 
 "include.scs".  Then add the file in Setup - Model Libraries. The "temp" variable 
will then be available for plotting in the Results Browser.

Wednesday, March 30, 2016

Cadence Automatically Adds Quotation to String Variables in Verilog-A

Problem:

In Cadence Virtuoso 6.1.6-64b, verilog-A instance with string parameters will be quoted in the netlist, this prevents the verilog-A parameters from being treated as variables.

Fig.1 Schematic

Fig.2 Netlist

I97 shows all string parameters are quoted, where I98 is preferred.

Solution:

Change the Base Cell CDF of the Verilog-A cell as shown in Fig.3. Only change those to be used as variables.
Fig. 3 Change CDF Base

After the change of CDF, the parameters can now be used as variables.

Fig.4




Monday, February 15, 2016

Which one is faster, eSATA, USB or SD?

I am always curious on the speed map of the same media using different interfaces. Finally I did a test with the results shown. Surprisingly, HDD shows better overall speed, even when used as USB2 device, and SD doesn't show  better speed over USB.


Monday, November 17, 2014

SSH With GUI

open a GUI application over ssh by simply using the -X flag:

ssh -X user@server

It's also typically a good idea to use compression on the ssh as well when you allow X11 forwarding. Makes it play nicer with your internet:

ssh -X -C user@server

command used to log in into my Raspberry pi:
ssh -X -C -l pi 192.168.0.124

Monday, October 27, 2014

Install PyUSB 1.0.0

Use the following steps:
sudo apt-get update
sudo apt-get install python-pip
sudo pip install pyusb==1.0.0b1

Thursday, October 2, 2014

How to set a Static IP in Ubuntu

(from:http://www.sudo-juice.com/how-to-set-a-static-ip-in-ubuntu-the-proper-way/)

Setting a static IP in Ubuntu is useful for a lot of things. You may want to forward ports from your router to serve web pages, use SSH from outside your local network or set up some sort of media server.

For whatever reason, Ubuntu is trying to make our lives easier by introducing graphical tools to be used by default but kind of making our terminal life a bit harder!

The quick answer to setting up a static IP in Ubuntu the proper way is:


  1. Disable the graphical management of your network connection in /etc/NetworkManager/NetworkManager.conf
  2. Gather the information for the static IP (interface, IP to be used, default gateway, subnet, DNS)
  3. Modify /etc/network/interfaces to include the information above.
  4. Restart networking and network-manager services



gksudo gedit /etc/NetworkManager/NetworkManager.conf
So our NetworkManager.conf now looks like this….

[main]
plugins=ifupdown,keyfile
#dns=dnsmasq

[ifupdown]
managed=true

gksudo gedit /etc/network/interfaces
/etc/network/interfaces file now looks like this:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.101
gateway 192.168.0.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8 8.8.4.4

Restart your networking services
sudo service network-manager restart
sudo service networking restart
sudo service resolvconf restart



Sunday, September 21, 2014

How to use an External Text Editor from Cadence IC6.1.6ISR7 onward

Problem

  Cadence unable to generate netlist from schematic which contains verilog/systemverilog/verilogAMS.

Solution

add the following in the .simrc under the project directory:

How to Reset MFC-7345N Toner End of Life Message

Provided there is enough toner in a transferred cartridge that  does not activate the low toner sensor, then you can clear the end of life message as follows manually.

1. open front cover where toner inserts
2. press the "clear/back" button. It may display "replace drum?". Do not respond to this.
3. press *00. A message "accepted" will be displayed

The toner warning should then be cleared.