|
楼主 |
发表于 2021-10-27 10:51:53
|
显示全部楼层
仔细分析:moduleA.nodeA.out.foreach{(bo,eo)=>if(bo == moduleA.nodeA.out.collect{case (ui,ep) => ui}.max) moduleB.nodeB := moduleA.nodeA else moduleC.nodeC := moduleA.nodeA}
moduleA.nodeA.out ->因为nodeA是只有输出的SourceNode,它有二条边,out就是代表对应的Seq[(UInt,EdgeParam)],也就是说bo对应UInt,eo对应EdgeParam
moduleA.nodeA.out.collect{case(ui,ep)=>ui}表示对这个Seq[(UInt,EdgeParam)]再做一个只包括协商数据UInt的集合
.max表示找出协商数据最大值,也就是找出2号边对应的目标
moduleB.nodeB := moduleA.nodeA表示当找到目标边之后即找到要连模块A节点的边之后就连接它,否则就要连另一个模块的节点。
|
|