#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <time.h>
#include "vpr_api.h"
Go to the source code of this file.
|
int | main (int argc, char **argv) |
|
int main |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
VPR is a CAD tool used to conduct FPGA architecture exploration. It takes, as input, a technology-mapped netlist and a description of the FPGA architecture being investigated. VPR then generates a packed, placed, and routed FPGA (in .net, .place, and .route files respectively) that implements the input netlist.
This file is where VPR starts execution.
Key files in VPR:
- libarchfpga/physical_types.h - Data structures that define the properties of the FPGA architecture
- vpr_types.h - Very major file that defines the core data structures used in VPR. This includes detailed architecture information, user netlist data structures, and data structures that describe the mapping between those two.
- globals.h - Defines the global variables used by VPR. VPR program Generate FPGA architecture given architecture description Pack, place, and route circuit into FPGA architecture Electrical timing analysis on results
Overall steps
- Initialization
- Pack
- Place-and-route and timing analysis
- Clean up
Definition at line 33 of file vpr/SRC/main.c.
37 clock_t entire_flow_begin,entire_flow_end;
39 entire_flow_begin = clock();
42 vpr_init(argc, argv, &Options, &vpr_setup, &Arch);
63 entire_flow_end = clock();
66 vpr_printf(TIO_MESSAGE_INFO,
"The entire flow of VPR took %g seconds.\n", (
float)(entire_flow_end - entire_flow_begin) / CLOCKS_PER_SEC);
68 vpr_printf(TIO_MESSAGE_INFO,
"The entire flow of VPR took %g seconds.\n", (
float)(entire_flow_end - entire_flow_begin) / CLK_PER_SEC);
void vpr_init_pre_place_and_route(INP t_vpr_setup vpr_setup, INP t_arch Arch)
void vpr_pack(INP t_vpr_setup vpr_setup, INP t_arch arch)
void vpr_free_all(INOUTP t_arch Arch, INOUTP t_options options, INOUTP t_vpr_setup vpr_setup)
t_trace * vpr_resync_post_route_netlist_to_TI_CLAY_v1_architecture(INP const t_arch *arch)
struct s_placer_opts PlacerOpts
void vpr_power_estimation(t_vpr_setup vpr_setup, t_arch Arch)
struct s_packer_opts PackerOpts
struct s_router_opts RouterOpts
void vpr_init(INP int argc, INP char **argv, OUTP t_options *options, OUTP t_vpr_setup *vpr_setup, OUTP t_arch *arch)
void vpr_place_and_route(INP t_vpr_setup vpr_setup, INP t_arch arch)