@@ -11,7 +11,12 @@ ENABLE_LOGGING();
1111bool debug_checks = false ;
1212
1313// ROC Idle Frame
14- constexpr uint32_t ROC_IDLE_FRAME = 0x5555555 ;
14+ constexpr uint32_t ROC_IDLE_FRAME = 0x12c5c57 ;
15+
16+ constexpr uint64_t ECON_ROC_ALIGN_PATTERN = (
17+ (0x9ull << 60 ) | (static_cast <uint64_t >(ROC_IDLE_FRAME) << 32 ) |
18+ (0xaull << 28 ) | ROC_IDLE_FRAME
19+ );
1520
1621// ECON PUSM State READY
1722constexpr int ECON_EXPECTED_PUSM_STATE = 8 ;
@@ -79,6 +84,8 @@ void align_word(Target* tgt, pflib::ROC& roc, pflib::ECON& econ,
7984 // print ROC status
8085 if (debug_checks) {
8186 print_roc_status (roc);
87+ std::cout << " ROC_IDLE_FRAME: 0x" << std::hex << ROC_IDLE_FRAME << std::endl;
88+ std::cout << " ECON_ROC_ALIGN_PATTERN: 0x" << std::hex << ECON_ROC_ALIGN_PATTERN << std::endl;
8289 }
8390
8491 // ---- SETTING ECON REGISTERS ---- //
@@ -108,7 +115,7 @@ void align_word(Target* tgt, pflib::ROC& roc, pflib::ECON& econ,
108115 auto econ_word_align_currentvals_check = econ.applyParameters (parameters);
109116
110117 // Set GLOBAL_MATCH_PATTERN_VAL
111- econ.setValue (0x0381 , 0x95555555A5555555 , 8 );
118+ econ.setValue (0x0381 , ECON_ROC_ALIGN_PATTERN , 8 );
112119
113120 // Verify that channels are still locked
114121 for (int ch : channels) {
@@ -307,15 +314,13 @@ void align_phase_word(Target* tgt) {
307314 channels.push_back (mapping[iroc].first );
308315 channels.push_back (mapping[iroc].second );
309316
310- uint32_t binary_channels = build_channel_mask (channels);
311317 std::cout << " Channels to be configured: " ;
312318 for (int ch : channels) std::cout << ch << " " ;
313319 std::cout << std::endl;
314320
315321 // Check PUSM state
316322 auto pusm_state = econ.readParameter (" CLOCKSANDRESETS" , " GLOBAL_PUSM_STATE" );
317323 if (debug_checks) {
318- std::cout << " Decimal value of channels: " << binary_channels << std::endl;
319324 std::cout << " PUSM_STATE = " << pusm_state << " , " << hex (pusm_state)
320325 << std::endl;
321326 reset_stream ();
0 commit comments