blob: 2114c0772b1f37c9f4e47cde86855f63dba4a197 [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"
19 "usbuart"
20 "usbdev"
21 "usb_fs_nb_pe"
22 "tlul_adapter_sram"
23 "tlul_socket_1n"
24 "tlul_socket_m1"
25 "sram2tlul"
26 "top_earlgrey"
27)
28
29#-------------------------------------------------------------------------
30# print header
31#-------------------------------------------------------------------------
32printf "LEC RESULTS (RTL vs. RTL) \n\n"
33format="%18s %10s \n"
34printf "${format}" "Block" "Result"
35echo "------------------------------"
36
37#-------------------------------------------------------------------------
38# run rtl_diff and summarize results
39#-------------------------------------------------------------------------
40\rm -Rf lec_*.log
41
42for block in "${blocks[@]}" ; do
43
44 # set full path to module $block
45 if [ $block == "top_earlgrey" ]; then
46 block_full="../${block}/rtl/${block}.sv"
47 elif [ $block == "usb_fs_nb_pe" ]; then
48 block_full="../ip/usbfs_nb_pe/rtl/${block}.sv"
lowRISC Contributors802543a2019-08-31 12:12:56 +010049 elif [[ $block =~ "tlul" ]]; then
50 block_full="../ip/tlul/rtl/${block}.sv"
Nils Graf05849912019-09-12 08:27:26 -070051 elif [[ $block == "rv_plic" ]]; then
52 block_full="../top_earlgrey/rtl/${block}.sv"
lowRISC Contributors802543a2019-08-31 12:12:56 +010053 else
54 block_full="../ip/${block}/rtl/${block}.sv"
55 fi
56
57 # run rtl_diff for module $block_full vs. itself
58 rtl_diff $block_full $block_full > /dev/null 2>&1
59 cp rtl_diff.log lec_${block}.log
60
61 # summarize results
62 result=`grep "Compare Results" rtl_diff.log`
63 if [ $? -ne 0 ]; then
64 printf "${format}" $block "CRASH"
65 else
66 result=`echo $result | awk '{ print $4 }'`
67 printf "${format}" $block $result
68 fi
69done
70
71#-------------------------------------------------------------------------
72# print errors
73#-------------------------------------------------------------------------
74printf "\n\nLIST OF ERRORS:"
75
76for block in "${blocks[@]}" ; do
77 egrep -A 2 "(Error:|ERROR )" lec_${block}.log > /dev/null 2>&1
78 if [ $? -eq 0 ]; then
79 printf "\n\n${block}\n"
80 egrep -A 2 "(Error:|ERROR )" lec_${block}.log
81 fi
82done