feat: assing new config, refactoring
This commit is contained in:
parent
4517995d04
commit
9e9949faa5
27 changed files with 3995 additions and 21 deletions
21
LICENSE.md
Normal file
21
LICENSE.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
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.
|
51
README.md
51
README.md
|
@ -1,9 +1,50 @@
|
|||
# Defines
|
||||
# TLM NOC Simulator
|
||||
|
||||
`cmake -DDEFINE_ENABLE_NETRACE=ON`
|
||||
## Description
|
||||
|
||||
enables netrace mode
|
||||
TLM NOC Simulator
|
||||
|
||||
`cmake -DDEFINE_ENABLE_GUI=ON`
|
||||
## Getting Started
|
||||
|
||||
enables GUI mode
|
||||
### Dependencies
|
||||
|
||||
* System C
|
||||
* TLM
|
||||
|
||||
### Installing
|
||||
|
||||
* Run build.sh script
|
||||
```
|
||||
./build.sh
|
||||
```
|
||||
|
||||
### Executing program
|
||||
|
||||
* A configuration is needed to execute the program. The configurations are located inside folder config
|
||||
* Each configuration must have these four files: config.xml, data.xml, map.xml and net.xml
|
||||
* config.xml describes the simulation time, the path for data, map and net xml files and other specifications
|
||||
* data.xml describes all the tasks to execute
|
||||
* map.xml maps a task to a node in the net
|
||||
* net.xml describes the organization of the Processing Elements and Routers
|
||||
* The name of the configuration folder is passed to the program as
|
||||
```
|
||||
./sim --configFolder <config_name>
|
||||
```
|
||||
* For example, to run configuration "simple_test"
|
||||
```
|
||||
./sim --configFolder simple_test
|
||||
```
|
||||
|
||||
|
||||
## Version History
|
||||
|
||||
* 0.1
|
||||
* Initial Release
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the LICENSE.md file for details
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
* [Ratatoskr NoC simulator](https://github.com/jmjos/ratatoskr)
|
55
config/ai_test/config.xml
Executable file
55
config/ai_test/config.xml
Executable file
|
@ -0,0 +1,55 @@
|
|||
<?xml version="1.0" ?>
|
||||
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<general>
|
||||
<simulationTime value="100000"/>
|
||||
<outputToFile value="true">report</outputToFile>
|
||||
</general>
|
||||
<noc>
|
||||
<nocFile>config/ai_test/net.xml</nocFile>
|
||||
<flitsPerPacket value="1"/>
|
||||
<bitWidth value="32"/>
|
||||
<Vdd value="5"/>
|
||||
</noc>
|
||||
<application>
|
||||
<benchmark>task</benchmark>
|
||||
<dataFile>config/ai_test/data.xml</dataFile>
|
||||
<mapFile>config/ai_test/map.xml</mapFile>
|
||||
</application>
|
||||
<verbose>
|
||||
<processingElements>
|
||||
<function_calls value="false"/>
|
||||
<send_flit value="false"/>
|
||||
<send_head_flit value="true"/>
|
||||
<receive_flit value="false"/>
|
||||
<receive_tail_flit value="true"/>
|
||||
<throttle value="false"/>
|
||||
<reset value="false"/>
|
||||
</processingElements>
|
||||
<router>
|
||||
<function_calls value="false"/>
|
||||
<send_flit value="false"/>
|
||||
<send_head_flit value="false"/>
|
||||
<receive_flit value="false"/>
|
||||
<receive_tail_flit value="false"/>
|
||||
<throttle value="false"/>
|
||||
<reset value="false"/>
|
||||
<assign_channel value="false"/>
|
||||
<buffer_overflow value="true"/>
|
||||
</router>
|
||||
<netrace>
|
||||
<inject value="true"/>
|
||||
<eject value="true"/>
|
||||
<router_receive value="true"/>
|
||||
</netrace>
|
||||
<tasks>
|
||||
<function_calls value="true"/>
|
||||
<xml_parse value="false"/>
|
||||
<data_receive value="true"/>
|
||||
<data_send value="true"/>
|
||||
<source_execute value="false"/>
|
||||
</tasks>
|
||||
</verbose>
|
||||
<report>
|
||||
<bufferReportRouters>5 6 9 10</bufferReportRouters>
|
||||
</report>
|
||||
</configuration>
|
2597
config/ai_test/data.xml
Executable file
2597
config/ai_test/data.xml
Executable file
File diff suppressed because it is too large
Load diff
339
config/ai_test/map.xml
Normal file
339
config/ai_test/map.xml
Normal file
|
@ -0,0 +1,339 @@
|
|||
<?xml version="1.0" ?>
|
||||
<map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<bind>
|
||||
<task value="0"/>
|
||||
<node value="7"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="1"/>
|
||||
<node value="14"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="2"/>
|
||||
<node value="8"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="3"/>
|
||||
<node value="14"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="4"/>
|
||||
<node value="8"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="5"/>
|
||||
<node value="10"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="6"/>
|
||||
<node value="11"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="7"/>
|
||||
<node value="5"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="8"/>
|
||||
<node value="7"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="9"/>
|
||||
<node value="5"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="10"/>
|
||||
<node value="15"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="11"/>
|
||||
<node value="0"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="12"/>
|
||||
<node value="12"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="13"/>
|
||||
<node value="13"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="14"/>
|
||||
<node value="12"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="15"/>
|
||||
<node value="8"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="16"/>
|
||||
<node value="8"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="17"/>
|
||||
<node value="6"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="18"/>
|
||||
<node value="10"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="19"/>
|
||||
<node value="1"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="20"/>
|
||||
<node value="2"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="21"/>
|
||||
<node value="5"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="22"/>
|
||||
<node value="11"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="23"/>
|
||||
<node value="5"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="24"/>
|
||||
<node value="7"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="25"/>
|
||||
<node value="12"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="26"/>
|
||||
<node value="1"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="27"/>
|
||||
<node value="4"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="28"/>
|
||||
<node value="14"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="29"/>
|
||||
<node value="6"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="30"/>
|
||||
<node value="10"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="31"/>
|
||||
<node value="14"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="32"/>
|
||||
<node value="6"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="33"/>
|
||||
<node value="12"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="34"/>
|
||||
<node value="13"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="35"/>
|
||||
<node value="0"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="36"/>
|
||||
<node value="2"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="37"/>
|
||||
<node value="0"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="38"/>
|
||||
<node value="7"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="39"/>
|
||||
<node value="15"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="40"/>
|
||||
<node value="0"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="41"/>
|
||||
<node value="2"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="42"/>
|
||||
<node value="13"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="43"/>
|
||||
<node value="7"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="44"/>
|
||||
<node value="13"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="45"/>
|
||||
<node value="3"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="46"/>
|
||||
<node value="7"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="47"/>
|
||||
<node value="1"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="48"/>
|
||||
<node value="10"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="49"/>
|
||||
<node value="10"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="50"/>
|
||||
<node value="12"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="51"/>
|
||||
<node value="1"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="52"/>
|
||||
<node value="3"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="53"/>
|
||||
<node value="0"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="54"/>
|
||||
<node value="4"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="55"/>
|
||||
<node value="3"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="56"/>
|
||||
<node value="2"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="57"/>
|
||||
<node value="8"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="58"/>
|
||||
<node value="12"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="59"/>
|
||||
<node value="9"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="60"/>
|
||||
<node value="0"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="61"/>
|
||||
<node value="4"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="62"/>
|
||||
<node value="15"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="63"/>
|
||||
<node value="11"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="64"/>
|
||||
<node value="4"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="65"/>
|
||||
<node value="6"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="66"/>
|
||||
<node value="11"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="67"/>
|
||||
<node value="9"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="68"/>
|
||||
<node value="1"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="69"/>
|
||||
<node value="7"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="70"/>
|
||||
<node value="12"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="71"/>
|
||||
<node value="14"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="72"/>
|
||||
<node value="10"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="73"/>
|
||||
<node value="2"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="74"/>
|
||||
<node value="4"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="75"/>
|
||||
<node value="11"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="76"/>
|
||||
<node value="4"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="77"/>
|
||||
<node value="0"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="78"/>
|
||||
<node value="13"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="79"/>
|
||||
<node value="15"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="80"/>
|
||||
<node value="7"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="81"/>
|
||||
<node value="13"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="82"/>
|
||||
<node value="5"/>
|
||||
</bind>
|
||||
<bind>
|
||||
<task value="83"/>
|
||||
<node value="6"/>
|
||||
</bind>
|
||||
</map>
|
879
config/ai_test/net.xml
Executable file
879
config/ai_test/net.xml
Executable file
|
@ -0,0 +1,879 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<network-on-chip xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="layer.xsd">
|
||||
<bufferDepthType value="single" /> <!-- single, perVC-->
|
||||
<nodeTypes>
|
||||
<nodeType id="0">
|
||||
<model value="Router"/>
|
||||
<routing value="XYZ"/>
|
||||
<clockDelay value="1"/>
|
||||
</nodeType>
|
||||
<nodeType id="1">
|
||||
<model value="ProcessingElement"/>
|
||||
<clockDelay value="1"/>
|
||||
</nodeType>
|
||||
</nodeTypes>
|
||||
|
||||
|
||||
<nodes>
|
||||
<node id="0">
|
||||
<xPos value="0.000"/>
|
||||
<yPos value="0.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="0"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="1">
|
||||
<xPos value="0.000"/>
|
||||
<yPos value="0.333"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="1"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="2">
|
||||
<xPos value="0.000"/>
|
||||
<yPos value="0.667"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="2"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="3">
|
||||
<xPos value="0.000"/>
|
||||
<yPos value="1.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="3"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="4">
|
||||
<xPos value="0.333"/>
|
||||
<yPos value="0.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="4"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="5">
|
||||
<xPos value="0.333"/>
|
||||
<yPos value="0.333"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="5"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="6">
|
||||
<xPos value="0.333"/>
|
||||
<yPos value="0.667"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="6"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="7">
|
||||
<xPos value="0.333"/>
|
||||
<yPos value="1.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="7"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="8">
|
||||
<xPos value="0.667"/>
|
||||
<yPos value="0.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="8"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="9">
|
||||
<xPos value="0.667"/>
|
||||
<yPos value="0.333"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="9"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="10">
|
||||
<xPos value="0.667"/>
|
||||
<yPos value="0.667"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="10"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="11">
|
||||
<xPos value="0.667"/>
|
||||
<yPos value="1.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="11"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="12">
|
||||
<xPos value="1.000"/>
|
||||
<yPos value="0.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="12"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="13">
|
||||
<xPos value="1.000"/>
|
||||
<yPos value="0.333"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="13"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="14">
|
||||
<xPos value="1.000"/>
|
||||
<yPos value="0.667"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="14"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="15">
|
||||
<xPos value="1.000"/>
|
||||
<yPos value="1.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="0"/>
|
||||
<idType value="15"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="16">
|
||||
<xPos value="0.000"/>
|
||||
<yPos value="0.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="0"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="17">
|
||||
<xPos value="0.000"/>
|
||||
<yPos value="0.333"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="1"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="18">
|
||||
<xPos value="0.000"/>
|
||||
<yPos value="0.667"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="2"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="19">
|
||||
<xPos value="0.000"/>
|
||||
<yPos value="1.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="3"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="20">
|
||||
<xPos value="0.333"/>
|
||||
<yPos value="0.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="4"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="21">
|
||||
<xPos value="0.333"/>
|
||||
<yPos value="0.333"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="5"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="22">
|
||||
<xPos value="0.333"/>
|
||||
<yPos value="0.667"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="6"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="23">
|
||||
<xPos value="0.333"/>
|
||||
<yPos value="1.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="7"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="24">
|
||||
<xPos value="0.667"/>
|
||||
<yPos value="0.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="8"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="25">
|
||||
<xPos value="0.667"/>
|
||||
<yPos value="0.333"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="9"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="26">
|
||||
<xPos value="0.667"/>
|
||||
<yPos value="0.667"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="10"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="27">
|
||||
<xPos value="0.667"/>
|
||||
<yPos value="1.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="11"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="28">
|
||||
<xPos value="1.000"/>
|
||||
<yPos value="0.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="12"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="29">
|
||||
<xPos value="1.000"/>
|
||||
<yPos value="0.333"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="13"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="30">
|
||||
<xPos value="1.000"/>
|
||||
<yPos value="0.667"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="14"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
<node id="31">
|
||||
<xPos value="1.000"/>
|
||||
<yPos value="1.000"/>
|
||||
<zPos value="0.000"/>
|
||||
<nodeType value="1"/>
|
||||
<idType value="15"/>
|
||||
<layerType value="0"/>
|
||||
</node>
|
||||
</nodes>
|
||||
|
||||
|
||||
<connections>
|
||||
<con id="0">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="0"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="16"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="1">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="0"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="1"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="2">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="0"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="4"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="3">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="1"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="17"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="4">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="1"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="2"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="5">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="1"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="5"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="6">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="2"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="18"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="7">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="2"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="3"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="8">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="2"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="6"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="9">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="3"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="19"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="10">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="3"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="7"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="11">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="4"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="20"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="12">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="4"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="5"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="13">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="4"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="8"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="14">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="5"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="21"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="15">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="5"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="6"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="16">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="5"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="9"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="17">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="6"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="22"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="18">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="6"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="7"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="19">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="6"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="10"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="20">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="7"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="23"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="21">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="7"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="11"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="22">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="8"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="24"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="23">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="8"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="9"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="24">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="8"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="12"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="25">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="9"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="25"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="26">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="9"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="10"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="27">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="9"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="13"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="28">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="10"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="26"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="29">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="10"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="11"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="30">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="10"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="14"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="31">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="11"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="27"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="32">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="11"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="15"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="33">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="12"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="28"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="34">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="12"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="13"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="35">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="13"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="29"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="36">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="13"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="14"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="37">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="14"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="30"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="38">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="14"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="15"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
<con id="39">
|
||||
<interface value="0"/>
|
||||
<ports>
|
||||
<port id ="0">
|
||||
<node value="15"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
<port id ="1">
|
||||
<node value="31"/>
|
||||
<bufferDepth value="8"/>
|
||||
<vcCount value="8"/>
|
||||
</port>
|
||||
</ports>
|
||||
</con>
|
||||
</connections>
|
||||
</network-on-chip>
|
0
config/conc_stream_pack_test/data.xml
Normal file → Executable file
0
config/conc_stream_pack_test/data.xml
Normal file → Executable file
0
config/conc_stream_pack_test/map.xml
Normal file → Executable file
0
config/conc_stream_pack_test/map.xml
Normal file → Executable file
0
config/conc_stream_pack_test/net.xml
Normal file → Executable file
0
config/conc_stream_pack_test/net.xml
Normal file → Executable file
0
config/only_config_msg_test/data.xml
Normal file → Executable file
0
config/only_config_msg_test/data.xml
Normal file → Executable file
0
config/only_config_msg_test/map.xml
Normal file → Executable file
0
config/only_config_msg_test/map.xml
Normal file → Executable file
0
config/only_config_msg_test/net.xml
Normal file → Executable file
0
config/only_config_msg_test/net.xml
Normal file → Executable file
0
config/simple_2_layer_test/data.xml
Normal file → Executable file
0
config/simple_2_layer_test/data.xml
Normal file → Executable file
0
config/simple_2_layer_test/map.xml
Normal file → Executable file
0
config/simple_2_layer_test/map.xml
Normal file → Executable file
0
config/simple_2_layer_test/net.xml
Normal file → Executable file
0
config/simple_2_layer_test/net.xml
Normal file → Executable file
0
config/simple_2_point_test/2pt_data.xml
Normal file → Executable file
0
config/simple_2_point_test/2pt_data.xml
Normal file → Executable file
0
config/simple_2_point_test/2pt_map.xml
Normal file → Executable file
0
config/simple_2_point_test/2pt_map.xml
Normal file → Executable file
0
config/simple_2_point_test/net.xml
Normal file → Executable file
0
config/simple_2_point_test/net.xml
Normal file → Executable file
0
config/simple_test/net.xml
Normal file → Executable file
0
config/simple_test/net.xml
Normal file → Executable file
0
config/simple_test/simple_data.xml
Normal file → Executable file
0
config/simple_test/simple_data.xml
Normal file → Executable file
0
config/simple_test/simple_map.xml
Normal file → Executable file
0
config/simple_test/simple_map.xml
Normal file → Executable file
26
scripts/gen_map_random.py
Normal file
26
scripts/gen_map_random.py
Normal file
|
@ -0,0 +1,26 @@
|
|||
import random
|
||||
|
||||
NET_SIZE_X = 4
|
||||
NET_SIZE_Y = 4
|
||||
NET_SIZE_Z = 1
|
||||
|
||||
NUM_TASKS = 84
|
||||
|
||||
MAP_START = """<?xml version="1.0" ?>
|
||||
<map xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">"""
|
||||
|
||||
BIND = """ <bind>
|
||||
<task value="{}"/>
|
||||
<node value="{}"/>
|
||||
</bind>"""
|
||||
|
||||
MAP_END = "</map>"
|
||||
|
||||
NUM_NODES = NET_SIZE_X*NET_SIZE_Y*NET_SIZE_Z
|
||||
|
||||
print(MAP_START)
|
||||
for i in range(NUM_TASKS):
|
||||
node_id = random.randint(0, NUM_NODES-1)
|
||||
print(BIND.format(i, node_id))
|
||||
print(MAP_END)
|
||||
|
|
@ -168,9 +168,9 @@ void NetworkInterfaceTlm::send_flit(PacketCS* p, Flit* f){
|
|||
sc_time delay = sc_time(REQ_INIT_DELAY, UNITS_DELAY);
|
||||
tlm::tlm_phase send_phase = tlm::BEGIN_REQ;
|
||||
|
||||
int lay = p->dataType == TYPE_STREAM ? 1:0;
|
||||
log_info("Sending flit of type "+STR_TYPES[p->dataType]+
|
||||
" to layer "+to_string(lay));
|
||||
string type_name = get_type_name(p->dataType);
|
||||
int lay = type_name == TYPE_STREAM ? 1:0;
|
||||
log_info("Sending flit of type "+ type_name + " to layer "+to_string(lay));
|
||||
(*initiator[lay])->nb_transport_fw(*trans, send_phase, delay);
|
||||
update_credits(*trans, -1);
|
||||
}
|
||||
|
@ -191,7 +191,7 @@ int NetworkInterfaceTlm::get_packet_id_from_extension(tlm_gp& trans){
|
|||
|
||||
bool NetworkInterfaceTlm::check_cs_needed(tlm_gp& trans){
|
||||
int type = get_type_from_extension(trans);
|
||||
return type == TYPE_ROUT_CONFIG;
|
||||
return get_type_name(type) == TYPE_ROUT_CONFIG;
|
||||
}
|
||||
|
||||
void NetworkInterfaceTlm::send_cs_rout_conf_msg(tlm_gp& trans){
|
||||
|
@ -421,7 +421,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(p->dataType != TYPE_STREAM){
|
||||
if(get_type_name(p->dataType) != TYPE_STREAM){
|
||||
if(resp_in_progress) {
|
||||
if(nxt_resp_pend){
|
||||
log_fatal("Attempt to have two pending responses in target");
|
||||
|
@ -487,7 +487,7 @@ tlm::tlm_sync_enum NetworkInterfaceTlm::send_end_req(tlm_gp& trans){
|
|||
|
||||
// Queue internal event to mark beginning of response
|
||||
int type = get_type_from_extension(trans);
|
||||
delay = type != TYPE_STREAM ?
|
||||
delay = get_type_name(type) != TYPE_STREAM ?
|
||||
delay + sc_time(INTERN_PROC_DELAY, UNITS_DELAY) :
|
||||
SC_ZERO_TIME; // no processing on stream
|
||||
target_peq.notify(trans, INTERNAL_PROC_PHASE, delay);
|
||||
|
@ -520,10 +520,10 @@ void NetworkInterfaceTlm::send_response(tlm_gp& trans){
|
|||
}
|
||||
|
||||
void NetworkInterfaceTlm::update_credits(tlm_gp&trans, int added_creds){
|
||||
int type = get_type_from_extension(trans);
|
||||
string type_name = get_type_name(get_type_from_extension(trans));
|
||||
int p_id = get_packet_id_from_extension(trans);
|
||||
|
||||
if(type == TYPE_PACKET || (type==TYPE_ROUT_CONFIG && p_id != -1)){
|
||||
if(type_name == TYPE_PACKET || (type_name == TYPE_ROUT_CONFIG && p_id != -1)){
|
||||
credit_counter += added_creds;
|
||||
log_info("Credit counter updated: "+to_string(credit_counter));
|
||||
}
|
||||
|
|
|
@ -139,10 +139,10 @@ tlm_sync_enum TlmRouterCS::send_end_req(int link, tlm_gp& trans){
|
|||
}
|
||||
delay = SC_ZERO_TIME; // no processing in circuit switching routers
|
||||
// Queue internal event to mark beginning of response
|
||||
int type = get_type_from_extension(trans);
|
||||
phase = (type == TYPE_STREAM) ? INTERNAL_PROC_PHASE :
|
||||
string type_name = get_type_name(get_type_from_extension(trans));
|
||||
phase = (type_name == TYPE_STREAM) ? INTERNAL_PROC_PHASE :
|
||||
CONF_ROUT_PHASE;
|
||||
log_info(link, trans, "Type of processed message: "+STR_TYPES[type]);
|
||||
log_info(link, trans, "Type of processed message: " + type_name);
|
||||
target_peq.notify(trans, phase, delay);
|
||||
|
||||
return status;
|
||||
|
|
|
@ -46,11 +46,9 @@ typedef tlm::tlm_generic_payload tlm_gp;
|
|||
// for circuit switching noc
|
||||
#define NUM_ACC_LAYERS 2
|
||||
#define NUM_CREDITS_CS 1
|
||||
#define TYPE_PACKET 0
|
||||
#define TYPE_STREAM 1
|
||||
#define TYPE_ROUT_CONFIG 2
|
||||
|
||||
const std::string STR_TYPES[3] = {"packet", "stream", "configRouter"};
|
||||
#define TYPE_PACKET "Packet"
|
||||
#define TYPE_STREAM "Stream"
|
||||
#define TYPE_ROUT_CONFIG "ConfigRouter"
|
||||
|
||||
|
||||
/********************** EXTENSIONS ****************************/
|
||||
|
|
|
@ -58,3 +58,13 @@ void get_max_pos(uint8_t max_pos[3]){
|
|||
max_pos[2] = 1+round(max_element(gr_pos[2].begin(),
|
||||
gr_pos[2].end())[0]/dists[2]);
|
||||
}
|
||||
|
||||
string get_type_name(dataTypeID_t id){
|
||||
GlobalResourcesCS& globalResources = GlobalResourcesCS::getInstance();
|
||||
for(int i=0; i < globalResources.dataTypes.size(); i++){
|
||||
if(globalResources.dataTypes[i].id == id){
|
||||
return globalResources.dataTypes[i].name;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include <systemc>
|
||||
#include "configuration.h"
|
||||
#include "ratatoskrUtils/utils/Structures.h"
|
||||
|
||||
using namespace sc_core;
|
||||
|
||||
|
@ -62,3 +63,10 @@ void convert_pos_to_int(float pos_float[3], uint8_t pos_int[3]);
|
|||
* @param max_pos array to store the value of max positions
|
||||
*/
|
||||
void get_max_pos(uint8_t max_pos[3]);
|
||||
|
||||
/**
|
||||
* Gets the name of type given the id
|
||||
*
|
||||
* @param id id type whose name needs to be returned
|
||||
*/
|
||||
std::string get_type_name(dataTypeID_t id);
|
Loading…
Reference in a new issue