Difference between revisions of "SC Synch"
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | The single core version of the | + | The single core version of the NaplesPU architecture shares the same synchronization master module, namely synchronization_core, of the many core version described in [[Synchronization|Synchronization architecture]] section. In the single-core version, the synchronization_core is instantiated at the system level, and it is directly connected to the npu_core module: |
− | + | npu_core # ( | |
.TILE_ID ( 0 ), | .TILE_ID ( 0 ), | ||
.CORE_ID ( 0 ), | .CORE_ID ( 0 ), | ||
Line 7: | Line 7: | ||
.MANYCORE ( 0 ) | .MANYCORE ( 0 ) | ||
) | ) | ||
− | + | npu_core ( | |
// Synch Interface | // Synch Interface | ||
− | .bc2n_account_valid ( c2n_account_valid ), | + | .bc2n_account_valid ( c2n_account_valid ), |
.bc2n_account_message ( c2n_account_message ), | .bc2n_account_message ( c2n_account_message ), | ||
− | .bc2n_account_destination_valid ( ) , | + | .bc2n_account_destination_valid ( ), |
.n2bc_network_available ( account_available ), | .n2bc_network_available ( account_available ), | ||
.n2bc_release_message ( n2c_release_message ), | .n2bc_release_message ( n2c_release_message ), | ||
Line 17: | Line 17: | ||
.n2bc_mes_service_consumed ( ), | .n2bc_mes_service_consumed ( ), | ||
− | Signals named n2bc_* (network to barrier core) are directly from the synchnronization master, while in te many core version they come from the synchronization virtual channel. | + | Signals named <code>n2bc_*</code> (network to barrier core) are directly from the synchnronization master, while in te many core version they come from the synchronization virtual channel. |
− | Dually, signals named bc2n_* are synch messages from the core. Those signals directly fed the synchronization master, although some minor changes are required since the native interface of this module is oriented to | + | Dually, signals named <code>bc2n_*</code> are synch messages from the core. Those signals directly fed the synchronization master, although some minor changes are required since the native interface of this module is oriented to an NoC-based interface. The main issue is the ni_available signal which checks the network interface availability. In the single-core version, we have no NoC and the synchronization master is directly connected to the npu_core, which has no back-pressure signal on synchronization messages. Hence, this signal is set constantly high at the system level: |
assign network_available = 1'b1; | assign network_available = 1'b1; |
Latest revision as of 14:34, 25 June 2019
The single core version of the NaplesPU architecture shares the same synchronization master module, namely synchronization_core, of the many core version described in Synchronization architecture section. In the single-core version, the synchronization_core is instantiated at the system level, and it is directly connected to the npu_core module:
npu_core # ( .TILE_ID ( 0 ), .CORE_ID ( 0 ), .DSU ( 0 ), .MANYCORE ( 0 ) ) npu_core ( // Synch Interface .bc2n_account_valid ( c2n_account_valid ), .bc2n_account_message ( c2n_account_message ), .bc2n_account_destination_valid ( ), .n2bc_network_available ( account_available ), .n2bc_release_message ( n2c_release_message ), .n2bc_release_valid ( n2c_release_valid ), .n2bc_mes_service_consumed ( ),
Signals named n2bc_*
(network to barrier core) are directly from the synchnronization master, while in te many core version they come from the synchronization virtual channel.
Dually, signals named bc2n_*
are synch messages from the core. Those signals directly fed the synchronization master, although some minor changes are required since the native interface of this module is oriented to an NoC-based interface. The main issue is the ni_available signal which checks the network interface availability. In the single-core version, we have no NoC and the synchronization master is directly connected to the npu_core, which has no back-pressure signal on synchronization messages. Hence, this signal is set constantly high at the system level:
assign network_available = 1'b1;