プロジェクトの整理
12973 ワード
****************************************************************
* benchmark(cnf) *
****************************************************************
(1) -------------------------------------------c FILE: aim-100-1_6-yes1-1.cnf
(2)
(3) --------------------------------p cnf 100 160
(4) ----------------------------------------------11 13 27 0
****************************************************************
* C++ *
****************************************************************
//
// 1 50 , var vector?
void get_rand(int a[],int num)
{
srand((unsigned)time(NULL));// , rand()
for(int i=0;iint a[],int num)
{
srand((unsigned)time(NULL));
}
//1.
bool get_var_clause_num( string cnf_file_name, int &var_num, int &clause_num)
{
ifstream cnf_file(cnf_file_name.c_str());//?
}
//2. , , verilog,
bool build_cnf( string cnf_file_name, int var_num, int clause_num )
{
(1) cnf2------------------------------------ofstream cnf2verilog(result_file_name.c_str());
(2) ----------------------------------------get_rand(rand,var_num);
get_rand1(rand1,var_num);
(3)
(4)
//
for(int i=1;i<=var_num;i++)
{
while(!cnf_file.eof())
{
}
while(!cnf_file.eof())
{
(1) aa1
(2) i -i, i -i ,
(3) i, i
(4) i, -i
}
i -i
}
}
cnf2verilog<<"wire Gclear;"<"fsm"<1]<int main(int argc, char** argv)//argc ./a.out **.cnf
{
if((argc<2) | (argc>2))
{
std::cout<<"usage:\tcnf2verilog cnf_file"<exit(0);
}
int var_name,cause_num;
if( !get_var_clause_num( argv[1],var_name,cause_num) )
{
exit(0);
}
if( !build_cnf( argv[1],var_name,cause_num) )
{
exit(0);//???
}
return 0;
}
#!/bin/bash
sum=10 # sum 10
#for dir in `find ./ -maxdepth 1 -type d`
#do
#cp a.out $dir
#done
for dir2 in `find ./*.cnf` # cnf for ... in ... find ,dir2
do
for ((i=1;i<=10;i++)) # cnf 10 , 10
do
sleep 1s # 1s, , debug
./a.out $dir2 # ./a.out
mkdir $sum # , sum ,sum 10, 1
mv *.v top.v # ./a.out .v top.v , mv , , 。 *.v .v , , a.out .v
mv *.v ./$sum # top.v sum
cp $dir2 ./$sum # dir2 cnf sum
sum=$(($sum+1)) #sum 1
echo $sum # sum
done
done
for dir in `find ./* -maxdepth 1 -type d` # for... in ... , find , maxdepth 1 1( ),type d 。
do
cp -f ./xdc/*.tcl ./xdc/*.txt ./xdc/*.xdc ./xdc/*.lnk $dir # xdc dir , find , , 。
done
find *.cnf >0dir.txt # cnf , 0dir.txt
cat -n 0dir.txt >00dir.txt # cat 0dir.txt , ( -n ), 00dir.txt 。
rm 0dir.txt # 0dir.txt
mkdir 0 # 0
cp 00dir.txt 0 # 00dir.txt 0
cp *.cnf 0 # cnf 0,*.cnf cnf