реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Помогите с заданием констрейнов
Shaienn
сообщение Nov 22 2010, 04:51
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 21-06-09
Пользователь №: 50 494



Здравствуйте.

Такой вопрос:

Делаю DDS синтезатор на Cyclone3.
Есть таблица синуса.
При таком варианте кода, когда используется четверть периода:
Код
always @(posedge areset or posedge c0)
begin
if(areset)
    begin
            PhaseAcc = 2'h0;
            ResolutionCounter = 8'h00;
    end
else
begin

        case (PhaseAcc)
        2'b00:
        begin
        DAC_Data    <= SinRom[ResolutionCounter];
        end
        2'b01:
        begin
        DAC_Data    <= SinRom[63 - ResolutionCounter];
        end
        2'b10:
        begin
        DAC_Data    <= SinRom[63 - ResolutionCounter] - 127;
        end
        2'b11:
        begin
        DAC_Data    <= 254 - SinRom[63 - ResolutionCounter];
        end
        endcase
        ResolutionCounter <= ResolutionCounter + STEP;

    if (ResolutionCounter == 64)
        begin
        PhaseAcc <= (PhaseAcc == 2'b11) ? 2'b00 : PhaseAcc + 2'b01;
        ResolutionCounter <= 8'h00;
        end

end
end

assign DAC = DAC_Data;

происходит искажение синусоиды. Я так понимаю, из-за разной задержки путей case. Подскажите, как задать общую задержку этого участка?

PS С констрейнами пока на "ВЫ"
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 22 2010, 06:24
Сообщение #2


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Shaienn @ Nov 21 2010, 22:51) *
происходит искажение синусоиды

ну и причем здесь констрейны? если код у вас кривой %)

ЗЫ. кривость на виду, логически вычисляется секунд за 15-30.


--------------------
Go to the top of the page
 
+Quote Post
Shaienn
сообщение Nov 22 2010, 06:28
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 21-06-09
Пользователь №: 50 494



ткните носом, плиз...
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 22 2010, 06:32
Сообщение #4


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Shaienn @ Nov 22 2010, 00:28) *
ткните носом, плиз...

в любой симулятор PhaseAcc, ResolutionCounter выведите, тогда увидите.


--------------------
Go to the top of the page
 
+Quote Post
Shaienn
сообщение Nov 22 2010, 06:56
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 103
Регистрация: 21-06-09
Пользователь №: 50 494



Прикрепленное изображение


Как только pll зафиксировала частоту, начинает считаться ResolutionCounter и выдаваться табличные значения на выход DAC , по достижении ResolutionCounter 64, прибавляется единица в PhaseAcc, а ResolutionCounter сбрасывается.

Чего я не вижу?

PS Кажется увидел...

Сообщение отредактировал Shaienn - Nov 22 2010, 07:07
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 22 2010, 07:24
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Shaienn @ Nov 22 2010, 00:56) *
PS Кажется увидел...

получите рабочий код, потом подскажу как его оптимизировать по ресурсу и производительности %)


--------------------
Go to the top of the page
 
+Quote Post
challenger
сообщение Dec 5 2010, 15:03
Сообщение #7





Группа: Новичок
Сообщений: 1
Регистрация: 5-12-10
Пользователь №: 61 421



Сравнивать с 63
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 09:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016