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

 
 
> Помогите с заданием констрейнов
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



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

 


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


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