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

📄 chan_estimation.asm

📁 详细的OFDM设计过程
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;******************************************************************************
;* TMS320C6x C/C++ Codegen                                    PC Version 4.36 *
;* Date/Time created: Tue May 31 14:03:07 2005                                *
;******************************************************************************

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C671x                                          *
;*   Optimization      : Enabled at level 3                                   *
;*   Optimizing for    : Speed 1st, size 2nd                                  *
;*                       Based on options: -o3, -ms1                          *
;*   Endian            : Little                                               *
;*   Interrupt Thrshld : Disabled                                             *
;*   Memory Model      : Large                                                *
;*   Calls to RTS      : Far                                                  *
;*   Pipelining        : Limited                                              *
;*   Speculative Load  : Disabled                                             *
;*   Memory Aliases    : Presume are aliases (pessimistic)                    *
;*   Debug Info        : COFF Debug                                           *
;*                                                                            *
;******************************************************************************

	.asg	A15, FP
	.asg	B14, DP
	.asg	B15, SP
	.global	$bss

	.file	"chan_estimation.c"
	.global	_noise_hat
_noise_hat:	.usect	".far",4,4
	.sym	_noise_hat,_noise_hat, 6, 2, 32
;	c:\ti\c6000\cgtools\bin\opt6x.exe -i0 -v6710 -q -O3 -Z1 C:\DOCUME~1\SBPRJ-~1\LOCALS~1\Temp\TI4056_2 C:\DOCUME~1\SBPRJ-~1\LOCALS~1\Temp\TI4056_5 -w F:/black05/DSP/recieverSINE/Debug 

	.sect	".text"
	.global	_noise_estimation
	.sym	_noise_estimation,_noise_estimation, 38, 2, 0
	.func	58

;******************************************************************************
;* FUNCTION NAME: _noise_estimation                                           *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;*                           B6,B7,B8,B9,B10,B11,B12,SP                       *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;*                           B6,B7,B8,B9,B10,B11,B12,DP,SP                    *
;*   Local Frame Size  : 0 Args + 0 Auto + 20 Save = 20 byte                  *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_noise_estimation:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_received_empty_pilots,4, 19, 17, 32
	.sym	_received_empty_pilots,0, 19, 4, 32
           STW     .D2T2   B12,*SP--(24)     ; |59| 
           STW     .D2T2   B11,*+SP(20)      ; |59| 
           STW     .D2T2   B10,*+SP(16)      ; |59| 
           STW     .D2T2   B3,*+SP(12)       ; |59| 
           STW     .D2T1   A10,*+SP(8)       ; |59| 
           MV      .D1     A4,A10            ; |59| 
	.line	8
           MVC     .S2     CSR,B12
           MVK     .S2     0x1f,B8           ; |65| 

           LDH     .D1T2   *+A10(4),B4       ; |66| (P) <0,0> 
||         SUB     .D2     B8,3,B2
||         SUB     .S1X    B8,2,A1
||         AND     .S2     -2,B12,B8

           LDH     .D1T2   *+A10(2),B9       ; |66| (P) <0,1> 
||         MVC     .S2     B8,CSR            ; interrupts off

;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line                 : 65
;*      Loop opening brace source line   : 65
;*      Loop closing brace source line   : 70
;*      Loop Unroll Multiple             : 4x
;*      Known Minimum Trip Count         : 31
;*      Known Maximum Trip Count         : 31
;*      Known Max Trip Count Factor      : 31
;*      Loop Carried Dependency Bound(^) : 7
;*      Unpartitioned Resource Bound     : 6
;*      Partitioned Resource Bound(*)    : 8
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     8*       8*    
;*      .S units                     1        0     
;*      .D units                     5        0     
;*      .M units                     1        4     
;*      .X cross paths               2        1     
;*      .T address paths             1        4     
;*      Long read paths              0        0     
;*      Long write paths             0        0     
;*      Logical  ops (.LS)           0        1     (.L or .S unit)
;*      Addition ops (.LSD)          1        3     (.L or .S or .D unit)
;*      Bound(.L .S .LS)             5        5     
;*      Bound(.L .S .D .LS .LSD)     5        4     
;*
;*      Searching for software pipeline schedule at ...
;*         ii = 8  Did not find schedule
;*         ii = 9  Schedule found with 4 iterations in parallel
;*      Done
;*
;*      Epilog not entirely removed
;*      Collapsed epilog stages     : 1
;*
;*      Prolog not removed
;*      Collapsed prolog stages     : 0
;*
;*      Minimum required memory pad : 0 bytes
;*
;*      For further improvement on this loop, try option -mh24
;*
;*      Minimum safe trip count     : 3 (after unrolling)
;*----------------------------------------------------------------------------*
L1:    ; PIPED LOOP PROLOG
           LDH     .D1T2   *+A10(6),B4       ; |66| (P) <0,2> 
           NOP             2
           MPY     .M2     B4,B4,B9          ; |66| (P) <0,5> 
           MPY     .M2     B9,B9,B4          ; |66| (P) <0,6> 

           LDH     .D1T2   *A10,B6           ; |66| (P) <0,7> 
||         MPY     .M2     B4,B4,B5          ; |66| (P) <0,7> 

           LDH     .D1T1   *++A10(8),A0      ; |66| (P) <0,8> 

           ADD     .D2     B9,B4,B8          ; |66| (P) <0,9> 
||         ADD     .S2     B5,B9,B9          ; |66| (P) <0,9> 
||         LDH     .D1T2   *+A10(4),B6       ; |66| (P) <1,0> 

           INTDP   .L2     B8,B1:B0          ; |66| (P) <0,10> 
||         LDH     .D1T2   *+A10(2),B9       ; |66| (P) <1,1> 
||         INTDP   .L1X    B9,A7:A6          ; |66| (P) <0,10> 

           LDH     .D1T2   *+A10(6),B6       ; |66| (P) <1,2> 
           NOP             1
           MPY     .M2     B6,B6,B8          ; |66| (P) <0,13> 

           MPY     .M1     A0,A0,A0          ; |66| (P) <0,14> 
||         MPY     .M2     B6,B6,B9          ; |66| (P) <1,5> 

           MPY     .M2     B9,B9,B10         ; |66| (P) <1,6> 

           ZERO    .L1     A3:A2             ; |65| 
||         ADD     .D2     B4,B8,B8          ; |66| (P) <0,16> 
||         ADD     .S2X    B5,A0,B4          ; |66| (P) <0,16> 
||         MPY     .M2     B6,B6,B3          ; |66| (P) <1,7> 
||         LDH     .D1T2   *A10,B11          ; |66| (P) <1,7> 

           ZERO    .D2     B4
||         INTDP   .L1X    B8,A9:A8          ; |66| (P) <0,17> 
||         LDH     .D1T1   *++A10(8),A0      ; |66| (P) <1,8> 
||         INTDP   .L2     B4,B9:B8          ; |66| (P) <0,17> 

           ZERO    .D2     B5
||         ZERO    .L1     A5:A4             ; |65| 
||         ADD     .S2     B9,B10,B8         ; |66| (P) <1,9> 
||         ADD     .L2     B3,B9,B9          ; |66| (P) <1,9> 
||         LDH     .D1T2   *+A10(4),B11      ; |66| (P) <2,0> 

           ZERO    .D2     B6
||         ZERO    .S2     B7
||         INTDP   .L1X    B9,A7:A6          ; |66| (P) <1,10> 
||         LDH     .D1T2   *+A10(2),B9       ; |66| (P) <2,1> 
||         INTDP   .L2     B8,B1:B0          ; |66| (P) <1,10> 

;** --------------------------------------------------------------------------*
L2:    ; PIPED LOOP KERNEL

           ADDDP   .L2     B1:B0,B7:B6,B7:B6 ; |66| <0,20>  ^ 
||         ADDDP   .L1     A7:A6,A5:A4,A5:A4 ; |66| <0,20>  ^ 
||         LDH     .D1T2   *+A10(6),B11      ; |66| <2,2> 

           NOP             1

   [ A1]   SUB     .D1     A1,1,A1           ; |70| <0,22> 
||         ADDDP   .L1     A9:A8,A3:A2,A3:A2 ; |66| <0,22>  ^ 
||         ADDDP   .L2     B9:B8,B5:B4,B5:B4 ; |66| <0,22>  ^ 
||         MPY     .M2     B11,B11,B8        ; |66| <1,13> 

   [ A1]   B       .S1     L2                ; |70| <0,23> 
||         MPY     .M1     A0,A0,A0          ; |66| <1,14> 
||         MPY     .M2     B11,B11,B9        ; |66| <2,5> 

           MPY     .M2     B9,B9,B10         ; |66| <2,6> 

           ADD     .D2     B10,B8,B8         ; |66| <1,16> 
||         ADD     .S2X    B3,A0,B11         ; |66| <1,16> 
||         LDH     .D1T2   *A10,B11          ; |66| <2,7> 
||         MPY     .M2     B11,B11,B3        ; |66| <2,7> 

           INTDP   .L1X    B8,A9:A8          ; |66| <1,17> 
||         INTDP   .L2     B11,B9:B8         ; |66| <1,17> 
||         LDH     .D1T1   *++A10(8),A0      ; |66| <2,8> 

           ADD     .D2     B9,B10,B8         ; |66| <2,9> 
||         ADD     .S2     B3,B9,B9          ; |66| <2,9> 
|| [ B2]   LDH     .D1T2   *+A10(4),B11      ; |66| <3,0> 

   [ B2]   SUB     .D2     B2,1,B2           ; <0,28> 
||         INTDP   .L1X    B9,A7:A6          ; |66| <2,10> 
||         INTDP   .L2     B8,B1:B0          ; |66| <2,10> 
|| [ B2]   LDH     .D1T2   *+A10(2),B9       ; |66| <3,1> 

;** --------------------------------------------------------------------------*
L3:    ; PIPED LOOP EPILOG

           ADDDP   .L1     A7:A6,A5:A4,A5:A4 ; |66| (E) <2,20>  ^ 
||         ADDDP   .L2     B1:B0,B7:B6,B7:B6 ; |66| (E) <2,20>  ^ 

           NOP             1

           MPY     .M1     A0,A0,A0          ; |66| (E) <3,14> 
||         ADDDP   .L2     B9:B8,B5:B4,B5:B4 ; |66| (E) <2,22>  ^ 
||         MPY     .M2     B11,B11,B8        ; |66| (E) <3,13> 
||         ADDDP   .L1     A9:A8,A3:A2,A3:A2 ; |66| (E) <2,22>  ^ 

           NOP             1

           ADD     .S2X    B3,A0,B11         ; |66| (E) <3,16> 
||         ADD     .D2     B10,B8,B8         ; |66| (E) <3,16> 

           NOP             1

           INTDP   .L2     B11,B9:B8         ; |66| (E) <3,17> 
||         INTDP   .L1X    B8,A9:A8          ; |66| (E) <3,17> 

           ADDDP   .L1     A7:A6,A5:A4,A5:A4 ; |66| (E) <3,20>  ^ 
||         ADDDP   .L2     B1:B0,B7:B6,B7:B6 ; |66| (E) <3,20>  ^ 

           MVC     .S2     B12,CSR           ; interrupts on
           NOP             2

           ADDDP   .L1     A9:A8,A3:A2,A3:A2 ; |66| (E) <3,22>  ^ 
||         ADDDP   .L2     B9:B8,B5:B4,B5:B4 ; |66| (E) <3,22>  ^ 

           NOP             2
           MV      .S1X    B7,A1
           MV      .S1X    B6,A0
           NOP             2
           MV      .S1X    B5,A7
           MV      .S1X    B4,A6
	.line	14

           ZERO    .D2     B4                ; |71| 
||         ZERO    .L2     B5                ; |71| 
||         MVKL    .S2     RL0,B3            ; |71| 
||         ADDDP   .L1     A1:A0,A3:A2,A1:A0 ; |71| 

           MVKH    .S2     0x405f0000,B5     ; |71| 
           MVKH    .S2     RL0,B3            ; |71| 
           NOP             4
           ADDDP   .L1     A5:A4,A1:A0,A1:A0 ; |71| 
           NOP             6
           ADDDP   .L1     A7:A6,A1:A0,A5:A4 ; |71| 
           MVKL    .S1     __divd,A0         ; |71| 
           MVKH    .S1     __divd,A0         ; |71| 
           CALL    .S2X    A0                ; |71| 
           NOP             5
RL0:       ; CALL OCCURS                     ; |71| 
           NOP             1
           DPSP    .L1     A5:A4,A4          ; |71| 
	.line	15
           LDW     .D2T2   *+SP(12),B3       ; |72| 
           LDDW    .D2T2   *+SP(16),B11:B10  ; |72| 
           LDW     .D2T1   *+SP(8),A10       ; |72| 
           LDW     .D2T2   *++SP(24),B12     ; |72| 
           NOP             1
           RET     .S2     B3                ; |72| 
           NOP             5
           ; BRANCH OCCURS                   ; |72| 
	.endfunc	72,01c080400h,24



	.sect	".text"
	.global	_noise_estimate2
	.sym	_noise_estimate2,_noise_estimate2, 38, 2, 0
	.func	79

;******************************************************************************
;* FUNCTION NAME: _noise_estimate2                                            *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,B0,B1,B2,B3,B4,B5,B6,B7,  *
;*                           B8,B9,B10,B11,SP                                 *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,B0,B1,B2,B3,B4,B5,B6,B7,  *
;*                           B8,B9,B10,B11,DP,SP                              *
;*   Local Frame Size  : 0 Args + 0 Auto + 12 Save = 12 byte                  *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_noise_estimate2:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_pilots,4, 22, 17, 32
	.sym	_workbuffer,20, 22, 17, 32
	.sym	_h_hat,6, 22, 17, 32
	.sym	_h_hat,0, 22, 4, 32
	.sym	_workbuffer,0, 22, 4, 32
	.sym	_pilots,0, 22, 4, 32
	.sym	_nre,5, 6, 4, 32
	.sym	_nim,4, 6, 4, 32
           STW     .D2T2   B11,*SP--(16)     ; |80| 
           STW     .D2T2   B10,*+SP(12)      ; |80| 
           STW     .D2T2   B3,*+SP(8)        ; |80| 

           MV      .D1     A6,A0             ; |80| 
||         SUB     .D2     B4,8,B3
||         MV      .S2X    A4,B8             ; |80| 

	.line	7
           MVK     .S2     0x7c,B6           ; |85| 

⌨️ 快捷键说明

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