Jump to content
    

Как в BSDL файле изменить тип вывода с bidir на input?

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

Для ПЛИС (я работаю с XILINX) в составе ISE есть утилита BSDLAnno.exe, которая из файла проекта .ncd создает post-configuration BSDL файл.
В нем изменяются типы выводов с bidir на input, если в проекте выводы были использованы как входы.
В результате работы этой утилиты исходный BSDL файл (на примере Spartan 6) изменяется так:
1. В секции port тип inout bit соответствующего вывода изменяется на in bit
2. В секции BOUNDARY_REGISTER соответствующего вывода, изменяемого на вход, в файле изменяются строки:
  до коррекции вывод P48 был двунаправленный:

" 336 (BC_2,      *, controlr, 1)," &
" 337 (BC_2, IO_P48,  output3, X, 336, 1, Z)," & --  PAD133
" 338 (BC_2, IO_P48,    input, X)," & --  PAD133

  после коррекции вывод P48 стал входом:

" 336 (BC_2,      *, internal, 1)," &
" 337 (BC_2,      *, internal, X)," & --  PAD133
" 338 (BC_2, IO_P48,    input, X)," & --  PAD133

Формат поля секции:

cellnum (type, port, function, safe[, ccell, disval, disrslt])

До коррекции:
Строка, начинающаяся с 336 (это номер ячейки в регистре сканирования) описывает control cell с функцией controlr и безопасным состоянием 1. Значение port задано *, то есть ячейка сканирования не имеет непосредственного соединения с выводом микросхемы.
Строка, начинающаяся с 337 описывает выходной буфер подключенный к выводу IO_P48 с функцией output3. Безопасное значение X – любое. Управляющая ячейка в регистре сканирования ccell 336. Значение управляющей ячейки при котором выход будет запрещен disval 1. Состояние запрещенного выхода disrslt Z.
Строка, начинающаяся с 338 описывает входной буфер подключенный к выводу IO_P48 с функцией input. Безопасное значение X – любое.

После коррекции:
В строке, начинающейся с 336, изменена функция ячейки на internal. Безопасное состояние осталось без изменений.
В строке, начинающейся с 337, заменено IO_P48 на * - ячейка отключена от вывода. Функция ячейки изменена на internal. Безопасное состояние - без изменений.
Строка, начинающуюся с 338, осталась без изменений.

В приведенном файле к каждому двунаправленному выводу подключены три регистра цепочки граничного сканирования.
Но есть BSDL файлы с двунаправленными выводами, описываемыми двумя регистрами цепочки. Например AM1705.
В нем секция BOUNDARY_REGISTER выглядит так:

"20  (bc_2,           *, control, 1          )," &
"21  (bc_7, AFSR1_GP413,   bidir, X, 20, 1, Z)," &

 

Собственно вопросы.
Как исправить BSDL файл с типом BC_7 ячейки цепочки граничного сканирования, чтобы вывод из bidir получился input?
Какие утилиты для автоматизации изменения типа вывода есть для этого? (кроме текстового редактора)

 

Share this post


Link to post
Share on other sites

4 часа назад, Zig сказал:

Где про это можно прочитать?

Нашел сам:
15346 - 8.1i BSDLAnno - What is BSDLAnno? How do I use it to create a post-configuration BSDL file?
6664 - JTAG BSDL - Does Xilinx provide configured BSDL files for configured devices?

Остальные вопросы остались...

Share this post


Link to post
Share on other sites

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

Типы BC_2, BC_7 и др. - это физическая реализация схем, которые используется на конкретном выводе микросхемы для того, чтобы этот вывод использовался как системой граничного сканирования, так и основным функциональным ядром микросхемы. Эти типы стандартизованы, где-то я видел их в виде квадратиков со стрелочками. Т.е. то что вы описали как изменение BSDL-файла XILINX,  конфигурирует выводы микросхемы так, как необходимо вашему проекту. Для граничного сканирования это плохо - теряется часть возможностей по источникам и приемникам сигналов, поэтому конфигурирование ПЛИС при включении питания лучше не допускать.

Ну и как бы ответы на вопросы.
1.Тип вывода нельзя изменить, если зачем-то надо программе граничного сканирования запретить возможность использовать вывод на выход - то измените BSDL-файл как у вас в вопросе для типа BC_2, для типа BC_7 попробуйте поэкспериментировать со словом internal в строке 21.
2.Иногда приходится корректировать BSDL-файлы из-за ошибок в них, но для этого вполне хватает текстового редактора, специальные средства мне не известны.

Share this post


Link to post
Share on other sites

Большое спасибо за ответ.

3 часа назад, beket сказал:

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

Коррекция нужна для программы JTAG Live AutoBuzz. Нетлист ей не нужен. В ней реализовано самообучение. Она, КМК, по очереди выводит на доступные на выход выводы сигнал, а остальные выводы конфигурируются на вход. Программа смотрит где появился нужный уровень и делает выводы о соединении. Дополнительно задаются игнорируемые выводы (например к которым подключены генераторы) и выходы которые нужно держать в определенном состоянии (например PROG ПЛИС). После самообучения на заведомо рабочей плате можно подключить тестируемую и программа покажет отличия в соединениях.

3 часа назад, beket сказал:

Т.е. то что вы описали как изменение BSDL-файла XILINX,  конфигурирует выводы микросхемы так, как необходимо вашему проекту. Для граничного сканирования это плохо - теряется часть возможностей по источникам и приемникам сигналов, поэтому конфигурирование ПЛИС при включении питания лучше не допускать.

Я вас понимаю. И Скорректированный BSDL файл я не собирался использовать для тестирования (хотя в некоторых случаях, например для выводов сконфигурированных под LVDS уровни, это делать нужно), а только лишь для того, чтобы понять что нужно изменять в BSDL файле (только потом я нашел рекомендации Xilinx в явном виде описывающие что нужно корректировать).

3 часа назад, beket сказал:

измените BSDL-файл как у вас в вопросе для типа BC_2, для типа BC_7 попробуйте поэкспериментировать со словом internal в строке 21.

Мне кажется в строке, начинающейся с 20, нужно по аналогии с примерами Xilinx заменить control на internal. А вот как изменить строку начинающейся с 21 я пока не понял. Нужно изучать стандарт...

3 часа назад, beket сказал:

для этого вполне хватает текстового редактора

В текстовом редакторе и исправлял. Долго и возможны ошибки. В итоге исправил 4 BSDL файла ПЛИС. Изменил выводы с bidir на input 77, 27, 35 и 12 выводов соответственно. Хотелось автоматизировать процесс типа набил номера выводов, передал исходный BSDL и в результате получил скорректорованный.

Share this post


Link to post
Share on other sites

Мы достаточно давно имеем дело с продукцией Jtag Technologies, большей частью с Provision и Jtag Live.  AutoBuzz у них появился позже, мы его пробовали, особых преимуществ не увидели и практического опыта работы с этой программой не имеем. Но мне кажется, что то, чего вы хотите добиться, эта программа делает сама. Я бы, если бы писал такую программу, первым делом согласно BSDL-файлам перевел все двунаправленные выводы на вход, а потом по одному их переводил бы на выход и опрашивал все доступные граничному сканированию выводы.


Ваша корректировка BSDL-файла может ухудшить ситуацию. Программа просмотрит BSDL-файл, увидит, что bidir выводов нет, есть только input и не будет ими заниматься (т.е. специально не переведет выводы которые на самом деле bidir на вход). А вот инициализируются ли ячейки граничного сканирования при включении т.о. чтобы все bidir выводы переключались на вход - может быть да, а может быть нет.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...