|  | // 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 |