⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rxsync.asm

📁 MIMO 2x2接收端选择全系统仿真代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;*----------------------------------------------------------------------------*
L2:    ; PIPED LOOP PROLOG

           MVK     .S1     0x2,A2            ; init prolog collapse predicate
||         MVK     .S2     80,B4
||         LDH     .D1T1   *++A5(4),A4       ; |106| (P) <0,0> 
||         LDH     .D2T2   *++B5(4),B1       ; |104| (P) <0,0> 
||         ADD     .L2X    A13,B6,B9
||         ADD     .L1     A13,A7,A0

           ZERO    .S2     B13               ; |97| 
||         MVK     .S1     80,A0
||         LDH     .D2T2   *+B5(2),B10       ; |104| (P) <0,1> 
||         LDH     .D1T1   *+A5(2),A8        ; |106| (P) <0,1> 
||         ADD     .L1     A13,A4,A4
||         SUB     .L2X    A0,B4,B6

           ZERO    .D1     A10               ; |97| 
||         ZERO    .S2     B7                ; |97| 
||         MVK     .S1     80,A3
||         ADD     .L1     A13,A3,A4
||         SUB     .L2X    A4,B4,B4
||         LDW     .D2T2   *++B6(80),B3      ; |104| (P) <0,2> 

           ZERO    .L2     B9                ; |97| 
||         MVK     .S2     0x1,B0            ; init prolog collapse predicate
||         MVK     .S1     6,A1              ; |102| 
||         SUB     .D1     A4,A3,A0
||         SUB     .L1X    B9,A0,A7
||         LDW     .D2T2   *++B4(80),B10     ; |106| (P) <0,3> 

;** --------------------------------------------------------------------------*
L3:    ; PIPED LOOP KERNEL

   [!A2]   ADDSP   .L2     B12,B7,B7         ; |106| <0,16>  ^ 
|| [!A2]   ADDSP   .L1X    B13,A12,A12       ; |104| <0,16>  ^ 
|| [ A1]   B       .S1     L3                ; |109| <0,16> 
||         MPYSP   .M2X    A4,B1,B12         ; |106| <1,10> 
||         MPYSP   .M1     A4,A8,A4          ; |106| <1,10> 
||         LDW     .D2T2   *+B4(40),B1       ; |106| <2,4> 
||         LDW     .D1T1   *++A0(80),A3      ; |106| <2,4> 

   [!A2]   ADDSP   .L2     B7,B9,B9          ; |104| <0,17>  ^ 
|| [!A2]   ADDSP   .L1     A6,A10,A10        ; |106| <0,17>  ^ 
||         MPYSP   .M2     B2,B11,B2         ; |104| <1,11> 
||         MPYSP   .M1X    A11,B10,A4        ; |106| <1,11> 
||         LDW     .D2T2   *+B6(40),B11      ; |104| <2,5> 
||         LDW     .D1T1   *+A0(40),A8       ; |106| <2,5> 

   [!A2]   ADDSP   .L2     B7,B8,B8          ; |104| <0,18>  ^ 
|| [!B0]   MPYSP   .M2     B11,B3,B13        ; |104| <1,12> 
|| [!B0]   MPYSP   .M1     A11,A3,A6         ; |106| <1,12> 
||         INTSP   .L1     A8,A4             ; |106| <2,6> 
||         LDH     .D2T2   *++B5(4),B1       ; |104| <3,0> 
||         LDH     .D1T1   *++A5(4),A4       ; |106| <3,0> 

   [!B0]   MPYSP   .M2X    B11,A3,B7         ; |104| <1,13> 
||         INTSP   .L2     B10,B2            ; |104| <2,7> 
||         INTSP   .L1     A4,A11            ; |106| <2,7> 
||         LDH     .D2T2   *+B5(2),B10       ; |104| <3,1> 
||         LDH     .D1T1   *+A5(2),A8        ; |106| <3,1> 

   [ A2]   SUB     .S1     A2,1,A2           ; <0,20> 
|| [!B0]   MPYSP   .M2X    B2,A3,B7          ; |104| <1,14> 
|| [!B0]   ADDSP   .L1     A4,A6,A6          ; |106| <1,14>  ^ 
||         LDW     .D1T1   *++A7(80),A3      ; |104| <2,8> 
||         INTSP   .L2     B1,B11            ; |104| <2,8> 
||         LDW     .D2T2   *++B6(80),B3      ; |104| <3,2> 

   [ B0]   SUB     .S2     B0,1,B0           ; <0,21> 
|| [ A1]   SUB     .S1     A1,1,A1           ; |109| <1,15> 
|| [!B0]   ADDSP   .L2     B2,B13,B13        ; |104| <1,15>  ^ 
|| [!B0]   ADDSP   .L1     A4,A9,A9          ; |106| <1,15>  ^ 
||         LDW     .D1T1   *+A7(40),A3       ; |104| <2,9> 
||         LDW     .D2T2   *++B4(80),B10     ; |106| <3,3> 

;** --------------------------------------------------------------------------*
L4:    ; PIPED LOOP EPILOG
;**  	-----------------------    V$0 = I$5+I$6+I$7+I$8;
;**  	-----------------------    V$1 = I$1+I$2+I$3+I$4;
;** 111	-----------------------    Q$1[i] = C$9 = V$1*V$1+V$0*V$0;
;** 113	-----------------------    if ( C$9 <= sync_max ) goto g7;
;** 114	-----------------------    sync_max = C$9;
;** 115	-----------------------    sync_index = i;
;**	-----------------------g7:
;** 117	-----------------------    U$18 += 4;
;** 117	-----------------------    ++i;
;** 117	-----------------------    if ( --L$1 ) goto g2;

           ADDSP   .L1X    B13,A12,A0        ; |104| (E) <1,16>  ^ 
||         MPYSP   .M2X    A4,B1,B6          ; |106| (E) <2,10> 
||         MPYSP   .M1     A4,A8,A4          ; |106| (E) <2,10> 
||         LDW     .D2T2   *+B4(40),B8       ; |106| (E) <3,4> 
||         LDW     .D1T1   *++A0(80),A4      ; |106| (E) <3,4> 
||         ADDSP   .L2     B12,B7,B5         ; |106| (E) <1,16>  ^ 

           ADDSP   .L1     A6,A10,A3         ; |106| (E) <1,17>  ^ 
||         MPYSP   .M2     B2,B11,B9         ; |104| (E) <2,11> 
||         MPYSP   .M1X    A11,B10,A5        ; |106| (E) <2,11> 
||         LDW     .D2T2   *+B6(40),B9       ; |104| (E) <3,5> 
||         LDW     .D1T1   *+A0(40),A8       ; |106| (E) <3,5> 
||         ADDSP   .L2     B7,B9,B7          ; |104| (E) <1,17>  ^ 

           LDW     .D2T2   *+SP(36),B4
||         MPYSP   .M2     B11,B3,B1         ; |104| (E) <2,12> 
||         MPYSP   .M1     A11,A3,A5         ; |106| (E) <2,12> 
||         INTSP   .L1     A8,A6             ; |106| (E) <3,6> 
||         ADDSP   .L2     B7,B8,B0          ; |104| (E) <1,18>  ^ 

           INTSP   .L2     B10,B6            ; |104| (E) <3,7> 
||         INTSP   .L1     A4,A11            ; |106| (E) <3,7> 
||         MPYSP   .M2X    B11,A3,B5         ; |104| (E) <2,13> 

           MPYSP   .M2X    B2,A3,B7          ; |104| (E) <2,14> 
||         LDW     .D1T1   *++A7(80),A3      ; |104| (E) <3,8> 
||         INTSP   .L2     B1,B5             ; |104| (E) <3,8> 
||         ADDSP   .L1     A4,A6,A0          ; |106| (E) <2,14>  ^ 

           ADDSP   .L1     A5,A9,A5          ; |106| (E) <2,15>  ^ 
||         LDW     .D1T1   *+A7(40),A4       ; |104| (E) <3,9> 
||         ADDSP   .L2     B9,B13,B8         ; |104| (E) <2,15>  ^ 

           ADDSP   .L1X    B1,A0,A6          ; |104| (E) <2,16>  ^ 
||         MPYSP   .M2X    A6,B8,B7          ; |106| (E) <3,10> 
||         MPYSP   .M1     A6,A8,A3          ; |106| (E) <3,10> 
||         ADDSP   .L2     B6,B5,B5          ; |106| (E) <2,16>  ^ 

           ADDSP   .L1     A5,A3,A0          ; |106| (E) <2,17>  ^ 
||         MPYSP   .M2     B6,B9,B6          ; |104| (E) <3,11> 
||         MPYSP   .M1X    A11,B10,A3        ; |106| (E) <3,11> 
||         ADDSP   .L2     B5,B7,B9          ; |104| (E) <2,17>  ^ 

           MPYSP   .M2     B5,B3,B8          ; |104| (E) <3,12> 
||         MPYSP   .M1     A11,A4,A3         ; |106| (E) <3,12> 
||         ADDSP   .L2     B7,B0,B6          ; |104| (E) <2,18>  ^ 

           MPYSP   .M2X    B5,A3,B5          ; |104| (E) <3,13> 

           ADDSP   .L1     A3,A0,A4          ; |106| (E) <3,14>  ^ 
||         MPYSP   .M2X    B6,A4,B5          ; |104| (E) <3,14> 

           ADDSP   .L2     B6,B8,B8          ; |104| (E) <3,15>  ^ 
||         ADDSP   .L1     A3,A5,A0          ; |106| (E) <3,15>  ^ 

           ADDSP   .L1X    B8,A6,A0          ; |104| (E) <3,16>  ^ 
||         ADDSP   .L2     B7,B5,B6          ; |106| (E) <3,16>  ^ 

           ADDSP   .L2     B5,B9,B7          ; |104| (E) <3,17>  ^ 
||         ADDSP   .L1     A3,A0,A3          ; |106| (E) <3,17>  ^ 

           ADDSP   .L2     B5,B6,B5          ; |104| (E) <3,18>  ^ 
           MV      .S2X    A0,B5
           NOP             1

           MVC     .S2     B4,CSR            ; interrupts on
||         ADDSP   .L2X    A3,B5,B4
||         ADDSP   .L1X    A0,B7,A0

;** --------------------------------------------------------------------------*
           NOP             3

           ADDSP   .L2     B6,B4,B4
||         ADDSP   .L1X    B5,A0,A0

           NOP             3

           ADDSP   .L1X    B8,A0,A4
||         ADDSP   .L2X    A4,B4,B5

	.line	21
           LDW     .D2T1   *+SP(16),A3
           NOP             2

           MPYSP   .M1     A4,A4,A0          ; |111| 
||         MPYSP   .M2     B5,B5,B4          ; |111| 

           NOP             3
           ADDSP   .L1X    B4,A0,A0          ; |111| 
           NOP             3
           STW     .D1T1   A0,*+A3[A14]      ; |111| 
	.line	23
           LDW     .D2T1   *+SP(28),A3
           NOP             4
           CMPGTSP .S1     A0,A3,A1          ; |113| 
	.line	24
   [ A1]   STW     .D2T1   A0,*+SP(28)       ; |114| 
	.line	25
   [ A1]   MV      .D1     A14,A0            ; |115| 
   [ A1]   STW     .D2T1   A0,*+SP(32)       ; |115| 
	.line	27

           ADD     .D1     4,A13,A13         ; |117| 
||         ADD     .S1     1,A14,A14         ; |117| 
||         LDW     .D2T2   *+SP(24),B4

           NOP             4

           SUB     .D2     B4,1,B4           ; |117| 
||         SUB     .S1X    B4,1,A1           ; |117| 

   [ A1]   B       .S2     L1                ; |117| 
||         STW     .D2T2   B4,*+SP(24)       ; |117| 

   [!A1]   MVKL    .S1     _fCorrelI,A0
           NOP             3
   [!A1]   MVKL    .S2     _fCorrelQ,B4
           ; BRANCH OCCURS                   ; |117| 
;** --------------------------------------------------------------------------*
;**  	-----------------------    fCorrelQ = V$0;
;**  	-----------------------    fCorrelI = V$1;
;** 118	-----------------------    pSyncState->iSyncIndex = sync_index;
;** 118	-----------------------    return;

           MVKH    .S2     _fCorrelQ,B4
||         MVKH    .S1     _fCorrelI,A0

           STW     .D2T2   B5,*B4
||         STW     .D1T1   A4,*A0

	.line	28
           LDW     .D2T1   *+SP(32),A0
           NOP             4
           STW     .D1T1   A0,*+A15(20)      ; |118| 
	.line	29
           LDW     .D2T2   *+SP(60),B3       ; |119| 
           MV      .S1X    SP,A9             ; |119| 
           LDW     .D1T1   *+A9(56),A14      ; |119| 
           LDDW    .D1T1   *+A9(48),A13:A12  ; |119| 

           LDDW    .D2T2   *+SP(64),B11:B10  ; |119| 
||         LDDW    .D1T1   *+A9(40),A11:A10  ; |119| 

           RET     .S2     B3                ; |119| 
||         LDDW    .D2T2   *+SP(72),B13:B12  ; |119| 

           LDW     .D2T1   *++SP(80),A15     ; |119| 
           NOP             4
           ; BRANCH OCCURS                   ; |119| 
	.endfunc	119,03c08fc00h,80


;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                              *
;******************************************************************************
	.global	_SYNCSEQUENCE_I
	.global	_SYNCSEQUENCE_Q

;******************************************************************************
;* TYPE INFORMATION                                                           *
;******************************************************************************
	.sym	_Int16, 0, 3, 13, 16
	.sym	_Int16, 0, 3, 13, 16
	.stag	$$fake0, 192
	.member	_pfRcv1I, 0, 22, 8, 32
	.member	_pfRcv1Q, 32, 22, 8, 32
	.member	_pfRcv2I, 64, 22, 8, 32
	.member	_pfRcv2Q, 96, 22, 8, 32
	.member	_uiRcvBuffLen, 128, 14, 8, 32
	.member	_iSyncIndex, 160, 4, 8, 32
	.eos
	.sym	_typRX_SYNCSTATE, 0, 8, 13, 192,$$fake0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -