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
|
||||
out
|
||||
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)
|
||||
|
||||
# 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: Add system's clock timestamp to calculate how much time it takes to run DONE (needs testing)
|
||||
# TODO: Test all one more time
|
||||
# TODO: Run everything again
|
|
@ -93,7 +93,7 @@
|
|||
<interval min="100" max="100"/>
|
||||
<count min="1" max="1"/>
|
||||
<type value="0"/>
|
||||
<task value="6"/>
|
||||
<task value="7"/>
|
||||
</destination>
|
||||
</destinations>
|
||||
</possibility>
|
||||
|
@ -120,7 +120,7 @@
|
|||
<interval min="100" max="100"/>
|
||||
<count min="1" max="1"/>
|
||||
<type value="0"/>
|
||||
<task value="6"/>
|
||||
<task value="7"/>
|
||||
</destination>
|
||||
</destinations>
|
||||
</possibility>
|
||||
|
@ -147,7 +147,7 @@
|
|||
<interval min="100" max="100"/>
|
||||
<count min="1" max="1"/>
|
||||
<type value="0"/>
|
||||
<task value="6"/>
|
||||
<task value="7"/>
|
||||
</destination>
|
||||
</destinations>
|
||||
</possibility>
|
||||
|
@ -174,7 +174,7 @@
|
|||
<interval min="100" max="100"/>
|
||||
<count min="1" max="1"/>
|
||||
<type value="0"/>
|
||||
<task value="6"/>
|
||||
<task value="7"/>
|
||||
</destination>
|
||||
</destinations>
|
||||
</possibility>
|
||||
|
@ -201,7 +201,7 @@
|
|||
<interval min="100" max="100"/>
|
||||
<count min="1" max="1"/>
|
||||
<type value="0"/>
|
||||
<task value="6"/>
|
||||
<task value="7"/>
|
||||
</destination>
|
||||
</destinations>
|
||||
</possibility>
|
||||
|
@ -214,9 +214,9 @@
|
|||
<repeat max="1" min="1"/>
|
||||
<requires>
|
||||
<requirement id="0">
|
||||
<type value="0"/>
|
||||
<type value="2"/>
|
||||
<source value="0"/>
|
||||
<count max="5" min="5"/>
|
||||
<count max="1" min="1"/>
|
||||
</requirement>
|
||||
</requires>
|
||||
<generates>
|
||||
|
@ -227,35 +227,7 @@
|
|||
<delay min="0" max="100"/>
|
||||
<interval min="100" max="100"/>
|
||||
<count min="1" max="1"/>
|
||||
<type value="1"/>
|
||||
<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"/>
|
||||
<type value="0"/>
|
||||
<task value="7"/>
|
||||
</destination>
|
||||
</destinations>
|
||||
|
@ -269,11 +241,53 @@
|
|||
<repeat max="1" min="1"/>
|
||||
<requires>
|
||||
<requirement id="0">
|
||||
<type value="1"/>
|
||||
<source value="4"/>
|
||||
<type value="0"/>
|
||||
<source value="6"/>
|
||||
<count max="6" min="6"/>
|
||||
</requirement>
|
||||
</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 id="8">
|
||||
|
@ -306,6 +320,11 @@
|
|||
<source value="0"/>
|
||||
<count max="4" min="4"/>
|
||||
</requirement>
|
||||
<requirement id="1">
|
||||
<type value="0"/>
|
||||
<source value="0"/>
|
||||
<count max="5" min="5"/>
|
||||
</requirement>
|
||||
</requires>
|
||||
</task>
|
||||
|
||||
|
|
|
@ -5,15 +5,15 @@
|
|||
<outputToFile value="true">report</outputToFile>
|
||||
</general>
|
||||
<noc>
|
||||
<nocFile>config/efficienet/net.xml</nocFile>
|
||||
<nocFile>config/efficienet/net_conf.xml</nocFile>
|
||||
<flitsPerPacket value="1"/>
|
||||
<bitWidth value="32"/>
|
||||
<Vdd value="5"/>
|
||||
</noc>
|
||||
<application>
|
||||
<benchmark>task</benchmark>
|
||||
<dataFile>config/efficienet/data_Flits.xml</dataFile>
|
||||
<mapFile>config/efficienet/map.xml</mapFile>
|
||||
<dataFile>config/efficienet/data_Flits_conf.xml</dataFile>
|
||||
<mapFile>config/efficienet/map_conf.xml</mapFile>
|
||||
</application>
|
||||
<verbose>
|
||||
<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>
|
||||
</general>
|
||||
<noc>
|
||||
<nocFile>config/mobilenet/net.xml</nocFile>
|
||||
<nocFile>config/mobilenet/net_conf.xml</nocFile>
|
||||
<flitsPerPacket value="1"/>
|
||||
<bitWidth value="32"/>
|
||||
<Vdd value="5"/>
|
||||
</noc>
|
||||
<application>
|
||||
<benchmark>task</benchmark>
|
||||
<dataFile>config/mobilenet/data_R1000.xml</dataFile>
|
||||
<mapFile>config/mobilenet/map.xml</mapFile>
|
||||
<dataFile>config/mobilenet/data_R1000_conf_non_opt.xml</dataFile>
|
||||
<mapFile>config/mobilenet/map_conf_non_opt.xml</mapFile>
|
||||
</application>
|
||||
<verbose>
|
||||
<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
3140
config/efficienet/data_old.xml → config/mobilenet/data_R1000_conf_non_opt.xml
Executable file → Normal file
3140
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>
|
||||
</general>
|
||||
<noc>
|
||||
<nocFile>config/ai_test2/net.xml</nocFile>
|
||||
<nocFile>config/mobilenet_fb/net_conf.xml</nocFile>
|
||||
<flitsPerPacket value="1"/>
|
||||
<bitWidth value="32"/>
|
||||
<Vdd value="5"/>
|
||||
</noc>
|
||||
<application>
|
||||
<benchmark>task</benchmark>
|
||||
<dataFile>config/ai_test2/data.xml</dataFile>
|
||||
<mapFile>config/ai_test2/map.xml</mapFile>
|
||||
<dataFile>config/mobilenet_fb/data_conf.xml</dataFile>
|
||||
<mapFile>config/mobilenet_fb/map_conf.xml</mapFile>
|
||||
</application>
|
||||
<verbose>
|
||||
<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>
|
||||
</general>
|
||||
<noc>
|
||||
<nocFile>config/simple_test/net.xml</nocFile>
|
||||
<nocFile>config/simple_2_layer_test/net.xml</nocFile>
|
||||
<flitsPerPacket value="1"/>
|
||||
<bitWidth value="32"/>
|
||||
<Vdd value="5"/>
|
||||
|
|
|
@ -179,20 +179,10 @@
|
|||
<requirement id="0">
|
||||
<type value="1"/>
|
||||
<source value="4"/>
|
||||
<count max="1" min="1"/>
|
||||
</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"/>
|
||||
<count max="3" min="3"/>
|
||||
</requirement>
|
||||
</requires>
|
||||
</task>
|
||||
|
||||
<!--multiple requirement of the same type seems to not work-->
|
||||
</tasks>
|
||||
</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 *
|
||||
# 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
|
||||
sourc_y = 1
|
||||
#dest_x = [0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]
|
||||
#dest_y = [1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
|
||||
|
||||
dest_x = 3
|
||||
dest_y = 3
|
||||
# non 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]
|
||||
|
||||
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
|
||||
print("**********************FOR data.xml**********************")
|
||||
id = write_config_tasks(sourc_x, sourc_y, dest_x, dest_y, id, rout_type)
|
||||
routing_typ = 0 # xy routing
|
||||
|
||||
print()
|
||||
|
||||
print("**********************FOR map.xml**********************")
|
||||
write_map(sourc_x, sourc_y, dest_x, dest_y, id, rout_type)
|
||||
start_task = 29
|
||||
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
|
||||
|
||||
GEN_TASK_START = """ <tasks>
|
||||
<task id="0">
|
||||
GEN_TASK_START = """
|
||||
<task id="{}">
|
||||
<start min="0" max="0"/>
|
||||
<duration min="-1" max="-1"/>
|
||||
<repeat min="1" max="1"/>
|
||||
|
@ -21,7 +21,6 @@ REQ_TASK_START = """ <task id="{}">
|
|||
<duration max="-1" min="-1"/>
|
||||
<repeat max="1" min="1"/>"""
|
||||
|
||||
REQ_TASK_END = " </task>"
|
||||
|
||||
LAST_TASK = """ <task id="{}">
|
||||
<start max="0" min="0"/>
|
||||
|
@ -29,8 +28,8 @@ LAST_TASK = """ <task id="{}">
|
|||
<repeat max="1" min="1"/>
|
||||
<requires>
|
||||
<requirement id="0">
|
||||
<type value="0"/>
|
||||
<source value="0"/>
|
||||
<type value="{}"/>
|
||||
<source value="{}"/>
|
||||
<count max="{}" min="{}"/>
|
||||
</requirement>
|
||||
</requires>
|
||||
|
@ -38,8 +37,8 @@ LAST_TASK = """ <task id="{}">
|
|||
|
||||
REQ_TASK_REQ = """ <requires>
|
||||
<requirement id="0">
|
||||
<type value="2"/>
|
||||
<source value="0"/>
|
||||
<type value="{}"/>
|
||||
<source value="{}"/>
|
||||
<count max="1" min="1"/>
|
||||
</requirement>
|
||||
</requires>"""
|
||||
|
@ -49,23 +48,24 @@ REQ_TASK_GEN = """ <generates>
|
|||
<probability value="1"/>
|
||||
<destinations>
|
||||
<destination id="0">
|
||||
<delay min="0" max="100"/>
|
||||
<interval min="100" max="100"/>
|
||||
<delay min="50" max="50"/>
|
||||
<interval min="20" max="20"/>
|
||||
<count min="1" max="1"/>
|
||||
<type value="0"/>
|
||||
<type value="{}"/>
|
||||
<task value="{}"/>
|
||||
</destination>
|
||||
</destinations>
|
||||
</possibility>
|
||||
</generates>"""
|
||||
</generates>
|
||||
</task>"""
|
||||
|
||||
DEST_HEADER = " <destination id=\"{}\">"
|
||||
DEST_H_END = " </destination>"
|
||||
|
||||
DELAY_TAG = " <delay min=\"0\" max=\"100\"/>"
|
||||
INTERVAL_TAG = " <interval min=\"100\" max=\"100\"/>"
|
||||
DELAY_TAG = " <delay min=\"50\" max=\"50\"/>"
|
||||
INTERVAL_TAG = " <interval min=\"20\" max=\"20\"/>"
|
||||
COUNT_TAG = " <count min=\"1\" max=\"1\"/>"
|
||||
TYPE_TAG = " <type value=\"2\"/>"
|
||||
TYPE_TAG = " <type value=\"{}\"/>"
|
||||
TASK_TAG = " <task value=\"{}\"/>"
|
||||
CONFIG_TAG = " <config link=\"{}\" destination=\"{}\"/>"
|
||||
|
||||
|
@ -76,6 +76,18 @@ 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):
|
||||
LOCAL = 0
|
||||
EAST = 1
|
||||
|
|
|
@ -1,107 +1,275 @@
|
|||
from templates import *
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
def get_opposs_dir(dir):
|
||||
if DIRS.LOCAL:
|
||||
if dir == DIRS.LOCAL:
|
||||
return DIRS.LOCAL
|
||||
elif DIRS.EAST:
|
||||
elif dir == DIRS.EAST:
|
||||
return DIRS.WEST
|
||||
elif DIRS.WEST:
|
||||
elif dir == DIRS.WEST:
|
||||
return DIRS.EAST
|
||||
elif DIRS.NORTH:
|
||||
elif dir == DIRS.NORTH:
|
||||
return DIRS.SOUTH
|
||||
elif DIRS.SOUTH:
|
||||
elif dir == DIRS.SOUTH:
|
||||
return DIRS.NORTH
|
||||
elif DIRS.UP:
|
||||
elif dir == DIRS.UP:
|
||||
return DIRS.DOWN
|
||||
elif DIRS.DOWN:
|
||||
elif dir == DIRS.DOWN:
|
||||
return DIRS.UP
|
||||
else:
|
||||
return DIRS.INVALID
|
||||
|
||||
|
||||
def write_one_dir_config_tasks(sourc, dest, id, dir, prev_dir, last_dir):
|
||||
for x in range(sourc, dest):
|
||||
print(DEST_HEADER.format(id))
|
||||
print(DELAY_TAG)
|
||||
print(INTERVAL_TAG)
|
||||
print(COUNT_TAG)
|
||||
print(TYPE_TAG)
|
||||
print(TASK_TAG.format(id+1))
|
||||
if x == sourc:
|
||||
class ConfigTaskWriter:
|
||||
def __init__(self, sourc, dest, routing_typ, start_task, start_type, #start_conf_type_id,
|
||||
start_pack_type_id, use_spec_task=False, spec_task_id=0):
|
||||
self.sourc = sourc
|
||||
self.dest = dest
|
||||
self.routing_typ = routing_typ
|
||||
self.start_task = start_task
|
||||
self.start_type = start_type
|
||||
#self.start_conf_type_id = start_conf_type_id
|
||||
self.start_pack_type_id = start_pack_type_id
|
||||
self.use_spec_task = use_spec_task
|
||||
self.spec_task_id = spec_task_id
|
||||
self.task_count = 0
|
||||
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 == dest:
|
||||
elif x == xf-1:
|
||||
link = get_opposs_dir(dir).value
|
||||
dest = last_dir.value
|
||||
else:
|
||||
link = get_opposs_dir(dir).value
|
||||
dest = dir.value
|
||||
print(CONFIG_TAG.format(link, dest))
|
||||
print(DEST_H_END)
|
||||
id+=1
|
||||
return id
|
||||
|
||||
def write_req_task(id):
|
||||
for i in range(1, id):
|
||||
print()
|
||||
print(REQ_TASK_START.format(i))
|
||||
print(REQ_TASK_REQ)
|
||||
print(REQ_TASK_GEN.format(id))
|
||||
print(REQ_TASK_END)
|
||||
return id
|
||||
self.xml_data += CONFIG_TAG.format(link, dest) + "\n"
|
||||
self.xml_data += DEST_H_END + "\n"
|
||||
self.task_count += 1
|
||||
|
||||
|
||||
def write_config_tasks(sourc_x, sourc_y, dest_x, dest_y, id, rout_type):
|
||||
if rout_type == 0: # XY routing
|
||||
print(GEN_TASK_START)
|
||||
dir = DIRS.EAST if dest_x > sourc_x else DIRS.WEST
|
||||
id = write_one_dir_config_tasks(sourc_x, dest_x, id, dir, DIRS.LOCAL, dir)
|
||||
|
||||
prev_dir = dir
|
||||
dir = DIRS.NORTH if dest_y > sourc_y else DIRS.SOUTH
|
||||
id = write_one_dir_config_tasks(sourc_y, dest_y+1, id, dir, prev_dir, DIRS.LOCAL)
|
||||
print(GEN_TASK_END)
|
||||
|
||||
write_req_task(id)
|
||||
print()
|
||||
print(LAST_TASK.format(id, id-1, id-1))
|
||||
|
||||
elif rout_type==1: # YX routing
|
||||
print(GEN_TASK_START)
|
||||
|
||||
dir = DIRS.NORTH if dest_y > sourc_y else DIRS.SOUTH
|
||||
id = write_one_dir_config_tasks(sourc_y, dest_y, id, dir, DIRS.LOCAL, dir)
|
||||
|
||||
prev_dir = dir
|
||||
dir = DIRS.EAST if dest_x > sourc_x else DIRS.WEST
|
||||
id = write_one_dir_config_tasks(sourc_x, dest_x+1, id, dir, prev_dir, DIRS.LOCAL)
|
||||
print(GEN_TASK_END)
|
||||
|
||||
id = write_req_task(id)
|
||||
print()
|
||||
print(LAST_TASK.format(id, id-1, id-1))
|
||||
|
||||
return id
|
||||
|
||||
|
||||
def write_map(sourc_x, sourc_y, dest_x, dest_y, id, rout_type):
|
||||
x = sourc_x
|
||||
y = sourc_y
|
||||
for i in range (0, id+1):
|
||||
print(BIND.format(i, x*MAX_ROUT_Y+y))
|
||||
if rout_type == 0:
|
||||
if(y == dest_y):
|
||||
x = sourc_x
|
||||
y = sourc_y
|
||||
elif(x == dest_x):
|
||||
y += 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:
|
||||
x +=1
|
||||
elif rout_type == 1:
|
||||
if(x == dest_x):
|
||||
x = sourc_x
|
||||
y = sourc_y
|
||||
elif(y == dest_y):
|
||||
x += 1
|
||||
last_task = self.spec_task_id
|
||||
self.xml_data += REQ_TASK_GEN.format(self.start_pack_type_id,
|
||||
last_task) + "\n"
|
||||
self.task_count += 1
|
||||
|
||||
def write_last_task(self):
|
||||
self.xml_data += "\n" + LAST_TASK.format(self.spec_task_id,
|
||||
self.start_pack_type_id, self.start_task+self.task_count-1,
|
||||
self.spec_task_count, self.spec_task_count) + "\n"
|
||||
|
||||
|
||||
def write_config_tasks(self):
|
||||
self.xml_data+=GEN_TASK_START.format(self.start_task+self.task_count)+"\n"
|
||||
if self.routing_typ == 0: # XY routing
|
||||
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] 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 = get_opposs_dir(dir) if self.dest[0] != self.sourc[0] \
|
||||
else DIRS.LOCAL
|
||||
dir = DIRS.NORTH if self.dest[1] > self.sourc[1] else DIRS.SOUTH
|
||||
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"
|
||||
|
||||
elif self.routing_typ==1: # YX routing
|
||||
dir = DIRS.NORTH if self.dest[1] > self.sourc[1] else DIRS.SOUTH
|
||||
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)
|
||||
|
||||
prev_dir = get_opposs_dir(dir) if self.dest[0] != self.sourc[0] \
|
||||
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"
|
||||
|
||||
self.write_req_task()
|
||||
|
||||
#last task is for the pc that send config msgs
|
||||
if(not self.use_spec_task):
|
||||
self.xml_data += "\n" + LAST_TASK.format(
|
||||
self.start_task+self.task_count, self.start_task+self.task_count,
|
||||
self.start_task, self.task_count-1, self.task_count-1) + "\n"
|
||||
else:
|
||||
y +=1
|
||||
self.spec_task_count += self.task_count - 1
|
||||
self.type_count += 1
|
||||
|
||||
|
||||
|
||||
def write_map(self):
|
||||
x = self.sourc[0]
|
||||
y = self.sourc[1]
|
||||
if(not self.use_spec_task):
|
||||
last_map_task = self.task_count+1
|
||||
else:
|
||||
last_map_task = self.task_count
|
||||
self.xml_map += BIND.format(self.start_task, x*MAX_ROUT_Y+y) + "\n" # first task
|
||||
for i in range (1, last_map_task):
|
||||
self.xml_map += BIND.format(self.start_task+i, x*MAX_ROUT_Y+y) + "\n"
|
||||
if self.routing_typ == 0:
|
||||
if(x == self.dest[0] and y == self.dest[1]):
|
||||
x = self.sourc[0]
|
||||
y = self.sourc[1]
|
||||
elif(x == self.dest[0]):
|
||||
y = y+1 if self.dest[1] > self.sourc[1] else y-1
|
||||
else:
|
||||
x = x+1 if self.dest[0] > self.sourc[0] else x-1
|
||||
elif self.routing_typ == 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);
|
||||
|
||||
double system_elapsed_time = difftime(end_time, start_time);
|
||||
update_start_time(std::to_string(system_passed_time));
|
||||
|
||||
TlmReport& report = TlmReport::getInstance();
|
||||
report.update_system_elapsed_time(std::to_string(system_elapsed_time));
|
||||
report.write_report();
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -168,7 +168,7 @@ void NetworkInterfaceTlm::send_flit(PacketCS* p, Flit* f){
|
|||
tlm::tlm_phase send_phase = tlm::BEGIN_REQ;
|
||||
|
||||
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));
|
||||
(*initiator[lay])->nb_transport_fw(*trans, send_phase, delay);
|
||||
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("Phase "+string(phase.get_name())+" received");
|
||||
if (phase == tlm::END_REQ) {
|
||||
//update_credits(trans, 1);
|
||||
curr_req = 0;
|
||||
if(p_id == -1){
|
||||
// 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();
|
||||
Flit* received_flit = reinterpret_cast<Flit*>(data_ptr);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -422,7 +424,7 @@ void NetworkInterfaceTlm::receive_and_process_flit(tlm_gp& trans){
|
|||
//log_info("Credit counter updated: "+to_string(credit_counter));
|
||||
|
||||
// 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) {
|
||||
log_info("Previous response transaction still in progress, scheduling it for next time");
|
||||
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
|
||||
tlm::tlm_phase bw_phase = tlm::END_REQ;
|
||||
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,
|
||||
bw_phase, delay);
|
||||
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
|
||||
delay = type_name != TYPE_STREAM ?
|
||||
delay = (type_name.find(TYPE_STREAM) == string::npos) ?
|
||||
delay + sc_time(INTERN_PROC_DELAY, UNITS_DELAY) :
|
||||
SC_ZERO_TIME; // no processing on stream
|
||||
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);
|
||||
//if(type_name == TYPE_PACKET || (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;
|
||||
log_info("Credit counter updated: "+to_string(credit_counter));
|
||||
}
|
||||
|
|
|
@ -266,6 +266,11 @@ public:
|
|||
*/
|
||||
void update_credits(tlm_gp&trans, int added_creds);
|
||||
|
||||
/** Log debug
|
||||
* @param msg log message
|
||||
*/
|
||||
void log_debug(string msg);
|
||||
|
||||
/** Log info
|
||||
* @param msg log message
|
||||
*/
|
||||
|
|
|
@ -73,7 +73,10 @@ void ProcessingElementCS::thread(){
|
|||
// Explain: countLeft is for sending, neededAmount is for receiving
|
||||
countLeft.at(dest)--;
|
||||
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) +
|
||||
" (repeat count: " +
|
||||
std::to_string(taskRepeatLeft.at(destToTask.at(dest))) +
|
||||
|
@ -182,12 +185,13 @@ void ProcessingElementCS::execute(TaskCS& task)
|
|||
else {
|
||||
// EXPLAIN: go through all requirements and add them to lists
|
||||
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));
|
||||
neededFor[r.dataType].insert(task);
|
||||
int amount_req = globalResources.getRandomIntBetween(r.minCount, r.maxCount);
|
||||
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);
|
||||
}
|
||||
// maybe all packets have arrived so we check the requirements
|
||||
|
@ -219,7 +223,7 @@ void ProcessingElementCS::receive()
|
|||
receivedData[type] = 1;
|
||||
}
|
||||
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) +
|
||||
" - 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
|
||||
float rn = globalResources.getRandomFloatBetween(0, 1);
|
||||
int numOfPoss = task.possibilities.size();
|
||||
int numOfDests = 0;
|
||||
if(numOfPoss) {
|
||||
numOfDests = task.possibilities.at(0).dataDestinations.size();
|
||||
}
|
||||
// for tasks with no destinations, only requirements
|
||||
if (!numOfPoss) {
|
||||
if (!numOfDests) {
|
||||
taskRepeatLeft.at(task)--;
|
||||
if (taskRepeatLeft.at(task)){
|
||||
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));
|
||||
neededFor[r.dataType].insert(task);
|
||||
int amount_req = globalResources.getRandomIntBetween(r.minCount, r.maxCount);
|
||||
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);
|
||||
}
|
||||
checkNeed();
|
||||
taskRepeatLeft.at(task)--;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -309,6 +318,9 @@ void ProcessingElementCS::checkNeed()
|
|||
an error where the requirement in a task wouldn't be read */
|
||||
// uncommented because data that had arrived wasn't diminishing from neededAmount counter
|
||||
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)--;
|
||||
/* 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.
|
||||
|
@ -352,20 +364,20 @@ void ProcessingElementCS::checkNeed()
|
|||
|
||||
/******************* LOG FUNCTIONS ********************/
|
||||
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){
|
||||
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){
|
||||
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){
|
||||
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<std::pair<TaskCS, dataTypeID_t>, int> neededAmount;
|
||||
// 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<dataTypeID_t, int> receivedData;
|
||||
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]));
|
||||
send_end_response(link, trans);
|
||||
// Moved here, because here is where the credits are received
|
||||
log_debug(link, trans, "Issuing next request");
|
||||
start_pend_req(link, 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
|
||||
for(uint8_t dir=0; dir<Direction::num_dirs; dir++){
|
||||
if( !nxt_send_data_pend[dir].empty() ){
|
||||
// check pending link valid and send data
|
||||
Direction rel_dest = send_data_in_prog_dest[dir].front();
|
||||
if(rel_dest == rel_link){
|
||||
log_debug(rel_link, trans, "Issuing next request");
|
||||
tlm_gp* nxt_trans = nxt_send_data_pend[dir].front();
|
||||
bool data_sent = send_data(dir, rel_link, *nxt_trans);
|
||||
if (!data_sent){
|
||||
|
|
|
@ -149,11 +149,10 @@ tlm_sync_enum TlmRouterCS::send_end_req(int link, tlm_gp& trans){
|
|||
trans.release();
|
||||
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
|
||||
string type_name = get_type_name(get_type_from_extension(trans));
|
||||
phase = (type_name == TYPE_STREAM) ? INTERNAL_PROC_PHASE :
|
||||
CONF_ROUT_PHASE;
|
||||
phase = type_name !="ConfigRouter" ? INTERNAL_PROC_PHASE : CONF_ROUT_PHASE;
|
||||
log_info(link, trans, "Type of processed message: " + type_name);
|
||||
target_peq.notify(trans, phase, delay);
|
||||
|
||||
|
@ -169,7 +168,6 @@ void TlmRouterCS::switching(int link, tlm_gp& trans){
|
|||
if (destination == Dir::num_dirs) {
|
||||
data_sent = true;
|
||||
check_transaction(link, trans);
|
||||
// change to fatal?
|
||||
log_warn(link, trans, "Routing failed. Message couldn't be delivered");
|
||||
}
|
||||
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){
|
||||
link_extension* extension;
|
||||
|
|
|
@ -96,6 +96,16 @@ class TlmRouterCS : public TlmRouter{
|
|||
*/
|
||||
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
|
||||
*
|
||||
|
|
|
@ -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;
|
||||
|
||||
#define DEBUG false
|
||||
#define DEBUG true
|
||||
|
||||
// router paremters
|
||||
#define NUM_CREDITS 7
|
||||
// router delays
|
||||
#define REQ_INIT_DELAY 10
|
||||
#define REQ_END_DELAY 10
|
||||
//clk=1GHz
|
||||
#define REQ_INIT_DELAY 1
|
||||
#define REQ_END_DELAY 1
|
||||
#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
|
||||
|
||||
//write in report
|
||||
// types
|
||||
typedef tlm::tlm_generic_payload tlm_gp;
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ void TlmReport::write_report(){
|
|||
|
||||
cout << "Writing system elapsed time" << endl << endl;
|
||||
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 << ss_msg_elapsed_time.str();
|
||||
|
|
|
@ -57,7 +57,7 @@ class TlmReport {
|
|||
/**
|
||||
* Updates system elapsed time attribute
|
||||
*/
|
||||
void update_system_elapsed_time(string system_elapsed_time)
|
||||
void update_system_elapsed_time(string system_elapsed_time);
|
||||
|
||||
private:
|
||||
std::map<string, int> packet_count;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue