sv keywords

nand
negedge
new
nexttime
nmos
nor
noshowcancelled
not
notif0
notif1
null
or
output
package
packed
parameter
pmos
posedge
primitive
priority
program
property
protected
pull0
pull1
pulldown
pullup
pulsestyle_ondetect
pulsestyle_onevent
pure
rand
randc
randcase
randsequence
rcmos
real
realtime
ref
reg
reject_on
release
repeat
restrict
return
rnmos
rpmos
rtran
rtranif0
rtranif1
s_always
s_eventually
s_nexttime
s_until
s_until_with
scalared
sequence
shortint
shortreal
showcancelled
signed
small
solve
specify
specparam
static
string
strong
strong0
strong1
struct
super
supply0
supply1
sync_accept_on
sync_reject_on
table
tagged
task
this
throughout
time
timeprecision
timeunit
tran
tranif0
tranif1
tri
tri0
tri1
triand
trior
trireg
type
typedef
union
unique
unique0
unsigned
until
until_with
untyped
use
uwire
var
vectored
virtual
void
wait
wait_order
wand
weak
weak0
weak1
while
wildcard
wire
with
within
wor
xnor
xor
accept_on
alias
always
always_comb
always_ff
always_latch
and
assert
assign
assume
automatic
before
begin
bind
bins
binsof
bit
break
buf
bufif0
bufif1
byte
case
casex
casez
cell
chandle
checker
class
clocking
cmos
config
const
constraint
context
continue
cover
covergroup
coverpoint
cross
deassign
default
defparam
design
disable
dist
do
edge
else
end
endcase
endchecker
endclass
endclocking
endconfig
endfunction
endgenerate
endgroup
endinterface
endmodule
endpackage
endprimitive
endprogram
endproperty
endspecify
endsequence
endtable
endtask
enum
event
eventually
expect
export
extends
extern
final
first_match
for
force
foreach
forever
fork
forkjoin
function
generate
genvar
global
highz0
highz1
if
iff
ifnone
ignore_bins
illegal_bins
implies
import
incdir
include
initial
inout
input
inside
instance
int
integer
interface
intersect
join
join_any
join_none
large
let
liblist
library
local
localparam
logic
longint
macromodule
matches
medium
modport
module

why synchronous ckts?

Synchronous designs eliminate the problems associated with speed variations
through different paths of logic. By sampling signals at well-defined
time intervals, fast paths and slow paths can be handled in a simple manner.
Synchronous designs work well under variations of temperature, voltage and
process. This stability is key for high-volume manufacturing.
Many designs must be portable—that is, they must be easy to migrate to a
new and improved technology (say, moving from .6 micron to .35 micron).
The deterministic behavior of synchronous designs makes them much more
straightforward to move to a new technology.
Interfacing between two blocks of logic is simplified by defining standardized
synchronous behavior. Asynchronous interfaces demand elaborate handshaking
or token passing to ensure integrity of information; synchronous
designs with known timing characteristics can guarantee correct reception of
data.

Reference:
The Ten Commandments of Excellent Design
Peter Chambers
Engineering Fellow
VLSI Technology

listing all available perl modules

find `perl -e ‘print “@INC”‘ ` -name ‘*.pm’
find -L `perl -e '{printjoin $/, grep {/[^.]/} @INC}’` -name ‘*pm’

Use this command to check wheter the module is installed or not:
perl -e ‘use File::Compare; print “ok\n”‘
Some Linux commands

Checking OSname: uname
Checking 64bit or 32bit: getconf LONG_BIT
Processor info:  cat /proc/cpuinfo
Shell type: echo $SHELL

error codes in different simulation tools

Cadence: nchelp
nchelp [options] tool error

Mentor: verror <msgNum>

VCS: