| import argparse | |
| import sys | |
| def write_template(f, num_ff, ff_type): | |
| template = """ | |
| [options] | |
| mode prove | |
| depth 50 | |
| timeout 600 | |
| aigsmt z3 | |
| [engines] | |
| abc pdr | |
| [script] | |
| read_verilog +/xilinx/cells_sim.v | |
| read_verilog -sv ff_type.v | |
| read_verilog -sv ff_ce_sr_{num_ff}_{ff_type}.v | |
| rename top gold | |
| read_verilog -sv top_bit.v | |
| rename top gate | |
| miter -equiv -make_assert gold gate miter | |
| prep -top miter | |
| [files] | |
| ff_ce_sr_{num_ff}_{ff_type}/artix7-xc7a50t-basys3-roi-virt-xc7a50t-basys3-test/top_bit.v | |
| ff_ce_sr_{num_ff}_{ff_type}.v | |
| ff_type.v | |
| """ | |
| print(template.format(num_ff=num_ff, ff_type=ff_type, file=f)) | |
| def main(): | |
| parser = argparse.ArgumentParser( | |
| description="Creates SymbiYosys project file for proving FF CE/SR." | |
| ) | |
| parser.add_argument('--num_ff', required=True, type=int) | |
| parser.add_argument('--ff_type', required=True) | |
| args = parser.parse_args() | |
| write_template(f=sys.stdout, num_ff=args.num_ff, ff_type=args.ff_type) | |
| if __name__ == "__main__": | |
| main() |