|
|
  |
Максимальная входная частота, MAX3000А |
|
|
|
Mar 6 2009, 18:36
|
Участник

Группа: Свой
Сообщений: 74
Регистрация: 17-06-04
Пользователь №: 39

|
Для тех, кому лень открыть документацию.
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? За рамки спецификации это не выходит.
|
|
|
|
|
Mar 6 2009, 23:11
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Цитата(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 ? - Какой анализатор таймингов поддерживает это семейство ?
|
|
|
|
|
Mar 7 2009, 00:17
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(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! Там даже нет разделения на 032,064...256 а только по спидграде! Шож это получается в 2000 году умели быстрые чипы делать а в 2009 разучились!! Технологии улучшаются а скорость падает
|
|
|
|
|
Mar 7 2009, 01:11
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Кстати, раз сна нет, попробовал добавить к вашей схеме регистры на все входные сигналы, чтобы не возиться с констрейнами. Для 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;
|
|
|
|
|
Mar 7 2009, 02:23
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
У вас 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, если условия задачи допускают.
|
|
|
|
|
Mar 7 2009, 10:59
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(Shtirlits @ Mar 7 2009, 06:23)  Так вот. После добавления входных регистров получилось вход->входной регистр->мультиплексор->выходной регистр->выход В моей схеме нету "вход->входной регистр" у меня только "счетчик->мультиплексор->выходной регистр->выход". Ain1 это выход двоичного счетчика на CLK которого поступает RD0. Аналогично Ain2, Ain3 и Aout. Главное чтобы время прохождения сигнала с выхода этого счетчика до выходного регистра было не больше 4-х тактов входной частоты (~40нс).
|
|
|
|
|
Mar 7 2009, 12:18
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

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

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(Shtirlits @ Mar 7 2009, 16:18)  Так сигналы Ain1, Ain2, Ain3, Aout внутринние ? Хочется понимать, что что снаружи, а что внутри. Все сигналы Ain1, Ain2, Ain3, Aout внутренние, формируются опятьже внутренними RD0,RD1,RD2,WR на счетчиках. Внешний входной сигнал только GCLKКонечно есть еще и внешние сигналы от процессора, но я эту часть схемы не приводил т.к. частота проца 16MHz че там считать. Посути дела альтера должна просто переписать область озу с - до, начальный и конечный адрес задает проц и ждет окончания пересылки
|
|
|
|
|
Mar 7 2009, 13:30
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Цитата(zombi @ Mar 7 2009, 15:48)  Конечно есть еще и внешние сигналы от процессора, но я эту часть схемы не приводил т.к. частота проца 16MHz че там считать. Посути дела альтера должна просто переписать область озу с - до, начальный и конечный адрес задает проц и ждет окончания пересылки  Было бы неплохо убедиться в том, что сигналы от процессора надежно захватываются 100MHz клоком и фронты этих сигналов адекватные. Может греется и шумит из-за того, что где-то что-то генерирует.
|
|
|
|
|
Mar 7 2009, 13:36
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(Shtirlits @ Mar 7 2009, 17:30)  Было бы неплохо убедиться в том, что сигналы от процессора надежно захватываются 100MHz клоком и фронты этих сигналов адекватные. Может греется и шумит из-за того, что где-то что-то генерирует. Дык сигналы от проца вообще не захватываются! Адреса от проца поступают прямо на дешифратор, шд прямо на вход тригеров а WRcpu на CLK этих тригеров. Я бы с радостью простробировал их входной GCLK (100MHz) но свободных тригеров не осталось!!! А как узнать не генерирует ли что-то где-то??? PS. точнее всеже пяток тригеров всеже есть. Что лучше стробировать ша,шд или шу???
|
|
|
|
|
Mar 7 2009, 13:42
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

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