Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Максимальная входная частота
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
zombi
Господа, подскажите плиз.
В даташите на EPM3256A написано следующее :

Maximum internal global clock frequency
Speed Grade -7 = 126.6 MHz
Speed Grade -10 = 95.2 MHz

В устройстве используется 100.7 MHz.
Собрал два усторойства, одно на 3256ATCxxx-7 другое на 3256ATCxxx-10.
Оба работают отлично.
Подскажите как Вы думаете:
можно ли в серии использовать 3256ATCxxx-10 ? Или из за расброса параметров некоторые альтеры не будут работать?
Шурила
Цитата(zombi @ Feb 26 2009, 22:40) *
Собрал два усторойства, одно на 3256ATCxxx-7 другое на 3256ATCxxx-10.
Оба работают отлично.

Одно время ALTERA собирались делать на чипах двойную маркировку, типа -7 коммерческое, -10 военное.
если для серии то ставить надо закладываясь на параметры, иначе себе может быть дороже 01.gif
более того когда то нас учили, что запас по параметрам должен быть для коммерческих 0.7, а для военных 0.5 ! (было это правда, страшно подумать, в прошлом веке)
zombi
Цитата(Шурила @ Feb 27 2009, 00:33) *
Одно время ALTERA собирались делать на чипах двойную маркировку, типа -7 коммерческое, -10 военное.
если для серии то ставить надо закладываясь на параметры, иначе себе может быть дороже 01.gif
более того когда то нас учили, что запас по параметрам должен быть для коммерческих 0.7, а для военных 0.5 ! (было это правда, страшно подумать, в прошлом веке)

Думаю Вы правы.
Но что значит "коммерческих 0.7, а для военных 0.5" ?
Если максимально допустимая частота для микросхемы к примеру 100.0 MHz, то какую максимальную частоту можно подать на её в устройстве для коммерческих целей?
Шурила
Цитата(zombi @ Feb 27 2009, 04:06) *
Но что значит "коммерческих 0.7, а для военных 0.5" ?

Тогда это больше относилось к пассивам - если резистор 1Вт, то загружать его не более 0.7Вт.
Что касается частоты, то лучше по возможности не использовать мах параметры, хотя конечно если фирма декларирует "Speed Grade -7 = 126.6 MHz" то оно так и будет в диапазоне температур и питания.
Кроме того у ALTERA есть в Quartus Timing Analyzer - смотрите - там по честному.
EvgenyNik
Фраза
Цитата
Maximum internal global clock frequency

Означает, что это именно максимальная глобальная частота. Т.е. от неё будут защёлкиваться регистры, но вот сможете ли Вы сделать так, чтобы остальной дизайн успевал от регистра к регистру через комбинаторику пропускать сигналы за период тактовой частоты - это вопрос.
Adlex
Многое зависит от температуры эксплуатации. Чипы в исполнении индастри (на минусовые температуры) по параметрам менее быстрые, но при работе в коммерсиал диапазоне могут работать шустрее. Т.е микросхема с градацией скорости -8 в индастри примерно то же, что и -7 в коммерц.
zombi
Ув. знатоки альтеры!
Еще раз очень прошу Вашего совета и помощи!
Ну, очень хочется выиграть в цене и доступности альтеры со Speed Grade-10.
Приведу часть своей схемы где используется GCLK.
GCLK поступает только на вход одного счетчика и на группу D-триггеров и больше нигде не используется.
Шина адреса Ain1...Aout формируется из сигналов RD и WR частота которых в четыре раза ниже GCLK.
Может ограничение максимальной тактовой частоты (95.2 MHz) при таком использовании не важно?
Ведь условие Tcl=Tch=4нс выполняется и все остальные параметры Txx меня устраивают.
Кроме ограничения Fcnt. У меня частота 100.7 MHz.
Поскажите сильно ли я рискую заказывая альтеры со Speed Grade-10???



ЗЫ. И в симуляторе все ОК и при -7 и при -10.
Правда есть небольшой сдвиг фазы, но для меня это не существенно.
Shtirlits
Цитата(zombi @ Mar 5 2009, 00:38) *
Приведу часть своей схемы где используется GCLK.
Поскажите сильно ли я рискую заказывая альтеры со Speed Grade-10???
ЗЫ. И в симуляторе все ОК и при -7 и при -10.

Симулятор тут ни при чем.
Эта часть схемы имеет право не работать как надо.
Я бы не стал так рисковать, если задача не в стиле геймеров оверклокеров.
Но если клок на 100MHz не избежать, то не судьба, как ни выкручивайся, а уверенности не будет.
zombi
Цитата(Shtirlits @ Mar 5 2009, 03:02) *
Симулятор тут ни при чем.

И всетаки я не понимаю.
Мне кажется что симулятор должен формировать временную диаграмму с учетом самых худших (больших) возможных временных задержек?
И зачем вообще выводить абсолютно работоспособную диаграмму для такой входной тактовой частоты (заведомо больше максимально допустимой) при которой не все чипы будут работать?
НЕ ПОНИМАЮ
des00
Цитата(zombi @ Mar 4 2009, 20:23) *
И всетаки я не понимаю.
Мне кажется что симулятор должен формировать временную диаграмму с учетом самых худших (больших) возможных временных задержек?
И зачем вообще выводить абсолютно работоспособную диаграмму для такой входной тактовой частоты (заведомо больше максимально допустимой) при которой не все чипы будут работать?
НЕ ПОНИМАЮ


потому как вы сами задаете условия моделирования. Задайте температуру в +125 градусов и посмотрите как поплывет ваш дизайн. По умолчанию моделируется в комнатных условиях.
Кстати что пишет тайм квест ?

Ну и если устройство единичное, погоняйте девайс в печке/холодильнике на 100/-40 пару суток. если выживет то используйте %)
Shtirlits
Цитата(des00 @ Mar 5 2009, 07:34) *
Ну и если устройство единичное

Ради одного экземпляра экономить несколько баксов не станут.
С другой стороны, если серийное производство будет предусматривать тестирование "разогнанных" экземпляров, то это может стать оружием против конкурентов. Все используют дорогие микросхемы, а наши люди применят дешевые да еще и каждый экземпляр потестируют в жестких условиях сутки.
Вопрос лишь в том, чтобы цена тестирования была меньше разницы в цене -7 и -10 спидгрейда.
mse
Цитата(Shtirlits @ Mar 5 2009, 15:00) *
Ради одного экземпляра экономить несколько баксов не станут.
С другой стороны, если серийное производство будет предусматривать тестирование "разогнанных" экземпляров, то это может стать оружием против конкурентов. Все используют дорогие микросхемы, а наши люди применят дешевые да еще и каждый экземпляр потестируют в жестких условиях сутки.
Вопрос лишь в том, чтобы цена тестирования была меньше разницы в цене -7 и -10 спидгрейда.

А потом прикупят партию без технологицкого запаса и огребут геморроя на все деньги. ;О)
vladz
На самом деле эта Maximum internal global clock frequency всего лишь оценочный параметр. На этой частоте гарантированно будет работать 16-битный счетчик во всем диапазоне температур и питания. Делать вывод о работоспособности вашего проекта только по данным об этом счетчике, думаю, рановато.

Внутренняя частота global clock действительно ограничена условием Tcl=Tch=4нс, так что там есть запас. На мой взгляд надо смотреть показания Static Timing Analyzer-а при экстремальных для проекта напряжениях и температурах (я думаю Quartus умеет это делать).

Если результаты STA в порядке и вы остаетесь в рамках температурного диапазона и питания, то почему бы и не использовать этот чип? Для уверенности можете накатать письмо с деталями в службу поддержки Altera и о результате рассказать нам.
Shtirlits
Цитата(vladz @ Mar 6 2009, 14:53) *
На самом деле эта Maximum internal global clock frequency всего лишь оценочный параметр.

Командир, а 150MHz можно?
mse
Цитата(Shtirlits @ Mar 6 2009, 16:20) *
Командир, а 150MHz можно?

Думаю, эта "мах интернал" частота ограничена сугубо входными ногами и соответствующими драйверами. ;О) Была бы в МАХ3000 ПЛЛ, там бы(внутри) и 200 и 250 бегало нормально. А так их тупо взять негде.
vladz
Для тех, кому лень открыть документацию.

Maximum internal global clock frequency 95.2MHz указана для условий:
(2) These values are specified for a PIA fan–out of one LAB (16 macrocells). For each additional LAB fan–out in these
devices, add an additional 0.1 ns to the PIA timing value.
(4) These parameters are measured with a 16–bit loadable, enabled, up/down counter programmed into each LAB.

При этом Min Global clock high time = Min Global clock low time = 4ns.

Если входной драйвер потянет, то почему, например, пара 4-х битных счетчиков не будет работать на 100MHz? За рамки спецификации это не выходит.
SM
IMHO спор не о чем. Уже ведь сказали - если STA дает добро в worst case, то вперед ни о чем не думая, гарантия обеспечена.
Shtirlits
Цитата(SM @ Mar 6 2009, 23:24) *
IMHO спор не о чем. Уже ведь сказали - если STA дает добро в worst case, то вперед ни о чем не думая, гарантия обеспечена.

STA как раз в worst case добро не дает, в этом-то и интерес темы. Ведь не в 2 раза превышение, да и на практике вроде работает.

Но если взять quartus, сделать проект с EPM3256ATCXXX-10, то STA для любого счетчика укажет предельный период клока 10.5nS (95.24MHz).
STA quartus-а не очень-то позволяет вводить температурный диапазон и напряжение, как узнать и с кого потом спросить, на сколько можно превышать в тех или иных условиях пределы worst case?

В версии 1.01 datasheet, которую можно нагуглить, был параметр Fmax=125MHz для EPM3256ATCXXX-10, в текущей версии документа 3.4 этого параметра нет.

В проекте автора темы кроме 2-х битного счетчика есть мультиплексор управляемый выходом счетчика и 16 регистров на выходе.

У меня от этой темы возникли вопросы к специалистам по max 3000a (один раз уже чуть было не пришлось с этим семейством работать):
- Что это за подозрительные графики на 40 странице m3000a.pdf, что это за High speed/Low power? Намекают на turbo bit ?
- Какой анализатор таймингов поддерживает это семейство ?
zombi
Цитата(Shtirlits @ Mar 7 2009, 02:11) *
В версии 1.01 datasheet, которую можно нагуглить, был параметр Fmax=125MHz для EPM3256ATCXXX-10, в текущей версии документа 3.4 этого параметра нет.

Ну наконец то, БАЛЬЗАМ НА ИЗРАНЕННУЮ ДУШУ!!!
А я то думаю чего это симулятор рисует вполне работоспособную диграмму аж до 125MHz включительно для -10!!! а для -7 аж до 144MHz!!!
А у меня то всего каких-то смешных 100.7MHz !!!


Цитата(Shtirlits @ Mar 7 2009, 02:11) *
- Что это за подозрительные графики на 40 странице m3000a.pdf, что это за High speed/Low power? Намекают на turbo bit ?

Да, графики очень странные!
Интересно нафига мне знать скоко мой чип потребляет при комнатной температуре при входной частоте 172.4 MHz если максимальная 95???
Перестраховщики эти альтеровцы помоему.

PS.
И действительно поднял старую документацию на MAX300 и там Fmax для -10 = 125MHz! 07.gif
Там даже нет разделения на 032,064...256 а только по спидграде!
Шож это получается в 2000 году умели быстрые чипы делать а в 2009 разучились!!
Технологии улучшаются а скорость падает lol.gif
Shtirlits
Кстати, раз сна нет, попробовал добавить к вашей схеме регистры на все входные сигналы, чтобы не возиться с констрейнами.
Для 16-ти разрядных сигналов для -10 больше 92.59MHz не получается, для -7 выходит 121.95MHz.

Код
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all;

entity max_clock is
    generic (
        WIDTH : integer := 16
    );
    port (
        clock : in std_logic;
        reset : in std_logic;
        Ain1 : in std_logic_vector(WIDTH-1 downto 0);
        Ain2 : in std_logic_vector(WIDTH-1 downto 0);
        Ain3 : in std_logic_vector(WIDTH-1 downto 0);
        Aout : in std_logic_vector(WIDTH-1 downto 0);
        A : out std_logic_vector(WIDTH-1 downto 0)
    );
end max_clock;

architecture max3000a of max_clock is

    signal counter : std_logic_vector(1 downto 0);
    signal Ain1_reg, Ain2_reg, Ain3_reg, Aout_reg : std_logic_vector(WIDTH-1 downto 0);

begin
    process(reset, clock)
        begin
            if (reset='1') then
                counter <= "00";
                Ain1_reg <= (others=>'0');
                Ain2_reg <= (others=>'0');
                Ain3_reg <= (others=>'0');
                Aout_reg <= (others=>'0');
                A <= (others=>'0');
            elsif (rising_edge(clock)) then
                counter <= counter+1;
                Ain1_reg <= Ain1;
                Ain2_reg <= Ain2;
                Ain3_reg <= Ain3;
                Aout_reg <= Aout;
                case counter is
                    when "00"   => A <= Ain1_reg;
                    when "01"   => A <= Ain2_reg;
                    when "10"   => A <= Ain3_reg;
                    when others => A <= Aout_reg;
                end case;
            end if;
        end process;

end max3000a;
zombi
Цитата(Shtirlits @ Mar 7 2009, 04:11) *
Кстати, раз сна нет, попробовал добавить к вашей схеме регистры на все входные сигналы, чтобы не возиться с констрейнами.
Для 16-ти разрядных сигналов для -10 больше 92.59MHz не получается, для -7 выходит 121.95MHz.

Прошу простить за невежество! Но не силен я в языках!
А зачем добавлять регистры на входе?
И на какие входы ?
Shtirlits
У вас 4 входа по 16 разрядов Ain1, Ain2, Ain3, Aout.
Сигнал со входных ножек идет сразу на мультиплексор и далее на регистры.
К этой схеме я добавил по регистру на каждый входной сигнал.
Анализатор без дополнительных констрейнов (хотя бы Tsu) проверяет только сигналы, у которых есть цикл регистр->что-то-еще->регистр.
И нужно еще не забыть посмотреть на остальные результаты, которые призывно не светятся красным цветом,
ведь время прохождения сигнала от входа до регистра и от регистра до выхода вообще не ограничивается, только приложением,
про которое только вы можете знать.

Мне обычно лень писать констрейны (я их только со словарем пишу, констрейны везде разные, а vhdl одинаковый).
Когда хочется быстренько сделать на незнакомой fpga оценку place-and-route, я добавляю регистры на входы и выходы.
К тому же есть еще один повод - в больших FPGA на предельных частотах проверяемый блок может быть и легко достигает нужных частот,
но входные и выходные сигналы пройти через всю микросхему на нужной частоте не успевают.
Спасают сдвиговые регистры на каждый сигнал.

Так вот. После добавления входных регистров получилось вход->входной регистр->мультиплексор->выходной регистр->выход
В результате анализатор подсчитывает времена прохождения всех сигналов через мультиплексор,
а не только сигналов от регистра счетчика до регистра на выходе.
Ту же саму проблему можно заметить обратив внимание на результат анализатора, что вышло с Tsu. Для -10 получается 6.9nS.
Можно задать для примера Tsu=7nS, но нужно чтобы и в реальности данные на это время раньше клока приходили.
Про выход вообще не думаем пока.

Для 6-ти и более битного варианта вашей схемы получаются частоты меньше пределной 95.24MHz. Имеет смысл менять дизайн.
Например, тупо разбить схему на 4 одинаковых 4-х битных части, чтобы у каждой был свой счетчик или сделать pipeline, если условия задачи допускают.
zombi
Цитата(Shtirlits @ Mar 7 2009, 06:23) *
Так вот. После добавления входных регистров получилось вход->входной регистр->мультиплексор->выходной регистр->выход

В моей схеме нету "вход->входной регистр" у меня только "счетчик->мультиплексор->выходной регистр->выход".
Ain1 это выход двоичного счетчика на CLK которого поступает RD0.
Аналогично Ain2, Ain3 и Aout.
Главное чтобы время прохождения сигнала с выхода этого счетчика до выходного регистра было не больше 4-х тактов входной частоты (~40нс).
Shtirlits
Цитата(zombi @ Mar 7 2009, 13:59) *
В моей схеме нету "вход->входной регистр" у меня только "счетчик->мультиплексор->выходной регистр->выход".
Ain1 это выход двоичного счетчика на CLK которого поступает RD0.
Аналогично Ain2, Ain3 и Aout.
Главное чтобы время прохождения сигнала с выхода этого счетчика до выходного регистра было не больше 4-х тактов входной частоты (~40нс).


Так сигналы Ain1, Ain2, Ain3, Aout внутринние ?
Хочется понимать, что что снаружи, а что внутри.
zombi
Цитата(Shtirlits @ Mar 7 2009, 16:18) *
Так сигналы Ain1, Ain2, Ain3, Aout внутринние ?
Хочется понимать, что что снаружи, а что внутри.

Все сигналы Ain1, Ain2, Ain3, Aout внутренние, формируются опятьже внутренними RD0,RD1,RD2,WR на счетчиках.
Внешний входной сигнал только GCLK
Конечно есть еще и внешние сигналы от процессора, но я эту часть схемы не приводил т.к. частота проца 16MHz че там считать.
Посути дела альтера должна просто переписать область озу с - до, начальный и конечный адрес задает проц и ждет окончания пересылки biggrin.gif
Shtirlits
Цитата(zombi @ Mar 7 2009, 15:48) *
Конечно есть еще и внешние сигналы от процессора, но я эту часть схемы не приводил т.к. частота проца 16MHz че там считать.
Посути дела альтера должна просто переписать область озу с - до, начальный и конечный адрес задает проц и ждет окончания пересылки biggrin.gif

Было бы неплохо убедиться в том, что сигналы от процессора надежно захватываются 100MHz клоком и фронты этих сигналов адекватные.
Может греется и шумит из-за того, что где-то что-то генерирует.
zombi
Цитата(Shtirlits @ Mar 7 2009, 17:30) *
Было бы неплохо убедиться в том, что сигналы от процессора надежно захватываются 100MHz клоком и фронты этих сигналов адекватные.
Может греется и шумит из-за того, что где-то что-то генерирует.

Дык сигналы от проца вообще не захватываются!
Адреса от проца поступают прямо на дешифратор, шд прямо на вход тригеров а WRcpu на CLK этих тригеров.
Я бы с радостью простробировал их входной GCLK (100MHz) но свободных тригеров не осталось!!!
А как узнать не генерирует ли что-то где-то???

PS. точнее всеже пяток тригеров всеже есть. Что лучше стробировать ша,шд или шу???
Shtirlits
Цитата(zombi @ Mar 7 2009, 16:36) *
А как узнать не генерирует ли что-то где-то???

Я не знаю.
С одной стороны, нарушения функциональности (глюки), завышенное потребление (температура) говорят о ненормальности.
С другой можно проверять все времянки и убеждаться в честном их соблюдении.
Проверьте еще раз констрейны этих самых сигналов от процессора. Если клок процессора (строб) и клок 100MHz не связаны, то будет непрятность.
zombi
Цитата(Shtirlits @ Mar 7 2009, 17:42) *
Я не знаю.
С одной стороны, нарушения функциональности (глюки), завышенное потребление (температура) говорят о ненормальности.
С другой можно проверять все времянки и убеждаться в честном их соблюдении.
Проверьте еще раз констрейны этих самых сигналов от процессора. Если клок процессора (строб) и клок 100MHz не связаны, то будет непрятность.

На данный момент строб проца и входная GCLK никак не связаны!
Сейчас попробую хотябы WRcpu стробануть.
И снова прошу прощения за невежество. Самоучка я. Это мой второй проэкт на альтере.
Че такое эти самые "констрейны" и как их проверять??? laughing.gif
Sefo
А Вы не пробовали этот вопрос задать спецам Alter-ы на их сайте в разделе my support? По-моему, надежнее Вам никто не ответит. Я, кстати, пару раз задавал им вопросы и, надо сказать, они весьма серьезно к ним относились и достаточно подробно отвечали.
Shtirlits
Цитата(zombi @ Mar 7 2009, 16:46) *
Че такое эти самые "констрейны" и как их проверять??? laughing.gif

Вот тут обсуждали, например http://electronix.ru/forum/index.php?showtopic=29475
Еще про генерацию http://www.interfacebus.com/Design_MetaStable.html
zombi
Спасибо Штирлиц! Буду изучать.
Кстати стробировать WRcpu нет необходимости.
Оказывается я все внутренние регистры (которые проц пишет и они для альтеры выступают в роли асинхронных) уже давно интуитивно простробировал одним из сигналов формируемым от GCLK.

PS.
И всетаки я не понимаю какая генерация и где может возникнуть если на С вход тригера завести не глобальную входную частоту а просто сигнал с какого нибудь пина?
Shtirlits
Цитата(zombi @ Mar 8 2009, 01:23) *
И всетаки я не понимаю какая генерация и где может возникнуть если на С вход тригера завести не глобальную входную частоту а просто сигнал с какого нибудь пина?

Генерация может возникнуть, если так получится, что входной сигнал не установился, а фронт клока уже пришел. К счастью, люди уже научились радикально снижать вероятность этого явления - иначе у нас ничего бы не работало вовсе! А так оно работает почти всегда. Или иногда. В зависимости от дизайна и случая.
Вот почему греется - меня очень беспокоит.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.