mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 19:52:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| set -ex
 | |
| 
 | |
| yosys_bin="/usr/local/synthesis/src/yosys/yosys"
 | |
| iverilog_bin="iverilog"
 | |
| 
 | |
| all_modes="yosys hana vis icarus odin"
 | |
| all_sources="always01 always02 always03 arrays01 forgen01 forgen02"
 | |
| 
 | |
| gcc -o cmp_tbdata cmp_tbdata.c
 | |
| 
 | |
| for src in $all_sources; do
 | |
| 	echo; echo
 | |
| 	$yosys_bin -o ${src}_tb.v -b autotest ${src}.v
 | |
| 	$iverilog_bin -o ${src}_tb ${src}_tb.v ${src}.v
 | |
| 	./${src}_tb > ${src}_tb.out
 | |
|         for mode in $all_modes; do
 | |
| 		simlib=""
 | |
| 		[ -f ${src}_${mode}.v ] || continue
 | |
| 		[ -f simlib_${mode}.v ] && simlib="simlib_${mode}.v"
 | |
| 		if $iverilog_bin -o ${src}_${mode}_tb -s testbench ${src}_tb.v ${src}_${mode}.v $simlib; then
 | |
| 			./${src}_${mode}_tb > ${src}_${mode}_tb.out
 | |
| 		else
 | |
| 			rm -f ${src}_${mode}_tb.out
 | |
| 		fi
 | |
|         done
 | |
| done
 | |
| 
 | |
| set +x
 | |
| echo; echo; echo
 | |
| 
 | |
| {
 | |
| 	for mode in $all_modes; do
 | |
| 		echo -en "\t$mode"
 | |
| 	done; echo
 | |
| 
 | |
| 	for src in $all_sources; do
 | |
| 		echo -n "$src"
 | |
| 		for mode in $all_modes; do
 | |
| 			if [ -f ${src}_${mode}.v ]; then
 | |
| 				if [ ! -s ${src}_${mode}_tb.out ]; then
 | |
| 					echo -en "\tmissing"
 | |
| 				elif ./cmp_tbdata ${src}_tb.out ${src}_${mode}_tb.out; then
 | |
| 					echo -en "\tok"
 | |
| 				else
 | |
| 					echo -en "\tfailed"
 | |
| 				fi
 | |
| 			else
 | |
| 				echo -en "\terror"
 | |
| 			fi
 | |
| 		done; echo
 | |
| 	done
 | |
| } | expand -t12
 | |
| 
 |