1 proc start_verify {batch index} {
3 variable simulate_times
4 variable test_case_number
8 ###############################################################################
12 wm title .l "Simulation Log"
15 pack .l.f1 .l.f2 -side top
17 text .l.f1.t1 -width 80 -height 40 -yscrollcommand {.l.f1.scroll set}
19 scrollbar .l.f1.scroll -command {.l.f1.t1 yview}
20 button .l.f2.b1 -text "Exit" -command {destroy .l} -width 10
21 button .l.f2.b2 -text "Stop" -command {Stop_sim} -width 10
22 pack .l.f1.scroll -side right -fill y
24 pack .l.f2.b1 .l.f2.b2 -side left
26 set output_win .l.f1.t1
28 set test_case_number [lindex $index 0]
32 Run "bash sim.nc " $output_win
33 } elseif {[catch {open ../data/batch.dat r} fileid]} {
34 $output_win insert end "Failed open ../data/batch.dat file\n"
35 } elseif {[lindex $index 0] == "empty"} {
36 $output_win insert end "Not any test case was selected\n"
40 while {[eof $fileid]==0} {
41 lappend batch_data $line
45 $output_win insert end "Verifcation Started\n"
46 $output_win insert end "Starting Compiling Source file and libs......\n"
47 Run "bash com.nc" $output_win
52 proc Run {command output_win} {
54 if [catch {open "|$command |& cat "} piple] {
55 $output_win insert end $piple\n
57 fileevent $piple readable [list Log $piple $output_win]
61 proc Log {piple output_win} {
64 set saparator "###################################################################\n"
67 $output_win insert end $saparator
68 $output_win insert end "end of Simulation....\n"
69 $output_win insert end $saparator
70 } elseif {$compiling==1} {
71 $output_win insert end $saparator
72 $output_win insert end "end of Compiling....\n"
73 $output_win insert end $saparator
74 $output_win insert end "\n \n \n"
78 $output_win insert end $saparator
79 $output_win insert end "end of Testcase....\n"
80 $output_win insert end $saparator
81 $output_win insert end "\n \n \n"
87 $output_win insert end $line\n
92 proc sim_next_case {} {
93 global test_case_number
97 set saparator "###################################################################\n"
98 set output_win .l.f1.t1
99 set test_case_number [lindex $index $simulate_times]
100 if {$simulate_times < [llength $index]} {
101 set line [lindex $batch_data $test_case_number]
102 set source_sti [lindex $line 1]
103 set source_reg [lindex $line 2]
105 if {$simulate_times==0 ||[file exists "../log/.sim_succeed"]} {
106 exec cp "../data/$source_sti" "../data/config.ini"
107 exec cp "../data/$source_reg" "../data/CPU.vec"
109 $output_win insert end $saparator
110 $output_win insert end "starting test case :[lindex $line 0]....\n"
111 $output_win insert end $saparator
112 $output_win insert end "\n \n \n"
114 Run "bash sim_only.nc" $output_win
116 $output_win insert end "test_case :[lindex $line 0] simulation failed!!\n"
120 $output_win insert end "All test_case passed simulation Successfully!!\n"