|
Проблемы при работе схемы по одинаковому запускающему и защелкивающему фронту |
|
|
|
Sep 13 2012, 17:19
|
Частый гость
 
Группа: Участник
Сообщений: 136
Регистрация: 13-05-11
Пользователь №: 64 972

|
Всем доброго времени суток.
Собственно вопрос простой: как правильно ( ну или кто как делает) выдавать и защелкивать данные в синхронной схеме? По одному фронту или по разным?
Вопрос конечно общий, но проблема у меня по нему весьма конкретная. Делал проекты для Cyclone III,IV под квартусом. Все время ставил разные запускающие и защелкивающие фронты. Проекты были низкочастотные (до 100 МГц), поэтому ухудшающийся setup time меня особо не волновал, зато hold time автоматом выходил примерно в районе setup time - c запасом. TimeQuest вообще не использовал.
Сейчас решил сделать "как все нормальные люди" по одному фронту. И, как я и ожидал, воткнулся со временем удержания(hold time). Причем даже там, где время удержания укладывается в допустимые рамки, укладывается оно на тоненького - slack около 0.7 - 1нс. Задержка данных - около 6нс. Соответственно, клоки разбегаются примерно на столько же. Клоки висят на глобальных шинах, т.е. по идее разбег должен быть минимальным ( когда убрал global clock логично стало еще хуже - slack ухудшился примерно на 0.8нс). Я не пойму, толи данные так мало задерживаются ( в это с трудом верится - 6нс по-моему самая обычная задержка), толи клоки необычно сильно разбегаются ( в это верится гораздо сильнее).
На сколько вообще такая картина нормальна при работе по одному фронту? Поделитесь соображениями.
Сообщение отредактировал RoadRunner - Sep 13 2012, 17:19
|
|
|
|
|
 |
Ответов
|
Oct 3 2012, 12:07
|
Частый гость
 
Группа: Участник
Сообщений: 136
Регистрация: 13-05-11
Пользователь №: 64 972

|
Цитата у Циклона III же, если не ошибаюсь, должны быть двухпортовые блоки памяти Они двухпортовые в смысле отдельный интерфейс на чтение, отдельный на запись. Если записывают два разных источника, все равно приходится их переключать.
|
|
|
|
|
Oct 4 2012, 05:09
|
Частый гость
 
Группа: Участник
Сообщений: 136
Регистрация: 13-05-11
Пользователь №: 64 972

|
Цитата(Timmy @ Oct 3 2012, 16:15)  Это один из режимов, simple dual port. А ещё есть режим true dual port, когда два порта работают абсолютно независимо, и каждый из них может и читать и писать. Там общая шина адреса для чтения и записи, т.е. один порт не может независимо писать и читать
|
|
|
|
|
Oct 4 2012, 07:06
|
Частый гость
 
Группа: Участник
Сообщений: 136
Регистрация: 13-05-11
Пользователь №: 64 972

|
Цитата(Timmy @ Oct 4 2012, 10:41)  А что мешает синхронно переключать режимы чтения и записи? Если не хватает пропускной способности, можно запустить память на двойной частоте, и сделать фиксированное чередование тактов чтения/записи, будет выглядеть как четырёхпортовая  . В общих чертах понял, что вы имеете ввиду. Детально плохо представляю. Так или иначе, просто из общих соображений, идея синхронно переключать асинхронный доступ мне уже не нравится. Это опять же, чтобы все гладко было частоту надо в два раза поднимать т.е. 240МГц. Даже если получится, городить такой огород только ради того, чтобы избавиться от gated clock?)) Как по мне, так мультиплексор куда проще воткнуть.
|
|
|
|
|
Oct 4 2012, 11:43
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Цитата(RoadRunner @ Oct 4 2012, 11:06)  В общих чертах понял, что вы имеете ввиду. Детально плохо представляю. Так или иначе, просто из общих соображений, идея синхронно переключать асинхронный доступ мне уже не нравится. Это опять же, чтобы все гладко было частоту надо в два раза поднимать т.е. 240МГц. Даже если получится, городить такой огород только ради того, чтобы избавиться от gated clock?)) Как по мне, так мультиплексор куда проще воткнуть. Интересно, у вас процессор с асинхронным двухпортовым интерфейсом быстрее 100МГц? Это что за зверь такой? Gated clock на асинхронном интерфейсе при необходимости можно использовать, гораздо страшнее асинхронный арбитраж между двумя мастерами, что создаёт возможность защёлкнуть метастабильное состояние на регистрах блочной памяти.
|
|
|
|
Сообщений в этой теме
RoadRunner Проблемы при работе схемы по одинаковому запускающему и защелкивающему фронту Sep 13 2012, 17:19 Victor® Цитата(RoadRunner @ Sep 13 2012, 20:19) Н... Sep 13 2012, 19:12 des00 если учесть что th для триггеров того же сыклона о... Sep 13 2012, 19:22 RoadRunner ЦитатаРабота по одному фронту - единственно правил... Sep 14 2012, 06:03 maksimp Цитата(RoadRunner @ Sep 14 2012, 10:03) у... Sep 15 2012, 19:29  RoadRunner Цитата(maksimp @ Sep 15 2012, 23:29) Клок... Sep 17 2012, 07:10   EvgenyNik Цитата(RoadRunner @ Sep 17 2012, 11:10) У... Oct 1 2012, 17:22    RoadRunner Цитата(EvgenyNik @ Oct 1 2012, 21:22) Инт... Oct 3 2012, 10:26     PCaban Цитата(RoadRunner @ Oct 3 2012, 14:26) Не... Oct 3 2012, 11:14   troiden Цитата(RoadRunner @ Oct 4 2012, 09:09) Та... Oct 4 2012, 06:36 EvgenyNik А можно ли настроить какой-нибудь последовательный... Oct 16 2012, 07:05
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|