CORDIC NCO за Digital Up конверсия

M

mbalakr2

Guest
Здравейте всички,

Аз работя за проектиране цифров преобразувател Down и цифрови Up преобразувател.Започнах чрез проектиране на NCO използвайки CORDIC алгоритъм за определяне на Digital преобразуване.Аз написах VHDL код за NCO в Qu (AT) rtus II и получени приблизителната резултати за определяне на преобразуване.Аз съм се опитват да приложат същата CORDIC NCO за конверсионно.Аз съм тестове по хранене в изхода на NCO че предназначени за определяне на преобразуване.Аз настроите X вход както 0,309 (COS 72) и Y вход както 0,951 (Sin 72).Аз съм очакват производство от 0,607, което е величината на двата входа и фаза под ъгъл 72.Но аз не съм в състояние да се получи това.Може някой, моля да ми помогне с код?АЗ имам никакъв представа как да се процедира ..Кодът съм написал е даден по-долу:

Код:Библиотеката IEEE;

използване ieee.std_logic_1164.all;

използване ieee.std_logic_arith.all;

използване ieee.std_logic_unsigned.all;образувание ncoR е - Най-високо ниво Обект

родови

(

размер: число: = 20

);порт

(

clk: в std_logic;

нулиране: в std_logic;

x0: в std_logic_vector (размер-1 downto 0);

y0: в std_logic_vector (размер-1 downto 0);

z0: в std_logic_vector (размер-1 downto 0);

фаза: изложени std_logic_vector (размер-1 downto 0);

куадро: изложени std_logic_vector (размер-1 downto 0);

ъгъл: буфер std_logic_vector (размер-1 downto 0);

на проекта: в std_logic;

Съставено: изложени std_logic

);края ncoR;архитектурата дъга на ncoR есигнал cnt: std_logic_vector (4 downto 0);

сигнал newx: std_logic_vector (размер-1 downto 0);

сигнал newy: std_logic_vector (размер-1 downto 0);

сигнал newz: std_logic_vector (размер-1 downto 0);

сигнал xreg: std_logic_vector (размер-1 downto 0);

сигнал yreg: std_logic_vector (размер-1 downto 0);

сигнал zreg: std_logic_vector (размер-1 downto 0);

сигнал sxreg: std_logic_vector (размер-1 downto 0);

сигнал syreg: std_logic_vector (размер-1 downto 0);

сигнал АТАН: std_logic_vector (размер-1 downto 0);

сигнал перка: std_logic;

сигнал nxt: std_logic;

сигнал като: std_logic;

сигнал нас: std_logic;- Компонент декларациикомпонент addsubR - Адер

родови

(

размер: число: = 20

);порт

(

dataa: в std_logic_vector (размер-1 downto 0);

datab: в std_logic_vector (размер-1 downto 0);

Резултатът: изложени std_logic_vector (размер-1 downto 0);

като: по-std_logic

);

края компонент;компонент anglelut - Ъгъл Виж-Up Таблица

родови

(

размер: число: = 20

);порт

(

индекс: в std_logic_vector (4 downto 0);

ATAN: изложени std_logic_vector (размер-1 downto 0)

);

края компонент;компонент fsmR - краен членка Машиностроенепорт

(

clk: в std_logic;

нулиране: в std_logic;

на проекта: в std_logic;

cnt: в std_logic_vector (4 downto 0);

начална: изложени std_logic;

nxt: изложени std_logic;

Съставено: изложени std_logic

);края компонент;компонент shiftR - работник

родови

(

размер: число: = 20

);порт

(

данни: в std_logic_vector (размер-1 downto 0);

sdata: изложени std_logic_vector (размер-1 downto 0);

N: в std_logic_vector (4 downto 0)

);

края компонент;започвампроцес (clk, newx, newy, newz, z0, nxt, FIN)

започвам

ако (rising_edge (clk)) след това

ако перка = "1" и след това

xreg <= x0;

yreg <= y0;

zreg <= z0;

cnt <= (другите => "0");

elsif nxt = "1" и след това

xreg <= newx;

yreg <= newy;

zreg <= newz;

cnt <= cnt "1";

край, ако;

край, ако;

края процес;като <= yreg (размер-1); - MSB на Y регистър

фаза <= yreg;

куадро <= xreg;

ъгъл <= zreg;

нашата мрежа <= не (както);addx: addsubR - Акумулатор за X регистър

генерични сайта

(

размер => размер

)порт на сайта

(

dataa => xreg,

datab => syreg,

резултат => newx,

както => както

);addy: addsubR - Акумулатор за да се регистрирате

генерични сайта

(

размер => размер

)порт на сайта

(

dataa => yreg,

datab => sxreg,

резултат => newy,

както => нас

);addz: addsubR - Акумулатор за Z регистър

генерични сайта

(

размер => размер

)порт на сайта

(

dataa => zreg,

datab => ATAN,

резултат => newz,

както => както

);lut: anglelut

генерични сайта

(

размер => размер

)порт на сайта

(

Index => cnt,

ATAN => АТАН

);state_mach: fsmR

порт на сайта

(

clk => clk,

нулиране => нулиране,

на проекта => начало

cnt => cnt,

начална => перка,

nxt => nxt,

Съставено => Съставено

);shiftx: shiftR - преместване х стойност

генерични сайта

(

размер => размер

)порт на сайта

(

данни => xreg,

sdata => sxreg,

N => cnt

);находчив: shiftR - пренасочване Y стойност

генерични сайта

(

размер => размер

)порт на сайта

(

данни => yreg,

sdata => syreg,

N => cnt

);края арка;Търсене таблицаБиблиотеката IEEE;

използване IEEE.Std_Logic_1164.all;

използване IEEE.Std_Logic_arith.all;образувание anglelut еродови

(

размер: положителните: = 20

);

порт

(

индекс: в std_logic_vector (4 downto 0);

ATAN: изложени std_logic_vector (размер-1 downto 0)

);края anglelut;архитектурата таблица на anglelut Изразявасигнал tinfo: std_logic_vector (19 downto 0);започвамATAN <= tinfo;

процес (индекс)

започвамслучай индекс е

когато "00000" => tinfo <= X "3243F", - 45

когато "00001" => tinfo <= X "1DAC6"; - 26,565

когато "00010" => tinfo <= X "0FADB"; - 14,036

когато "00011" => tinfo <= X "07F56", - 7,125

когато "00100" => tinfo <= X "03FEA"; - 3,576

когато "00101" => tinfo <= X "01FFD"; - 1,789

когато "00110" => tinfo <= X "00FFF"; - 0,8951

когато "00111" => tinfo <= X "007FF"; - 0,4476

когато "01000" => tinfo <= X "003FF"; - 0,2238

когато "01001" => tinfo <= X "001FF"; - 0,1119

когато "01010" => tinfo <= X "000FF"; - 0,0559

когато "01011" => tinfo <= X "0007F"; - 0,0279

когато "01100" => tinfo <= X "0003F"; - 0,0139

когато "01101" => tinfo <= X "0001F"; - 0,00699

когато "01110" => tinfo <= X "0000F"; - 0,00349

когато "01111" => tinfo <= X "00007"; - 0,00174

когато "10000" => tinfo <= X "00003"; - 0,00087

когато "10001" => tinfo <= X "00001"; - 0,00043

когато "10010" => tinfo <= X "00000"; - 0,00021

когато "10011" => tinfo <= X "00000"; - 0,00010

когато другите => tinfo <= "--------------------";края случай;

края процес;

край масата;
 

Welcome to EDABoard.com

Sponsor

Back
Top