Compare commits
3 commits
f834269c20
...
f479ba8f2d
Author | SHA1 | Date | |
---|---|---|---|
f479ba8f2d | |||
e87f749eb5 | |||
ae098512cb |
46 changed files with 32669 additions and 7429 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,3 +1,7 @@
|
||||||
build
|
build
|
||||||
out
|
out
|
||||||
sim
|
sim
|
||||||
|
results
|
||||||
|
*/*/__pycache__/*
|
||||||
|
scripts/*/*.txt
|
||||||
|
*/*/*.png
|
|
@ -50,6 +50,4 @@ This project is licensed under the MIT License - see the LICENSE.md file for det
|
||||||
* [Ratatoskr NoC simulator](https://github.com/jmjos/ratatoskr)
|
* [Ratatoskr NoC simulator](https://github.com/jmjos/ratatoskr)
|
||||||
|
|
||||||
# TODO: Add description of project structure. Improve description section, talk about what the output is
|
# TODO: Add description of project structure. Improve description section, talk about what the output is
|
||||||
# TODO: Differentiate debug logs to reduce size of logs (in PE, router and NI) DONE (needs testing)
|
# TODO: Run everything again
|
||||||
# TODO: Add system's clock timestamp to calculate how much time it takes to run DONE (needs testing)
|
|
||||||
# TODO: Test all one more time
|
|
|
@ -93,7 +93,7 @@
|
||||||
<interval min="100" max="100"/>
|
<interval min="100" max="100"/>
|
||||||
<count min="1" max="1"/>
|
<count min="1" max="1"/>
|
||||||
<type value="0"/>
|
<type value="0"/>
|
||||||
<task value="6"/>
|
<task value="7"/>
|
||||||
</destination>
|
</destination>
|
||||||
</destinations>
|
</destinations>
|
||||||
</possibility>
|
</possibility>
|
||||||
|
@ -120,7 +120,7 @@
|
||||||
<interval min="100" max="100"/>
|
<interval min="100" max="100"/>
|
||||||
<count min="1" max="1"/>
|
<count min="1" max="1"/>
|
||||||
<type value="0"/>
|
<type value="0"/>
|
||||||
<task value="6"/>
|
<task value="7"/>
|
||||||
</destination>
|
</destination>
|
||||||
</destinations>
|
</destinations>
|
||||||
</possibility>
|
</possibility>
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
<interval min="100" max="100"/>
|
<interval min="100" max="100"/>
|
||||||
<count min="1" max="1"/>
|
<count min="1" max="1"/>
|
||||||
<type value="0"/>
|
<type value="0"/>
|
||||||
<task value="6"/>
|
<task value="7"/>
|
||||||
</destination>
|
</destination>
|
||||||
</destinations>
|
</destinations>
|
||||||
</possibility>
|
</possibility>
|
||||||
|
@ -174,7 +174,7 @@
|
||||||
<interval min="100" max="100"/>
|
<interval min="100" max="100"/>
|
||||||
<count min="1" max="1"/>
|
<count min="1" max="1"/>
|
||||||
<type value="0"/>
|
<type value="0"/>
|
||||||
<task value="6"/>
|
<task value="7"/>
|
||||||
</destination>
|
</destination>
|
||||||
</destinations>
|
</destinations>
|
||||||
</possibility>
|
</possibility>
|
||||||
|
@ -201,7 +201,7 @@
|
||||||
<interval min="100" max="100"/>
|
<interval min="100" max="100"/>
|
||||||
<count min="1" max="1"/>
|
<count min="1" max="1"/>
|
||||||
<type value="0"/>
|
<type value="0"/>
|
||||||
<task value="6"/>
|
<task value="7"/>
|
||||||
</destination>
|
</destination>
|
||||||
</destinations>
|
</destinations>
|
||||||
</possibility>
|
</possibility>
|
||||||
|
@ -214,9 +214,9 @@
|
||||||
<repeat max="1" min="1"/>
|
<repeat max="1" min="1"/>
|
||||||
<requires>
|
<requires>
|
||||||
<requirement id="0">
|
<requirement id="0">
|
||||||
<type value="0"/>
|
<type value="2"/>
|
||||||
<source value="0"/>
|
<source value="0"/>
|
||||||
<count max="5" min="5"/>
|
<count max="1" min="1"/>
|
||||||
</requirement>
|
</requirement>
|
||||||
</requires>
|
</requires>
|
||||||
<generates>
|
<generates>
|
||||||
|
@ -227,35 +227,7 @@
|
||||||
<delay min="0" max="100"/>
|
<delay min="0" max="100"/>
|
||||||
<interval min="100" max="100"/>
|
<interval min="100" max="100"/>
|
||||||
<count min="1" max="1"/>
|
<count min="1" max="1"/>
|
||||||
<type value="1"/>
|
<type value="0"/>
|
||||||
<task value="7"/>
|
|
||||||
</destination>
|
|
||||||
<destination id="1">
|
|
||||||
<delay min="0" max="100"/>
|
|
||||||
<interval min="100" max="100"/>
|
|
||||||
<count min="1" max="1"/>
|
|
||||||
<type value="1"/>
|
|
||||||
<task value="7"/>
|
|
||||||
</destination>
|
|
||||||
<destination id="2">
|
|
||||||
<delay min="0" max="100"/>
|
|
||||||
<interval min="100" max="100"/>
|
|
||||||
<count min="1" max="1"/>
|
|
||||||
<type value="1"/>
|
|
||||||
<task value="7"/>
|
|
||||||
</destination>
|
|
||||||
<destination id="3">
|
|
||||||
<delay min="0" max="100"/>
|
|
||||||
<interval min="100" max="100"/>
|
|
||||||
<count min="1" max="1"/>
|
|
||||||
<type value="1"/>
|
|
||||||
<task value="7"/>
|
|
||||||
</destination>
|
|
||||||
<destination id="4">
|
|
||||||
<delay min="0" max="100"/>
|
|
||||||
<interval min="100" max="100"/>
|
|
||||||
<count min="2" max="2"/>
|
|
||||||
<type value="1"/>
|
|
||||||
<task value="7"/>
|
<task value="7"/>
|
||||||
</destination>
|
</destination>
|
||||||
</destinations>
|
</destinations>
|
||||||
|
@ -269,11 +241,53 @@
|
||||||
<repeat max="1" min="1"/>
|
<repeat max="1" min="1"/>
|
||||||
<requires>
|
<requires>
|
||||||
<requirement id="0">
|
<requirement id="0">
|
||||||
<type value="1"/>
|
<type value="0"/>
|
||||||
<source value="4"/>
|
<source value="6"/>
|
||||||
<count max="6" min="6"/>
|
<count max="6" min="6"/>
|
||||||
</requirement>
|
</requirement>
|
||||||
</requires>
|
</requires>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="0" max="100"/>
|
||||||
|
<interval min="100" max="100"/>
|
||||||
|
<count min="1" max="1"/>
|
||||||
|
<type value="1"/>
|
||||||
|
<task value="9"/>
|
||||||
|
</destination>
|
||||||
|
<destination id="1">
|
||||||
|
<delay min="0" max="100"/>
|
||||||
|
<interval min="100" max="100"/>
|
||||||
|
<count min="1" max="1"/>
|
||||||
|
<type value="1"/>
|
||||||
|
<task value="9"/>
|
||||||
|
</destination>
|
||||||
|
<destination id="2">
|
||||||
|
<delay min="0" max="100"/>
|
||||||
|
<interval min="100" max="100"/>
|
||||||
|
<count min="1" max="1"/>
|
||||||
|
<type value="1"/>
|
||||||
|
<task value="9"/>
|
||||||
|
</destination>
|
||||||
|
<destination id="3">
|
||||||
|
<delay min="0" max="100"/>
|
||||||
|
<interval min="100" max="100"/>
|
||||||
|
<count min="1" max="1"/>
|
||||||
|
<type value="1"/>
|
||||||
|
<task value="9"/>
|
||||||
|
</destination>
|
||||||
|
<destination id="4">
|
||||||
|
<delay min="0" max="100"/>
|
||||||
|
<interval min="100" max="100"/>
|
||||||
|
<count min="2" max="2"/>
|
||||||
|
<type value="1"/>
|
||||||
|
<task value="9"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
</task>
|
</task>
|
||||||
|
|
||||||
<task id="8">
|
<task id="8">
|
||||||
|
@ -306,6 +320,11 @@
|
||||||
<source value="0"/>
|
<source value="0"/>
|
||||||
<count max="4" min="4"/>
|
<count max="4" min="4"/>
|
||||||
</requirement>
|
</requirement>
|
||||||
|
<requirement id="1">
|
||||||
|
<type value="0"/>
|
||||||
|
<source value="0"/>
|
||||||
|
<count max="5" min="5"/>
|
||||||
|
</requirement>
|
||||||
</requires>
|
</requires>
|
||||||
</task>
|
</task>
|
||||||
|
|
||||||
|
|
|
@ -5,15 +5,15 @@
|
||||||
<outputToFile value="true">report</outputToFile>
|
<outputToFile value="true">report</outputToFile>
|
||||||
</general>
|
</general>
|
||||||
<noc>
|
<noc>
|
||||||
<nocFile>config/efficienet/net.xml</nocFile>
|
<nocFile>config/efficienet/net_conf.xml</nocFile>
|
||||||
<flitsPerPacket value="1"/>
|
<flitsPerPacket value="1"/>
|
||||||
<bitWidth value="32"/>
|
<bitWidth value="32"/>
|
||||||
<Vdd value="5"/>
|
<Vdd value="5"/>
|
||||||
</noc>
|
</noc>
|
||||||
<application>
|
<application>
|
||||||
<benchmark>task</benchmark>
|
<benchmark>task</benchmark>
|
||||||
<dataFile>config/efficienet/data_Flits.xml</dataFile>
|
<dataFile>config/efficienet/data_Flits_conf.xml</dataFile>
|
||||||
<mapFile>config/efficienet/map.xml</mapFile>
|
<mapFile>config/efficienet/map_conf.xml</mapFile>
|
||||||
</application>
|
</application>
|
||||||
<verbose>
|
<verbose>
|
||||||
<processingElements>
|
<processingElements>
|
||||||
|
|
4253
config/efficienet/data_Flits_conf.xml
Normal file
4253
config/efficienet/data_Flits_conf.xml
Normal file
File diff suppressed because it is too large
Load diff
4570
config/efficienet/data_Flits_conf_not_opt.xml
Normal file
4570
config/efficienet/data_Flits_conf_not_opt.xml
Normal file
File diff suppressed because it is too large
Load diff
561
config/efficienet/map_conf.xml
Normal file
561
config/efficienet/map_conf.xml
Normal file
|
@ -0,0 +1,561 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<bind>
|
||||||
|
<task value="0"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="1"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="2"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="3"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="4"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="5"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="6"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="7"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="8"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="9"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="10"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="11"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="12"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="13"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="14"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="15"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="16"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="17"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="18"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="19"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="20"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="21"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="22"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="23"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="24"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="25"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="26"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="27"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="28"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="29"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="30"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="31"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="32"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="33"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="34"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="35"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="36"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="37"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="38"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="39"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="40"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="41"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="42"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="43"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="44"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="45"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="46"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="47"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="48"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="49"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="50"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="51"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="52"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="53"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="54"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="55"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="56"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="57"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="58"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="59"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="60"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="61"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="62"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="63"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="64"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="65"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="66"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="67"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="68"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="69"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="70"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="71"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="72"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="73"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="74"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="75"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="76"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="77"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="78"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="79"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="80"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="81"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="82"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="83"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
<bind>
|
||||||
|
<task value="84"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="85"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="86"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="87"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="88"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="89"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="90"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="91"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="92"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="93"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="94"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="95"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="96"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="97"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="98"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="99"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="100"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="101"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="102"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="103"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="104"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="105"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="106"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="107"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="108"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="109"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="110"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="111"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="112"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="113"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="114"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="115"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="116"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="117"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="118"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="119"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="120"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="121"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="122"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="123"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="124"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="125"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="126"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="127"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="128"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="129"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="130"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="131"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="132"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="133"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="134"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="135"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="136"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="137"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="138"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
</map>
|
599
config/efficienet/map_conf_not_opt.xml
Normal file
599
config/efficienet/map_conf_not_opt.xml
Normal file
|
@ -0,0 +1,599 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<bind>
|
||||||
|
<task value="0"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="1"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="2"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="3"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="4"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="5"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="6"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="7"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="8"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="9"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="10"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="11"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="12"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="13"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="14"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="15"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="16"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="17"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="18"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="19"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="20"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="21"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="22"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="23"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="24"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="25"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="26"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="27"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="28"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="29"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="30"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="31"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="32"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="33"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="34"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="35"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="36"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="37"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="38"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="39"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="40"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="41"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="42"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="43"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="44"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="45"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="46"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="47"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="48"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="49"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="50"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="51"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="52"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="53"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="54"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="55"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="56"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="57"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="58"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="59"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="60"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="61"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="62"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="63"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="64"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="65"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="66"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="67"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="68"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="69"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="70"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="71"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="72"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="73"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="74"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="75"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="76"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="77"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="78"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="79"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="80"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="81"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="82"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="83"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
|
||||||
|
<bind>
|
||||||
|
<task value="84"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="85"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="86"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="87"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="88"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="89"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="90"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="91"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="92"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="93"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="94"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="95"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="96"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="97"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="98"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="99"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="100"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="101"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="102"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="103"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="104"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="105"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="106"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="107"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="108"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="109"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="110"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="111"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="112"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="113"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="114"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="115"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="116"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="117"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="118"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="119"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="120"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="121"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="122"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="123"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="124"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="125"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="126"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="127"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="128"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="129"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="130"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="131"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="132"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="133"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="134"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="135"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="136"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="137"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="138"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="139"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="140"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="141"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="142"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="143"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="144"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="145"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="146"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="147"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
|
||||||
|
</map>
|
1612
config/efficienet/net_conf.xml
Executable file
1612
config/efficienet/net_conf.xml
Executable file
File diff suppressed because it is too large
Load diff
|
@ -5,15 +5,15 @@
|
||||||
<outputToFile value="true">report</outputToFile>
|
<outputToFile value="true">report</outputToFile>
|
||||||
</general>
|
</general>
|
||||||
<noc>
|
<noc>
|
||||||
<nocFile>config/mobilenet/net.xml</nocFile>
|
<nocFile>config/mobilenet/net_conf.xml</nocFile>
|
||||||
<flitsPerPacket value="1"/>
|
<flitsPerPacket value="1"/>
|
||||||
<bitWidth value="32"/>
|
<bitWidth value="32"/>
|
||||||
<Vdd value="5"/>
|
<Vdd value="5"/>
|
||||||
</noc>
|
</noc>
|
||||||
<application>
|
<application>
|
||||||
<benchmark>task</benchmark>
|
<benchmark>task</benchmark>
|
||||||
<dataFile>config/mobilenet/data_R1000.xml</dataFile>
|
<dataFile>config/mobilenet/data_R1000_conf_non_opt.xml</dataFile>
|
||||||
<mapFile>config/mobilenet/map.xml</mapFile>
|
<mapFile>config/mobilenet/map_conf_non_opt.xml</mapFile>
|
||||||
</application>
|
</application>
|
||||||
<verbose>
|
<verbose>
|
||||||
<processingElements>
|
<processingElements>
|
||||||
|
|
2253
config/mobilenet/data_R1000_conf.xml
Normal file
2253
config/mobilenet/data_R1000_conf.xml
Normal file
File diff suppressed because it is too large
Load diff
3142
config/efficienet/data_old.xml → config/mobilenet/data_R1000_conf_non_opt.xml
Executable file → Normal file
3142
config/efficienet/data_old.xml → config/mobilenet/data_R1000_conf_non_opt.xml
Executable file → Normal file
File diff suppressed because it is too large
Load diff
306
config/mobilenet/map_conf.xml
Normal file
306
config/mobilenet/map_conf.xml
Normal file
|
@ -0,0 +1,306 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<bind>
|
||||||
|
<task value="0"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="1"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="2"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="3"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="4"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="5"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="6"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="7"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="8"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="9"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="10"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="11"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="12"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="13"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="14"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="15"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="16"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="17"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="18"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="19"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
|
||||||
|
<bind>
|
||||||
|
<task value="20"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="21"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="22"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="23"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="24"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="25"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="26"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="27"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="28"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="29"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="30"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="31"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="32"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="33"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="34"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="35"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="36"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="37"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="38"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="39"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="40"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="41"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="42"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="43"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="44"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="45"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="46"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="47"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="48"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="49"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="50"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="51"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="52"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="53"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="54"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="55"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="56"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="57"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="58"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="59"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="60"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="61"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="62"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="63"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="64"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="65"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="66"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="67"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="68"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="69"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="70"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="71"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="72"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="73"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="74"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
</map>
|
343
config/mobilenet/map_conf_non_opt.xml
Normal file
343
config/mobilenet/map_conf_non_opt.xml
Normal file
|
@ -0,0 +1,343 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<bind>
|
||||||
|
<task value="0"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="1"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="2"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="3"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="4"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="5"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="6"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="7"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="8"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="9"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="10"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="11"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="12"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="13"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="14"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="15"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="16"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="17"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="18"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="19"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
|
||||||
|
<bind>
|
||||||
|
<task value="20"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="21"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="22"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="23"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="24"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="25"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="26"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="27"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="28"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="29"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="30"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="31"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="32"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="33"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="34"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="35"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="36"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="37"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="38"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="39"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="40"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="41"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="42"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="43"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="44"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="45"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="46"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="47"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="48"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="49"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="50"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="51"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="52"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="53"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="54"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="55"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="56"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="57"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="58"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="59"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="60"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="61"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="62"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="63"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="64"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="65"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="66"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="67"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="68"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="69"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="70"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="71"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="72"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="73"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="74"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="75"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="76"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="77"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="78"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="79"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="80"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="81"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="82"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="83"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
|
||||||
|
</map>
|
1612
config/mobilenet/net_conf.xml
Executable file
1612
config/mobilenet/net_conf.xml
Executable file
File diff suppressed because it is too large
Load diff
|
@ -5,15 +5,15 @@
|
||||||
<outputToFile value="true">report</outputToFile>
|
<outputToFile value="true">report</outputToFile>
|
||||||
</general>
|
</general>
|
||||||
<noc>
|
<noc>
|
||||||
<nocFile>config/ai_test2/net.xml</nocFile>
|
<nocFile>config/mobilenet_fb/net_conf.xml</nocFile>
|
||||||
<flitsPerPacket value="1"/>
|
<flitsPerPacket value="1"/>
|
||||||
<bitWidth value="32"/>
|
<bitWidth value="32"/>
|
||||||
<Vdd value="5"/>
|
<Vdd value="5"/>
|
||||||
</noc>
|
</noc>
|
||||||
<application>
|
<application>
|
||||||
<benchmark>task</benchmark>
|
<benchmark>task</benchmark>
|
||||||
<dataFile>config/ai_test2/data.xml</dataFile>
|
<dataFile>config/mobilenet_fb/data_conf.xml</dataFile>
|
||||||
<mapFile>config/ai_test2/map.xml</mapFile>
|
<mapFile>config/mobilenet_fb/map_conf.xml</mapFile>
|
||||||
</application>
|
</application>
|
||||||
<verbose>
|
<verbose>
|
||||||
<processingElements>
|
<processingElements>
|
||||||
|
|
2717
config/mobilenet_fb/data_conf.xml
Normal file
2717
config/mobilenet_fb/data_conf.xml
Normal file
File diff suppressed because it is too large
Load diff
3036
config/mobilenet_fb/data_conf_non_opt.xml
Normal file
3036
config/mobilenet_fb/data_conf_non_opt.xml
Normal file
File diff suppressed because it is too large
Load diff
342
config/mobilenet_fb/map_conf.xml
Normal file
342
config/mobilenet_fb/map_conf.xml
Normal file
|
@ -0,0 +1,342 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<bind>
|
||||||
|
<task value="0"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="1"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="2"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="3"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="4"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="5"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="6"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="7"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="8"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="9"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="10"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="11"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="12"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="13"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="14"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="15"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="16"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="17"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="18"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="19"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="20"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="21"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="22"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="23"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="24"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="25"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="26"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="27"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="28"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="29"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
<bind>
|
||||||
|
<task value="30"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="31"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="32"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="33"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="34"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="35"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="36"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="37"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="38"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="39"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="40"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="41"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="42"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="43"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="44"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="45"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="46"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="47"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="48"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="49"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="50"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="51"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="52"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="53"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="54"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="55"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="56"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="57"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="58"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="59"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="60"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="61"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="62"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="63"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="64"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="65"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="66"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="67"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="68"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="69"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="70"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="71"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="72"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="73"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="74"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="75"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="76"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="77"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="78"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="79"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="80"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="81"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="82"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="83"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
|
||||||
|
</map>
|
377
config/mobilenet_fb/map_conf_non_opt.xml
Normal file
377
config/mobilenet_fb/map_conf_non_opt.xml
Normal file
|
@ -0,0 +1,377 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<bind>
|
||||||
|
<task value="0"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="1"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="2"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="3"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="4"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="5"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="6"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="7"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="8"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="9"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="10"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="11"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="12"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="13"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="14"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="15"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="16"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="17"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="18"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="19"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="20"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="21"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="22"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="23"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="24"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="25"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="26"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="27"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="28"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="29"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
<bind>
|
||||||
|
<task value="30"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="31"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="32"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="33"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="34"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="35"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="36"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="37"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="38"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="39"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="40"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="41"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="42"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="43"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="44"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="45"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="46"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="47"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="48"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="49"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="50"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="51"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="52"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="53"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="54"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="55"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="56"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="57"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="58"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="59"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="60"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="61"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="62"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="63"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="64"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="65"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="66"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="67"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="68"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="69"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="70"/>
|
||||||
|
<node value="11"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="71"/>
|
||||||
|
<node value="15"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="72"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="73"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="74"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="75"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="76"/>
|
||||||
|
<node value="12"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="77"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="78"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="79"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="80"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="81"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="82"/>
|
||||||
|
<node value="13"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="83"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="84"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="85"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="86"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="87"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="88"/>
|
||||||
|
<node value="14"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="89"/>
|
||||||
|
<node value="10"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="90"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="91"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="92"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
|
||||||
|
</map>
|
1612
config/mobilenet_fb/net_conf.xml
Executable file
1612
config/mobilenet_fb/net_conf.xml
Executable file
File diff suppressed because it is too large
Load diff
|
@ -5,7 +5,7 @@
|
||||||
<outputToFile value="true">report</outputToFile>
|
<outputToFile value="true">report</outputToFile>
|
||||||
</general>
|
</general>
|
||||||
<noc>
|
<noc>
|
||||||
<nocFile>config/simple_test/net.xml</nocFile>
|
<nocFile>config/simple_2_layer_test/net.xml</nocFile>
|
||||||
<flitsPerPacket value="1"/>
|
<flitsPerPacket value="1"/>
|
||||||
<bitWidth value="32"/>
|
<bitWidth value="32"/>
|
||||||
<Vdd value="5"/>
|
<Vdd value="5"/>
|
||||||
|
|
|
@ -179,20 +179,10 @@
|
||||||
<requirement id="0">
|
<requirement id="0">
|
||||||
<type value="1"/>
|
<type value="1"/>
|
||||||
<source value="4"/>
|
<source value="4"/>
|
||||||
<count max="1" min="1"/>
|
<count max="3" min="3"/>
|
||||||
</requirement>
|
|
||||||
<requirement id="1">
|
|
||||||
<type value="1"/>
|
|
||||||
<source value="4"/>
|
|
||||||
<count max="1" min="1"/>
|
|
||||||
</requirement>
|
|
||||||
<requirement id="2">
|
|
||||||
<type value="1"/>
|
|
||||||
<source value="4"/>
|
|
||||||
<count max="1" min="1"/>
|
|
||||||
</requirement>
|
</requirement>
|
||||||
</requires>
|
</requires>
|
||||||
</task>
|
</task>
|
||||||
|
<!--multiple requirement of the same type seems to not work-->
|
||||||
</tasks>
|
</tasks>
|
||||||
</data>
|
</data>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
597
scripts/generate_config_task/in/data.xml
Normal file
597
scripts/generate_config_task/in/data.xml
Normal file
|
@ -0,0 +1,597 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<dataTypes>
|
||||||
|
<dataType id="0">
|
||||||
|
<name value="Type_task_0"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="1">
|
||||||
|
<name value="Type_task_1"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="2">
|
||||||
|
<name value="Type_task_2"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="3">
|
||||||
|
<name value="Type_task_3"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="4">
|
||||||
|
<name value="Type_task_4"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="5">
|
||||||
|
<name value="Type_task_5"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="6">
|
||||||
|
<name value="Type_task_6"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="7">
|
||||||
|
<name value="Type_task_7"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="8">
|
||||||
|
<name value="Type_task_8"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="9">
|
||||||
|
<name value="Type_task_9"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="10">
|
||||||
|
<name value="Type_task_10"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="11">
|
||||||
|
<name value="Type_task_11"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="12">
|
||||||
|
<name value="Type_task_12"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="13">
|
||||||
|
<name value="Type_task_13"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="14">
|
||||||
|
<name value="Type_task_14"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="15">
|
||||||
|
<name value="Type_task_15"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="16">
|
||||||
|
<name value="Type_task_16"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="17">
|
||||||
|
<name value="Type_task_17"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="18">
|
||||||
|
<name value="Type_task_18"/>
|
||||||
|
</dataType>
|
||||||
|
<dataType id="19">
|
||||||
|
<name value="Type_task_19"/>
|
||||||
|
</dataType>
|
||||||
|
</dataTypes>
|
||||||
|
<tasks>
|
||||||
|
<task id="0">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="110" max="110"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="402" max="402"/>
|
||||||
|
<type value="0"/>
|
||||||
|
<task value="1"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires/>
|
||||||
|
</task>
|
||||||
|
<task id="1">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="37" max="37"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="402" max="402"/>
|
||||||
|
<type value="1"/>
|
||||||
|
<task value="2"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="0"/>
|
||||||
|
<source value="0"/>
|
||||||
|
<count min="402" max="402"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="2">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="65" max="65"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="201" max="201"/>
|
||||||
|
<type value="2"/>
|
||||||
|
<task value="3"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="1"/>
|
||||||
|
<source value="1"/>
|
||||||
|
<count min="402" max="402"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="3">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="195" max="195"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="1205" max="1205"/>
|
||||||
|
<type value="3"/>
|
||||||
|
<task value="4"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="2"/>
|
||||||
|
<source value="2"/>
|
||||||
|
<count min="201" max="201"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="4">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="28" max="28"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="302" max="302"/>
|
||||||
|
<type value="4"/>
|
||||||
|
<task value="5"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="3"/>
|
||||||
|
<source value="3"/>
|
||||||
|
<count min="1205" max="1205"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="5">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="73" max="73"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="76" max="76"/>
|
||||||
|
<type value="5"/>
|
||||||
|
<task value="6"/>
|
||||||
|
</destination>
|
||||||
|
<destination id="1">
|
||||||
|
<delay min="73" max="73"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="76" max="76"/>
|
||||||
|
<type value="5"/>
|
||||||
|
<task value="9"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="4"/>
|
||||||
|
<source value="4"/>
|
||||||
|
<count min="302" max="302"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="6">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="110" max="110"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="452" max="452"/>
|
||||||
|
<type value="6"/>
|
||||||
|
<task value="7"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="5"/>
|
||||||
|
<source value="5"/>
|
||||||
|
<count min="76" max="76"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="7">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="41" max="41"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="452" max="452"/>
|
||||||
|
<type value="7"/>
|
||||||
|
<task value="8"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="6"/>
|
||||||
|
<source value="6"/>
|
||||||
|
<count min="452" max="452"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="8">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="110" max="110"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="76" max="76"/>
|
||||||
|
<type value="8"/>
|
||||||
|
<task value="9"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="7"/>
|
||||||
|
<source value="7"/>
|
||||||
|
<count min="452" max="452"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="9">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="1" max="1"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="76" max="76"/>
|
||||||
|
<type value="9"/>
|
||||||
|
<task value="10"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="5"/>
|
||||||
|
<source value="5"/>
|
||||||
|
<count min="76" max="76"/>
|
||||||
|
</requirement>
|
||||||
|
<requirement id="1">
|
||||||
|
<type value="8"/>
|
||||||
|
<source value="8"/>
|
||||||
|
<count min="76" max="76"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="10">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="110" max="110"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="452" max="452"/>
|
||||||
|
<type value="10"/>
|
||||||
|
<task value="11"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="9"/>
|
||||||
|
<source value="9"/>
|
||||||
|
<count min="76" max="76"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="11">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="11" max="11"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="113" max="113"/>
|
||||||
|
<type value="11"/>
|
||||||
|
<task value="12"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="10"/>
|
||||||
|
<source value="10"/>
|
||||||
|
<count min="452" max="452"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="12">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="37" max="37"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="26" max="26"/>
|
||||||
|
<type value="12"/>
|
||||||
|
<task value="13"/>
|
||||||
|
</destination>
|
||||||
|
<destination id="1">
|
||||||
|
<delay min="37" max="37"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="26" max="26"/>
|
||||||
|
<type value="12"/>
|
||||||
|
<task value="16"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="11"/>
|
||||||
|
<source value="11"/>
|
||||||
|
<count min="113" max="113"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="13">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="49" max="49"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="151" max="151"/>
|
||||||
|
<type value="13"/>
|
||||||
|
<task value="14"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="12"/>
|
||||||
|
<source value="12"/>
|
||||||
|
<count min="26" max="26"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="14">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="14" max="14"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="151" max="151"/>
|
||||||
|
<type value="14"/>
|
||||||
|
<task value="15"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="13"/>
|
||||||
|
<source value="13"/>
|
||||||
|
<count min="151" max="151"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="15">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="49" max="49"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="26" max="26"/>
|
||||||
|
<type value="15"/>
|
||||||
|
<task value="16"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="14"/>
|
||||||
|
<source value="14"/>
|
||||||
|
<count min="151" max="151"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="16">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="1" max="1"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="26" max="26"/>
|
||||||
|
<type value="16"/>
|
||||||
|
<task value="17"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="12"/>
|
||||||
|
<source value="12"/>
|
||||||
|
<count min="26" max="26"/>
|
||||||
|
</requirement>
|
||||||
|
<requirement id="1">
|
||||||
|
<type value="15"/>
|
||||||
|
<source value="15"/>
|
||||||
|
<count min="26" max="26"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="17">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="49" max="49"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="151" max="151"/>
|
||||||
|
<type value="17"/>
|
||||||
|
<task value="18"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="16"/>
|
||||||
|
<source value="16"/>
|
||||||
|
<count min="26" max="26"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="18">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations>
|
||||||
|
<destination id="0">
|
||||||
|
<delay min="14" max="14"/>
|
||||||
|
<interval min="20" max="20"/>
|
||||||
|
<count min="151" max="151"/>
|
||||||
|
<type value="18"/>
|
||||||
|
<task value="19"/>
|
||||||
|
</destination>
|
||||||
|
</destinations>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="17"/>
|
||||||
|
<source value="17"/>
|
||||||
|
<count min="151" max="151"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
<task id="19">
|
||||||
|
<start min="0" max="0"/>
|
||||||
|
<duration min="-1" max="-1"/>
|
||||||
|
<repeat min="10" max="10"/>
|
||||||
|
<generates>
|
||||||
|
<possibility id="0">
|
||||||
|
<probability value="1"/>
|
||||||
|
<destinations/>
|
||||||
|
</possibility>
|
||||||
|
</generates>
|
||||||
|
<requires>
|
||||||
|
<requirement id="0">
|
||||||
|
<type value="18"/>
|
||||||
|
<source value="18"/>
|
||||||
|
<count min="151" max="151"/>
|
||||||
|
</requirement>
|
||||||
|
</requires>
|
||||||
|
</task>
|
||||||
|
</tasks>
|
||||||
|
</data>
|
83
scripts/generate_config_task/in/map.xml
Normal file
83
scripts/generate_config_task/in/map.xml
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
|
<bind>
|
||||||
|
<task value="0"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="1"/>
|
||||||
|
<node value="0"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="2"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="3"/>
|
||||||
|
<node value="1"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="4"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="5"/>
|
||||||
|
<node value="2"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="6"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="7"/>
|
||||||
|
<node value="3"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="8"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="9"/>
|
||||||
|
<node value="4"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="10"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="11"/>
|
||||||
|
<node value="5"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="12"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="13"/>
|
||||||
|
<node value="6"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="14"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="15"/>
|
||||||
|
<node value="7"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="16"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="17"/>
|
||||||
|
<node value="8"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="18"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
<bind>
|
||||||
|
<task value="19"/>
|
||||||
|
<node value="9"/>
|
||||||
|
</bind>
|
||||||
|
</map>
|
|
@ -1,19 +1,47 @@
|
||||||
from utils import *
|
from utils import *
|
||||||
|
# optimal
|
||||||
|
#sourc_x = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3]
|
||||||
|
#sourc_y = [0,1,2,3,0,1,2,3,0,1,2,3,0,1,2]
|
||||||
|
|
||||||
sourc_x = 0
|
#dest_x = [0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]
|
||||||
sourc_y = 1
|
#dest_y = [1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
|
||||||
|
|
||||||
dest_x = 3
|
# non optimal
|
||||||
dest_y = 3
|
sourc_x = [0,0,0,0,1,1,1,1,2,2,2,2,3,3,3]
|
||||||
|
sourc_y = [0,1,2,3,0,1,2,3,0,1,2,3,0,1,2]
|
||||||
|
|
||||||
rout_type = 0
|
dest_x = [1,1,1,1,2,2,2,2,3,3,3,3,0,0,0]
|
||||||
|
dest_y = [0,1,2,0,0,1,2,0,0,1,2,0,1,2,3]
|
||||||
|
|
||||||
|
|
||||||
id = 0
|
routing_typ = 0 # xy routing
|
||||||
print("**********************FOR data.xml**********************")
|
|
||||||
id = write_config_tasks(sourc_x, sourc_y, dest_x, dest_y, id, rout_type)
|
|
||||||
|
|
||||||
print()
|
|
||||||
|
|
||||||
print("**********************FOR map.xml**********************")
|
start_task = 29
|
||||||
write_map(sourc_x, sourc_y, dest_x, dest_y, id, rout_type)
|
start_type = 48
|
||||||
|
#start_conf_type_id = 20
|
||||||
|
start_pack_type_id = 64
|
||||||
|
spec_task_id = 20
|
||||||
|
use_spec_task = True
|
||||||
|
if use_spec_task:
|
||||||
|
start_task += 1
|
||||||
|
start_type += 1
|
||||||
|
data_file = "./in/data.xml"
|
||||||
|
map_file = "./in/map.xml"
|
||||||
|
|
||||||
|
|
||||||
|
config_task_writer = ConfigTaskWriter([sourc_x[0],sourc_y[0]],
|
||||||
|
[dest_x[0],dest_y[0]], routing_typ, start_task, start_type, #start_conf_type_id,
|
||||||
|
start_pack_type_id, use_spec_task, spec_task_id)
|
||||||
|
|
||||||
|
for i in range(0, len(sourc_x)):
|
||||||
|
config_task_writer.update_sourc_dest([sourc_x[i],sourc_y[i]],
|
||||||
|
[dest_x[i],dest_y[i]])
|
||||||
|
config_task_writer.write_config_tasks()
|
||||||
|
config_task_writer.write_map()
|
||||||
|
|
||||||
|
config_task_writer.write_last_task()
|
||||||
|
config_task_writer.write_types()
|
||||||
|
#config_task_writer.write_stream_types(data_file, map_file)
|
||||||
|
config_task_writer.write_non_opt_stream_types(data_file, map_file)
|
||||||
|
config_task_writer.write_to_file()
|
|
@ -2,8 +2,8 @@ from enum import Enum
|
||||||
|
|
||||||
MAX_ROUT_Y = 4
|
MAX_ROUT_Y = 4
|
||||||
|
|
||||||
GEN_TASK_START = """ <tasks>
|
GEN_TASK_START = """
|
||||||
<task id="0">
|
<task id="{}">
|
||||||
<start min="0" max="0"/>
|
<start min="0" max="0"/>
|
||||||
<duration min="-1" max="-1"/>
|
<duration min="-1" max="-1"/>
|
||||||
<repeat min="1" max="1"/>
|
<repeat min="1" max="1"/>
|
||||||
|
@ -21,7 +21,6 @@ REQ_TASK_START = """ <task id="{}">
|
||||||
<duration max="-1" min="-1"/>
|
<duration max="-1" min="-1"/>
|
||||||
<repeat max="1" min="1"/>"""
|
<repeat max="1" min="1"/>"""
|
||||||
|
|
||||||
REQ_TASK_END = " </task>"
|
|
||||||
|
|
||||||
LAST_TASK = """ <task id="{}">
|
LAST_TASK = """ <task id="{}">
|
||||||
<start max="0" min="0"/>
|
<start max="0" min="0"/>
|
||||||
|
@ -29,8 +28,8 @@ LAST_TASK = """ <task id="{}">
|
||||||
<repeat max="1" min="1"/>
|
<repeat max="1" min="1"/>
|
||||||
<requires>
|
<requires>
|
||||||
<requirement id="0">
|
<requirement id="0">
|
||||||
<type value="0"/>
|
<type value="{}"/>
|
||||||
<source value="0"/>
|
<source value="{}"/>
|
||||||
<count max="{}" min="{}"/>
|
<count max="{}" min="{}"/>
|
||||||
</requirement>
|
</requirement>
|
||||||
</requires>
|
</requires>
|
||||||
|
@ -38,8 +37,8 @@ LAST_TASK = """ <task id="{}">
|
||||||
|
|
||||||
REQ_TASK_REQ = """ <requires>
|
REQ_TASK_REQ = """ <requires>
|
||||||
<requirement id="0">
|
<requirement id="0">
|
||||||
<type value="2"/>
|
<type value="{}"/>
|
||||||
<source value="0"/>
|
<source value="{}"/>
|
||||||
<count max="1" min="1"/>
|
<count max="1" min="1"/>
|
||||||
</requirement>
|
</requirement>
|
||||||
</requires>"""
|
</requires>"""
|
||||||
|
@ -49,23 +48,24 @@ REQ_TASK_GEN = """ <generates>
|
||||||
<probability value="1"/>
|
<probability value="1"/>
|
||||||
<destinations>
|
<destinations>
|
||||||
<destination id="0">
|
<destination id="0">
|
||||||
<delay min="0" max="100"/>
|
<delay min="50" max="50"/>
|
||||||
<interval min="100" max="100"/>
|
<interval min="20" max="20"/>
|
||||||
<count min="1" max="1"/>
|
<count min="1" max="1"/>
|
||||||
<type value="0"/>
|
<type value="{}"/>
|
||||||
<task value="{}"/>
|
<task value="{}"/>
|
||||||
</destination>
|
</destination>
|
||||||
</destinations>
|
</destinations>
|
||||||
</possibility>
|
</possibility>
|
||||||
</generates>"""
|
</generates>
|
||||||
|
</task>"""
|
||||||
|
|
||||||
DEST_HEADER = " <destination id=\"{}\">"
|
DEST_HEADER = " <destination id=\"{}\">"
|
||||||
DEST_H_END = " </destination>"
|
DEST_H_END = " </destination>"
|
||||||
|
|
||||||
DELAY_TAG = " <delay min=\"0\" max=\"100\"/>"
|
DELAY_TAG = " <delay min=\"50\" max=\"50\"/>"
|
||||||
INTERVAL_TAG = " <interval min=\"100\" max=\"100\"/>"
|
INTERVAL_TAG = " <interval min=\"20\" max=\"20\"/>"
|
||||||
COUNT_TAG = " <count min=\"1\" max=\"1\"/>"
|
COUNT_TAG = " <count min=\"1\" max=\"1\"/>"
|
||||||
TYPE_TAG = " <type value=\"2\"/>"
|
TYPE_TAG = " <type value=\"{}\"/>"
|
||||||
TASK_TAG = " <task value=\"{}\"/>"
|
TASK_TAG = " <task value=\"{}\"/>"
|
||||||
CONFIG_TAG = " <config link=\"{}\" destination=\"{}\"/>"
|
CONFIG_TAG = " <config link=\"{}\" destination=\"{}\"/>"
|
||||||
|
|
||||||
|
@ -76,6 +76,18 @@ BIND = """ <bind>
|
||||||
</bind>"""
|
</bind>"""
|
||||||
|
|
||||||
|
|
||||||
|
CONF_TYPE = """ <dataType id="{}">
|
||||||
|
<name value="ConfigRouter"/>
|
||||||
|
</dataType>"""
|
||||||
|
|
||||||
|
PACK_TYPE = """ <dataType id="{}">
|
||||||
|
<name value="Type_task_{}"/>
|
||||||
|
</dataType>"""
|
||||||
|
|
||||||
|
STREAM_TYPE = """ <dataType id="{}">
|
||||||
|
<name value="Type_task_{}_Stream"/>
|
||||||
|
</dataType>"""
|
||||||
|
|
||||||
class DIRS(Enum):
|
class DIRS(Enum):
|
||||||
LOCAL = 0
|
LOCAL = 0
|
||||||
EAST = 1
|
EAST = 1
|
||||||
|
|
|
@ -1,107 +1,275 @@
|
||||||
from templates import *
|
from templates import *
|
||||||
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
def get_opposs_dir(dir):
|
def get_opposs_dir(dir):
|
||||||
if DIRS.LOCAL:
|
if dir == DIRS.LOCAL:
|
||||||
return DIRS.LOCAL
|
return DIRS.LOCAL
|
||||||
elif DIRS.EAST:
|
elif dir == DIRS.EAST:
|
||||||
return DIRS.WEST
|
return DIRS.WEST
|
||||||
elif DIRS.WEST:
|
elif dir == DIRS.WEST:
|
||||||
return DIRS.EAST
|
return DIRS.EAST
|
||||||
elif DIRS.NORTH:
|
elif dir == DIRS.NORTH:
|
||||||
return DIRS.SOUTH
|
return DIRS.SOUTH
|
||||||
elif DIRS.SOUTH:
|
elif dir == DIRS.SOUTH:
|
||||||
return DIRS.NORTH
|
return DIRS.NORTH
|
||||||
elif DIRS.UP:
|
elif dir == DIRS.UP:
|
||||||
return DIRS.DOWN
|
return DIRS.DOWN
|
||||||
elif DIRS.DOWN:
|
elif dir == DIRS.DOWN:
|
||||||
return DIRS.UP
|
return DIRS.UP
|
||||||
else:
|
else:
|
||||||
return DIRS.INVALID
|
return DIRS.INVALID
|
||||||
|
|
||||||
|
|
||||||
def write_one_dir_config_tasks(sourc, dest, id, dir, prev_dir, last_dir):
|
class ConfigTaskWriter:
|
||||||
for x in range(sourc, dest):
|
def __init__(self, sourc, dest, routing_typ, start_task, start_type, #start_conf_type_id,
|
||||||
print(DEST_HEADER.format(id))
|
start_pack_type_id, use_spec_task=False, spec_task_id=0):
|
||||||
print(DELAY_TAG)
|
self.sourc = sourc
|
||||||
print(INTERVAL_TAG)
|
self.dest = dest
|
||||||
print(COUNT_TAG)
|
self.routing_typ = routing_typ
|
||||||
print(TYPE_TAG)
|
self.start_task = start_task
|
||||||
print(TASK_TAG.format(id+1))
|
self.start_type = start_type
|
||||||
if x == sourc:
|
#self.start_conf_type_id = start_conf_type_id
|
||||||
link = prev_dir.value
|
self.start_pack_type_id = start_pack_type_id
|
||||||
dest = dir.value
|
self.use_spec_task = use_spec_task
|
||||||
elif x == dest:
|
self.spec_task_id = spec_task_id
|
||||||
link = get_opposs_dir(dir).value
|
self.task_count = 0
|
||||||
dest = last_dir.value
|
self.xml_data = ""
|
||||||
|
self.xml_map = ""
|
||||||
|
self.xml_data_types = ""
|
||||||
|
self.xml_stream_types = ""
|
||||||
|
self.spec_task_count = 0
|
||||||
|
self.type_count_start = self.start_type
|
||||||
|
self.type_count = self.start_type
|
||||||
|
|
||||||
|
|
||||||
|
def write_one_dir_config_tasks(self, x0, xf, dir, prev_dir, last_dir):
|
||||||
|
for x in range(x0, xf):
|
||||||
|
self.xml_data += DEST_HEADER.format(self.task_count) + "\n"
|
||||||
|
self.xml_data += DELAY_TAG + "\n"
|
||||||
|
self.xml_data += INTERVAL_TAG + "\n"
|
||||||
|
self.xml_data += COUNT_TAG + "\n"
|
||||||
|
self.xml_data += TYPE_TAG.format(self.type_count) + "\n"
|
||||||
|
self.xml_data += TASK_TAG.format(self.start_task+self.task_count+1)+"\n"
|
||||||
|
if x == x0 and x == xf-1:
|
||||||
|
link = prev_dir.value
|
||||||
|
dest = last_dir.value
|
||||||
|
elif x == x0:
|
||||||
|
link = prev_dir.value
|
||||||
|
dest = dir.value
|
||||||
|
elif x == xf-1:
|
||||||
|
link = get_opposs_dir(dir).value
|
||||||
|
dest = last_dir.value
|
||||||
|
else:
|
||||||
|
link = get_opposs_dir(dir).value
|
||||||
|
dest = dir.value
|
||||||
|
self.xml_data += CONFIG_TAG.format(link, dest) + "\n"
|
||||||
|
self.xml_data += DEST_H_END + "\n"
|
||||||
|
self.task_count += 1
|
||||||
|
|
||||||
|
|
||||||
|
def write_req_task(self):
|
||||||
|
for i in range(0, self.task_count):
|
||||||
|
self.xml_data += "\n"+REQ_TASK_START.format(self.start_task+i+1)+"\n"
|
||||||
|
self.xml_data += REQ_TASK_REQ.format(self.type_count,
|
||||||
|
self.start_task) + "\n"
|
||||||
|
if(not self.use_spec_task):
|
||||||
|
last_task = self.start_task+(self.dest[0]-self.sourc[0] + \
|
||||||
|
self.dest[1]-self.sourc[1]) + 2
|
||||||
else:
|
else:
|
||||||
link = get_opposs_dir(dir).value
|
last_task = self.spec_task_id
|
||||||
dest = dir.value
|
self.xml_data += REQ_TASK_GEN.format(self.start_pack_type_id,
|
||||||
print(CONFIG_TAG.format(link, dest))
|
last_task) + "\n"
|
||||||
print(DEST_H_END)
|
self.task_count += 1
|
||||||
id+=1
|
|
||||||
return id
|
|
||||||
|
|
||||||
def write_req_task(id):
|
def write_last_task(self):
|
||||||
for i in range(1, id):
|
self.xml_data += "\n" + LAST_TASK.format(self.spec_task_id,
|
||||||
print()
|
self.start_pack_type_id, self.start_task+self.task_count-1,
|
||||||
print(REQ_TASK_START.format(i))
|
self.spec_task_count, self.spec_task_count) + "\n"
|
||||||
print(REQ_TASK_REQ)
|
|
||||||
print(REQ_TASK_GEN.format(id))
|
|
||||||
print(REQ_TASK_END)
|
|
||||||
return id
|
|
||||||
|
|
||||||
|
|
||||||
def write_config_tasks(sourc_x, sourc_y, dest_x, dest_y, id, rout_type):
|
def write_config_tasks(self):
|
||||||
if rout_type == 0: # XY routing
|
self.xml_data+=GEN_TASK_START.format(self.start_task+self.task_count)+"\n"
|
||||||
print(GEN_TASK_START)
|
if self.routing_typ == 0: # XY routing
|
||||||
dir = DIRS.EAST if dest_x > sourc_x else DIRS.WEST
|
dir = DIRS.EAST if self.dest[0] > self.sourc[0] else DIRS.WEST
|
||||||
id = write_one_dir_config_tasks(sourc_x, dest_x, id, dir, DIRS.LOCAL, dir)
|
x0 = self.dest[0] if self.sourc[0]>self.dest[0] else self.sourc[0]
|
||||||
|
xf = self.sourc[0] if self.sourc[0]>self.dest[0] else self.dest[0]
|
||||||
|
self.write_one_dir_config_tasks(x0, xf, dir, DIRS.LOCAL, dir)
|
||||||
|
|
||||||
prev_dir = dir
|
prev_dir = get_opposs_dir(dir) if self.dest[0] != self.sourc[0] \
|
||||||
dir = DIRS.NORTH if dest_y > sourc_y else DIRS.SOUTH
|
else DIRS.LOCAL
|
||||||
id = write_one_dir_config_tasks(sourc_y, dest_y+1, id, dir, prev_dir, DIRS.LOCAL)
|
dir = DIRS.NORTH if self.dest[1] > self.sourc[1] else DIRS.SOUTH
|
||||||
print(GEN_TASK_END)
|
x0 = self.dest[1] if self.sourc[1]>self.dest[1] else self.sourc[1]
|
||||||
|
xf = self.sourc[1]+1 if self.sourc[1]>self.dest[1] else self.dest[1]+1
|
||||||
|
self.write_one_dir_config_tasks(x0, xf, dir, prev_dir, DIRS.LOCAL)
|
||||||
|
|
||||||
|
self.xml_data += GEN_TASK_END + "\n"
|
||||||
|
|
||||||
write_req_task(id)
|
elif self.routing_typ==1: # YX routing
|
||||||
print()
|
dir = DIRS.NORTH if self.dest[1] > self.sourc[1] else DIRS.SOUTH
|
||||||
print(LAST_TASK.format(id, id-1, id-1))
|
x0 = self.dest[1] if self.sourc[1]>self.dest[1] else self.sourc[1]
|
||||||
|
xf = self.sourc[1] if self.sourc[1]>self.dest[1] else self.dest[1]
|
||||||
|
self.write_one_dir_config_tasks(x0, xf, dir, DIRS.LOCAL, dir)
|
||||||
|
|
||||||
elif rout_type==1: # YX routing
|
prev_dir = get_opposs_dir(dir) if self.dest[0] != self.sourc[0] \
|
||||||
print(GEN_TASK_START)
|
else DIRS.LOCAL
|
||||||
|
dir = DIRS.EAST if self.dest[0] > self.sourc[0] else DIRS.WEST
|
||||||
|
x0 = self.dest[0] if self.sourc[0]>self.dest[0] else self.sourc[0]
|
||||||
|
xf = self.sourc[0]+1 if self.sourc[0]>self.dest[0] else self.dest[0]+1
|
||||||
|
self.write_one_dir_config_tasks(x0, xf, dir, prev_dir, DIRS.LOCAL)
|
||||||
|
self.xml_data += GEN_TASK_END + "\n"
|
||||||
|
|
||||||
dir = DIRS.NORTH if dest_y > sourc_y else DIRS.SOUTH
|
self.write_req_task()
|
||||||
id = write_one_dir_config_tasks(sourc_y, dest_y, id, dir, DIRS.LOCAL, dir)
|
|
||||||
|
|
||||||
prev_dir = dir
|
#last task is for the pc that send config msgs
|
||||||
dir = DIRS.EAST if dest_x > sourc_x else DIRS.WEST
|
if(not self.use_spec_task):
|
||||||
id = write_one_dir_config_tasks(sourc_x, dest_x+1, id, dir, prev_dir, DIRS.LOCAL)
|
self.xml_data += "\n" + LAST_TASK.format(
|
||||||
print(GEN_TASK_END)
|
self.start_task+self.task_count, self.start_task+self.task_count,
|
||||||
|
self.start_task, self.task_count-1, self.task_count-1) + "\n"
|
||||||
id = write_req_task(id)
|
else:
|
||||||
print()
|
self.spec_task_count += self.task_count - 1
|
||||||
print(LAST_TASK.format(id, id-1, id-1))
|
self.type_count += 1
|
||||||
|
|
||||||
return id
|
|
||||||
|
|
||||||
|
|
||||||
def write_map(sourc_x, sourc_y, dest_x, dest_y, id, rout_type):
|
|
||||||
x = sourc_x
|
def write_map(self):
|
||||||
y = sourc_y
|
x = self.sourc[0]
|
||||||
for i in range (0, id+1):
|
y = self.sourc[1]
|
||||||
print(BIND.format(i, x*MAX_ROUT_Y+y))
|
if(not self.use_spec_task):
|
||||||
if rout_type == 0:
|
last_map_task = self.task_count+1
|
||||||
if(y == dest_y):
|
else:
|
||||||
x = sourc_x
|
last_map_task = self.task_count
|
||||||
y = sourc_y
|
self.xml_map += BIND.format(self.start_task, x*MAX_ROUT_Y+y) + "\n" # first task
|
||||||
elif(x == dest_x):
|
for i in range (1, last_map_task):
|
||||||
y += 1
|
self.xml_map += BIND.format(self.start_task+i, x*MAX_ROUT_Y+y) + "\n"
|
||||||
else:
|
if self.routing_typ == 0:
|
||||||
x +=1
|
if(x == self.dest[0] and y == self.dest[1]):
|
||||||
elif rout_type == 1:
|
x = self.sourc[0]
|
||||||
if(x == dest_x):
|
y = self.sourc[1]
|
||||||
x = sourc_x
|
elif(x == self.dest[0]):
|
||||||
y = sourc_y
|
y = y+1 if self.dest[1] > self.sourc[1] else y-1
|
||||||
elif(y == dest_y):
|
else:
|
||||||
x += 1
|
x = x+1 if self.dest[0] > self.sourc[0] else x-1
|
||||||
else:
|
elif self.routing_typ == 1:
|
||||||
y +=1
|
if(x == self.dest[0] and y == self.dest[1]):
|
||||||
|
x = self.sourc[0]
|
||||||
|
y = self.sourc[1]
|
||||||
|
elif(y == self.dest[1]):
|
||||||
|
x = x+1 if self.dest[0] > self.sourc[0] else x-1
|
||||||
|
else:
|
||||||
|
y = y+1 if self.dest[1] > self.sourc[1] else y-1
|
||||||
|
|
||||||
|
def write_types(self):
|
||||||
|
for i in range (self.type_count_start, self.type_count):
|
||||||
|
self.xml_data_types += CONF_TYPE.format(i) + "\n"
|
||||||
|
self.xml_data_types += PACK_TYPE.format(
|
||||||
|
self.start_pack_type_id, self.start_pack_type_id)
|
||||||
|
|
||||||
|
def write_stream_types(self, data_file, map_file):
|
||||||
|
with open(data_file, 'r') as f:
|
||||||
|
data = f.read()
|
||||||
|
with open(map_file, 'r') as f:
|
||||||
|
map_data = f.read()
|
||||||
|
Bs_data = BeautifulSoup(data, "xml")
|
||||||
|
Bs_map_data = BeautifulSoup(map_data, "xml")
|
||||||
|
tasks = Bs_data.find_all('task')
|
||||||
|
binds = Bs_map_data.find_all('bind')
|
||||||
|
for task in tasks:
|
||||||
|
id = task.get('id')
|
||||||
|
if id is not None:
|
||||||
|
dests = task.find_all('destination')
|
||||||
|
if dests:
|
||||||
|
num_dest = len(dests)
|
||||||
|
dest_task = dests[0].find('task').get('value')
|
||||||
|
for bind in binds:
|
||||||
|
if bind.find('task').get('value') == id:
|
||||||
|
sourc_node = bind.find('node').get('value')
|
||||||
|
if bind.find('task').get('value') == dest_task:
|
||||||
|
dest_node = bind.find('node').get('value')
|
||||||
|
|
||||||
|
if(num_dest == 1 and sourc_node != dest_node):
|
||||||
|
self.xml_stream_types += STREAM_TYPE.format(id, id) + "\n"
|
||||||
|
else:
|
||||||
|
self.xml_stream_types += PACK_TYPE.format(id, id) + "\n"
|
||||||
|
|
||||||
|
def write_non_opt_stream_types(self, data_file, map_file):
|
||||||
|
with open(data_file, 'r') as f:
|
||||||
|
data = f.read()
|
||||||
|
with open(map_file, 'r') as f:
|
||||||
|
map_data = f.read()
|
||||||
|
Bs_data = BeautifulSoup(data, "xml")
|
||||||
|
Bs_map_data = BeautifulSoup(map_data, "xml")
|
||||||
|
tasks = Bs_data.find_all('task')
|
||||||
|
binds = Bs_map_data.find_all('bind')
|
||||||
|
for task in tasks:
|
||||||
|
id = task.get('id')
|
||||||
|
if id is not None:
|
||||||
|
dests = task.find_all('destination')
|
||||||
|
if dests:
|
||||||
|
num_dest = len(dests)
|
||||||
|
dest_task = dests[0].find('task').get('value')
|
||||||
|
for bind in binds:
|
||||||
|
if bind.find('task').get('value') == id:
|
||||||
|
sourc_node = int(bind.find('node').get('value'))
|
||||||
|
if bind.find('task').get('value') == dest_task:
|
||||||
|
dest_node = int(bind.find('node').get('value'))
|
||||||
|
|
||||||
|
# use this for mobilenet and efficienet
|
||||||
|
#if(num_dest == 1 and ((sourc_node == 3 and dest_node == 4) or
|
||||||
|
# (sourc_node == 7 and dest_node == 8) or
|
||||||
|
# (sourc_node == 11 and dest_node == 12))):
|
||||||
|
# use this for mobilenet_fb
|
||||||
|
if((sourc_node == 3 and dest_node == 4) or
|
||||||
|
(sourc_node == 7 and dest_node == 8) or
|
||||||
|
(sourc_node == 11 and dest_node == 12)):
|
||||||
|
self.xml_stream_types += STREAM_TYPE.format(id, id) + "\n"
|
||||||
|
else:
|
||||||
|
self.xml_stream_types += PACK_TYPE.format(id, id) + "\n"
|
||||||
|
|
||||||
|
|
||||||
|
def update_sourc_dest(self, sourc, dest):
|
||||||
|
self.sourc = sourc
|
||||||
|
self.dest = dest
|
||||||
|
if(not self.use_spec_task):
|
||||||
|
self.start_task += self.task_count + 1
|
||||||
|
self.start_type += self.task_count + 1
|
||||||
|
else:
|
||||||
|
self.start_task += self.task_count
|
||||||
|
self.start_type += self.task_count
|
||||||
|
self.task_count = 0
|
||||||
|
|
||||||
|
|
||||||
|
def write_to_file(self):
|
||||||
|
f = open("./data.txt", "w")
|
||||||
|
f.write("")
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
f = open("./data.txt", "a")
|
||||||
|
f.write(self.xml_data)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
|
f = open("./map.txt", "w")
|
||||||
|
f.write("")
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
f = open("./map.txt", "a")
|
||||||
|
f.write(self.xml_map)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
|
f = open("./data_types.txt", "w")
|
||||||
|
f.write("")
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
f = open("./data_types.txt", "a")
|
||||||
|
f.write(self.xml_data_types)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
|
||||||
|
f = open("./stream_types.txt", "w")
|
||||||
|
f.write("")
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
f = open("./stream_types.txt", "a")
|
||||||
|
f.write(self.xml_stream_types)
|
||||||
|
f.close()
|
25
scripts/generate_graphs/constants.py
Normal file
25
scripts/generate_graphs/constants.py
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
titles = {
|
||||||
|
"mobilenet": "Mobilenet",
|
||||||
|
"mobilenet_fb": "Mobilenet with feedback loop",
|
||||||
|
"efficienet": "EfficientNet"
|
||||||
|
}
|
||||||
|
|
||||||
|
net_models = {
|
||||||
|
"packet_switching" : ["mobilenet", "mobilenet_fb", "efficienet"],
|
||||||
|
"circuit_switching": ["mobilenet_conf", "mobilenet_fb_conf", "efficienet_conf"],
|
||||||
|
"non_opt_circuit_switching": ["mobilenet_conf_no_opt", "mobilenet_fb_conf_no_opt", "efficienet_conf_no_opt"]
|
||||||
|
}
|
||||||
|
|
||||||
|
final_conf_tasks = {
|
||||||
|
"circuit_switching": {
|
||||||
|
"mobilenet_conf": 74,
|
||||||
|
"mobilenet_fb_conf": 20,
|
||||||
|
"efficienet_conf": 138
|
||||||
|
},
|
||||||
|
"non_opt_circuit_switching": {
|
||||||
|
"mobilenet_conf_no_opt": 83,
|
||||||
|
"mobilenet_fb_conf_no_opt": 20,
|
||||||
|
"efficienet_conf_no_opt": 147
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result_folder = "../../results/"
|
44
scripts/generate_graphs/main.py
Normal file
44
scripts/generate_graphs/main.py
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
import pandas as pd
|
||||||
|
from constants import *
|
||||||
|
from utils import *
|
||||||
|
|
||||||
|
throt_data = pd.DataFrame(columns=["model","noc","throttled percentage"])
|
||||||
|
sim_time_data = pd.DataFrame(columns=["model","noc","simulation time"])
|
||||||
|
el_tim_data = pd.DataFrame(columns=["model","noc","elapsed time"])
|
||||||
|
conf_time_data = pd.DataFrame(columns=["model","noc","configuration time"])
|
||||||
|
|
||||||
|
# process data
|
||||||
|
count = 0
|
||||||
|
for net, models in net_models.items():
|
||||||
|
for model in models:
|
||||||
|
conf_folder = result_folder + model
|
||||||
|
|
||||||
|
el_tim_data.loc[count] = [model, net, get_elapsed_time(conf_folder)]
|
||||||
|
throt_data.loc[count] = [model, net, get_throt_perc(conf_folder)]
|
||||||
|
sim_time_data.loc[count] = [model, net, get_sim_time(conf_folder)]
|
||||||
|
conf_time = 0 if net not in final_conf_tasks \
|
||||||
|
else get_conf_time(conf_folder, final_conf_tasks[net][model])
|
||||||
|
conf_time_data.loc[count] = [model, net, conf_time]
|
||||||
|
|
||||||
|
count += 1
|
||||||
|
|
||||||
|
# print graphs
|
||||||
|
plt.clf()
|
||||||
|
with open('results.txt', 'w') as f:
|
||||||
|
print("", file=f)
|
||||||
|
for i in range(len(list(net_models.values())[0])):
|
||||||
|
models = [model[i] for model in list(net_models.values())]
|
||||||
|
conf_models = [model[i] for model in list(net_models.values())
|
||||||
|
if "conf" in model[i]]
|
||||||
|
|
||||||
|
throt_table = throt_data[throt_data["model"].isin(models)]
|
||||||
|
generate_throttle_graph(throt_table, models[0])
|
||||||
|
|
||||||
|
sim_time_table = sim_time_data[sim_time_data["model"].isin(models)]
|
||||||
|
generate_sim_time_graph(sim_time_table, models[0])
|
||||||
|
|
||||||
|
el_tim_table = el_tim_data[el_tim_data["model"].isin(models)]
|
||||||
|
generate_el_time_graph(el_tim_table, models[0])
|
||||||
|
|
||||||
|
conf_table = conf_time_data[conf_time_data["model"].isin(conf_models)]
|
||||||
|
generate_conf_time_graph(conf_table, models[0])
|
84
scripts/generate_graphs/utils.py
Normal file
84
scripts/generate_graphs/utils.py
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
import pandas as pd
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import seaborn as sns
|
||||||
|
from constants import titles
|
||||||
|
|
||||||
|
TASK_COMP_CONF_LOG = "Task {} has all requirements fullfilled"
|
||||||
|
SEC_TO_MIN = 60
|
||||||
|
NS_TO_US = 1000
|
||||||
|
#NS_TO_MS = 1000000
|
||||||
|
|
||||||
|
def get_elapsed_time(conf_folder):
|
||||||
|
return round(pd.read_csv(conf_folder+"/elapsed_time.txt",
|
||||||
|
delimiter=":", header=None).iloc[0,1]/SEC_TO_MIN, 2)
|
||||||
|
|
||||||
|
def get_throt_perc(conf_folder):
|
||||||
|
throt_cnt = pd.read_csv(conf_folder+"/throttled_count.csv"
|
||||||
|
).sum().loc["throttled_count"]
|
||||||
|
pckt_cnt = pd.read_csv(conf_folder+"/packet_count.csv"
|
||||||
|
).sum().loc["packet_count"]
|
||||||
|
return round(100*throt_cnt/pckt_cnt, 2)
|
||||||
|
|
||||||
|
def get_sim_time(conf_folder):
|
||||||
|
with open(conf_folder+"/pe_tasks.log", "r") as f:
|
||||||
|
sim_time = int(f.readlines()[-1].strip().split(":")[0][:-3])/NS_TO_US
|
||||||
|
#sim_time = sim_time/NS_TO_MS if sim_time > NS_TO_MS else sim_time/NS_TO_US
|
||||||
|
#sim_time = sim_time/NS_TO_US
|
||||||
|
return round(sim_time, 2)
|
||||||
|
|
||||||
|
def get_conf_time(conf_folder, final_conf_task):
|
||||||
|
conf_line = TASK_COMP_CONF_LOG.format(final_conf_task)
|
||||||
|
with open(conf_folder+"/pe_tasks.log", "r") as f:
|
||||||
|
comp_conf_line = [line for line in f.readlines() if conf_line in line]
|
||||||
|
conf_time = int(comp_conf_line[0].strip().split(":")[0][:-3])/NS_TO_US
|
||||||
|
return round(conf_time, 2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def generate_throttle_graph(throt_table, model):
|
||||||
|
ax = sns.barplot(throt_table, x="noc", y="throttled percentage", hue="noc",
|
||||||
|
palette="Blues")
|
||||||
|
ax.set_title(titles[model])
|
||||||
|
for container in ax.containers:
|
||||||
|
ax.bar_label(container, fontsize=10)
|
||||||
|
|
||||||
|
plt.savefig("throttled_perc_"+model+".png")
|
||||||
|
with open('results.txt', 'a') as f:
|
||||||
|
print(throt_table, file=f)
|
||||||
|
plt.clf()
|
||||||
|
|
||||||
|
def generate_sim_time_graph(sim_time_table, model):
|
||||||
|
ax = sns.barplot(sim_time_table, x="noc", y="simulation time", hue="noc",
|
||||||
|
palette="Blues")
|
||||||
|
ax.set_title(titles[model]+" (us)")
|
||||||
|
for container in ax.containers:
|
||||||
|
ax.bar_label(container, fontsize=10)
|
||||||
|
|
||||||
|
plt.savefig("simulation_time_"+model+".png")
|
||||||
|
with open('results.txt', 'a') as f:
|
||||||
|
print(sim_time_table, file=f)
|
||||||
|
plt.clf()
|
||||||
|
|
||||||
|
def generate_el_time_graph(el_tim_table, model):
|
||||||
|
ax = sns.barplot(el_tim_table, x="noc", y="elapsed time", hue="noc",
|
||||||
|
palette="Blues")
|
||||||
|
ax.set_title(titles[model]+" (min)")
|
||||||
|
for container in ax.containers:
|
||||||
|
ax.bar_label(container, fontsize=10)
|
||||||
|
|
||||||
|
plt.savefig("elapsed_time_"+model+".png")
|
||||||
|
with open('results.txt', 'a') as f:
|
||||||
|
print(el_tim_table, file=f)
|
||||||
|
plt.clf()
|
||||||
|
|
||||||
|
def generate_conf_time_graph(conf_table, model):
|
||||||
|
ax = sns.barplot(conf_table, x="noc", y="configuration time", hue="noc",
|
||||||
|
palette="Blues")
|
||||||
|
ax.set_title("Circuit switching configuration time (us)")
|
||||||
|
for container in ax.containers:
|
||||||
|
ax.bar_label(container, fontsize=10)
|
||||||
|
|
||||||
|
plt.savefig("configuration_time_"+model+".png")
|
||||||
|
with open('results.txt', 'a') as f:
|
||||||
|
print(conf_table, file=f)
|
||||||
|
plt.clf()
|
|
@ -66,9 +66,9 @@ int sc_main(int arg_num, char *arg_vec[])
|
||||||
time(&end_time);
|
time(&end_time);
|
||||||
|
|
||||||
double system_elapsed_time = difftime(end_time, start_time);
|
double system_elapsed_time = difftime(end_time, start_time);
|
||||||
update_start_time(std::to_string(system_passed_time));
|
|
||||||
|
|
||||||
TlmReport& report = TlmReport::getInstance();
|
TlmReport& report = TlmReport::getInstance();
|
||||||
|
report.update_system_elapsed_time(std::to_string(system_elapsed_time));
|
||||||
report.write_report();
|
report.write_report();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -168,7 +168,7 @@ void NetworkInterfaceTlm::send_flit(PacketCS* p, Flit* f){
|
||||||
tlm::tlm_phase send_phase = tlm::BEGIN_REQ;
|
tlm::tlm_phase send_phase = tlm::BEGIN_REQ;
|
||||||
|
|
||||||
string type_name = get_type_name(p->dataType);
|
string type_name = get_type_name(p->dataType);
|
||||||
int lay = type_name == TYPE_STREAM ? 1:0;
|
int lay = (type_name.find(TYPE_STREAM) != string::npos) ? 1:0;
|
||||||
log_debug("Sending flit of type "+ type_name + " to layer "+to_string(lay));
|
log_debug("Sending flit of type "+ type_name + " to layer "+to_string(lay));
|
||||||
(*initiator[lay])->nb_transport_fw(*trans, send_phase, delay);
|
(*initiator[lay])->nb_transport_fw(*trans, send_phase, delay);
|
||||||
update_credits(*trans, -1);
|
update_credits(*trans, -1);
|
||||||
|
@ -312,7 +312,6 @@ void NetworkInterfaceTlm::init_peq_cb(tlm_gp& trans, const tlm::tlm_phase& phase
|
||||||
log_debug("Init PEQ callback start for packet "+to_string(p_id));
|
log_debug("Init PEQ callback start for packet "+to_string(p_id));
|
||||||
log_debug("Phase "+string(phase.get_name())+" received");
|
log_debug("Phase "+string(phase.get_name())+" received");
|
||||||
if (phase == tlm::END_REQ) {
|
if (phase == tlm::END_REQ) {
|
||||||
//update_credits(trans, 1);
|
|
||||||
curr_req = 0;
|
curr_req = 0;
|
||||||
if(p_id == -1){
|
if(p_id == -1){
|
||||||
// Config msg transaction ended, so packet can be scheduled for deletion
|
// Config msg transaction ended, so packet can be scheduled for deletion
|
||||||
|
@ -320,6 +319,9 @@ void NetworkInterfaceTlm::init_peq_cb(tlm_gp& trans, const tlm::tlm_phase& phase
|
||||||
unsigned char* data_ptr = trans.get_data_ptr();
|
unsigned char* data_ptr = trans.get_data_ptr();
|
||||||
Flit* received_flit = reinterpret_cast<Flit*>(data_ptr);
|
Flit* received_flit = reinterpret_cast<Flit*>(data_ptr);
|
||||||
PacketCS* p = dynamic_cast<PacketCS*>(received_flit->packet);
|
PacketCS* p = dynamic_cast<PacketCS*>(received_flit->packet);
|
||||||
|
if(get_type_name(p->dataType).find(TYPE_STREAM) != string::npos){
|
||||||
|
update_credits(trans, 1);
|
||||||
|
}
|
||||||
packet_recv_queue.push(p);
|
packet_recv_queue.push(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -422,7 +424,7 @@ void NetworkInterfaceTlm::receive_and_process_flit(tlm_gp& trans){
|
||||||
//log_info("Credit counter updated: "+to_string(credit_counter));
|
//log_info("Credit counter updated: "+to_string(credit_counter));
|
||||||
|
|
||||||
// send response if not type stream
|
// send response if not type stream
|
||||||
if(get_type_name(p->dataType) != TYPE_STREAM){
|
if(get_type_name(p->dataType).find(TYPE_STREAM) == string::npos){
|
||||||
if(resp_in_progress) {
|
if(resp_in_progress) {
|
||||||
log_info("Previous response transaction still in progress, scheduling it for next time");
|
log_info("Previous response transaction still in progress, scheduling it for next time");
|
||||||
nxt_resp_pend.push(&trans);
|
nxt_resp_pend.push(&trans);
|
||||||
|
@ -476,7 +478,7 @@ tlm::tlm_sync_enum NetworkInterfaceTlm::send_end_req(tlm_gp& trans){
|
||||||
// Queue the acceptance and the response with the appropriate latency
|
// Queue the acceptance and the response with the appropriate latency
|
||||||
tlm::tlm_phase bw_phase = tlm::END_REQ;
|
tlm::tlm_phase bw_phase = tlm::END_REQ;
|
||||||
sc_time delay = sc_time(REQ_END_DELAY, UNITS_DELAY); // Accept delay
|
sc_time delay = sc_time(REQ_END_DELAY, UNITS_DELAY); // Accept delay
|
||||||
int lay = type_name == TYPE_STREAM ? 1:0;
|
int lay = (type_name.find(TYPE_STREAM) != string::npos) ? 1:0;
|
||||||
tlm::tlm_sync_enum status = (*target[lay])->nb_transport_bw(trans,
|
tlm::tlm_sync_enum status = (*target[lay])->nb_transport_bw(trans,
|
||||||
bw_phase, delay);
|
bw_phase, delay);
|
||||||
if (status == tlm::TLM_COMPLETED) {
|
if (status == tlm::TLM_COMPLETED) {
|
||||||
|
@ -486,7 +488,7 @@ tlm::tlm_sync_enum NetworkInterfaceTlm::send_end_req(tlm_gp& trans){
|
||||||
}
|
}
|
||||||
|
|
||||||
// Queue internal event to mark beginning of response
|
// Queue internal event to mark beginning of response
|
||||||
delay = type_name != TYPE_STREAM ?
|
delay = (type_name.find(TYPE_STREAM) == string::npos) ?
|
||||||
delay + sc_time(INTERN_PROC_DELAY, UNITS_DELAY) :
|
delay + sc_time(INTERN_PROC_DELAY, UNITS_DELAY) :
|
||||||
SC_ZERO_TIME; // no processing on stream
|
SC_ZERO_TIME; // no processing on stream
|
||||||
target_peq.notify(trans, INTERNAL_PROC_PHASE, delay);
|
target_peq.notify(trans, INTERNAL_PROC_PHASE, delay);
|
||||||
|
@ -523,7 +525,7 @@ void NetworkInterfaceTlm::update_credits(tlm_gp&trans, int added_creds){
|
||||||
int p_id = get_packet_id_from_extension(trans);
|
int p_id = get_packet_id_from_extension(trans);
|
||||||
//if(type_name == TYPE_PACKET || (type_name == TYPE_ROUT_CONFIG && p_id != -1)){
|
//if(type_name == TYPE_PACKET || (type_name == TYPE_ROUT_CONFIG && p_id != -1)){
|
||||||
if (!((type_name == TYPE_ROUT_CONFIG && p_id == -1) ||
|
if (!((type_name == TYPE_ROUT_CONFIG && p_id == -1) ||
|
||||||
type_name == TYPE_STREAM)){
|
(type_name.find(TYPE_STREAM) != string::npos))){
|
||||||
credit_counter += added_creds;
|
credit_counter += added_creds;
|
||||||
log_info("Credit counter updated: "+to_string(credit_counter));
|
log_info("Credit counter updated: "+to_string(credit_counter));
|
||||||
}
|
}
|
||||||
|
|
|
@ -266,6 +266,11 @@ public:
|
||||||
*/
|
*/
|
||||||
void update_credits(tlm_gp&trans, int added_creds);
|
void update_credits(tlm_gp&trans, int added_creds);
|
||||||
|
|
||||||
|
/** Log debug
|
||||||
|
* @param msg log message
|
||||||
|
*/
|
||||||
|
void log_debug(string msg);
|
||||||
|
|
||||||
/** Log info
|
/** Log info
|
||||||
* @param msg log message
|
* @param msg log message
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -73,7 +73,10 @@ void ProcessingElementCS::thread(){
|
||||||
// Explain: countLeft is for sending, neededAmount is for receiving
|
// Explain: countLeft is for sending, neededAmount is for receiving
|
||||||
countLeft.at(dest)--;
|
countLeft.at(dest)--;
|
||||||
log_send_rec("Task " + curr_task_id + " sent a packet of type " +
|
log_send_rec("Task " + curr_task_id + " sent a packet of type " +
|
||||||
std::to_string(dest.dataType) + " destined for task " +
|
std::to_string(dest.dataType) + " (msg: " +
|
||||||
|
std::to_string(dest.msg.config_link) + "-" +
|
||||||
|
std::to_string(dest.msg.dest_link) + ")" +
|
||||||
|
" destined for task " +
|
||||||
std::to_string(dest.destinationTask) +
|
std::to_string(dest.destinationTask) +
|
||||||
" (repeat count: " +
|
" (repeat count: " +
|
||||||
std::to_string(taskRepeatLeft.at(destToTask.at(dest))) +
|
std::to_string(taskRepeatLeft.at(destToTask.at(dest))) +
|
||||||
|
@ -182,12 +185,13 @@ void ProcessingElementCS::execute(TaskCS& task)
|
||||||
else {
|
else {
|
||||||
// EXPLAIN: go through all requirements and add them to lists
|
// EXPLAIN: go through all requirements and add them to lists
|
||||||
for (DataRequirement& r : task.requirements) {
|
for (DataRequirement& r : task.requirements) {
|
||||||
log_info("Requirement of type "+std::to_string(r.dataType)+
|
log_info("Requirement of id " + std::to_string(r.id) +
|
||||||
|
" of type " + std::to_string(r.dataType) +
|
||||||
" created for task " + std::to_string(task.id));
|
" created for task " + std::to_string(task.id));
|
||||||
neededFor[r.dataType].insert(task);
|
neededFor[r.dataType].insert(task);
|
||||||
int amount_req = globalResources.getRandomIntBetween(r.minCount, r.maxCount);
|
int amount_req = globalResources.getRandomIntBetween(r.minCount, r.maxCount);
|
||||||
neededAmount[std::make_pair(task, r.dataType)] = amount_req;
|
neededAmount[std::make_pair(task, r.dataType)] = amount_req;
|
||||||
neededAmountHold[std::make_pair(task, r.dataType)] = amount_req;
|
//neededAmountHold[std::make_pair(task, r.dataType)] = amount_req;
|
||||||
needs[task].insert(r.dataType);
|
needs[task].insert(r.dataType);
|
||||||
}
|
}
|
||||||
// maybe all packets have arrived so we check the requirements
|
// maybe all packets have arrived so we check the requirements
|
||||||
|
@ -219,7 +223,7 @@ void ProcessingElementCS::receive()
|
||||||
receivedData[type] = 1;
|
receivedData[type] = 1;
|
||||||
}
|
}
|
||||||
log_send_rec("Packet from type " + std::to_string(type) +
|
log_send_rec("Packet from type " + std::to_string(type) +
|
||||||
" arrived at PE " + std::to_string(this->id) + " from node " +
|
" arrived at PE " + std::string(this->name()) + " from node " +
|
||||||
std::to_string(received_packet->src.id) +
|
std::to_string(received_packet->src.id) +
|
||||||
" - current received packet counter: " + std::to_string(receivedData[type]));
|
" - current received packet counter: " + std::to_string(receivedData[type]));
|
||||||
|
|
||||||
|
@ -238,20 +242,25 @@ void ProcessingElementCS::startSending(TaskCS& task)
|
||||||
// EXPLAIN: There are multiple possibilities where to send the data. Select one based on probability
|
// EXPLAIN: There are multiple possibilities where to send the data. Select one based on probability
|
||||||
float rn = globalResources.getRandomFloatBetween(0, 1);
|
float rn = globalResources.getRandomFloatBetween(0, 1);
|
||||||
int numOfPoss = task.possibilities.size();
|
int numOfPoss = task.possibilities.size();
|
||||||
|
int numOfDests = 0;
|
||||||
|
if(numOfPoss) {
|
||||||
|
numOfDests = task.possibilities.at(0).dataDestinations.size();
|
||||||
|
}
|
||||||
// for tasks with no destinations, only requirements
|
// for tasks with no destinations, only requirements
|
||||||
if (!numOfPoss) {
|
if (!numOfDests) {
|
||||||
|
taskRepeatLeft.at(task)--;
|
||||||
if (taskRepeatLeft.at(task)){
|
if (taskRepeatLeft.at(task)){
|
||||||
for (DataRequirement& r : task.requirements) {
|
for (DataRequirement& r : task.requirements) {
|
||||||
log_info("Requirement of type "+std::to_string(r.dataType)+
|
log_info("Requirement of id " + std::to_string(r.id) +
|
||||||
|
" of type " + std::to_string(r.dataType) +
|
||||||
" created for task " + std::to_string(task.id));
|
" created for task " + std::to_string(task.id));
|
||||||
neededFor[r.dataType].insert(task);
|
neededFor[r.dataType].insert(task);
|
||||||
int amount_req = globalResources.getRandomIntBetween(r.minCount, r.maxCount);
|
int amount_req = globalResources.getRandomIntBetween(r.minCount, r.maxCount);
|
||||||
neededAmount[std::make_pair(task, r.dataType)] = amount_req;
|
neededAmount[std::make_pair(task, r.dataType)] = amount_req;
|
||||||
neededAmountHold[std::make_pair(task, r.dataType)] = amount_req;
|
//neededAmountHold[std::make_pair(task, r.dataType)] = amount_req;
|
||||||
needs[task].insert(r.dataType);
|
needs[task].insert(r.dataType);
|
||||||
}
|
}
|
||||||
checkNeed();
|
checkNeed();
|
||||||
taskRepeatLeft.at(task)--;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,6 +318,9 @@ void ProcessingElementCS::checkNeed()
|
||||||
an error where the requirement in a task wouldn't be read */
|
an error where the requirement in a task wouldn't be read */
|
||||||
// uncommented because data that had arrived wasn't diminishing from neededAmount counter
|
// uncommented because data that had arrived wasn't diminishing from neededAmount counter
|
||||||
neededAmount.at(pair) -= receivedData.at(type);
|
neededAmount.at(pair) -= receivedData.at(type);
|
||||||
|
log_send_rec("Received data of type " + std::to_string(type)+
|
||||||
|
" for task " + std::to_string(t.id) + ": " +
|
||||||
|
std::to_string(receivedData.at(type)));
|
||||||
//neededAmount.at(pair)--;
|
//neededAmount.at(pair)--;
|
||||||
/* This line was commented out because if a task requires several packets from several data types,
|
/* This line was commented out because if a task requires several packets from several data types,
|
||||||
it says that the task is finished receiving the required packets while in fact, it still needs some packets.
|
it says that the task is finished receiving the required packets while in fact, it still needs some packets.
|
||||||
|
@ -352,20 +364,20 @@ void ProcessingElementCS::checkNeed()
|
||||||
|
|
||||||
/******************* LOG FUNCTIONS ********************/
|
/******************* LOG FUNCTIONS ********************/
|
||||||
void ProcessingElementCS::log_info(std::string msg){
|
void ProcessingElementCS::log_info(std::string msg){
|
||||||
SC_REPORT_INFO(PE_LOG, ("ID->" + std::to_string(this->id) + ": " + msg).c_str());
|
SC_REPORT_INFO(PE_LOG, ("PE->" + std::string(this->name()) + ": " + msg).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProcessingElementCS::log_warn(std::string msg){
|
void ProcessingElementCS::log_warn(std::string msg){
|
||||||
SC_REPORT_WARNING(PE_LOG, ("ID->" + std::to_string(this->id) + ": " + msg).c_str());
|
SC_REPORT_WARNING(PE_LOG, ("PE->" + std::string(this->name()) + ": " + msg).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProcessingElementCS::log_error(std::string msg){
|
void ProcessingElementCS::log_error(std::string msg){
|
||||||
SC_REPORT_ERROR(PE_LOG, ("ID->" + std::to_string(this->id) + ": " + msg).c_str());
|
SC_REPORT_ERROR(PE_LOG, ("PE->" + std::string(this->name()) + ": " + msg).c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProcessingElementCS::log_send_rec(std::string msg){
|
void ProcessingElementCS::log_send_rec(std::string msg){
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
SC_REPORT_INFO(PE_PG_LOG, ("ID->" + std::to_string(this->id) + ": " + msg).c_str());
|
SC_REPORT_INFO(PE_PG_LOG, ("PE->" + std::string(this->name()) + ": " + msg).c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ public:
|
||||||
std::map<dataTypeID_t, std::set<TaskCS>> neededFor;
|
std::map<dataTypeID_t, std::set<TaskCS>> neededFor;
|
||||||
std::map<std::pair<TaskCS, dataTypeID_t>, int> neededAmount;
|
std::map<std::pair<TaskCS, dataTypeID_t>, int> neededAmount;
|
||||||
// this variable holds the value of neededAmount (doesn't decrease)
|
// this variable holds the value of neededAmount (doesn't decrease)
|
||||||
std::map<std::pair<TaskCS, dataTypeID_t>, int> neededAmountHold;
|
//std::map<std::pair<TaskCS, dataTypeID_t>, int> neededAmountHold;
|
||||||
std::map<TaskCS, std::set<dataTypeID_t>> needs;
|
std::map<TaskCS, std::set<dataTypeID_t>> needs;
|
||||||
std::map<dataTypeID_t, int> receivedData;
|
std::map<dataTypeID_t, int> receivedData;
|
||||||
std::map<DataDestinationCS, TaskCS> destToTask;
|
std::map<DataDestinationCS, TaskCS> destToTask;
|
||||||
|
|
|
@ -195,19 +195,20 @@ void TlmRouter::init_peq_cb(tlm_gp& trans, const tlm_phase& phase){
|
||||||
": " + to_string(credit_counter[link]));
|
": " + to_string(credit_counter[link]));
|
||||||
send_end_response(link, trans);
|
send_end_response(link, trans);
|
||||||
// Moved here, because here is where the credits are received
|
// Moved here, because here is where the credits are received
|
||||||
log_debug(link, trans, "Issuing next request");
|
|
||||||
start_pend_req(link, trans);
|
start_pend_req(link, trans);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void TlmRouter::start_pend_req(int rel_link, tlm_gp& trans){
|
void TlmRouter::start_pend_req(int rel_link, tlm_gp& trans){
|
||||||
|
log_debug(rel_link, trans, "Checking if request are pending");
|
||||||
// find pending link
|
// find pending link
|
||||||
for(uint8_t dir=0; dir<Direction::num_dirs; dir++){
|
for(uint8_t dir=0; dir<Direction::num_dirs; dir++){
|
||||||
if( !nxt_send_data_pend[dir].empty() ){
|
if( !nxt_send_data_pend[dir].empty() ){
|
||||||
// check pending link valid and send data
|
// check pending link valid and send data
|
||||||
Direction rel_dest = send_data_in_prog_dest[dir].front();
|
Direction rel_dest = send_data_in_prog_dest[dir].front();
|
||||||
if(rel_dest == rel_link){
|
if(rel_dest == rel_link){
|
||||||
|
log_debug(rel_link, trans, "Issuing next request");
|
||||||
tlm_gp* nxt_trans = nxt_send_data_pend[dir].front();
|
tlm_gp* nxt_trans = nxt_send_data_pend[dir].front();
|
||||||
bool data_sent = send_data(dir, rel_link, *nxt_trans);
|
bool data_sent = send_data(dir, rel_link, *nxt_trans);
|
||||||
if (!data_sent){
|
if (!data_sent){
|
||||||
|
|
|
@ -149,11 +149,10 @@ tlm_sync_enum TlmRouterCS::send_end_req(int link, tlm_gp& trans){
|
||||||
trans.release();
|
trans.release();
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
delay = SC_ZERO_TIME; // no processing in circuit switching routers
|
delay = INTERN_PROC_CS_DELAY;
|
||||||
// Queue internal event to mark beginning of response
|
// Queue internal event to mark beginning of response
|
||||||
string type_name = get_type_name(get_type_from_extension(trans));
|
string type_name = get_type_name(get_type_from_extension(trans));
|
||||||
phase = (type_name == TYPE_STREAM) ? INTERNAL_PROC_PHASE :
|
phase = type_name !="ConfigRouter" ? INTERNAL_PROC_PHASE : CONF_ROUT_PHASE;
|
||||||
CONF_ROUT_PHASE;
|
|
||||||
log_info(link, trans, "Type of processed message: " + type_name);
|
log_info(link, trans, "Type of processed message: " + type_name);
|
||||||
target_peq.notify(trans, phase, delay);
|
target_peq.notify(trans, phase, delay);
|
||||||
|
|
||||||
|
@ -169,7 +168,6 @@ void TlmRouterCS::switching(int link, tlm_gp& trans){
|
||||||
if (destination == Dir::num_dirs) {
|
if (destination == Dir::num_dirs) {
|
||||||
data_sent = true;
|
data_sent = true;
|
||||||
check_transaction(link, trans);
|
check_transaction(link, trans);
|
||||||
// change to fatal?
|
|
||||||
log_warn(link, trans, "Routing failed. Message couldn't be delivered");
|
log_warn(link, trans, "Routing failed. Message couldn't be delivered");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -182,6 +180,19 @@ void TlmRouterCS::switching(int link, tlm_gp& trans){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TlmRouterCS::send_data(int link, int dest_link, tlm_gp& trans){
|
||||||
|
log_debug(link,trans,"Send data to link:"+DIR::toString(dest_link));
|
||||||
|
// check credits or that previous message is complete
|
||||||
|
if (credit_counter[dest_link] > 0){
|
||||||
|
send_begin_req(link, trans, dest_link);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
log_warn(link,trans, "Waiting for downstream Router!");
|
||||||
|
report.update_throttled_count(router_name);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int TlmRouterCS::get_type_from_extension(tlm_gp& trans){
|
int TlmRouterCS::get_type_from_extension(tlm_gp& trans){
|
||||||
link_extension* extension;
|
link_extension* extension;
|
||||||
|
|
|
@ -96,6 +96,16 @@ class TlmRouterCS : public TlmRouter{
|
||||||
*/
|
*/
|
||||||
void switching(int link, tlm_gp& trans);
|
void switching(int link, tlm_gp& trans);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send data
|
||||||
|
*
|
||||||
|
* @param link active link
|
||||||
|
* @param dest_link destination link to send the data to
|
||||||
|
* @param trans TLM generic payload object
|
||||||
|
* @return true if data was sent, otherwise, false
|
||||||
|
*/
|
||||||
|
bool send_data(int link, int dest_link, tlm_gp& trans);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Begin request
|
* Begin request
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
/*******************************************************************************
|
|
||||||
* Copyright (C) 2024 Juan Neyra
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
|
||||||
* in the Software without restriction, including without limitation the rights
|
|
||||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
* copies of the Software, and to permit persons to whom the Software is
|
|
||||||
* furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
* SOFTWARE.
|
|
||||||
******************************************************************************/
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "systemc.h"
|
|
||||||
#include <set>
|
|
||||||
#include <utils/PacketFactoryCS.h>
|
|
||||||
|
|
||||||
#include "ratatoskrUtils/utils/GlobalResources.h"
|
|
||||||
#include "ratatoskrUtils/utils/GlobalReport.h"
|
|
||||||
#include "ratatoskrUtils/utils/Report.h"
|
|
||||||
#include "ratatoskrUtils/container/Container.h"
|
|
||||||
|
|
||||||
class NetworkParticipantCS {
|
|
||||||
public:
|
|
||||||
GlobalResources& globalResources = GlobalResources::getInstance();
|
|
||||||
GlobalReport& globalReport = GlobalReport::getInstance();
|
|
||||||
Report& rep = Report::getInstance();
|
|
||||||
PacketFactoryCS& packetFactory = PacketFactoryCS::getInstance();
|
|
||||||
|
|
||||||
virtual void initialize() = 0;
|
|
||||||
|
|
||||||
virtual void bind(Connection*, SignalContainer*, SignalContainer*) = 0;
|
|
||||||
|
|
||||||
~NetworkParticipantCS() = default;
|
|
||||||
};
|
|
|
@ -31,17 +31,19 @@
|
||||||
|
|
||||||
using namespace sc_dt;
|
using namespace sc_dt;
|
||||||
|
|
||||||
#define DEBUG false
|
#define DEBUG true
|
||||||
|
|
||||||
// router paremters
|
// router paremters
|
||||||
#define NUM_CREDITS 7
|
#define NUM_CREDITS 7
|
||||||
// router delays
|
// router delays
|
||||||
#define REQ_INIT_DELAY 10
|
//clk=1GHz
|
||||||
#define REQ_END_DELAY 10
|
#define REQ_INIT_DELAY 1
|
||||||
|
#define REQ_END_DELAY 1
|
||||||
#define INTERN_PROC_DELAY 100
|
#define INTERN_PROC_DELAY 100
|
||||||
#define RESP_END_DELAY 10
|
#define INTERN_PROC_CS_DELAY 10
|
||||||
|
#define RESP_END_DELAY 1
|
||||||
#define UNITS_DELAY SC_NS
|
#define UNITS_DELAY SC_NS
|
||||||
|
//write in report
|
||||||
// types
|
// types
|
||||||
typedef tlm::tlm_generic_payload tlm_gp;
|
typedef tlm::tlm_generic_payload tlm_gp;
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ void TlmReport::write_report(){
|
||||||
|
|
||||||
cout << "Writing system elapsed time" << endl << endl;
|
cout << "Writing system elapsed time" << endl << endl;
|
||||||
stringstream ss_msg_elapsed_time;
|
stringstream ss_msg_elapsed_time;
|
||||||
ss_msg_throttled << "Elapsed time: " << this->system_elapsed_time << endl;
|
ss_msg_elapsed_time << "Elapsed time: " << this->system_elapsed_time << endl;
|
||||||
|
|
||||||
log_file.open(ELAPSED_TIME_FILE);
|
log_file.open(ELAPSED_TIME_FILE);
|
||||||
log_file << ss_msg_elapsed_time.str();
|
log_file << ss_msg_elapsed_time.str();
|
||||||
|
|
|
@ -57,7 +57,7 @@ class TlmReport {
|
||||||
/**
|
/**
|
||||||
* Updates system elapsed time attribute
|
* Updates system elapsed time attribute
|
||||||
*/
|
*/
|
||||||
void update_system_elapsed_time(string system_elapsed_time)
|
void update_system_elapsed_time(string system_elapsed_time);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::map<string, int> packet_count;
|
std::map<string, int> packet_count;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue