Хотелось бы еще увидеть моделирование в modelsim. Т.к. неясно какие сигналы подает USB-бластер.
Следует разделить ModelSim и USB-бластер.
То, что выдаёт USB-бластер, а также прочие отладчики либо максимально приближено к приводимым в цикле статей иллюстрациям, либо отличается от них самым причудливым образом. Так, связка "TopJTAG Probe+FT2232" при проверке идентификационного номера зачем-то проверяет также и регистр инструкций, пытаясь поместить в него очень странную длинную последовательность. Можно, конечно, написать разработчику и уточнить, но это (в отличие от причуд самого стандарта JTAG) столь частный случай, объяснимый к тому же чем-нибудь вроде "Ааа. Ну это мы когда тестировали ПО забыли закомментировать отладочный код, но он же не должен вроде мешать, да?", что разбирать его нет особого смысла.
Результаты моделирования в ModelSim также дадут лишь повторение тех изображений, что уже приводились. Кроме того, всё, что заработало в ПЛИС - заработает и в ModelSim, обратное - не всегда верно. Не вижу, что особо ценного ModelSim мог бы привнести сверх того, что было написано в цикле.
есть ли у вас в планах статья об использовании родного интерфейса JTAG на DE0-Nano в промышленных целях? Тот же проприетарный JTAG UART, Virtual JTAG или свой собственный протокол через команды USER0, USER1?
Были очень отдалённые планы написать про SVF. Проприетарный JTAG-UART, как мне кажется, специфичен столь сильно, что это будет мало кому интересно. Количества читателей, в моём представлении, распределены следующим образом: Программисты > Электронщики > ПЛИСоводы > специалисты по Альтере > те, кому интересен JTAG-UART.
В контексте статей, кастомный JTAG сделан для иллюстрации работы протокола. Если после текста и схем у читателя остались неразрешённые вопросы, он может изучить код кастомного JTAG и возможно этот взгляд с третей стороны дорисует в сознании полную картину. Практическая ценность с точки зрения промышленного кода (в особенности - реализация протокола на Си) здесь минимальна.
Это гнусная опечатка, которую я уже поправил. Спасибо, что заметили! Отмечу, однако, что сообщения об опечатках (или подозрении на них) по местному этикету следует присылать в личном сообщении.
Симпатично выглядит. Можно и так. Правда строчки становятся слишком длинными и не очень человекочитаемый язык - без "если-то-иначе". Ну тут как с "camelCase" и "snake_case" - дело вкуса.
хабровский редактор знает подсветку синтаксиса VHDL, но нет подсветки для Verilog.
Я за неимением подсветки Verilog-а включаю подсветку C++.
Здесь уместно пояснить, что стоимость лицензии Synopsys Design Compiller в 2004 году начиналась от 29.000$ (подобные компании не любят выставлять ценник на ПО в открытый доступ, поэтому информация весьма старая). Без учёта инфляции доллара - это, на настоящий момент 2 миллиона рублей. У Синопсиса имеется и академическая программа, позволяющая использовать его продукты в целях обучения сильно дешевле, но она сопряжена с рядом действий административно-бюрократического характера. На сколько известно мне, частным лицам триальная версия продуктов Синопсис не предоставляется.
Я позволю себе несколько переформулировать свои вопросы и ваши ответы: - Где взять готовое IP-ядро JTAG? - В платных, закрытых программных продуктах. - Где на русском языке почитать про BSDL? - В англоязычной книжке.
Конечно тут можно пуститься в банальности про то, что работа с FPGA/ASIC подразумевает использование дорогого программного инструментария и знание английского языка. А также пуститься в софистику и сказать, что формально язык BSDL был полностью разжёван непосредственно в стандарте IEEE1149.1-1994B, а весь RTL был написан и отлажен к 1993 году, так как JTAG присутствовал уже в процессорах AM486 (сам этот RTL сугубо конфиденциален, однако формально он существует).
Но тут возникает встречный вопрос: к чему тогда ваше предложение писать про IEEE1500? Он же также "давно разжёван" в самом стандарте, а RTL к нему "давно написан" (раз имеются микросхемы, поддерживающие IEEE1500).
RTL на него весь давно написан, BSDL много кем разжеван
Прям даже любопытно стало, если всё так здорово, как вы говорите, то 1) где же взять готовое IP-ядро на JTAG slave (а то на OpenCores единственный проект на тему - jtag_slave - содержит в своём архиве единственный файл "readme.txt", содержащий в себе текст "closed project at the moment ;-(" )? 2) ...и где на русском языке почитать про BSDL (ну так, что бы всё было "разжевано")?
По поводу именно двухпроводного JTAG пока планов нет, так как из "ствола" классического JTAG вырастает огромное количество "ветвей" смежных тем, о которых можно написать очень много. Мне ближе "ветвь" про SVF, но освещение мною данной темы если и случится, то весьма нескоро.
Как-то раз мне потребовался файл BSDL статической памяти в корпусе BGA одного известного производителя микросхем. В даташите на микросхему было написано:
The Boundary Scan Descriptive Language (BSDL) file for this device is available by contacting your local XXX sales representative.
...что я собственно и сделал - обратился к представителю.
Тот сказал, что центральный офис попросил 3 дня на упорядочивание архива. Я удивился "У них, что, архив файлов в бумажном виде, что им нужно 3 дня?" Спустя эти три дня ответ был следующий:
Sorry that took so long. We could not find the files for the YYY_IC1.
The ZZZ design team found a related device the YYY_IC2 with a similar BSDL file. There are differences in the addressing and /BW cells since the file is for a smaller device (128K vs 512K addresses).
Perhaps you could modify this file. Our apps team does not have the capability to rewrite and check a modified file (we no longer have the necessary software).
укажите где-то в начале статьи что JTAG не только для отладки кода. Что изначально его придумали как раз для boundary scan.
Субъективно, данный факт произносится настолько часто, что это порой надоедает ))) В данном же цикле хотелось бы сосредоточиться на вещах, которым, на мой взгляд не уделено достаточно внимания.
В любом случае, во-первых, вы уже упомянули о том, что для чего делалось, во-вторых, в следующей статье назначение JTAG и так станет ясно из контекста.
SPEA отрабатывает значительно более широкий круг задач, большинство которых JTAG никогда не решит
Точно также, как и рентгеновская установка никогда не будет заменена отладчиком JTAG. Однако, в рамках маркетинговых статей подобные обороты периодически встречаются.
Во-первых, хотел бы поблагодарить вас за прочтение статьи и ваши комментарии. Это всегда приятно.
Во-вторых, я бы не хотел загадывать наперёд, на каком месте закончится данный цикл. А то пообещаю, не сделаю, а потом меня будет мучать совесть :) Но. Не хотелось бы говорить фразу, которую уже давно отсеивает баннерная слепота глухота про "лайк-репост-подписку", однако, если я всё же напишу про управление внутренней логикой, то (на сколько я понимаю), в случае вашей подписки, вы не пропустите данную статью :) В любом случае, спасибо, что обозначили потребность в данной тематике. Это мотивирует.
Спасибо. Я их рисовал в InkScape. Включив сетку, подобные вещи там рисовать весьма удобно - как на клетчатой бумаге. А потом можно поиграть с толщиной и цветом.
В последней статье цикла приводится вывод аналитической формулы для расчёта импеданса коаксиального кабеля. Её выводить сравнительно просто по причине тотальной осесимметричности задачи. Если же речь идёт про трапециевидный проводник, уложенный "змейкой" с конформной (обтекающей) маской, то достаточно сложно говорить про "вывод" формулы. Скорее это будет некая подгонка под результат. Можно, конечно, развести бурную академическую деятельность, выявляющую характерные тонкие сходства и различия для отдельных случаев, но на практике если что-то не слишком хорошо считается по формулам, его считают численными методами.
В начале данной статьи приводится сравнение точности платных пакетов с калькулятором Saturn. Все платные пакеты основаны на численных методах, Saturn - на аналитических формулах. По точности Saturn проигрывает.
Если бы была какая-нибудь универсальная и особо точная формула, то, очевидно, её можно было бы просто скопировать в Excel и не платить сотни тысяч рублей, к примеру, за Polar Si8000.
Я полагаю, что на вопрос:
есть какая особая формула для расчета общей проницаемости?
...ответ будет - "и да и нет". Да, в том смысле, что наверняка по данной тематике кто-то защитил диссертацию и вывел закономерности, бьющиеся с реальностью процентов на 10%. Нет, в том смысле, что если вам необходимо считать импеданс/проницаемость/скорость распространения, вы вряд ли будете делать это при помощи листка бумаги, карандаша, счёт и логарифмической линейки. Скорее всего, найдя формулу, вы постараетесь забить её хотя бы в Excel и благополучно забудете её. В результате ситуация придёт к известной картинке "интерфейс-логика-данные vs интерфейс-магия". А если нет разницы - почему бы не использовать вместо магии аналитических формул магию численных методов, которая точнее?
Если экран коаксиального кабеля не имеет вырезов, отверстий и прочих неоднородностей, то электромагнитная волна от внешних источников не способна проникнуть в него. В этом суть коаксиального кабеля - по максимуму изолировать линию передачи от внешних воздействий.
Пожалуй, по поводу отсутствия движущихся механических частей я дейстаительно преувеличил. Дополнительно отмечу, что помимо механических стрелок (которые последние 20 лет всё же стараются заменять на ЖК-индикаторы), в КСВ-метрах с вероятностью 99% и кнопка вкл. - также движущаяся и механическая :)
Я в индустрии уже больше 20 лет (15 за границей, 8 в России), остальной текст статьи даже комментировать не буду.
Но что и кого остаётся читать читателям, если такие, как вы не пишут своих статей и не комментируют? Очень хотелось бы, чтобы вы передумали и всё же высказали своё видение.
мерой согласования цепи могут быть либо ее S параметры, либо КСВ/КБВ. Все эти временный диаграммы напряжения в разных точках не информативны
Мерой согласования является коэффициент отражения, который определяется, как отношение амплитуды отраженного сигнала к амплитуде падающего сигнала. Все представленные временные диаграммы, технически, позволяют его определить (если очень хочется), а также показывают именно то, что увидит инженер, если подключит щуп осциллографа к линии в указанных точках и несут информацию про амплитуду отражённого сигнала на приёмнике, которая определяет перейдёт ли триггер Шмитта во входном буфере цифровой микросхемы в новое состояние или нет (то есть воспримет ли цифровая микросхема пришедшее отражение как сигнал или нет).
У Вас даже на рисунках входное сопротивление приемника 1 МОм, следовательно линия вообще не согласована
Линия согласована на стороне источника. Для односторонней передачи цифровых сигналов через single-ended линию без развилок это необходимое и достаточное условие. К слову, любая линия, которая упирается в затвор полевого транзистора (из которых состоят логические элементы внутри микросхем, а также, зачастую, входные/выходные буферы), упирается, по сути, в 100МОм.
но вот не указывать частоту при которой проходят измерения это вообще некорректно
Учитывая, что вы едва ли найдёте в таблицах характеристик даташита на любую память DDR4 (не говоря уже про какую-нибудь 16-битную SRAM) какой-либо частотный параметр, указанный в МГц или в ГГц, не вижу в этом никакой проблемы.
у коаксиала вообще к. укорочения центрального провода и оплетки отличается
Приведите пример документации (содержащей данную характеристику) на какой-либо коаксиальный кабель, чтобы читатели увидели характерный масштаб данного коэффициента.
любое разделение прямого и возвратного токов (даже без образования разности путей) создаёт аналог рамочной антенны, негативно сказывающийся на электромагнитной совместимости устройства
...вы делаете вывод, что
расхождение путей не вызывает дополнительное излучение
Могу лишь предположить, что вы трактуете слово "даже" каким-то странным образом. Если так - попробуйте прочитать данный отрывок в таком виде:
любое разделение прямого и возвратного токов (как с образованием разности путей, так и без образования этой разности) создаёт аналог рамочной антенны, негативно сказывающийся на электромагнитной совместимости, то есть генерирует электромагнитное излучение.
Следует разделить ModelSim и USB-бластер.
То, что выдаёт USB-бластер, а также прочие отладчики либо максимально приближено к приводимым в цикле статей иллюстрациям, либо отличается от них самым причудливым образом. Так, связка "TopJTAG Probe+FT2232" при проверке идентификационного номера зачем-то проверяет также и регистр инструкций, пытаясь поместить в него очень странную длинную последовательность. Можно, конечно, написать разработчику и уточнить, но это (в отличие от причуд самого стандарта JTAG) столь частный случай, объяснимый к тому же чем-нибудь вроде "Ааа. Ну это мы когда тестировали ПО забыли закомментировать отладочный код, но он же не должен вроде мешать, да?", что разбирать его нет особого смысла.
Результаты моделирования в ModelSim также дадут лишь повторение тех изображений, что уже приводились. Кроме того, всё, что заработало в ПЛИС - заработает и в ModelSim, обратное - не всегда верно. Не вижу, что особо ценного ModelSim мог бы привнести сверх того, что было написано в цикле.
Были очень отдалённые планы написать про SVF. Проприетарный JTAG-UART, как мне кажется, специфичен столь сильно, что это будет мало кому интересно. Количества читателей, в моём представлении, распределены следующим образом:
Программисты > Электронщики > ПЛИСоводы > специалисты по Альтере > те, кому интересен JTAG-UART.
В контексте статей, кастомный JTAG сделан для иллюстрации работы протокола. Если после текста и схем у читателя остались неразрешённые вопросы, он может изучить код кастомного JTAG и возможно этот взгляд с третей стороны дорисует в сознании полную картину. Практическая ценность с точки зрения промышленного кода (в особенности - реализация протокола на Си) здесь минимальна.
Это гнусная опечатка, которую я уже поправил. Спасибо, что заметили! Отмечу, однако, что сообщения об опечатках (или подозрении на них) по местному этикету следует присылать в личном сообщении.
Симпатично выглядит. Можно и так. Правда строчки становятся слишком длинными и не очень человекочитаемый язык - без "если-то-иначе". Ну тут как с "camelCase" и "snake_case" - дело вкуса.
Я за неимением подсветки Verilog-а включаю подсветку C++.
Здесь уместно пояснить, что стоимость лицензии Synopsys Design Compiller в 2004 году начиналась от 29.000$ (подобные компании не любят выставлять ценник на ПО в открытый доступ, поэтому информация весьма старая). Без учёта инфляции доллара - это, на настоящий момент 2 миллиона рублей. У Синопсиса имеется и академическая программа, позволяющая использовать его продукты в целях обучения сильно дешевле, но она сопряжена с рядом действий административно-бюрократического характера. На сколько известно мне, частным лицам триальная версия продуктов Синопсис не предоставляется.
Я позволю себе несколько переформулировать свои вопросы и ваши ответы:
- Где взять готовое IP-ядро JTAG?
- В платных, закрытых программных продуктах.
- Где на русском языке почитать про BSDL?
- В англоязычной книжке.
Конечно тут можно пуститься в банальности про то, что работа с FPGA/ASIC подразумевает использование дорогого программного инструментария и знание английского языка. А также пуститься в софистику и сказать, что формально язык BSDL был полностью разжёван непосредственно в стандарте IEEE1149.1-1994B, а весь RTL был написан и отлажен к 1993 году, так как JTAG присутствовал уже в процессорах AM486 (сам этот RTL сугубо конфиденциален, однако формально он существует).
Но тут возникает встречный вопрос: к чему тогда ваше предложение писать про IEEE1500? Он же также "давно разжёван" в самом стандарте, а RTL к нему "давно написан" (раз имеются микросхемы, поддерживающие IEEE1500).
Прям даже любопытно стало, если всё так здорово, как вы говорите, то 1) где же взять готовое IP-ядро на JTAG slave (а то на OpenCores единственный проект на тему - jtag_slave - содержит в своём архиве единственный файл "readme.txt", содержащий в себе текст "closed project at the moment ;-(" )? 2) ...и где на русском языке почитать про BSDL (ну так, что бы всё было "разжевано")?
Спасибо, что читаете )
По поводу именно двухпроводного JTAG пока планов нет, так как из "ствола" классического JTAG вырастает огромное количество "ветвей" смежных тем, о которых можно написать очень много. Мне ближе "ветвь" про SVF, но освещение мною данной темы если и случится, то весьма нескоро.
Сами файлы BSDL - это та ещё штука! :)
Как-то раз мне потребовался файл BSDL статической памяти в корпусе BGA одного известного производителя микросхем. В даташите на микросхему было написано:
...что я собственно и сделал - обратился к представителю.
Тот сказал, что центральный офис попросил 3 дня на упорядочивание архива. Я удивился "У них, что, архив файлов в бумажном виде, что им нужно 3 дня?" Спустя эти три дня ответ был следующий:
Это было мощно! )))
Спасибо, что прочитали!
Субъективно, данный факт произносится настолько часто, что это порой надоедает ))) В данном же цикле хотелось бы сосредоточиться на вещах, которым, на мой взгляд не уделено достаточно внимания.
В любом случае, во-первых, вы уже упомянули о том, что для чего делалось, во-вторых, в следующей статье назначение JTAG и так станет ясно из контекста.
Точно также, как и рентгеновская установка никогда не будет заменена отладчиком JTAG. Однако, в рамках маркетинговых статей подобные обороты периодически встречаются.
Во-первых, хотел бы поблагодарить вас за прочтение статьи и ваши комментарии. Это всегда приятно.
Во-вторых, я бы не хотел загадывать наперёд, на каком месте закончится данный цикл. А то пообещаю, не сделаю, а потом меня будет мучать совесть :) Но. Не хотелось бы говорить фразу, которую уже давно отсеивает баннерная
слепотаглухота про "лайк-репост-подписку", однако, если я всё же напишу про управление внутренней логикой, то (на сколько я понимаю), в случае вашей подписки, вы не пропустите данную статью :)В любом случае, спасибо, что обозначили потребность в данной тематике. Это мотивирует.
Спасибо.
Я их рисовал в InkScape. Включив сетку, подобные вещи там рисовать весьма удобно - как на клетчатой бумаге. А потом можно поиграть с толщиной и цветом.
Джоэл Спольски когда-то написал замечательную статью "Верблюды и песочница", роскошно раскрыв тему ценообразования и честной цены.
В последней статье цикла приводится вывод аналитической формулы для расчёта импеданса коаксиального кабеля. Её выводить сравнительно просто по причине тотальной осесимметричности задачи. Если же речь идёт про трапециевидный проводник, уложенный "змейкой" с конформной (обтекающей) маской, то достаточно сложно говорить про "вывод" формулы. Скорее это будет некая подгонка под результат. Можно, конечно, развести бурную академическую деятельность, выявляющую характерные тонкие сходства и различия для отдельных случаев, но на практике если что-то не слишком хорошо считается по формулам, его считают численными методами.
В начале данной статьи приводится сравнение точности платных пакетов с калькулятором Saturn. Все платные пакеты основаны на численных методах, Saturn - на аналитических формулах. По точности Saturn проигрывает.
Если бы была какая-нибудь универсальная и особо точная формула, то, очевидно, её можно было бы просто скопировать в Excel и не платить сотни тысяч рублей, к примеру, за Polar Si8000.
Я полагаю, что на вопрос:
...ответ будет - "и да и нет". Да, в том смысле, что наверняка по данной тематике кто-то защитил диссертацию и вывел закономерности, бьющиеся с реальностью процентов на 10%. Нет, в том смысле, что если вам необходимо считать импеданс/проницаемость/скорость распространения, вы вряд ли будете делать это при помощи листка бумаги, карандаша, счёт и логарифмической линейки. Скорее всего, найдя формулу, вы постараетесь забить её хотя бы в Excel и благополучно забудете её. В результате ситуация придёт к известной картинке "интерфейс-логика-данные vs интерфейс-магия". А если нет разницы - почему бы не использовать вместо магии аналитических формул магию численных методов, которая точнее?
Если экран коаксиального кабеля не имеет вырезов, отверстий и прочих неоднородностей, то электромагнитная волна от внешних источников не способна проникнуть в него. В этом суть коаксиального кабеля - по максимуму изолировать линию передачи от внешних воздействий.
Спасибо, что прочитали!
Пожалуй, по поводу отсутствия движущихся механических частей я дейстаительно преувеличил. Дополнительно отмечу, что помимо механических стрелок (которые последние 20 лет всё же стараются заменять на ЖК-индикаторы), в КСВ-метрах с вероятностью 99% и кнопка вкл. - также движущаяся и механическая :)
В статье "Написание МКЭ расчетчика в менее чем 180 строк кода" как раз приводится пример решения двухмерной задачи. Она, правда, механическая, но общие подходы можно выделить.
Но что и кого остаётся читать читателям, если такие, как вы не пишут своих статей и не комментируют? Очень хотелось бы, чтобы вы передумали и всё же высказали своё видение.
Мерой согласования является коэффициент отражения, который определяется, как отношение амплитуды отраженного сигнала к амплитуде падающего сигнала. Все представленные временные диаграммы, технически, позволяют его определить (если очень хочется), а также показывают именно то, что увидит инженер, если подключит щуп осциллографа к линии в указанных точках и несут информацию про амплитуду отражённого сигнала на приёмнике, которая определяет перейдёт ли триггер Шмитта во входном буфере цифровой микросхемы в новое состояние или нет (то есть воспримет ли цифровая микросхема пришедшее отражение как сигнал или нет).
Линия согласована на стороне источника. Для односторонней передачи цифровых сигналов через single-ended линию без развилок это необходимое и достаточное условие. К слову, любая линия, которая упирается в затвор полевого транзистора (из которых состоят логические элементы внутри микросхем, а также, зачастую, входные/выходные буферы), упирается, по сути, в 100МОм.
Учитывая, что вы едва ли найдёте в таблицах характеристик даташита на любую память DDR4 (не говоря уже про какую-нибудь 16-битную SRAM) какой-либо частотный параметр, указанный в МГц или в ГГц, не вижу в этом никакой проблемы.
Приведите пример документации (содержащей данную характеристику) на какой-либо коаксиальный кабель, чтобы читатели увидели характерный масштаб данного коэффициента.
Не вполне понимаю, как из приведённой цитаты
...вы делаете вывод, что
Могу лишь предположить, что вы трактуете слово "даже" каким-то странным образом. Если так - попробуйте прочитать данный отрывок в таком виде: