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

 
 
 
Reply to this topicStart new topic
> MAX10 + Quartus , velilog, глюки в железе.
diwil
сообщение Jul 10 2015, 12:17
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 366
Регистрация: 5-09-06
Из: Санкт-Петербург
Пользователь №: 20 107



Господа, генерю сигналы для аудиокодека (pcm3500) и наткнулся на следующую фигню:

Код
Код
module pcm_clocks(
    input reset_n,
    input clk,
    output mclk,
    output fs,
    output bclk
);

reg [8:0] counter;

assign mclk = clk;
assign bclk = counter[4];
assign fs = !(counter[8:5]) & reset_n;

initial
begin
    counter = 0;
end


always @(posedge clk)
begin
    if (!reset_n)
    begin
        counter <= 0;
    end
    else
    begin
        counter <= counter + 9'd1;
    end

end

endmodule


clk и mclk - это 4МГц.
fs - это синхронизационный импульс,
bclk - это битовый клок.

так вот...
Казалось бы, fs должен быть единицей первые 32 счета счетчика, а потом нулем. И это работает.
Но! поскольку fs это НЕ ИЛИ 8:5 разрадов счетчика, то спад импульса fs должен совпадать со спадом импульса bclk
А получается...

В зависимости от непонятных мне причин иногда получается с точностью до наоборот. Т.е. приходится писать
assign bclk = ~counter[4];
что, на мой взгляд, не правильно.

Что сомое интересное, сие не зависит от времени появления reset_n -
он синхронен с clk и переходит в 1 по спадающему фронту clk

Вопрос(ы) -

- что я упустил?
- как это засинхронизировать програмно?
- или это глюк компилера?
- или глюк железа?

забыл добавить - моделсим показывает все как надо
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 10 2015, 12:31
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(diwil @ Jul 10 2015, 15:17) *
Господа, генерю сигналы для аудиокодека (pcm3500) и наткнулся на следующую фигню:


- что я упустил?
- как это засинхронизировать програмно?
- или это глюк компилера?
- или глюк железа?


Вообще все немного не так. Должна быть только одна частота, а все остальные формируются из нее на триггерах со входом разрешения...
Могу объяснить но голосом по скайпу...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

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

 


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


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