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

кольцевой генератор

2 минуты назад, Plain сказал:

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

В древние времена я делал. Но там была совсем просто: удвоитель частоты - делитель на два. И по кругу :))) Запуск по логическому уровню.

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


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

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

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


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

1 hour ago, zombi said:

входа выхода

Я не опечатался. Именно входа. Для мажслайсовых матриц вход снаружи (пин чипа) и выход регистра являются равнозначными входами. Второй нюанс - подумайте, что будет если включить встречно в микросхеме 2 источника (а именно это и происходит на схеме). Ну и третье обведите ту точку, как отдельный модуль и представьте, что там есть псевдологика (в данном случае net'ы) и попробуйте описать её как модуль. Подсказка на картинке.

2.png.26f98de6bf9ac4e33c177f10bdc8c8b8.thumb.png.84b68efbfd184e41c09cdaface8544e6.png

И да: выходы можно обьединять в скольки угодно точках.

49 minutes ago, Plain said:

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

Почему нет? Законстрейнить правильно и пользуйтесь на здоровье. Вопрос насколько он будет гулять по частоте и какое получится skew в дереве - это другое.

8 minutes ago, Aleх said:

ограничения инерконнекта плис, особенно для обратных связей

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

9 minutes ago, Aleх said:

для дженерейтед клоков - роутинг на локальные клоковые деревья

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

11 minutes ago, Aleх said:

Вторая извечная проблема  - в использовании цепи и как клок, и как данные

Это мне непонятно. Как можно данные использовать как клок?

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


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

39 minutes ago, Nick_K said:

выход регистра являются равнозначными входами.

Ну вот как так может быть? Выход регистра является входом... :wacko2:

-----------

И мне кажется что ква ругается потому-что просто не понимает что ему подключать ко входу инвертора (inst9), или выход триггера (inst6), или выход входного пина (system_clock)...

Решите проблему с inst9, та же проблема возникнет и с inst3, решите её - встанет вопрос объединения двух выходов (inst6 & system_clock).

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


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

1 minute ago, zombi said:

Ну вот как так может быть? Выход регистра является входом... :wacko2:

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

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


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

13 minutes ago, Nick_K said:

И да: выходы можно обьединять в скольки угодно точках.

Это как? Можете пример привести? 

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


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

29 minutes ago, Nick_K said:

Это мне непонятно. Как можно данные использовать как клок?

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

 

p.s.

Я даже больше скажу - если не предпринимать дополнительных мер, тул, увидев, что цепь заходит и на клоковый вход флопа, и на логику, может подумать, что логика - это клок-гейт (точнее клокгатор - clockgator).

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

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


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

RobFPGA какую частоту сделать таким образом? не упростит ли синтезатор ткую петлю?

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


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

Приветствую!

1 hour ago, Maverick_ said:

RobFPGA какую частоту сделать таким образом? не упростит ли синтезатор ткую петлю?

А кто ему разрешит такое "рукоблудство"!  Запретим!  налогами констрейнами обложим! :rtfm:
 Ну а требуемая частота  выбирается  количеством (и качеством)  элементов задержки в цепочке. Я в том же топике приводил результаты  компиляции  и timing анализа.  Понятное дело это будет  далеко не атомный стандарт частоты по точности и стабильности.  :prankster2: Так что естественно все надо будет проверять в реальных условиях на конкретном чипе. 

Удачи! Rob.

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


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

1 hour ago, RobFPGA said:

А кто ему разрешит такое "рукоблудство"!  Запретим!  налогами констрейнами обложим! :rtfm:

Вопрос - а вот такой генератор, тоже можно в плис получить (обконстрейнить, запретить оптимизировать)?

e267c37cf3ec4d4abafda12404535814.jpg

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


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

А в чем проблема?

Каждый из элементов описываете в виде:

lcell L0 (.in(q0 & cd & y1), .out(y0_n));

assign y0 = ~y0_n;

ну и выбрасывание lcell должно быть запрещено.

PS. Это все для Altera и о STA можно забыть.

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


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

Генератор от Altera  с исходниками на Verilog в Chapter 14. Random and Pseudorandom Functions

 

 

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


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

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

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

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

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

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

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

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

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

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