Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge master to openfpga feature branch #2572

Open
wants to merge 311 commits into
base: openfpga
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
311 commits
Select commit Hold shift + click to select a range
368d588
vpr: only pass rr_graph view and node id to is_inter_cluster_node
amin1377 Mar 27, 2024
363c70a
vpr: remove unused variables
amin1377 Mar 27, 2024
65c4c3d
make format
amin1377 Mar 27, 2024
86df937
vpr: graphic: edge is not valid for drawing if one of its endpoints i…
amin1377 Mar 27, 2024
ae854f5
vpr: graphics: don't draw pin or sink/source if they are inside a clu…
amin1377 Mar 27, 2024
269790e
vpr: graphic: do not draw a partial route if it is inside a cluster
amin1377 Mar 27, 2024
ec044ec
remove timing report modification, adding report metadata string to t…
w0lek Mar 28, 2024
d7e28d4
minimize diff in tatum/TimingReporter.cpp
w0lek Mar 28, 2024
f941c6a
fix spellmistake, rename from OPTION_IS_FLOAT_ROUTING to OPTION_IS_FL…
w0lek Mar 28, 2024
b0fbefd
correct spell mistake, renaming OPTION_HIGHTLIGHT_MODE to OPTION_HIGH…
w0lek Mar 28, 2024
8dfc1ae
move gtkcomboboxhelper into draw subfolder
w0lek Mar 28, 2024
94aaf71
spell correction
w0lek Mar 28, 2024
df14178
typo in comment
w0lek Mar 28, 2024
94ddbba
few minor fixes
w0lek Mar 28, 2024
c871dd5
typo in comment
w0lek Mar 28, 2024
927bc3a
few more minor fixes in telegramoptions.h
w0lek Mar 28, 2024
9f636d6
typo in var name fix
w0lek Mar 28, 2024
5002740
few more minor fixes
w0lek Mar 28, 2024
8bb4a9d
add default constructor for TelegramBuffer, requested in PR
w0lek Mar 28, 2024
51525cf
using stream.eof() in tryConvertToInt
w0lek Apr 1, 2024
6f6c7fd
constructor TelegramBuffer(int) is explicit
w0lek Apr 1, 2024
ff4be46
TelegramOptions::isDataTypeSupported is const
w0lek Apr 1, 2024
b456298
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 Apr 1, 2024
d3c5180
tryConvertToInt uses vtr::atoi
w0lek Apr 1, 2024
6cab9c4
gtkcomboboxhelper.cpp and .h, update documentation, replace anonymous…
w0lek Apr 1, 2024
62cc12a
GateIO add deletion constructors
w0lek Apr 1, 2024
07d4fa3
add doc for public methods of gateio, improve GateIO::takeReceivedTas…
w0lek Apr 1, 2024
b5d3994
add comment to gateio.h about tasksMutex
w0lek Apr 1, 2024
ab867d3
GateIO information about usage from main thread is added
w0lek Apr 1, 2024
bed8f4b
move TelegramOptions definitions to a .cpp file
w0lek Apr 1, 2024
7d21166
replace splitString with vtr::split
w0lek Apr 1, 2024
a9a9085
replace anonymous namespaces with static functions
w0lek Apr 1, 2024
7cf6131
pathhelper.cpp formatting to make some lines shorter
w0lek Apr 1, 2024
c9da9d4
vpr: add max_pres_fac to command line argument
amin1377 Apr 1, 2024
8f86b04
vpr: show max_pres_fac in log
amin1377 Apr 1, 2024
3efa8a2
vpr: set the max pres fac of router to the value pass through the com…
amin1377 Apr 1, 2024
9855a8e
document: add max_pres_fac to online document
amin1377 Apr 1, 2024
a472c96
make format
amin1377 Apr 1, 2024
0c42d0b
add doc to telegrambuffer.h
w0lek Apr 2, 2024
df28932
add comments for TelegramBuffer::takeTelegramFrames
w0lek Apr 2, 2024
d38956b
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 Apr 2, 2024
5276017
vpr: fix a type. set max pres fac
amin1377 Apr 2, 2024
faf9a07
add IPA unittests
w0lek Apr 2, 2024
761ac68
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 Apr 2, 2024
f9ffb52
add test_server_telegramoptions_get_wrong_keys TEST_CASE
w0lek Apr 2, 2024
2dcf62e
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 Apr 2, 2024
3d12b46
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 Apr 3, 2024
a3e6a37
Merge branch 'master' into bug-fix-asymmetric-grid-bidirectional-routing
vaughnbetz Apr 4, 2024
e02e0c5
include std::string in telegramoptions.h
w0lek Apr 5, 2024
c752064
move include gateio.h and serverupdate.h under condition #ifndef NO_G…
w0lek Apr 5, 2024
e1372bc
fix build errors with NO_GRAPHICS flag defined
w0lek Apr 5, 2024
6586c12
remove anonymous namespace from test_server_*.cpp
w0lek Apr 5, 2024
e6c136f
fix post #endif comment formatting
w0lek Apr 5, 2024
ebff401
Merge branch 'master' into ipa_it2_clean
w0lek Apr 5, 2024
abcc69a
fix warning [cast from type ‘const char*’ to type ‘Bytef*’] in zlibtu…
w0lek Apr 6, 2024
087fb13
remove thirdparty/sockpp/conanfile.py since it's not used during buil…
w0lek Apr 6, 2024
44a95ca
move sockpp to lib/EXTERNAL as a submodule
w0lek Apr 12, 2024
3b9728c
move --server and --port into separate argument group "server options…
w0lek Apr 12, 2024
50d79c3
pass argument in ServerContext::set_crit_path_elements by ref, add Se…
w0lek Apr 12, 2024
585b5ab
cleanup: remove cmake THIRDPARTY_INCLUDE_DIRS as not needed
w0lek Apr 12, 2024
f2f47b1
Some sockpp headers generate warnings, so treat them as system header…
w0lek Apr 12, 2024
08e754b
implement server functionality as a module which could be disabled du…
w0lek Apr 15, 2024
e2e9ad0
fix contour_color formatting
w0lek Apr 15, 2024
61b1b1b
fix formatting in draw_crit_path_elements
w0lek Apr 15, 2024
bbe8a9b
fix code formatting
w0lek Apr 15, 2024
a1f08c4
use reference to tatum::TimingPathElem while iterating in draw_crit_p…
w0lek Apr 15, 2024
b9b33d8
use elementCounter for element color instead of i
w0lek Apr 15, 2024
0959238
use snake_case for variables in draw_crit_path_elements
w0lek Apr 15, 2024
200dbbd
formatting fix in gtkcomboboxhelper.cpp
w0lek Apr 15, 2024
1150189
replace NULL with nullptr in gtkcomboboxhelper.cpp
w0lek Apr 15, 2024
bf67582
typo fix
w0lek Apr 15, 2024
b2bd272
move std::move semantic on top of TaskResolver interface. rename ::ad…
w0lek Apr 15, 2024
b582978
taskresolver uses VTR_LOG_ERROR instead of std::cerr
w0lek Apr 15, 2024
ab8971d
task resolver, improve the case with unhandled path details level str…
w0lek Apr 15, 2024
65d5900
taskresolver format fix
w0lek Apr 15, 2024
4d1e882
remove useless shortcut const Netlist<>&
w0lek Apr 15, 2024
a1b02c0
using VTR_LOG instead of std::cout in gateio
w0lek Apr 15, 2024
f34fa57
typo in comment
w0lek Apr 15, 2024
46d2f20
gateio, initilize receivedMessage once before loop
w0lek Apr 15, 2024
be03fc2
typo fixes
w0lek Apr 15, 2024
13fb245
[librrgraph] change std::parition to std::stable partition to be cons…
amin1377 Apr 15, 2024
383b9af
[vpr][route] change the function that sort sinks from sort to std::st…
amin1377 Apr 15, 2024
e74683e
[vpr][route] change the function that sort sinks from sort to std::st…
amin1377 Apr 15, 2024
3e0a784
refactor GateIO::startListening by splitting it's huge body to serial…
w0lek Apr 16, 2024
f5d6d1e
remove redundant std::move inside TelegramParser::tryExtractJsonValueStr
w0lek Apr 16, 2024
49dd7ab
telegramparser: return std::optional<std::string> instead of passing…
w0lek Apr 16, 2024
968f7b6
fix unused variable warning in gateio
w0lek Apr 16, 2024
437d21d
remove CRITICAL_PATH_ITEMS_SELECTION_NONE as unused, add const for EC…
w0lek Apr 16, 2024
7a84ac6
commconstants.h uses std::string_view instead of char*
w0lek Apr 16, 2024
f7dfd50
fix warning unused variable in gateio
w0lek Apr 16, 2024
4748ac2
pathhelper uses KEY_SETUP_PATH_LIST and KEY_HOLD_PATH_LIST
w0lek Apr 16, 2024
aadee42
get ref to string instead of copy in TelegramOptions constructor
w0lek Apr 16, 2024
a3aef6d
optimize Option instance creation
w0lek Apr 16, 2024
5f1a732
remove redundant std::move in getTruncatedMiddleStr
w0lek Apr 16, 2024
236ed56
code formatting
w0lek Apr 16, 2024
81e9b2d
code formatting fix
w0lek Apr 16, 2024
f5fd142
code formatting fix
w0lek Apr 16, 2024
7395c36
add space after each comma in test_server_taskresolver.cpp
w0lek Apr 16, 2024
c53f704
typo fix
w0lek Apr 16, 2024
9f3f281
code formatting fix
w0lek Apr 16, 2024
ecf6ede
indentation in task.cpp
w0lek Apr 16, 2024
1506997
remove redundant std::move in tasks.cpp
w0lek Apr 16, 2024
6c4c873
code formatting
w0lek Apr 16, 2024
e7d6ec2
code formatting
w0lek Apr 16, 2024
a38b28a
code formatting
w0lek Apr 16, 2024
892944d
resize receivedMessage buffer outside the loop
w0lek Apr 16, 2024
e58efd0
add comment for ClientAliveTracker class
w0lek Apr 16, 2024
6cf5db3
allocate resultBuffer on the heap in zlibutils
w0lek Apr 17, 2024
5b440ec
rework commconstants to use extern std::string instead of std::string…
w0lek Apr 17, 2024
1de3eff
delete[] resultBuffer before return, which fix potential memory leak …
w0lek Apr 17, 2024
d5168df
tryCompress and tryDecompress returns std::optional<std::string> inst…
w0lek Apr 17, 2024
edb8fd4
add documentation for tryCompress and tryDecompress methods in zlibutils
w0lek Apr 17, 2024
0a7580b
add doc for TelegramHeader and TelegramFrame structures
w0lek Apr 17, 2024
c4e7357
optimization related with std::string allocation in TelegramParser::t…
w0lek Apr 17, 2024
038440e
unite generate_setup_timing_report and generate_hold_timing_report in…
w0lek Apr 17, 2024
903ec07
[ci] update figure8 golden results
amin1377 Apr 17, 2024
b0d7458
Merge branch 'master' into stable_sort
vaughnbetz Apr 18, 2024
cf3c11e
store SetupHoldTimingInfo and PostClusterDelayCalculator inside Serve…
w0lek Apr 21, 2024
6649088
snakecase for zlibutils
w0lek Apr 22, 2024
83b5fe8
snakecase in zlibutils.cpp
w0lek Apr 22, 2024
1ac572b
snakecase for telegramparser
w0lek Apr 22, 2024
ef942f5
snakecase for telegramoptions
w0lek Apr 22, 2024
3aed8fc
snakecase in telegramheader
w0lek Apr 22, 2024
c019984
snakecase for telegrambuffer
w0lek Apr 22, 2024
a59e33c
snakecase for taskresolver
w0lek Apr 22, 2024
87c4fd4
snakecase for server::Task
w0lek Apr 22, 2024
e62a990
snakecase in serverupdate
w0lek Apr 22, 2024
482f04b
snakecase for pathhelper
w0lek Apr 22, 2024
adaa43d
snakecase in gateio
w0lek Apr 22, 2024
111b698
snakecase for convertutils
w0lek Apr 22, 2024
05fdd4b
wrap more server related files with NO_SERVER macro
w0lek Apr 22, 2024
723db0b
snake case for bytearray
w0lek Apr 22, 2024
1afb1c8
minimize diff caused by formatting
w0lek Apr 22, 2024
42abe49
server specific unit tests wrapped with NO_SERVER macro
w0lek Apr 22, 2024
4ada45c
update sockpp submodule to use fork which has fixes of compilation wa…
w0lek Apr 23, 2024
ff1e438
Merge branch 'master' into ipa_it2_clean
w0lek Apr 23, 2024
c69b432
Merge branch 'master' into noc_pack_part
soheilshahrouz Apr 28, 2024
790b652
move NoC-biased member vars from PlacementContext to CentroidMoveGene…
soheilshahrouz Apr 28, 2024
82ffe3f
enum class for e_block_pack_status
soheilshahrouz Apr 28, 2024
922246a
add noc_aware_cluster_util files
soheilshahrouz Apr 28, 2024
6e20704
check NoC group compatibility during packing
soheilshahrouz Apr 29, 2024
0026905
remove exclusivity_index from PartitionRegion
soheilshahrouz Apr 29, 2024
36dacfa
typos and references
soheilshahrouz Apr 29, 2024
08bad8f
Merge branch 'specify_moves_explicitly' into noc_pack_part
soheilshahrouz Apr 29, 2024
ecb08bf
fix segfault when logic block type can't be inferred
soheilshahrouz Apr 29, 2024
9bfa10f
fix atom_cluster_floorplanning_check returning wrong value
soheilshahrouz Apr 29, 2024
d5aef9a
add log messages for atom_cluster_noc_group_check()
soheilshahrouz Apr 29, 2024
5cc1409
use std::pair<int, int> instead of two int*
soheilshahrouz Apr 29, 2024
761c1be
CI: add test case when graphic is enabled but server mode is disabled
w0lek May 8, 2024
0a0d009
Merge branch 'master' into ipa_it2_clean
w0lek May 8, 2024
5efd5c1
make draw_crit_path_elements more generic, now it doesn't depend on S…
w0lek May 9, 2024
023ba47
add comments
soheilshahrouz May 14, 2024
1f2ac0b
avoid creating std::string every time log_move_abort is called
soheilshahrouz May 14, 2024
8338c90
Merge branch 'master' into noc_pack_part and resolved conflicts
soheilshahrouz May 14, 2024
0335af3
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 15, 2024
56b321e
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 16, 2024
39c54b0
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 16, 2024
26380cc
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 16, 2024
e6af24c
[CLI] add doc for max_pres_fac
amin1377 May 16, 2024
33ea049
[vpr][route] set pres fac before calling update_draw_pres_fac
amin1377 May 16, 2024
46b0700
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 16, 2024
c8506c7
[vpr] apply PR comments
amin1377 May 16, 2024
974eed0
sanity checks for port number in CheckSetup() is added
w0lek May 21, 2024
5b10a33
code format
w0lek May 21, 2024
5886d61
ByteArray::find_sequence returns std::pair<bool, std::size_t> instead…
w0lek May 21, 2024
09a75de
constexpr instead of static for get_truncated_middle_str::middle_plac…
w0lek May 21, 2024
55b2aa8
constexpr instead of static for get_truncated_middle_str::minimal_str…
w0lek May 21, 2024
0803dfb
get_pretty_str_from_float replaced with get_pretty_str_from_double to…
w0lek May 21, 2024
565adea
reimplement TelegramOptions::is_data_type_supported
w0lek May 21, 2024
b620135
replace unneccessary "std::string(name)" with just "name"
w0lek May 21, 2024
563eb54
align << operator in Task::info()
w0lek May 21, 2024
333dd5c
optimization in Task::bake_response() to avoid unnecessary data coping
w0lek May 21, 2024
8d639fc
avoid TelegramFrame copy constructor in TelegramBuffer::take_telegram…
w0lek May 21, 2024
e931555
remove obsolete members from ServerContext
w0lek May 21, 2024
1193fca
fix build after cleanup
w0lek May 21, 2024
32c0730
simplify bool draw_current_element logic
w0lek May 21, 2024
a608ba1
add comment of default value for skip_draw_delays in draw_flyline_tim…
w0lek May 21, 2024
531f485
code formatting
w0lek May 21, 2024
86eeedd
cleanup subtree_config.xml from sockpp
w0lek May 21, 2024
a4c90dd
typo fix
w0lek May 21, 2024
e1b578a
constexpr instead of local static in TelegramParser::try_extract_json…
w0lek May 21, 2024
f35de4e
variable BYTES_NUM_IN_32KB for 32768
w0lek May 21, 2024
6e0a0dc
remove commconstants.cpp, use inline for declaring const std::string …
w0lek May 21, 2024
6d0b10e
fix ;;
w0lek May 21, 2024
82aad48
Merge branch 'master' into update-dockerfile-and-doc
vaughnbetz May 22, 2024
1e4f109
ByteArray inherits std::vector<char> instead of std::vector<uint8_t>
w0lek May 22, 2024
0f6c83c
implicit conversion ByteArray to std::string_view, remove template fo…
w0lek May 22, 2024
8f20622
Merge pull request #2313 from Kashiwade-music/update-dockerfile-and-doc
vaughnbetz May 22, 2024
453f417
std::move optimizations for crit paths result and report string
w0lek May 22, 2024
2b74463
Merge branch 'master' into ipa_it2_clean
w0lek May 22, 2024
778f336
[vpr][placement] comment on median move generator
amin1377 May 22, 2024
2fa709e
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 22, 2024
4973314
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 22, 2024
ed1d70d
[test] update nightly_test_1 golden result failurs
amin1377 May 22, 2024
eac3b55
[test] update golden results for test_1_odin
amin1377 May 22, 2024
22f843c
[test] update golden results for nightly test 2
amin1377 May 22, 2024
d76f6cf
[test] update golden results for nightly_test_2_odin
amin1377 May 22, 2024
9084014
[test] update golden results for nightly_strong
amin1377 May 22, 2024
6eb4b26
Merge branch 'stable_sort' of https://github.com/verilog-to-routing/v…
amin1377 May 22, 2024
d0a7f98
Merge branch 'run_flat_graphic_warning' of https://github.com/verilog…
amin1377 May 22, 2024
d5bc147
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 22, 2024
b207bb9
[vpr][router] fix the bug when is_inter_cluster_node is called
amin1377 May 22, 2024
c8a3e22
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 22, 2024
9978c70
Merge branch 'pres_fac_max' of https://github.com/verilog-to-routing/…
amin1377 May 22, 2024
81604de
[vpr][router] solve the bug with update_draw_pres_fac
amin1377 May 22, 2024
80dcdeb
add comments and subroutines
soheilshahrouz May 22, 2024
a2e91dc
Merge pull request #2526 from w0lek/ipa_it2_clean
vaughnbetz May 23, 2024
ba8c455
[vpr][placement] fix comment
amin1377 May 23, 2024
a66176c
[test] update nightly_test_2 golden results
amin1377 May 23, 2024
f31fc95
Merge pull request #2525 from verilog-to-routing/stable_sort
vaughnbetz May 23, 2024
8a97e52
Merge pull request #2524 from verilog-to-routing/run_flat_graphic_war…
vaughnbetz May 23, 2024
f83cd43
Re-clustering API bug fixes
Sep 15, 2023
05a4f85
remove unused variable
Sep 18, 2023
27a6c15
fix formatting
Sep 18, 2023
ad01e48
remove unused parameters and fix formatting
Sep 18, 2023
b95d1e3
dummy commit
MohamedElgammal May 2, 2024
f13a5b0
Added a tutorial for running and creating unit tests.
May 15, 2024
29760b4
Merge pull request #2554 from nedsels/update_quickstart_fix
vaughnbetz May 23, 2024
28e7960
Merge pull request #2546 from verilog-to-routing/noc_pack_part
vaughnbetz May 23, 2024
75746eb
Merge pull request #2397 from verilog-to-routing/reclustering-api-bug…
vaughnbetz May 23, 2024
37c6973
[CI] Made the Regression Tests Error on Warning
AlexandreSinger May 16, 2024
6b89d28
[Warnings] Fixed Unused Variable Warning in Connection Router
AlexandreSinger May 24, 2024
b011a1e
[Warnings] Removed Deprecated STD Iterator From Node Idx Iter
AlexandreSinger May 25, 2024
1a5380a
[Warnings] Removed Deprecated STD Iterator From Edge Idx Iter
AlexandreSinger May 25, 2024
5bfa640
[Warnings] Removed Deprecated STD Iterator From Row Length Iter
AlexandreSinger May 25, 2024
be06c02
Fix the arch file comments for routing segments and switches
kimiatkh May 26, 2024
630be48
Merge pull request #2558 from AlexandreSinger/feature-remove-std-iter…
vaughnbetz May 27, 2024
9dd5ff6
Merge pull request #2555 from AlexandreSinger/feature-ci-error-on-war…
vaughnbetz May 27, 2024
73d96fa
Merge branch 'master' into temp_cleanup_
soheilshahrouz May 27, 2024
5d3ca68
[Warnings] Removed Deprecated STD Iterator From VTR Array View
AlexandreSinger May 27, 2024
80420b7
[Warnings] Removed Deprecated STD Iterator From VTR Vector
AlexandreSinger May 27, 2024
63d57e7
[Warnings] Removed Deprecated STD Iterator From Timing Tags
AlexandreSinger May 27, 2024
6cbf119
Merge pull request #2559 from verilog-to-routing/s10_fix_comments
vaughnbetz May 27, 2024
f523a0f
Merge pull request #2561 from AlexandreSinger/feature-remove-std-iter…
vaughnbetz May 27, 2024
3df3b6b
add comments
soheilshahrouz May 28, 2024
43b2c4a
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 28, 2024
1bc8d77
Merge branch 'master' of https://github.com/verilog-to-routing/vtr-ve…
amin1377 May 28, 2024
a94b9bf
[Docs] Updated Subtree Docs
AlexandreSinger May 28, 2024
27839bd
[test] update nightly_test_1 golden result
amin1377 May 29, 2024
7bea33f
[vpr][router] fix fuction signiture
amin1377 May 29, 2024
817a956
Merge pull request #2567 from AlexandreSinger/feature-update-subtree-…
vaughnbetz May 29, 2024
313eb02
fix a typo
amin1377 May 29, 2024
bb4073c
Merge branch 'master' into fix_3d_delay
amin1377 May 29, 2024
24d69c0
Merge branch 'master' into pres_fac_max
amin1377 May 29, 2024
9343ee9
Merge pull request #2563 from verilog-to-routing/temp_cleanup_
vaughnbetz May 29, 2024
7ed749f
Merge pull request #2514 from ThomasJagielski/bug-fix-asymmetric-grid…
vaughnbetz May 29, 2024
486be09
Merge pull request #2490 from verilog-to-routing/fix_3d_delay
amin1377 May 30, 2024
efe7cc0
Merge pull request #2523 from verilog-to-routing/pres_fac_max
vaughnbetz May 30, 2024
8c62b8c
Merge branch 'master' of github.com:verilog-to-routing/vtr-verilog-to…
Tulong4Dev May 30, 2024
287b569
add missing change.
Tulong4Dev May 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 14 additions & 9 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -184,47 +184,52 @@ jobs:
include: [
{
name: 'Basic',
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on',
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on',
suite: 'vtr_reg_basic'
},
{
name: 'Basic_odin',
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
suite: 'vtr_reg_basic_odin'
},
{
name: 'Basic with NO_GRAPHICS',
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=off',
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=off',
suite: 'vtr_reg_basic'
},
{
name: 'Basic with NO_SERVER',
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVPR_USE_EZGL=on -DVPR_USE_SERVER=off',
suite: 'vtr_reg_basic'
},
{
name: 'Basic with CAPNPROTO disabled',
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_CAPNPROTO=off',
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_CAPNPROTO=off',
suite: 'vtr_reg_basic'
},
{
name: 'Basic with VTR_ENABLE_DEBUG_LOGGING',
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on',
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on',
suite: 'vtr_reg_basic'
},
{
name: 'Basic_odin with VTR_ENABLE_DEBUG_LOGGING',
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DVTR_ENABLE_DEBUG_LOGGING=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
suite: 'vtr_reg_basic_odin'
},
{
name: 'Strong',
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on',
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on',
suite: 'vtr_reg_strong'
},
{
name: 'Strong_odin',
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_PARMYS=OFF -DWITH_ODIN=on',
suite: 'vtr_reg_strong_odin'
},
{
name: 'Valgrind Memory',
params: '-DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on',
params: '-DCMAKE_COMPILE_WARNING_AS_ERROR=on -DVTR_ASSERT_LEVEL=3 -DWITH_BLIFEXPLORER=on -DWITH_ODIN=on',
suite: 'vtr_reg_valgrind_small'
}
]
Expand Down
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
[submodule "libs/EXTERNAL/libcatch2"]
path = libs/EXTERNAL/libcatch2
url = https://github.com/catchorg/Catch2.git
[submodule "libs/EXTERNAL/sockpp"]
path = libs/EXTERNAL/sockpp
#url = [email protected]:fpagliughi/sockpp.git
url = [email protected]:w0lek/sockpp.git # fork where in branch v1.0.0_no_complication_warnings there are compilation warnings fixes for upstream tag v1.0.0 of sockpp
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ set(VPR_USE_EZGL "auto" CACHE STRING "Specify whether vpr uses the graphics libr
set_property(CACHE VPR_USE_EZGL PROPERTY STRINGS auto off on)
option(VTR_ENABLE_CAPNPROTO "Enable capnproto binary serialization support in VPR." ON)

#Allow the user to decide whether to compile the server module
option(VPR_USE_SERVER "Specify whether vpr enables the server mode" ON)

#Allow the user to enable/disable VPR analytic placement
#VPR option --enable_analytic_placer is also required for Analytic Placement
option(VPR_ANALYTIC_PLACE "Enable analytic placement in VPR." ON)
Expand Down
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ubuntu:20.04
FROM ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive
# set out workspace
ENV WORKSPACE=/workspace
Expand All @@ -19,6 +19,7 @@ RUN apt-get update -qq \
libtbb-dev \
python3-pip \
git \
time \
# Install python packages
&& pip install -r requirements.txt \
# Cleanup
Expand Down
179 changes: 177 additions & 2 deletions README.developers.md
Original file line number Diff line number Diff line change
Expand Up @@ -344,11 +344,70 @@ and should be used when making changes to Odin.
## Unit Tests

VTR also has a limited set of unit tests, which can be run with:

```shell
#From the VTR root directory
$ make && make test
```

This will run `test_vtrutil`, `test_vpr`, `test_fasm`, and `test_archfpga`. Each test suite is added in their CMake
files.

### Running Individual Testers

To run one of the four testers listed above on its own, navigate to the appropriate folder:

| Test | Directory |
|-----------------|------------------------------------|
| `test_archfpga` | `$VTR_ROOT/build/libs/libarchfpga` |
| `test_vtrutil` | `$VTR_ROOT/build/libs/libvtrutil` |
| `test_fasm` | `$VTR_ROOT/build/utils/fasm` |
| `test_vpr` | `$VTR_ROOT/build/vpr` |

To see tester options, run it with `-h`:

```shell
# Using test_vpr as an example
# From $VTR_ROOT/build/vpr
$ ./test_vpr -h
```

To see the names of each unit test, use `--list-tests`:

```shell
# From $VTR_ROOT/build/vpr
$ ./test_vpr --list-tests
```

The output should look similar to this:

```shell
All available test cases:
test_route_flow
[vpr_noc_bfs_routing]
test_find_block_with_matching_name
[vpr_clustered_netlist]
connection_router
[vpr]
binary_heap
[vpr]
edge_groups_create_sets
[vpr]
read_interchange_models
[vpr]

... # many more test cases

52 test cases
```

To run specific unit tests, pass them as arguments. For example:

```shell
# From $VTR_ROOT/build/vpr
$ ./test_vpr test_route_flow connection_router
```

# Evaluating Quality of Result (QoR) Changes
VTR uses highly tuned and optimized algorithms and data structures.
Changes which effect these can have significant impacts on the quality of VTR's design implementations (timing, area etc.) and VTR's run-time/memory usage.
Expand Down Expand Up @@ -972,6 +1031,64 @@ This describes adding a test to `vtr_reg_strong`, but the process is similar for
$ git commit
```

## Creating Unit Tests

You can find the source code for the unit tests in their respective directories. New unit tests must also be created in
these directories.

| Test | Directory |
|-----------------|-----------------------------------|
| `test_archfpga` | `$VTR_ROOT/libs/libarchfpga/test` |
| `test_vtrutil` | `$VTR_ROOT/libs/libvtrutil/test` |
| `test_fasm` | `$VTR_ROOT/utils/fasm/test` |
| `test_vpr` | `$VTR_ROOT/vpr/test` |

VTR uses [Catch2](https://github.com/catchorg/Catch2) for its unit testing framework. For a full tutorial of how to use
the framework, see `$VTR_ROOT/libs/EXTERNAL/libcatch2/docs/Readme.md`.

### Example: Creating and Running a VPR Test Case

Navigate to `$VTR_ROOT/vpr/test`.

```shell
$ cd $VTR_ROOT/vpr/test
```

From here, let's create and open a new file `test_new_vpr.cpp` (begin the file name with `test_`). Be sure to `#include "catch2/catch_test_macros.hpp"`.
Introduce a test case using the `TEST_CASE` macro, and include a name and a tag. For boolean assertions, use `REQUIRE`.

```shell
#include "catch2/catch_test_macros.hpp"

// To choose a tag (written with square brackets "[tag]"), see examples from when you run ./test_vpr
// --list-tests in the tester exectuable directory, as shown earlier. A good default tag name is the name
// of the tester: in this case, [vpr].
TEST_CASE("a_vpr_test_name", "[vpr]") {
int x = 0;
REQUIRE(x == 0);
}
```

To run our test case, we must navigate back to `$VTR_ROOT/build/vpr` (from the table
under [Running Individual Testers](#running-individual-testers)). Since we created a test, we need to rebuild the
tester. Then, we can run our test.

```shell
$ cd $VTR_ROOT/build/vpr
$ make // rebuild tester
$ ./test_vpr a_vpr_test_name // run new unit test
```

Output:

```shell
Filters: "a_vpr_test_name"
Randomness seeded to: 2089861684
===============================================================================
All tests passed (1 assertion in 1 test case)
```


# Debugging Aids
VTR has support for several additional tools/features to aid debugging.

Expand Down Expand Up @@ -1213,7 +1330,7 @@ Instead changes should be made in the relevant up-stream repository, and then sy

For example to update the `libtatum` subtree:
```shell
./dev/external_subtrees.py --update libtatum
./dev/external_subtrees.py --update libtatum -m "commit message describing why component is being updated"
```

## Adding a new Subtree
Expand Down Expand Up @@ -1255,8 +1372,66 @@ To add a new external subtree to VTR do the following:
This will create two commits to the repository.
The first will squash all the upstream changes, the second will merge those changes into the current branch.

## Pushing VTR Changes Back to Upstream Subtree

If there are changes in the VTR repo in a subtree that should be merged back
into the source repo of the subtree, the changes can be pushed back manually.

The instructions above used a Python script to simplify updating subtrees in
VTR. This is fine for pulling in changes from a remote repo; however, it is not
good for pushing changes back. This is because these changes need to be pushed
somewhere, and it is not a good idea to just push it back to the master branch
directly. Instead, it should be pushed to a temporary branch. Then a PR can be
made to bring the changes into the target repo.

To push changes VTR made to a subtree do the following:

1. Create a fork of the target repo. Optionally you can create a branch to be
the target of the push, or you can just use master.

2. Run:
```shell
cd $VTR_ROOT
git subtree push --prefix=<subtree_path> <forked_repo_url> <branch_name>
```
The prefix is the internal path to the subtree, as written in
`dev/subtree_config.xml`.

3. Create a PR from your forked repo to the main repo, sharing the amazing
changes with the world.

## Tutorial: Syncing Tatum with VTR

This tutorial will show you how to synchronize `libtatum` in VTR and
[Tatum](https://github.com/verilog-to-routing/tatum); however, similar steps
can be done to synchronize any subtree in VTR.

First, we will pull in (update) any changes in Tatum that are not in VTR yet.
On a clean branch (based off master), execute the following:
```shell
cd $VTR_ROOT
./dev/external_subtrees.py --update libtatum -m "Pulling in changes from Tatum."
```
If the output in the terminal says `Subtree is already at commit <commit_hash>`,
then there is nothing to pull in. If it says changes were pulled in, a commit
would have already been made for you. Push these changes to your branch and
raise a PR on VTR to merge these changes in.

After pulling in all the changes from Tatum, without changing branches, we will
push our VTR changes to Tatum. This is a bit more complicated since, as stated
in the section on pushing to subtrees, the changes cannot just be pushed to
master.

Create a fork of Tatum and make sure the master branch of that fork is
synchronized with Tatum's master branch. Then execute the following:
```shell
cd $VTR_ROOT
git subtree push --prefix=libs/EXTERNAL/libtatum <forked_repo_url> master
```
After that command finishes, raise a PR from your forked repo onto the Tatum
repo for the changes to be reviewed and merged in.

## Subtree Rational
## Subtree Rationale

VTR uses subtrees to allow easy tracking of upstream dependencies.

Expand Down
70 changes: 40 additions & 30 deletions dev/DOCKER_DEPLOY.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,62 @@
Overview
========
# Building VTR on Docker

## Overview
Docker creates an isolated container on your system so you know that VTR will run without further configurations nor affecting any other work.

Our Docker file sets up this enviroment by installing all necessary Linux packages and applications as well as Perl modules.

Additionally, Cloud9 is installed, which enables the remote management of your container through browser. With Cloud9, VTR can be started easier (and even modified and recompiled) without the need to logging into a terminal. If the Cloud9 endpoint is published outside your LAN, you can also execute VTR remotely or share your screen with other users.
## Setup

1. Install docker (Community Edition is free and sufficient for VTR): https://docs.docker.com/engine/install/

Setup
=====
2. Clone the VTR project:

Install docker (Community Edition is free and sufficient for VTR): https://docs.docker.com/engine/installation/
```
git clone https://github.com/verilog-to-routing/vtr-verilog-to-routing
```

Clone the VTR project:
3. CD to the VTR folder and build the docker image:

`git clone https://github.com/verilog-to-routing/vtr-verilog-to-routing`
```
docker build . -t vtrimg
```

CD to the VTR folder and build the docker image:
4. Start docker with the new image:

`docker build . -t vtrimg`
```
docker run -it -d --name vtr vtrimg
```

Start docker with the new image and connect the current volume with the workspace volume of the container:

`sudo docker run -it -d -p <port-to-open-on-host>:8080 -v <absolute-path-to-VTR-folder>:/workspace vtrimg`
## Running

1. Attach to the Docker container. Attaching will open a shell on the `/workspace` directory within the container.
The project root directory from the docker build process is copied and placed in the `/workspace` directory.

Running
=======
```sh
# from host computer
docker exec -it vtr /bin/bash
```

Open a browser (Google Chrome for example) and navigate to your host's url at the port you opened up. For example:
http://192.168.1.30:8080
1. Verfiy that VTR has been installed correctly:

First, use one of the terminals and compile VTR:
make && make installation/
```sh
# in container
./vtr_flow/scripts/run_vtr_task.py regression_tests/vtr_reg_basic/basic_timing
```

Second, ensure that a basic regression test passes:
./run_reg_test.py vtr_reg_basic
The expected output is:

Third, run and/or modify VTR in the usual way.
```
k6_N10_mem32K_40nm/single_ff OK
k6_N10_mem32K_40nm/single_ff OK
k6_N10_mem32K_40nm/single_wire OK
k6_N10_mem32K_40nm/single_wire OK
k6_N10_mem32K_40nm/diffeq1 OK
k6_N10_mem32K_40nm/diffeq1 OK
k6_N10_mem32K_40nm/ch_intrinsics OK
k6_N10_mem32K_40nm/ch_intrinsics OK
```

Developpement Debugging
=======================
the container already comes with clang as the default compiler and with scan-build the do statistical analysis on the build
set to `debug` in makefile

run `scan-build make -j4` from the root VTR directory.
to output the html analysis to a specific folder, run `scan-build make -j4 -o /some/folder`

the output is html and viewable in any browser.
2. Run and/or modify VTR in the usual way.

Loading
Loading