Перейти к содержанию
    

Начальные значения

Torpeda, спасибо уже что-то полезное.

 

Вот что собрал и обобщил.

 

После подачи напряжения триггеры могут находиться в любом состоянии. Поэтому применяют POR (Power On Reset).

Причем насколько понял то выдачу тактовых сигналов начинается либо после выдачи ресета либо после снятия.

Провод ресета предвидится к основным тригерам и регистрам. При этом она может уста навивать триггер в 1 или 0.

Не основные тригеры или регистры сбрасываются программно или аппаратно при тактовки от клока.

Также ноги во время ресета приводяться в 3-х стабильное состояние. Тоже своего рода защита.

Синтезатор выдаёт частоты тоже не сразу. Так как кристалу надо стабилизироваться. Да и микропроцесор надо перевести в определённое состояние до того как пойдут такты. Иначе он будет выполняь белеберду и может натворить дел.

 

 

Что касается ПЛИС то по умолчанию тригеры и регистры обновляются, но можно задать любое значение.

В ASIC 1,0 реализовано аппаратно.

Поэтому в Verilog надо описывать начальное состояние.

1)

2)

Читал что секция initial не является синтезируемой это так или это неправда?

 

Для краткости в обоих примерах опустил reset. Он тоже должен быть, но так как насколько понял ПЛИС не позволяет явно связать его POR или с CLRn, он будет работать только от внешнего источника.

 

Такого как супервизор. Возможные реализации супервизора SM описал. Это либо простая микросхема со счётчиком. Либо ещё более простая с компаратором и RC элементами.

 

Организация ресета должна вестись глобальной линией. Что бы он дошел до всех элементов системы одновременно и без искажений. Если это не возможно, то надо будет делать более сложную схему.

Для задания глобальной линии на ПЛИС надо смотреть документацию на конкретное устройство.

Смешались в кучу кони, люди...

1) POR - это скорее микропроцессорный термин, просто означающий что РЕСЕТ подаётся во время и немного после включения питания.

2) "выдачу тактовых сигналов начинается либо после выдачи ресета либо после снятия" - неправильно

Это вопрос следующего уровня....

тут просто надо понимать, что если снять ресет во время активного уровня клока то тригер станет метастабильным (также как и когда данные меняются на клоке)

Чтобы данные не менялись на клоке - заботится тулза (проверяя set-up \ hold time)

А вот внешний асинхронный сигнал вы обязаны привязать к клоку. Хотя... для простоты и поначалу забудьте про эти тонкости.

3) "Провод ресета предвидится к основным тригерам и регистрам."

А как вы будете выяснять какие основные а какие нет?

Настоятельно рекомендую ресетить ВСЕ тригеры без исключения.

4) "Также ноги во время ресета приводяться в 3-х стабильное состояние."

Это справедливо только для FPGA.

Эта особенность FPGA никак не относится к способам реализации ресета схемы...

5) "Синтезатор выдаёт частоты тоже не сразу. Так как кристалу надо стабилизироваться."

О каком синтезаторе речь? Может осцилятор выдающий CLK?

в любом случае, єто просто особенность работы аналоговой схемы осцилятора и не более. Да, он может выйти на заявленные параметры не моментально.

Да, в это время или после нужно подать ресет на цифру.

Сами догадаетесь почему цифра не может правильно работать (что в ней нарушится), пока не подан застабилизированный CLK?

6) "в Verilog надо описывать начальное состояние."

В Verilog надо явно описывать вход асинхронного сбросса.

Начальные состояния игнорируются синтезатором (хотя... синтезатор FPGA может их и использовать... не проверял).

module test (
  input           clk,   // Input clock
  output[7:0] out,   // Output data
  input          reset
);

reg [7:0] counter;
assign out = counter[7:0];

always @(posedge clk or negedge reset) 
begin
  if (reset == 0)
      counter <= 0;
  else
      counter <= counter+1;
end

endmodule

 

7) "...понял ПЛИС не позволяет явно связать его POR или с CLRn, он будет работать только от внешнего источника. "

Эту фразу и я не понял....

Описанный выше "reset ", в случае с ПЛИС, вы должны назначить как подключенный к глобальному сигналу ПЛИС с именем=CLRn.

Он будет работать от внешнего источника (супервизора напряжения).

Если вы хотите использовать встроенный ресет в ПЛИСЕ, то да, вы можете не описывать явно "reset ", а можете и оставить это в описании просто на топе подключив его к 1.

 

Для такого начинающего как вы - я рекомендую всё описывать явно, использовать внешний супервизор и не идти на трюки со встроенным ресетом.

Использовать встроенный ресет надо с учётом всего что происходит в устройстве во время старта.

Вы должны решить, подходит ли в вашем случае встроенный ресет или нет.

 

процу строго говоря для работы не нужен застабилизированный клок, как и ПЛИС. Вам никто не мешает сделать кнопку которая будет генерить тактовые импульсы и нажимать на нее рукой. Просто все посчитали удобнее если импульсы генерятся с понятной и стабильной частотой.

 

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

Ничего "для удобства" не заводится.

1) Клок надо стабильный потому, что иначе у вас set-up тайми упадут и схема начнёт работать непредсказуемо

2) Внешний ресет на ножку заводится НЕ для удобства, а для правильности старта всего устройства.

Вот что будет если напряжение просядет? Внешний генератор есчё не стабилизируется?....

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сами догадаетесь почему цифра не может правильно работать (что в ней нарушится), пока не подан застабилизированный CLK?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Начальные состояния игнорируются синтезатором (хотя... синтезатор FPGA может их и использовать... не проверял).

Это, местами работает, местами нет... Вот на Lattice (синтез Synplify) года 4 назад точно не работало, исплевался, переделывая чей то плохой код с использованием начальных значений, а на днях проверил - работает однако... Так что, присоединяюсь, это использовать в общем не следует, все надо инициализировать по сигналу сброса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну Вы прикидываетесь, или издеваетесь? а?

ЧТО ТАМ МОЖНО ВСТРОИТЬ?

 

ну в целом да, глупость сказал. плис же имеет право работать вообще без клока, просто как логическая схема, в смысле не всем пользователям нужен клок, и это лишняя запара получается

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну вот хоть режьте я не понимаю...

Эта тема уже относится к аналоговой схемотехнике, потому что, пока клок идет с пологими фронтами, синусоидальный, треугольный, и т.п., схема вообще не работает как цифровая. Изучите ее, аналоговую схемотехнику, хотя бы поверхностно, и поймете. Хотя, может для этого (изучения того, что по своей принципиальности Вы считаете лишним и ненужным), Вас надо немного порезать :) :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Клок надо стабильный потому, что иначе у вас set-up тайми упадут и схема начнёт работать непредсказуемо

это аргумент, не подумал про это, думал что частота при выходе на режим может быть только ниже номинальной, а ведь она может быть ваще любой

 

 

2) Внешний ресет на ножку заводится НЕ для удобства, а для правильности старта всего устройства.

Вот что будет если напряжение просядет? Внешний генератор есчё не стабилизируется?....

Плохо выразился, я имел ввиду ресет ввиде доп кнопки от пользователя. Тот что нужен для правильного старта после появления питания, начала процесса загрузки ПЛИС, тот что идет на спец ножку я не имел ввиду. Говорил про пользовательский внешний ресет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Говорил про пользовательский внешний ресет.

О как. А все мы - про резет, необходимый для корректного старта системы. А кнопка это уже опция к нему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эта тема уже относится к аналоговой схемотехнике, потому что, пока клок идет с пологими фронтами, синусоидальный, треугольный, и т.п., схема вообще не работает как цифровая. Изучите ее, аналоговую схемотехнику, хотя бы поверхностно, и поймете. Хотя, может для этого (изучения того, что по своей принципиальности Вы считаете лишним и ненужным), Вас надо немного порезать :) :)

 

это если мы пихаем на вход элементов сразу клок, а на входе нет каких то спец буферов и прочей байды, тех же тригерров шмитта, которые что-то вялое и невразумительное превратят в хорошенькие ступеньки, пусть и с левой частотой? Почему то мне казалось что глобальные клоковые буферы делают именно это.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

потому что:

1) в спецификации ПЛИС тупо указаны требования к форме клока (длительность фронтов, амплитуда и.т.д). Обязаны выполнить.

2) частота на старте обычно не стабильна.

Если она плавно повышается - то куда не шло, работать будет (при выполнении п.1) естественно)

Если она выше расчётной (спайк например), то не выполнится set-up тайм, и соответственно схема будет или работано не так как задумано или вообще впадёт в метастабильность...

Осциляторы в которых на выходе ничё нет, пока он не выйдет на режим мне не попадались честно говоря... но если такие есть, то ОК - работать будет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О как. А все мы - про резет, необходимый для корректного старта системы. А кнопка это уже опция к нему.

 

Да потому что у этой ПЛИС получилось дофигища ресетов...

Я очень виноват в том куда зарулила тема, потому что наверное изначально не теми словами называл некоторые вещи.

У нас разделение на фирме, один люди делают так чтобы работало железо, генераторы, клоки, грузилась ПЛИС, стартовали процы срабатывали внешние датчики, фильтровались сигналы и прочее... Потом это идет ко мне и я делаю чтобы работало наполнение. Потому я изначально все воспринимаю с точки зрения внутренних автоматов, клоков и прочего. И когда мне говорят про ресет, я думаю про задание начального состояния схемы-программы, чтобы все автоматы перешли в нужные режимы и потом стартанули.

 

Вообщем простите меня, я говорил совсем про другие вещи получается...

 

потому что:

Если она плавно повышается - то куда не шло, работать будет (при выполнении п.1) естественно)

 

хорошо, тут я значит еще понимаю что происходит.

 

 

Если она выше расчётной (спайк например), то не выполнится set-up тайм, и соответственно схема будет или работано не так как задумано или вообще впадёт в метастабильность...

это я понял, тут я тупил, частота же правда может быть и выше... а что такое спайк?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... а что такое спайк?

spike , Noun

[spaɪk]Произношение в настоящий момент недоступно

 

шип m

скачок цен m

шпиль m (Music)

выброс m (Building and Ecology)

пик m (Oil and Gas Exploration Industry)

спайк m (Biology)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потом это идет ко мне и я делаю чтобы работало наполнение. Потому я изначально все воспринимаю с точки зрения внутренних автоматов, клоков и прочего.

 

Вот-вот, а я разрабатываю систему в целом, первым делом разбираясь, что запихнуть в ПЛИС, что там реализуемо, а что нет, за счет чего можно сократить количество внешней обвязки, ее сложности и цену. И, даже, в тех редких случаях, если схему разрабатываю не я, я все обязательно контролирую, что входит и как входит в ПЛИС, так как мне потом с этим иметь дело, и я не хочу, чтобы дело имело меня :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ни в одном процессоре я не ожидал входного клока, как и в ПЛИСах ксалинкса не жду. Может я самоуверен, а может это сделал производитель процов за меня...

 

Во всех процессорах с которыми я работал приходилось настраивать входной клок. Т.е. изначально проц запускается от внутреннего генератора, потом нужно

программно выбрать источник клока (генератор или кристалл), настроить значения делителя и умножителя для каждой PLL, включить PLLи, подождать пока они залочатся, настроить делители частоты для периферии, и затем уже включить тактирование от PLL. Да и как может быть по-другому, откуда производитель процов знает от какой частоты вы тактируетесь, и на какой частоте хотите работать. :rolleyes: :rolleyes:

 

Другое дело, что если вы работаете в какой-то IDE и ее разработчики уже позаботились о вас... :laughing:

 

Xilinx тоже по умолчанию запускается от внутреннего генератора и обычно внешняя частота успевает стабилизироваться пока он грузится.

Кстати, в Xilinx можно выбрать в настройках, чтоб GSR выдавался только после того, как все PLL залочатся

Изменено пользователем m_m

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему то мне казалось что глобальные клоковые буферы делают именно это.

ничего они такого не делают. Более того, они распределенные по всему кристаллу, образуя структуру дерева. Их задача - доставить клок с минимальном перекосом времени ко всем точкам кристалла, а вовсе не привести его в порядок. Считается, что клок на входе соответствует требованиям даташита, и из этого все остальное рассчитывается, то есть, если клок на входе не соответствует, то и работа не гарантируется ничего вообще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

spike , Noun

так я понял правильно. Вот тут уточняющий вопрос: а пичек - это же всего лишь 1 фронт, и мне казалось если пичек короткий, то его просто пропустят, а если "длинны" то зачтут как 1 клок. Я правильно рассуждаю?

 

Вот-вот, а я разрабатываю систему в целом, первым делом разбираясь, что запихнуть в ПЛИС, что там реализуемо, а что нет, за счет чего можно сократить количество внешней обвязки, ее сложности и цену. И, даже, в тех редких случаях, если схему разрабатываю не я, я все обязательно контролирую, что входит и как входит в ПЛИС, так как мне потом с этим иметь дело, и я не хочу, чтобы дело имело меня :)

 

Я только архитектуру рисую, какие сигналы мне нужны, на уровне смысла этих сигналов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...