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

D-триггер c входами С и ENA.

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

Понятно, что среда программирования делает все автоматически, но на каких идеях…

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

 

 

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

 

 

Да мне, в общем, не важно, что там рекомендуют производители плис: у самого голова на плечах есть.

...

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

Вот мне стало интересно: Вы теоретик или практик? "Прошивки" для БМК разрабатывали? Спрашиваю не с целью помериться пиписьками. Просто чувствуется у Вас фундаментальный, энциклопедический подход.

 

 

Вы слишком категоричны. Асинхронный дизайн может быть в десятки раз компактнее, чем синхронный, и при этом не проигрывать по скорости. Просто это сложнее и менее предсказуемо. Вот только когда вы ограничены сверху по емкости кристалла, как в случае с БМК, то вы сразу наплюёте на свои убеждения о асинхронном дизайне. Потому что работа должна быть сделана, и в конечном итоге роляет только одно: деньги. И если можно на маленьком и дешевом БМК сделать то же самое, что на большом и дорогом, то выбор вполне очевиден. Разве что вы сами себе начальник и можете себе позволить тратить лишние бабки на угоду своим убеждениям.
Честно признаюсь: мало знаком с кухней подготовки ASIC, поэтому вопрос: неужели и вправду делают сейчас такие вот асики на основе асинхронного дизайна? А как же его верифицировать? Есть для этого инструменты?

Я конечно когда-то давно слышал статьи, что вот новая технология асинхронного дизайна - хорошо забытое старое - что мол позволяет выжать всё возможное из логики, работает однозначно быстрее синхронного дизайна. Особенность в этом забытом старом было в том, что для достижения предельного быстродействия и отсутствия сбоев нужно было вводить обратные связи типа "сигнал принят". Но уже много лет прошло, а что-то я так и не заметил адаптации структуры ПЛИС под асинхронные дизайны.

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


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

Ну почему же... это всё очень тесно взаимосвязано. Логика без схемотехники никуда. А схемотехника в принципе одна и та же, что в ПЛИС, что на рассыпухе, что в ASIC.

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

 

Вот мне стало интересно: Вы теоретик или практик? "Прошивки" для БМК разрабатывали? Спрашиваю не с целью помериться пиписьками. Просто чувствуется у Вас фундаментальный, энциклопедический подход.

Практик. Разрабатывал и всё еще.

 

Честно признаюсь: мало знаком с кухней подготовки ASIC, поэтому вопрос: неужели и вправду делают сейчас такие вот асики на основе асинхронного дизайна? А как же его верифицировать? Есть для этого инструменты?

Я конечно когда-то давно слышал статьи, что вот новая технология асинхронного дизайна - хорошо забытое старое - что мол позволяет выжать всё возможное из логики, работает однозначно быстрее синхронного дизайна. Особенность в этом забытом старом было в том, что для достижения предельного быстродействия и отсутствия сбоев нужно было вводить обратные связи типа "сигнал принят". Но уже много лет прошло, а что-то я так и не заметил адаптации структуры ПЛИС под асинхронные дизайны.

 

Я не работаю на глубоком субмикроне, поэтому по этой части однозначно сказать не могу. Статьи говорят, что да, но вопрос надо изучать глубже, чтобы что-то заявлять.

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


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

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

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

Понятно, что среда программирования делает все автоматически, но на каких идеях…

В синхронном дизайне клок маскирует переходные процессы (гонки). Если метастабильность в сигнале закончилась раньше снятия маски - все хорошо. То же касается и входа Ena - он должен переключиться за определенное время. Т.е. есть опредленное "окно", во время которого сигнал не имет право переключаться.

Что касается распределения синхросигнала по триггерам в схеме, то разброс присутствует, но это самое "окно" покрывает все вариации разброса прихода фронтов клока. Вот и весь фокус.

 

По поводу FSM есть три типа автоматов, изучите их: автоматы Мура и Мили наиболее известны, автомат Хаффмана менее. Последний годится только для асинхронных стейт-машин, первые два - для асинхронных и синхронных.

 

p.s. по поводу ПЛИС и асинхронных дизайнов - никто адаптировать ПЛИС под такое не будет, потому что асинхронных схем разрабатывают - капля в море. Правда, есть ПЛИС с асинхронной начинкой -фирма Achronix. Но сделан он для работы с синхронными дизайнами.

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


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

По поводу FSM есть три типа автоматов, изучите их
Человек сам обучать будет, а Вы ему говорите ещё учиться и учиться )))

 

 

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

 

 

Правда, есть ПЛИС с асинхронной начинкой -фирма Achronix. Но сделан он для работы с синхронными дизайнами.
Как так получилось? Плис с асинхронной начинкой, но предназначена для синхронных дизайнов.

 

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


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

Как так получилось? Плис с асинхронной начинкой, но предназначена для синхронных дизайнов.

Если управление асинхронной схемы делать с помощью синхроимпульса, схема станет синхронной ;-)

 

p.s.

асинхронная схема отличается от синхронной тем, что асинхронная работает в логическом времени, а синхронная в физическом. Добавление синхроимпульса к асинхронной схеме связывает логические отсчеты времени с физическим временем - получается синхронная схема.

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


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

Человек сам обучать будет, а Вы ему говорите ещё учиться и учиться )))

Что касается FSM, что в жесткой логике, то за пределы синхронных автоматов Мура никогда не выходил. Автоматы Мили никогда не применял, хотя, как мне кажется, автоматы Мура это подмножество автоматов Мили. Но это уже отдельная тема…

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


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

Просто мой сын, после 7 лет работы разработчиком РЭА решил укрепить свои знания по теории арифметических и логических основ цифровых автоматов:
Вот тут будет точно звучать иронично, что учиться никогда не поздно, даже после вуза и 7 лет разработчиком )))

 

 

И если бы тогда в перечне заказчика были D-триггеры с двухвходовым коммутатором на входе как сейчас
Вы про рассыпушные говорите? Можно для примера? В ПЛИС то триггеры и сейчас без коммутатора на входе. Коммутатор отдельно на LUT.

 

 

асинхронная схема отличается от синхронной тем, что асинхронная работает в логическом времени, а синхронная в физическом. Добавление синхроимпульса к асинхронной схеме связывает логические отсчеты времени с физическим временем - получается синхронная схема.
Ничего не понял, ну да ладно )) А где про это почитать можно?

 

 

 

Если управление асинхронной схемы делать с помощью синхроимпульса, схема станет синхронной ;-)
А оно надо, синхроимпульс этот? В тех современных "каверах" на тему асинхронной логики, которые я подразумевал выше, предельное быстродействие при отсутствии ложных срабатываний достигается, как я писал, за счёт введения обратной связи по сигналу типа "импульс принят". А если вводить синхроимпульс, то он будет гробить все достижения предельного быстродействия, полученные таким вот образом.

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


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

На рисунке логический элемент LE от Cyclone III (можно посмотреть в cyc3_ciii51002.pdf). По моему, уже теперь глубокому убеждению, узел Programmable Register и есть тот самый D-триггер с двухвходовым коммутатором на входе. То есть коммутатор скрыт внутри этого прямоугольника, он не в LUT, а сразу перед триггером. Функционально только так...

 

И еще схема из ece428_logcell.pdf...

post-41112-1434529271_thumb.jpg

post-41112-1434530407_thumb.jpg

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


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

По моему, уже теперь глубокому убеждению, узел Programmable Register и есть тот самый D-триггер с двухвходовым коммутатором на входе. То есть коммутатор скрыт внутри этого прямоугольника, он не в LUT, а сразу перед триггером. Функционально только так...
А откуда следует такое убеждение?

 

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


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

А откуда следует такое убеждение?

Тогда посмотрите мой пост от May 22 2015, и попробуйте соотнести входы D, С и ENA к одной из приведенных схем, или приведите свою.

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

 

Вопрос бы не возник, раскрой Altera этот самый узел Programmable Register….

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


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

Ничего не понял, ну да ладно )) А где про это почитать можно?

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

 

А оно надо, синхроимпульс этот?

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

 

Serhiy_UA

Прошу извинить, я вовсе не хотел проявить неуважение.

 

На самом деле, теория автоматов намного глубже, чем FSM Мура на синхронных D-триггерах. Машина Тьюринга была изобретена в 30х годах, а автоматы Мура/Мили в 50х. И синтез автоматов по уму надо начинать с графовой спецификации, минимизируя потом кодирование вершин - эти техники хорошо описаны в учебниках 60-80х годов. Но надо ли во все это залезать, работая с ПЛИС? По видимому, нет. Современные синтезаторы пытаются автоматически минимизировать графы автоматов, и у них это иногда получается. Правда, для соотвествия RTL-ю иногда имеет смысл отключать опцию минимизации FSM, иначе в нетлисте после мэппера бывает трудно разобраться.

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


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

Тогда посмотрите мой пост от May 22 2015, и попробуйте соотнести входы D, С и ENA к одной из приведенных схем, или приведите свою.
Свою приводить не буду, представлял именно так, что реализовано одним из показанных способов. Просто подозревал, что правый вариант реализует мультиплексор на отдельном внешнем LUT, а левый вариант - это и есть ENA "в лоб".

 

 

 

А убеждение мое как раз из того, что в одном случае, где элемент И, при работе цифрового автомата потребуется многофазная синхронизация отдельно для конечного автомата и операционного устройства, иначе гонки. А для другого, что с коммутатором, достаточно одной фазы.
Вот тут я не понимаю, откуда гонки. Признаюсь, "плаваю" в теоретических вопросах конечных автоматов, и про многофазную синхронизацию не понимаю. Если нетрудно, можно примерчик (я так понял, Вам всё равно в академических целях примерчики потребуются). Думаю, при применении идеологии синхронного дизайна термин "гонки" должен отсутствовать как класс, поэтому я про него и думать уже давно забыл.

 

 

Вопрос бы не возник, раскрой Altera этот самый узел Programmable Register….
Ну раскрыла бы она на уровне транзисторов, а что это изменит? Главное, что инструмент гарантирует выполнение временных ограничений. А как он этого добивается - его дело ))

 

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


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

На рисунке логический элемент LE от Cyclone III (можно посмотреть в cyc3_ciii51002.pdf). По моему, уже теперь глубокому убеждению, узел Programmable Register и есть тот самый D-триггер с двухвходовым коммутатором на входе.

До истины докопаться сложно без подробной схемы, но есть кое какие соображения.

1. Современные чипы делают с использованием техник LowPower, которые в т.ч. используют и clock-gating (левый рисунок из вашего поста от 22 мая).

2. XC3000 - очень старая ПЛИСина, в то время как циклон новая. Поэтому в зайлинксе я вполне допускаю, что выход триггера может быть заведен на вход. А вот у циклона вполне опредленно нарисовано, что такой связи нет. Т.е. внутри Programmable Register встроен именно clock-gate. Но не такой , как вы нарисовали (левый рисунок из вашего поста от 22 мая), а еще и с защелкой по уровню (clk_gate2.jpg) - как раз, чтобы избежать гонок. Так что многофазной синхронизации не нужно, достаточно обычной двуфазной однопроводной.

 

Можете посмотреть, какие еще бывают варианты схематехники http://www.pldworld.com/html/technote/Tour_of_PLDs.htm

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


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

На рисунке логический элемент LE от Cyclone III (можно посмотреть в cyc3_ciii51002.pdf). По моему, уже теперь глубокому убеждению, узел Programmable Register и есть тот самый D-триггер с двухвходовым коммутатором на входе. То есть коммутатор скрыт внутри этого прямоугольника, он не в LUT, а сразу перед триггером. Функционально только так...

 

До истины докопаться сложно без подробной схемы, но есть кое какие соображения.

 

Т.е. внутри Programmable Register встроен именно clock-gate. Но не такой , как вы нарисовали (левый рисунок из вашего поста от 22 мая), а еще и с защелкой по уровню ..

Именно так и сделано, что и подтверждается тем же даташитом, но про глобальные сигналы LAB-а:

 

Each LAB can use two clocks and two clock enable signals. The clock and clock enable

signals of each LAB are linked. For example, any LE in a particular LAB using the

labclk1 signal also uses the labclkena1. If the LAB uses both the rising and falling

edges of a clock, it also uses both LAB-wide clock signals. Deasserting the clock

enable signal turns off the LAB-wide clock.

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


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

А вот у циклона вполне опредленно нарисовано, что такой связи нет. Т.е. внутри Programmable Register встроен именно clock-gate. Но не такой , как вы нарисовали (левый рисунок из вашего поста от 22 мая), а еще и с защелкой по уровню
Скажите, пожалуйста, откуда информация про "вполне определённо" (датащит и страницу желательно) и откуда приведённая картинка?

 

 

Можете посмотреть, какие еще бывают варианты схематехники http://www.pldworld.com/html/technote/Tour_of_PLDs.htm
А это всё не устарело? Так уже может и не делают в современных FPGA...

 

 

 

Именно так и сделано, что и подтверждается тем же даташитом, но про глобальные сигналы LAB-а:

Each LAB can use two clocks and two clock enable signals. The clock and clock enable
signals of each LAB are linked. For example, any LE in a particular LAB using the
labclk1 signal also uses the labclkena1. If the LAB uses both the rising and falling
edges of a clock, it also uses both LAB-wide clock signals. Deasserting the clock
enable signal turns off the LAB-wide clock.

Да ничего это толком не подтверждает. Возможно фраза Deasserting the clock

enable signal turns off the LAB-wide clock. приведена тут иносказательно, чтобы было образное понимание работы. Потому что по своему логическому действию сигнал CE делает отключение клока. А как это реализовано физически - 2 варианта выше.

Аналогичная песня и у хилых: тактовый сигнал и разрешение общие для всего слайса, это там называется control set, поэтому нельзя разные триггеры одного слайса подключать к разным цепям управления. Из-за этого в некоторых проектах возникает предел по утилизации слайсов, хотя реально они заняты далеко не все. Но из-за указанного ограничения триггеры приходится раскидывать по одному в разные слайсы, кпд 25% )))

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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