blob: 7dba52c0e0604682a3f192ab57d07d78955d441e [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
// LEC dofile for script lec_sv2v.sh. A similar script is used in
// OpenTitan, any updates or fixes here may need to be reflected in the
// OpenTitan script as well:
// https://github.com/lowRISC/opentitan/blob/master/hw/formal/lec_sv2v.do
//-------------------------------------------------------------------------
// read in golden (SystemVerilog) and revised (Verilog)
//-------------------------------------------------------------------------
// map all multi-dimensional ports (including structs) onto 1-dim. ports
set naming rule -mdportflatten
read design -golden -sv09 -f flist_gold -rootonly -root $LEC_TOP
read design -revised -sys -f flist_rev -rootonly -root $LEC_TOP
// TODO: instead of using switch -sys (for old SystemVerilog,
// older than sv2009) we should use -ve (for Verilog). But
// this currently doesn't work because sv2v doesn't translate
// .* port connections. Is that an sv2v bug?
//-------------------------------------------------------------------------
// pre-LEC reports
//-------------------------------------------------------------------------
report rule check -verbose
report design data
report black box
report module
//-------------------------------------------------------------------------
// compare
//-------------------------------------------------------------------------
set system mode lec
set parallel option -threads 8
// map unreachable points
set mapping method -nets -mem -unreach
map key points
report unmapped points
add compare point -all
compare -threads 8 -noneq_stop 1
analyze abort -compare
//-------------------------------------------------------------------------
// reports
//-------------------------------------------------------------------------
report compare data -class nonequivalent -class abort -class notcompared
report verification -verbose
report statistics
usage
exit -force