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

Builder

Свой
  • Постов

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

  • Посещение

Сообщения, опубликованные Builder


  1. Ваш довод лишний раз рушит иллюзию переносимости, которой обычно козыряют в VHDL или Verilog. Что это за языки, если потребителю надо все время быть начеку- кто писал, когда писал и для каких целей? О какой переносимости и юзабилити готовых проектов может идти речь в этом случае? И мой печальный опыт показывает- нет ее, этой переносимости. В каждом случае придется вникать до тонкостей и перерабатывать практически до основания.
    Все это относится не к VHDL/Verilog, а к любому не своему коду. А иногда и к своему :)

    Не флейма ради, а токмо правды для, напоминаю, что "рисование матрасов времянки" возникает как правило от неумения разбить сложный проект на рад простых модулей с раздельной отладкой.
    И как прикажете разбить проект в приведёном примере, про видеообработку? Только не надо сказок про то, что это в принципе не нужно. Одна из причин создания VHDL - это возможность просимулировть систему в целом. Т.к. бывают ошибки, когда модули по отдельности правильные вроде, а вмете не фурычт. Не забывйте, проеты сегодня часто пишет много людей и таая ситуация более чем реальна. VHDL/Verilog не заканчиваются на FPGA, а в силиконе цена ошибки ой как велика.

     

    Я вот не понимаю, как Вы можете говорить о том, с чем не разобрались? Это как рассуждать о трюфелях на основании картинки.

     

    В общем давайте сравнивать конкретно, а не на пальцах: http://electronix.ru/forum/index.php?showtopic=75629

    И по скорости и по размеру и по переносимости.

  2. Мне предоставили право первого укола. Итак первый раунд: 8b10b кодер. Мой первый укол : эталонная, референсная модель 8b10b кодера, без какой либо оптимизации. Написана в лоб, на основе информации из википедии (В отличии от корки на опенкоресах, которая сделана на основе документа IBM)
    Нужна та статья, от IBM? А то валется на винте, позже закину на ftp, с ходу вроде нету на ftp.
  3. Больше всего похоже на неисправную JTAG-цепочку. Проверяйте ее физическую целостность.
    Во-во, сколько раз похожие темы поднимались, проблемы типовые:

    1) проверить сам программатор, какой он там. USB или LPT;

    2) проверить схему на соответствие документации;

    3) проверить плату на соответствие схеме;

    4) проверить качество пайки, нет ли где непропая или КЗ.

    Всё, больше вариантов нет.

  4. PS. Тем кто по прежнему уверен что AHDL много круче Verilog
    Не, ну AHDL в принципе крут, для своего времени альтеровцы считаю ксалинкс уделали по полной.

    Но его крутизна на сегодня точечная и роли не играет. Если уж проводили аналогию asm с C/C++, то давате проводить до конца:

    кто сегодня на асме пишет? А? Да реально только во встраиваемых системах, и только тогда, когда ресурсы памяти и скорости жмут. А по чему? Да потому, что во первых на сегодня, особенно для x86 компиляторы уделают подавляющее число тех, кто асм x86 знает.

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

    Та-же тенденция уже приходит и в FPGA, точнее уже пришла.

  5. Думаю, зависит от языка и компилятора с него. Для VHDL или Verilog в Quartus-8 может не хватить и градации C7. Если пишете на AHDL, то C8 хватает заглаза. Проверено. Единственный нюанс существует при распределении пинов для RGMII- эти пины должны иметь функцию ddio.
    Не от языка с компилятором, а от кривизны рук и опыта.

     

    Какой speed grade выбирать для Gigabit Ethernet на EP3C25 если -7 хватает можно поставить E144 корпус, или лучше -6 чтобы меньше пляски было с временами ?

    кто какие юзает ? или и С8 хватит ?

    Если есть сомнение - поставьте в прототип что побыстрее, а серию вылижите и поставите медленее и дешевле.

     

    Загляните в тему про счетчик на примитивах. Там des00 доказывал, что есть разница между AHDL и Verilog.
    Ну чего вы прицепились к этому sload, это проблема не Verilog, Verilog - то тут при чём?

     

    Я виню не язык программирования, а указываю на опасность его использования в отрыве от особенностей архитектуры FPGA. Когда пишешь на AHDL, то твердо знаешь- в синтезе будут по максимуму использованы фичи Altera. При VHDL или Verilog, как показывает мой печальный опыт применения готовых модулей из opencores, - такой уверенности нет.

    Если писать на Verilog в стиле AHDL, по максимуму используя готовые примитивы Altera, то разницы действительно можно и не обнаружить. Но если озаботиться не практикой, а академическими проблемами переносимости и моделирования, как в opencores, то вы правы- все зависит от "прокладки".

    Ваш опыт показывает не то, что VHDL или Verilog плохи, а то что чужие проекты нужно осторожно использовать, тем более - открытые, когда неизвестно кто их писал. Может тот код вообще студент писал, в образовательных целях.

     

    Если можно - ссылочку на данную тему, хочу ее внимательно прочитать, а то поиск дает слишком много ссылок...
    Последний раз тут видел рпссмотрение вопроса: http://electronix.ru/forum/index.php?showt...st&p=742018

     

    Ну и от себя, не флэйма ради. AHDL - это круто, сам когда-то на нём лабал. На сегодня его удел - это внутренний язык для мегафункций самой альтеры, и поддержка старых проектов. Он с этим нормально справляется. Его время прошло. Его время - это когда чип на пару десятков тысяч, если не просто тысяч был чем-то мега большим. И то, уже тогда были проблемы стмуляции, тогда ещё в Max+II - это рисование матрасов времянки, симуляция, просмотр в основно глазами результата. Вспоминаю с содраганием.

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

    Примеров уйму можно привести, это и стмуляция многочиповых решений, с той-же динамикой. И верификация при симуляции провекта с помощью не ситнезируемых конструкций, тут можно продолжать долго... В AHDL на прямую это нельзя сделать, но зачем лишние проблемы? Уменя знакомый с видео работал. Сделал тест бенч, который берёт картинку, прогоняет через проект и выплёвывает обратно в файл. И смотрит потом фотошопом, всёли на выходе красиво. Ну и как такое сделать на AHDL? Танцы с бубном и ухищрения разные - проблему не решат. Это если кратко, т.к. тему симуляции можно развивать.

    Далее, AHDL привязывает Вас к альтере, сколько-б я не был поклонником альтеры, но иногда есть необходимость сделать что-то на том-же ксалинксе. Правильно сделанный проект VHDL или Verilog переносится с одного вендора на другой достаточно легко. Ну, если не считаьт случаи, когда есть сильная завязка на особенности конкретного железа. С AHDL такое в принципе невозможно.

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

    В общем IMHO, Вы допускаете в своих рассуждениях одну ошибку, Вы распространяете свои частные неудачные попытки соскочить с AHDL на общий случай.

    В общем шире нужно смотреть, на sload свет клином не сошолся...

  6. Но через некоторое врямя оно начинает так себя вести. Вроде не сильно туплю, но результат на лицо. Те же самые проекты в 9.0 до сих пор нормально работают. Разбираться с этим времени не было.
    Может какой-то тонкий эффект из-за разной разводки? Как насчёт асинхронщины? Тут незначительного прогрева достаточно, что-б начало глючить то, что вроде вчера работало. Возможно старый квартус немного по другому развёл и просто не видно проблемного куска в проекте. Добавите что-то, переразведёте и старый квартус тоже может начать выдавать прошивки, которые не работают. Ищите в проекте что не так, а то в серии обязательно вылезет. Было когда-то, всё отладили, работает. Купили новую партию микрух и началось.... А была асинхронщина.
  7. У Xilinx переход на 40nm занял 1год.

    Virtex6 год назад анонсировали, и они уже свободно продаются.

    (мы месяц назад уже заказали пару-тройку X6VLX240 в промышленном температурном диапазоне).

    Тут ещё много будет зависить от успехов TSMC's, на заводах которого Альтера делает чипы.

    Если у них будут проблемы - будут задержки и у альтеры, не будет проблем - и альтера всё шустро выпустит в серию.

  8. прикольно.

    P.S. Прямая конкуренция - Virtex 6 и Spartan 6 фирмы Xilinx

    Да вроде как не совсем так должно быть. Cтратикc 5-й то по более тонким нормам будет сделан, 28 нм...

    Альтера что-то в HI-end микрухо вдарилась, циклоны с максами как-то совсем забросили...

  9. 2 - эээ.. это значит что использовать можно?..
    Стмулять Вы можете что угодно и как угодно, но собрать потом не сможете. Альтера не возьмёт Х модули и наоборот.

    3.3 - если скрипт - это макрос, то я их сохранял и загружал - весь список сигналов он восстанавливает, а вот описание входных сигналов - нет.. наверно что то не так делаю... :05:
    скрипт, это скрипт, посмотрите документацию алдека и прмеры, что идут в комплекте. А ещё лучше - проделайте упражнения из их туториала, помнится по ним я алдек без особых проблем освоил. По крайней мере поймёте что где и что нужно делать что-б получить нужный результат.
  10. В Моделсиме есть кнопка "шаг". Она и позволяет проходить диаграмму по каждому фронту клока...
    Но можно долго бегать по всему проекту, по всем местам где клок используется :)
  11. Ситуация: проект в Quartus 9.0 cостоит из нескольких блоков, которые написаны на VHDL. В каждом блоке есть определенный набор переменных.

    Можно ли как-то отслеживать их состояние в процессе моделирования? Грубо говоря выполнять пошаговую отладку.

    Если бы Вы хоть немножко поизучали матчасть или почитали форум (постоянно похожие вопросы задают), то Вы-бы узнали легко и сами, что:

    1) симулятор в кварус конечно есть, но по шагам там довольно проблматично симулять. Моно просимулять и посмотреть сигналы за заданное время.

    2) в квартусе сигналы, некоорые можно не увидеть, т.к. они могут сминимизироваться.

    3) Если хотите всх сигналов и пошаговости - милости просим в полноценные симуляторы. Тут на форум больш всго упоминаются ModelSim и ActiveHDL.

  12. По поводу временнОй симуляции - работая с внешними (по отношению к ПЛИС) устройствами на высокой частоте, мне приходилось внимательно рассматривать результаты временнОй симуляции, вставлять дополнительные элементы, чтобы получить желаемое, и при этом надеяться, что так оно будет и в реальном железе.
    Не совсем хорошая практика. Можно влететь. Правильнее описать временные ограничения, что-б они проверялись при синтезе автоматически, тогда и не нужно будет надеятся - будете знать. Почитайте для начала статьи des00, про тайм квест, для затравки.
  13. Поясните в таком разе, почему функционала оказалось недостаточно.
    Давно было, подробности уже не помню. Но смысл был в том, что какая-то версия ActiveHDL не правильно обрабатывала одну конструкцию (потом исправили, к слову), так получилось что то, так щёлкал тригер на симуляции устраивало.

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

    Наложились два глюка.

  14. to Builder: а чего в нем неполноценного, кроме убогости интерфейса? :)
    Согласен с des00, попробуйте просимулировать что-то сложное и вопросы сами самой отпадут :)

    мысль, что если все правильно, то достаточно функционального моделирования.. надо подумать.. а как же задержки на вентилях? их же, кажется, нет при функциональном моделировании?..
    А какое Вам дело до задержек на ввентилях, задержки временной анализ учтёт при аналиже времянки, симуляция не обязательна. По крайней мере при корректном проекте не вижу необходимости для ПЛИС её делать. Я сам только один раз пользовался, когда функциональный симулятор глючил на одной конструкции, нашёл на временной симуляции.
  15. его слабость только в том, что он текстовое входное воздействие при моделировании не поддерживает.

    А будущего у него нет. Не выгодно и затратно. Скорее всего в последующих версиях моделирования в квартусе не станет.

    Не совсем, невозможность задать текстовое описание вытекает из более общего - симулятор у альтеры всегда не позиционировался как среда полноценного симулирования.
  16. цитата: "Aldec предназначен для ввода и серьезного моделирования работы цифровых схем (не важно каких производителей)." - не совсем понял почему серьезного моделерования.. у меня сложилось впечатление, что он сам по себе может только функциональный анализ (т.е. без реальных задержек), а чтобы он делал анализ более менее реальной прошивки (timing analys, кажется это называется, после "заливки" в кристалл) нужно подключать quartus,xilinx и т.п. и компилить в них, а он потом просто отрисует что получилось.. может я конечно не прав потому что только сейчас буду пытаться разобраться с active-ом.. :)
    Имеется ввиду то, что обычно сначала всё пишется и симулируется на функциональном уровне. При этом могут использоваться (у меня почти всегда они есть) констурукции кода, не синтезируемые, например работа с файлом. Наиболее часто, судя по постам тут, используют или Active HDL или ModelSim (поройтесь в архивах, их много сравнивали). Синтез и времянка делается после или паралельно (переодически запускаем синтез) с написанием кода. При этом практика показывает, что если код функционально написан корректно (нет потыток сделать типа того, что вы хотели), то симуляции с учётом времянки делать не требуется, достаточно отчёта синтезатора, что все ограничения выполнены.

    В самом квартусе симулятор достаточно слабый, в нём можно делать только самый примитив, я например его только пару раз попробовал, когда пересаживался в MAX+II и больше не запускаю, нет необходимости.

    Это если кратко.

  17. Обращается к lpm_counter. А тот представляет собой AHDL файл, который, я, собственно, и пытался "изобрести".

    Вывод такой - если хочешь качества - используй LPM, если все равно - пиши по-простому, на Verilog.

    Во-во, и более того, обычно достаточно просто написать: a=a+1; и квартус автоматически подключит LPM.

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

    Так что не придумываете себе забот лишних, больше чем их есть.

  18. Это - шутка?
    Да, я думаю это была шутка.

    Вы по моему занимаетесь пустой работой, главное - результат.

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

     

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

  19. Не устраивает тем, что Quartus не объединяет в одном логическом элементе сумматор и триггер, а раскидывает, как захочет. На MAX+II на AHDL у меня счетчики выстраивались в линейку, с цепями переноса длиной в 24 элемента.
    Какую версию квартуса используете? Квартус достаточно умный для того, что-б использовать мегафункции, если только там код не сильно хитрый и не завязано на что-то ещё. Если что-то не получается, по моему проще использовать LPM функцию сложения, врятли получится написать оптимальнее чем в ней, особенно для общего случая.
  20. По-мойму, всегда сначала чего-то хочешь, а потом ищешь способы достижения.

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

    По моему правильно будет сделать так: функционально продумываете (можете нарисовать) то что Вам нужно.

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

    Пока что у Вас не перого не второго. Задача простая, вы хотите что-б кто-то сделал её за Вас, или хотите сами научится?

  21. Алгоритм представляю, но как на vhdl перенести - нет. В частности массив и выборку из массива.
    Для начала возьмите каких книг или уроков по VHDL проделайте. А то я зыка не знаете, а что-то хотите.

    Выдаваться должно с неким темпом по кругу? Если да - делаем счётчик, значение счётчика туда, где у Вас 'i'.

    Как вариант оптимизации - использовать блочную память, тогда счётчиком будет 2, один будет считать слова памяти, второй биты слова.

    Но начните с изучения VHDL.

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