blob: e56bf4a23b158740194f737073f5ea011d168af0 [file] [log] [blame]
lowRISC Contributors802543a2019-08-31 12:12:56 +01001#!/bin/bash
2
3# to run rtl_diff (Conformal LEC) on all modules, type
4# rtl_diff_all
5
6#-------------------------------------------------------------------------
7# list all blocks
8#-------------------------------------------------------------------------
9declare -a blocks=(
10 "gpio"
11 "rv_core_ibex"
12 "rv_dm"
13 "rv_plic"
14 "spi_device"
15 "rv_timer"
16 "uart"
17 "hmac"
18 "flash_ctrl"
lowRISC Contributors802543a2019-08-31 12:12:56 +010019 "usbdev"
20 "usb_fs_nb_pe"
21 "tlul_adapter_sram"
22 "tlul_socket_1n"
23 "tlul_socket_m1"
24 "sram2tlul"
25 "top_earlgrey"
26)
27
28#-------------------------------------------------------------------------
29# print header
30#-------------------------------------------------------------------------
31printf "LEC RESULTS (RTL vs. RTL) \n\n"
32format="%18s %10s \n"
33printf "${format}" "Block" "Result"
34echo "------------------------------"
35
36#-------------------------------------------------------------------------
37# run rtl_diff and summarize results
38#-------------------------------------------------------------------------
39\rm -Rf lec_*.log
40
41for block in "${blocks[@]}" ; do
42
43 # set full path to module $block
44 if [ $block == "top_earlgrey" ]; then
45 block_full="../${block}/rtl/${block}.sv"
46 elif [ $block == "usb_fs_nb_pe" ]; then
47 block_full="../ip/usbfs_nb_pe/rtl/${block}.sv"
lowRISC Contributors802543a2019-08-31 12:12:56 +010048 elif [[ $block =~ "tlul" ]]; then
49 block_full="../ip/tlul/rtl/${block}.sv"
Nils Graf05849912019-09-12 08:27:26 -070050 elif [[ $block == "rv_plic" ]]; then
Philipp Wagnerc720ac82021-03-03 15:34:53 +000051 block_full="../top_earlgrey/ip_autogen/${block}/rtl/${block}.sv"
lowRISC Contributors802543a2019-08-31 12:12:56 +010052 else
53 block_full="../ip/${block}/rtl/${block}.sv"
54 fi
55
56 # run rtl_diff for module $block_full vs. itself
57 rtl_diff $block_full $block_full > /dev/null 2>&1
58 cp rtl_diff.log lec_${block}.log
59
60 # summarize results
61 result=`grep "Compare Results" rtl_diff.log`
62 if [ $? -ne 0 ]; then
63 printf "${format}" $block "CRASH"
64 else
65 result=`echo $result | awk '{ print $4 }'`
66 printf "${format}" $block $result
67 fi
68done
69
70#-------------------------------------------------------------------------
71# print errors
72#-------------------------------------------------------------------------
73printf "\n\nLIST OF ERRORS:"
74
75for block in "${blocks[@]}" ; do
76 egrep -A 2 "(Error:|ERROR )" lec_${block}.log > /dev/null 2>&1
77 if [ $? -eq 0 ]; then
78 printf "\n\n${block}\n"
79 egrep -A 2 "(Error:|ERROR )" lec_${block}.log
80 fi
81done