Разработка системы сжатия эхо-сигналов различной длительности

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



: sr_length;en_o: STD_LOGIC;out_X1I : SIGNED (X_Y_WIDTH downto 0);out_Y1I : SIGNED (X_Y_WIDTH downto 0);out_X2I : SIGNED (X_Y_WIDTH downto 0);out_Y2I : SIGNED (X_Y_WIDTH downto 0);out_X3I : SIGNED (X_Y_WIDTH downto 0);out_Y3I : SIGNED (X_Y_WIDTH downto 0);out_X4I : SIGNED (X_Y_WIDTH downto 0);out_Y4I : SIGNED (X_Y_WIDTH downto 0);C1 : SIGNED (W_SIZE_CD downto 0);D1 : SIGNED (W_SIZE_CD downto 0);C2 : SIGNED (W_SIZE_CD downto 0);D2 : SIGNED (W_SIZE_CD downto 0);C3 : SIGNED (W_SIZE_CD downto 0);D3 : SIGNED (W_SIZE_CD downto 0);C4 : SIGNED (W_SIZE_CD downto 0);D4 : SIGNED (W_SIZE_CD downto 0);

-comp_multipXpY_1: SIGNED ((X_Y_WIDTH) downto 0);CpD_1: SIGNED ((W_SIZE_CD) downto 0);YmX_1: SIGNED (X_Y_WIDTH downto 0);XI_1: SIGNED (X_Y_WIDTH downto 0);YI_1: SIGNED (X_Y_WIDTH downto 0);CI_1: SIGNED (W_SIZE_CD downto 0);DI_1: SIGNED (W_SIZE_CD downto 0);XI1_1: SIGNED (X_Y_WIDTH downto 0);CI1_1: SIGNED (W_SIZE_CD downto 0);DI1_1: SIGNED (W_SIZE_CD downto 0);K2_1: SIGNED (X_Y_WIDTH + W_SIZE_CD+1 downto 0);K1_1: SIGNED (W_SIZE_CD + X_Y_WIDTH+1 downto 0);K3_1: SIGNED (X_Y_WIDTH + W_SIZE_CD+1 downto 0);Re1: SIGNED(X_Y_WIDTH + W_SIZE_CD+1 downto 0);Im1: SIGNED(X_Y_WIDTH + W_SIZE_CD+1 downto 0);

-XpY_2: SIGNED ((X_Y_WIDTH) downto 0);CpD_2: SIGNED ((W_SIZE_CD) downto 0);YmX_2: SIGNED (X_Y_WIDTH downto 0);XI_2: SIGNED (X_Y_WIDTH downto 0);YI_2: SIGNED (X_Y_WIDTH downto 0);CI_2: SIGNED (W_SIZE_CD downto 0);DI_2: SIGNED (W_SIZE_CD downto 0);XI1_2: SIGNED (X_Y_WIDTH downto 0);CI1_2: SIGNED (W_SIZE_CD downto 0);DI1_2: SIGNED (W_SIZE_CD downto 0);K2_2: SIGNED (X_Y_WIDTH + W_SIZE_CD+1 downto 0);K1_2: SIGNED (W_SIZE_CD + X_Y_WIDTH+1 downto 0);K3_2: SIGNED (X_Y_WIDTH + W_SIZE_CD+1 downto 0);Re2: SIGNED(X_Y_WIDTH + W_SIZE_CD+1 downto 0);Im2: SIGNED(X_Y_WIDTH + W_SIZE_CD+1 downto 0);

-

SIGNAL XpY_3: SIGNED ((X_Y_WIDTH) downto 0);CpD_3: SIGNED ((W_SIZE_CD) downto 0); YmX_3: SIGNED (X_Y_WIDTH downto 0);XI_3: SIGNED (X_Y_WIDTH downto 0);YI_3: SIGNED (X_Y_WIDTH downto 0);CI_3: SIGNED (W_SIZE_CD downto 0);DI_3: SIGNED (W_SIZE_CD downto 0);XI1_3: SIGNED (X_Y_WIDTH downto 0);CI1_3: SIGNED (W_SIZE_CD downto 0);DI1_3: SIGNED (W_SIZE_CD downto 0);K2_3: SIGNED (X_Y_WIDTH + W_SIZE_CD+1 downto 0);K1_3: SIGNED (W_SIZE_CD + X_Y_WIDTH+1 downto 0);K3_3: SIGNED (X_Y_WIDTH + W_SIZE_CD+1 downto 0);Re3: SIGNED(X_Y_WIDTH + W_SIZE_CD+1 downto 0);Im3: SIGNED(X_Y_WIDTH + W_SIZE_CD+1 downto 0);

-XpY_4: SIGNED ((X_Y_WIDTH) downto 0);CpD_4: SIGNED ((W_SIZE_CD) downto 0);YmX_4: SIGNED (X_Y_WIDTH downto 0);XI_4: SIGNED (X_Y_WIDTH downto 0);YI_4: SIGNED (X_Y_WIDTH downto 0);CI_4: SIGNED (W_SIZE_CD downto 0);DI_4: SIGNED (W_SIZE_CD downto 0);XI1_4: SIGNED (X_Y_WIDTH downto 0);CI1_4: SIGNED (W_SIZE_CD downto 0);DI1_4: SIGNED (W_SIZE_CD downto 0);K2_4: SIGNED (X_Y_WIDTH + W_SIZE_CD+1 downto 0);K1_4: SIGNED (W_SIZE_CD + X_Y_WIDTH+1 downto 0);K3_4: SIGNED (X_Y_WIDTH + W_SIZE_CD+1 downto 0);Re4: SIGNED(X_Y_WIDTH + W_SIZE_CD+1 downto 0);Im4: SIGNED(X_Y_WIDTH + W_SIZE_CD+1 downto 0);

-accumulationaddRe1_out: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);addIm1_out: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);addRe2_out: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);addIm2_out: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);addRe3_out: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);addIm3_out: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);addRe4_out: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);addIm4_out: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);accRe1: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);accIm1: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);accRe2: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);accIm2: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);accRe3: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);accIm3: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);accRe4: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);accIm4: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+6 downto 0);

-SUMSAcc_Re_1: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Acc_Re_2: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Acc_Re_3: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Acc_Re_4: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Acc_Im_1: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Acc_Im_2: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Acc_Im_3: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Acc_Im_4: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);

-Sum_Re_1_2: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Sum_Re_3_4: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Sum_Im_1_2: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Sum_Im_3_4: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Sum_Re: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);Sum_Im: SIGNED(X_Y_WIDTH + W_SIZE_CD+1+8 downto 0);(CLK_160)RISING_EDGE (CLK_160)THEN_160 <= MS;_160D <= MS_160;_M160 <= (NOT MS_160D) AND MS_160;IF;process;(CLK_160) -- corellation EnableRISING_EDGE (CLK_160)THENNRD = 1 AND MS(1) = 1 THEN_ENA <= 1;

(KRDNS = 1 AND MS(1) = 1)_ENA <= 0;CORR_ENA <= CORR_ENA;IF;IF;process;(CLK_160) -- multip EnableRISING_EDGE (CLK_160)THENMS_M160(1) = 1 and CORR_ENA = 1 THEN_ENA <= 1;(COUNT_H1 = (corr_depth/4)-2 and CORR_ENA = 1) THEN_ENA <= 0;mult_ENA <= mult_ENA;IF;IF;process;

-(clk_160) --shifting and sorting X/Y(rising_edge(clk_160)) then(COUNT_H1P = 0 and MS_M160(1) = 1) thenlost_SH((corr_depth-1) downto 1) <= X_SH((corr_depth-2) downto 0);_SH((corr_depth-1) downto 1) <= Y_SH((corr_depth-2) downto 0);

- Load new data into the first stage_SH(0) _X1I (X_Y_WIDTH downto 0) <= "00000000000000";_X2I (X_Y_WIDTH downto 0) <= "00000000000000";_X3I (X_Y_WIDTH downto 0) <= "00000000000000";_X4I (X_Y_WIDTH downto 0) <= "00000000000000";_Y1I (X_Y_WIDTH downto 0)<= "00000000000000";_Y2I (X_Y_WIDTH downto 0)<= "00000000000000";_Y3I (X_Y_WIDTH downto 0)<= "00000000000000";_Y4I (X_Y_WIDTH downto 0)<= "00000000000000";case;if;process;

-------------------<=CD1 (W_SIZE_CD downto 0);<=CD1 (2*W_SIZE_CD+1 downto W_SIZE_CD+1);<=CD2 (W_SIZE_CD downto 0);<=CD2 (2*W_SIZE_CD+1 downto W_SIZE_CD+1);<=CD3 (W_SIZE_CD downto 0);<=CD3 (2*W_SIZE_CD+1 downto W_SIZE_CD+1);<=CD4 (W_SIZE_CD downto 0);<=CD4 (2*W_SIZE_CD+1 downto W_SIZE_CD+1);

-------------------_CD <= COUNT_H1;_X <= XI_1;_C <= DI_1;_CC <= DI_2;_CCC <= DI_3;_CCCC <= DI_4;<= corr_ena;(clk_160) --complex multiplyerRISING_EDGE (clk_160) THEN_1<=out_X1I; YI_1<=out_Y1I;_1<=C1; DI_1<=D1;_1<=XI_1;_1<=CI_1; DI1_1<=DI_1;_2<=out_X2I; YI_2<=out_Y2I;_2<=C2; DI_2<=D2;_2<=XI_2;_2<=CI_2; DI1_2<=DI_2;_3<=out_X3I; YI_3<=out_Y3I;_3<=C3; DI_3<=D3;_3<=XI_3;_3<=CI_3; DI1_3<=DI_3;_4<=out_X4I; YI_4<=out_Y4I;_4<=C4; DI_4<=D4;_4<=XI_4;_4<=CI_4; DI1_4<=DI_4;IF;RISING_EDGE (clk_160) THEN_1<=CI_1 + DI_1;_1<=XI_1 + YI_1;_1<=YI_1 - XI_1;_2<=CI_2 + DI_2;_2<=XI_2 + YI_2;_2<=YI_2 - XI_2;_3<=CI_3 + DI_3;_3<=XI_3 + YI_3;_3<=YI_3 - XI_3;_4<=CI_4 + DI_4;_4<=XI_4 + YI_4;_4<=YI_4 - XI_4;IF;RISING_EDGE (clk_160) THEN

-_1<=XpY_1*DI1_1;_1<=CpD_1*XI1_1;_1<=YmX_1*CI1_1;

-_2<=XpY_2*DI1_2;_2<=CpD_2*XI1_2;_2<=YmX_2*CI1_2;

-_3<=XpY_3*DI1_3;_3<=CpD_3*XI1_3;_3<=YmX_3*CI1_3;

-_4<=XpY_4*DI1_4;_4<=CpD_4*XI1_4;_4<=YmX_4*CI1_4;IF;

-RISING_EDGE (clk_160) THEN<=K1_1-K2_1;<=K1_1+K3_1;<=K1_2-K2_2;<=K1_2+K3_2;<=K1_3-K2_3;<=K1_3+K3_3;<=K1_4-K2_4;<=K1_4+K3_4;IF;process;(clk_160)

-IF RISING_EDGE (clk_160) THEN(timer=0) THEN --ACCUMULATOR

- Clear the accumulated data<= "00000000000000000000000000";<= "00000000000000000000000000";<= "00000000000000000000000000";<= "00000000000000000000000000";<= "00000000000000000000000000";<= "00000000000000000000000000";<= "00000000000000000000000000";<= "00000000000000000000000000";<= addRe1_out;<= addIm1_out;<= addRe2_out;<= addIm2_out;<= addRe3_out;<= addIm3_out;<= addRe4_out;<= addIm4_out;IF;

-END IF;RISING_EDGE (clk_160) THEN -- Store accumulation result in a registertimer=0 THEN --сброс регистра аккумулятора по timer_out 5 and timer < 71 THEN_out <= (Re1 + accRe1);_out <= (Im1 + accIm1);_out <= (Re2 + accRe2);_out <= (Im2 + accIm2);_out <= (Re3 + accRe3);_out <= (Im3 + accIm3);_out <= (Re4 + accRe4);_out <= (Im4 + accIm4);IF;IF;IF;RISING_EDGE (clk_160) THEN --accum result