mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-28 08:58:45 +00:00
Progress in xsthammer
This commit is contained in:
parent
a5fe2565b7
commit
28539541ed
5 changed files with 23 additions and 9 deletions
|
@ -31,6 +31,15 @@ clean:
|
||||||
mrproper: clean
|
mrproper: clean
|
||||||
rm -rf rtl xst check
|
rm -rf rtl xst check
|
||||||
|
|
||||||
.PHONY: test vivado check_xl_cells clean mrproper
|
backup:
|
||||||
.PRECIOUS: check/%.log xst/%.v rtl/%.v generate.lst
|
mkdir -p ~/.yosys/xhammer
|
||||||
|
tar cvzf ~/.yosys/xhammer/xst_files.tar.gz xst
|
||||||
|
tar cvzf ~/.yosys/xhammer/vivado_files.tar.gz vivado
|
||||||
|
|
||||||
|
restore:
|
||||||
|
tar xvzf ~/.yosys/xhammer/xst_files.tar.gz
|
||||||
|
tar xvzf ~/.yosys/xhammer/vivado_files.tar.gz
|
||||||
|
|
||||||
|
.PHONY: test vivado check_xl_cells clean mrproper backup restore
|
||||||
|
.PRECIOUS: check/%.log xst/%.v vivado/%.v rtl/%.v generate.lst
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#define GENERATE_TERNARY_OPS
|
#define GENERATE_TERNARY_OPS
|
||||||
#define GENERATE_CONCAT_OPS
|
#define GENERATE_CONCAT_OPS
|
||||||
#undef GENERATE_REPEAT_OPS // disabled because of XST bug
|
#undef GENERATE_REPEAT_OPS // disabled because of XST bug
|
||||||
#undef GENERATE_EXPRESSIONS
|
#define GENERATE_EXPRESSIONS
|
||||||
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@ -109,8 +109,7 @@ void print_expression(FILE *f, int budget, uint32_t mask = 0)
|
||||||
do {
|
do {
|
||||||
mode = xorshift32() % num_modes;
|
mode = xorshift32() % num_modes;
|
||||||
} while (((1 << mode) & mask) == 0);
|
} while (((1 << mode) & mask) == 0);
|
||||||
|
// fprintf(f, "/* %d */", mode);
|
||||||
fprintf(f, "/* %d */", mode);
|
|
||||||
|
|
||||||
budget--;
|
budget--;
|
||||||
switch (mode)
|
switch (mode)
|
||||||
|
@ -123,7 +122,13 @@ void print_expression(FILE *f, int budget, uint32_t mask = 0)
|
||||||
case 1:
|
case 1:
|
||||||
fprintf(f, "(");
|
fprintf(f, "(");
|
||||||
print_expression(f, budget/2, mask);
|
print_expression(f, budget/2, mask);
|
||||||
|
#if 1
|
||||||
|
// FIXME: relational operators disabled because there is an xst bug..
|
||||||
|
do k = xorshift32() % num_binary_ops; while ((k >= 9 && k <= 12) || (k >= 3 && k <= 6));
|
||||||
|
fprintf(f, "%s", binary_ops[k]);
|
||||||
|
#else
|
||||||
fprintf(f, "%s", binary_ops[xorshift32() % num_binary_ops]);
|
fprintf(f, "%s", binary_ops[xorshift32() % num_binary_ops]);
|
||||||
|
#endif
|
||||||
print_expression(f, budget/2, mask);
|
print_expression(f, budget/2, mask);
|
||||||
fprintf(f, ")");
|
fprintf(f, ")");
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -75,10 +75,10 @@ done
|
||||||
if ../../../../yosys -l ${job}.log ${job}_cmp.ys; then
|
if ../../../../yosys -l ${job}.log ${job}_cmp.ys; then
|
||||||
mv ${job}.log ../../$checkdir/${job}.log
|
mv ${job}.log ../../$checkdir/${job}.log
|
||||||
rm -f ../../$checkdir/${job}.err
|
rm -f ../../$checkdir/${job}.err
|
||||||
|
touch ../../$checkdir/${job}.log
|
||||||
else
|
else
|
||||||
mv ${job}.log ../../$checkdir/${job}.err
|
mv ${job}.log ../../$checkdir/${job}.err
|
||||||
rm -f ../../$checkdir/${job}.log
|
rm -f ../../$checkdir/${job}.log
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -18,9 +18,8 @@ cat > $job.tcl <<- EOT
|
||||||
write_verilog ../../vivado/$job.v
|
write_verilog ../../vivado/$job.v
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
. /opt/Xilinx/14.5/ISE_DS/settings64.sh
|
/opt/Xilinx/Vivado/2013.2/bin/vivado -mode batch -source $job.tcl
|
||||||
|
|
||||||
vivado -mode batch -source $job.tcl
|
|
||||||
|
|
||||||
|
sync
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
|
|
@ -29,5 +29,6 @@ xst -ifn $job.xst
|
||||||
netgen -w -ofmt verilog $job.ngc $job
|
netgen -w -ofmt verilog $job.ngc $job
|
||||||
cp $job.v ../../xst/$job.v
|
cp $job.v ../../xst/$job.v
|
||||||
|
|
||||||
|
sync
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue