| /* |
| Test libarchfpga, try reading an architecture and print the results to a file |
| |
| Date: February 19, 2009 |
| Author: Jason Luu |
| */ |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| #include "vtr_error.h" |
| #include "vtr_memory.h" |
| |
| #include "read_xml_arch_file.h" |
| #include "echo_arch.h" |
| |
| void print_help(); |
| |
| int main(int argc, char **argv) { |
| try { |
| t_arch* arch = (t_arch *) vtr::calloc(1,sizeof(t_arch)); |
| t_type_descriptor *types; |
| int numTypes; |
| |
| if (argc - 1 != 3) { |
| printf( |
| "Error: Unexpected # of arguments. Expected 3 found %d arguments\n", |
| argc); |
| print_help(); |
| return 1; |
| } |
| |
| printf("------------------------------------------------------------------------------\n"); |
| printf("- Read architecture file and print library data structures into an output file\n"); |
| printf("------------------------------------------------------------------------------\n\n"); |
| |
| printf("Inputs: \n" |
| "architecture %s \n" |
| "timing_driven %d \n" |
| "output file %s\n", argv[1], atoi(argv[2]), argv[3]); |
| printf("Reading in architecture\n"); |
| |
| /* function declarations */ |
| XmlReadArch(argv[1], atoi(argv[2]), arch, &types, &numTypes); |
| |
| printf("Printing Results\n"); |
| |
| EchoArch(argv[3], types, numTypes, arch); |
| free(arch); |
| } catch (vtr::VtrError& vtr_error) { |
| printf("Failed to process architecture %s: %s\n", argv[1], vtr_error.what()); |
| return 1; |
| } |
| |
| printf("Done\n"); |
| |
| return 0; |
| } |
| |
| void print_help() { |
| printf("\n---------------------------------------------------------------------------------------\n"); |
| printf("read_arch - Read a VPR architecture file and output internal data structures\n"); |
| printf("\n"); |
| printf("Usage: read_arch <arch_file.xml> <timing_driven (0|1)> <output_file>\n"); |
| printf("\n"); |
| printf(" ex: read_arch k4_n10.xml 1 arch_data.out\n"); |
| printf(" Read timing-driven architecture k4_n10.xml and output the results to arch_data.out\n"); |
| printf("\n---------------------------------------------------------------------------------------\n"); |
| } |
| |