| """ Converts simple PCF file to simple XDC file. |
| |
| Assumes one IOSTANDARD for entire file. If something else is required, |
| recommend just using explicit XDC. |
| |
| """ |
| import argparse |
| from f4pga.utils.pcf import parse_simple_pcf |
| |
| |
| def main(): |
| parser = argparse.ArgumentParser(description=__doc__) |
| parser.add_argument('--pcf', required=True, help="Input PCF file") |
| parser.add_argument('--xdc', required=True, help="Output PCF file") |
| parser.add_argument( |
| '--iostandard', required=True, help="IOSTANDARD to use" |
| ) |
| |
| args = parser.parse_args() |
| |
| with open(args.pcf) as f, open(args.xdc, 'w') as f_out: |
| for pcf_constraint in parse_simple_pcf(f): |
| print( |
| 'set_property -dict "PACKAGE_PIN {pin} IOSTANDARD {iostandard}" [get_ports {port}]' |
| .format( |
| pin=pcf_constraint.pad, |
| port=pcf_constraint.net, |
| iostandard=args.iostandard |
| ), |
| file=f_out |
| ) |
| |
| |
| if __name__ == "__main__": |
| main() |