AMF-Placer
2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
main.cc
Go to the documentation of this file.
1
13
#include "3rdParty/Rendering/bl-qt-AMF.h"
14
#include "
AMFPlacer.h
"
15
16
void
runPlacer
(
AMFPlacer
*placer)
17
{
18
placer->
run
();
19
}
20
21
void
runVisualization
(
AMFPlacer
*placer)
22
{
23
char
*argv[] = {
"GUI"
};
24
int
argc = 1;
25
QApplication app(argc, argv);
26
MainWindow win;
27
win.paintData = placer->
paintData
;
28
win.setMinimumSize(QSize(400, 320));
29
win.resize(QSize(WIN_W, WIN_H + 80));
30
win.show();
31
32
app.exec();
33
}
34
35
int
main
(
int
argc,
char
**argv)
36
{
37
if
(argc < 2)
38
{
39
std::cerr <<
"Usage: "
<< argv[0] <<
" <config JSON file> [-gui]"
<< std::endl;
40
return
1;
41
}
42
bool
guiEnable =
false
;
43
if
(argc == 3)
44
{
45
std::string arg2(argv[2]);
46
if
(arg2 ==
"-gui"
)
47
guiEnable =
true
;
48
}
49
50
AMFPlacer
*placer =
new
AMFPlacer
(argv[1], guiEnable);
51
52
std::thread threadPlacer(
runPlacer
, placer);
53
while
(!placer->
paintData
)
54
{
55
};
56
std::thread *threadPaint =
nullptr
;
57
if
(guiEnable)
58
threadPaint =
new
std::thread(
runVisualization
, placer);
59
threadPlacer.join();
60
if
(threadPaint)
61
threadPaint->join();
62
63
delete
placer;
64
65
return
0;
66
}
AMFPlacer
AMFPlacer is an analytical mixed-size FPGA placer.
Definition:
AMFPlacer.h:50
runPlacer
void runPlacer(AMFPlacer *placer)
Definition:
main.cc:16
AMFPlacer::paintData
PaintDataBase * paintData
Definition:
AMFPlacer.h:254
main
int main(int argc, char **argv)
Definition:
main.cc:35
AMFPlacer.h
The major file describing the overall workflow of AMFPlacer (an analytical mixed-size FPGA placer)
runVisualization
void runVisualization(AMFPlacer *placer)
Definition:
main.cc:21
AMFPlacer::run
void run()
launch the analytical mixed-size FPGA placement procedure
Definition:
AMFPlacer.h:133
src
app
AMFPlacer
main.cc
Generated by
1.8.18