| /* |
| * 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 <vector> |
| |
| #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)); |
| std::vector<t_physical_tile_type> physical_tile_types; |
| std::vector<t_logical_block_type> logical_block_types; |
| |
| 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, physical_tile_types, logical_block_types); |
| |
| printf("Printing Results\n"); |
| |
| EchoArch(argv[3], physical_tile_types, logical_block_types, 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"); |
| } |