summaryrefslogtreecommitdiff
path: root/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc')
-rw-r--r--src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc
index 72439a67b..38627b109 100644
--- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.cc
@@ -28,22 +28,20 @@
* Authors: Niket Agarwal
*/
-#include "mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh"
+#include "mem/ruby/network/garnet/fixed-pipeline/CreditLink_d.hh"
#include "mem/ruby/network/garnet/fixed-pipeline/NetworkLink_d.hh"
-NetworkLink_d::NetworkLink_d(int id, int link_latency, GarnetNetwork_d *net_ptr)
+NetworkLink_d::NetworkLink_d(const Params *p)
+ : SimObject(p)
{
- m_net_ptr = net_ptr;
- m_id = id;
- m_latency = link_latency;
+ m_latency = p->link_latency;
+ channel_width = p->channel_width;
+ m_id = p->link_id;
linkBuffer = new flitBuffer_d();
m_link_utilized = 0;
- m_vc_load.resize(m_net_ptr->getVCsPerClass() *
- net_ptr->getNumberOfVirtualNetworks());
+ m_vc_load.resize(p->vcs_per_class * p->virt_nets);
- for (int i = 0;
- i < m_net_ptr->getVCsPerClass()*net_ptr->getNumberOfVirtualNetworks();
- i++) {
+ for (int i = 0; i < (p->vcs_per_class * p->virt_nets); i++) {
m_vc_load[i] = 0;
}
}
@@ -89,3 +87,15 @@ NetworkLink_d::getLinkUtilization()
{
return m_link_utilized;
}
+
+NetworkLink_d *
+NetworkLink_dParams::create()
+{
+ return new NetworkLink_d(this);
+}
+
+CreditLink_d *
+CreditLink_dParams::create()
+{
+ return new CreditLink_d(this);
+}