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

alexadmin

Свой
  • Постов

    774
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент alexadmin


  1. Хм. Возможно я не правильно понял, но BUFR как раз позиционируется как локальный (в трех рядом лежащих клоковых регионах) клок, позволяющий не занимать глобальный ресурс (UG070 (v1.5) March 21, 2006, page 37). По поводу ограничения - только вчера его обнаружил в DS302 (v1.14.1) June 23, 2006, page 51(table 58): TBUFIO_MAX_FREQ I/O clock tree MAX frequency All 710 644 MHz TBUFR_MAX_FREQ Regional clock tree MAX frequency All 250 250 MHz При таком ограничении данные с bufio не забрать иначе чем через serdes'ы, а это не всегда удобно.
  2. Ктоб мне объснил, почему для регионального клока (BUFR) поддерживаемая частота меньше (всего 250 МГц), чем для глобального? Логичней бы было наоборот. А так мне не очень понятна его применимость...
  3. Как выложишь - сообщи в этой теме плз. PS впрочем все равно у меня доступа нету к фтп. Может на рапидшару?
  4. Было бы очень хорошо, чтобы для начала вникнуть в тему. Спасибо.
  5. _http://rapidshare.de/files/27683039/000988.rar.html _http://rapidshare.de/files/35930854/Sergienko.rar.html Спасибо, я посмотрел, в целом интересные книги, однако на тему сигнатурного анализа я в них ничего не нашел. Возможно для него в книгах используется какое-либо другое название?
  6. Господа, не встречал ли кто-нибудь литературы на тему "сигнатурный анализ"? Лучше русскоязычной и расказанной простым языком, потому как в математике со скудными комментариями на английском очень трудно разобраться. Буду весьма признателен. PS Если оно будет рассмотрено применительно к тестированию цифровых устройств, то совсем хорошо.
  7. Почему не должно? Его же не с а сравнивают ;-) Если здесь написано так, как и хотелось, то это нужно трактовать как "считать старое значение из TimerReg(i) и сравнить его с сс, а на это место записать новое из а. Заодно считать TimerReg(j)"
  8. А нет никакого общего случая... Все случаи \m/ чисто конкретные :) С чего все взяли, что читается только два элемента из этого массива? Активизировали свои телепатические модули? Ну увидели в кусочке кодад ва индекса i и j. А если их там больше? Вот возьмем, например, LDPC-кодер. Порождающая матрица кода такая, что из массива для обеспечения требуемой скорости надо одновременно брать 9 элементов. И какая тут память? Ну здесь-то индекса все-таки два, как я понял, и это вполне можно положить на block ram, если есть желание. Вот с девятью бы и правда заминка вышла :-)
  9. Для приведенного кода все зависит от того, размещены ли эти конструкции в синхронном процессе или нет, или вообще в разных. Может быть есть обнуление массива по сигналу сброса и т.д. Но, повторюсь, как совершенно верно было отмечено, inferred - это "заключать", "делать вывод". Т.е. ничто никуда не выкинуто. Единственный вариант, когда синтезатор или еще кто может выкинуть аппаратуру - если ее выходы висят в воздухе. Т.е. сигнал b ничем не управляет, в условии if ничего не происходит и т.д. Или то же самое происходит на верхних уровнях иерархии. P.S. Вообще говоря, писать такой код для синтеза - это преступление в общем случае ;) Лучше то же самое запихивать в двухпортовку.
  10. Т.е XST говорит мол такое описание не похоже ни на описание блочной или распределенной памяти. Однако мне бы хотелось чтобы он реализовал массив на триггерах. Посмотрел в xst.pdf в раздел data types in vhdl - такое описание очень даже суппортится. Можно убедить XST вставить 704 триггера для реализации такого массива?? Тут дело не столько в том, как объявлен этот массив, а в том, как он используется (процесс записи и чтения). С другой стороны, судя по сообщению, XST сделал ровно то, что вам хотелось - создал 704 триггера, на которых и размести ресурс, между делом посетовав, что ни block, ни distributed памяти ему сделать не удалось.
  11. В общем, да, если проект синхронный, то как правило Timing Analyser дает объективную картину. Есть редкие исключения - например, prescaled counter, когда анализатор не учитывает логику работы этого устройства и считает быстродействие по длинам путей. Не скажу именно за квартус, но в целом все еще зависит от заданных констрейнов. В зависимости от них могут быть разные результаты разводки. И если задан констрейн и обе реализации в него попадают, то сравнение некорректно, ибо у одной структуры может быть намного больший потенциал, чем у другой. Я в подобных случаях (когда надо оценить максимальную скорость) выкручиваю настройки оптимизации на полную и стараюсь задать констрейн, который не будет выполнен (в разумных, конечно, пределах).
  12. Некогда думать, копать надо (q) какой-то старый анекдот ;-) Приходило. Потому и не стал сразу это реализовывать. Спасибо.
  13. Задумался я тут: даст ли схема ускоренного переноса, которой нас всех учили на уроках информатики (http://www.rbtl.ru/wsap/posobie/chapter2/8.htm) выйгрыш в скорости по сравнению с быстрым переносом, используемым в FPGA (конкретно - семейство Virtex4: Fast Lookahead Carry Logic). Может кто-то проводил/встречал исследования на эту тему? PS Интересует разрядность сумматора порядка 15-20, DSP не предлагать
  14. Расскажите, приходилось ли кому-нибудь сталкиваться с IEEE 1500 в реальной жизни. Насколько это применимо, есть ли вообще ПО этот стандарт поддерживающее?
  15. В итоге было обнаружено следующее: Если константы формируются внутри компонента, то леонардо синтезит умножитель на логике. Если приходят в виде сигналов из верхнего уровня - то встроенные умножители. Шизуха, но зато удобно управлять, что как умножаем. Если бы это еще где в доке было написано... PS Leonardo Version: 2005b.24
  16. Подскажите, как использовать встроенный умножитель Spartan3 при синтезе VHDL через Leonardo? Работаю с типом Integer, набор коэффициентов задается в качестве generic. Лепит все на логике, которой и так мало, в то время как умножители не используются... Создавать ядра для умножителей вручную очень не хочется. В доке на Леонардо ничего конкретного не нашел. Переменная virtex2_multipliers стоит в true, но дела не меняет... Используется конструкции вида: subtype int8 is integer range -128 to 127; type TArr is array (0 to 6) of int8; signal Iarr, Qarr : Tarr; signal I1Level1, Q1Level1 : integer range -128*abs(K17)*2 to 128*abs(K17)*2 := 0; ... begin mult1:process(clk) begin if(clk'event and clk='1') then if(Strb='1') then I1Level1 <= (Iarr(0) + Iarr(6))*K17; Q1Level1 <= (Qarr(0) + Qarr(6))*K17; ...
  17. Помогите - хочется сменить имя на форуме, которое на настоящий момент не соответствует э... самоидентификации ;)
  18. Подскажите, нет ли в Modelsim (шестая версия) возможности сохранения состояния моделируемого проекта, чтобы можно к нему было потом вернуться и продолжить моделирование? И заодно: можно ли запустить одновременно два моделсима? Кричит, что проблемы с лицензией и вываливается.
×
×
  • Создать...