Интегральная схема с программируемым логическим анализатором с расширенными возможностями анализа и отладки и способ
Иллюстрации
Показать всеИзобретение относится к встроенному логическому анализатору и, в частности, к программируемому встроенному логическому анализатору для анализа электронной схемы. Устройство для тестирования и отладки электронной схемы, содержащее логический анализатор, имеющий первый вход, принимающий множество сигналов, и выход для обеспечения индикации обнаружения, с помощью логического анализатора, по меньшей мере одного запускающего события; и блок со встроенным самотестированием (BIST), имеющий первый вход для приема одного или более сигналов, появляющихся на первом входе логического анализатора, второй вход, соединенный с выходом логического анализатора для избирательного задействования блока BIST, причем блок BIST генерирует и поддерживает сигнатуру на основании первого и второго его входов. Технический результат заключается в расширении функциональных возможностей. 3 н. и 16 з.п. ф-лы, 17 ил.
Реферат
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУ
Согласно 37 C.F.R. § 1.78, настоящая заявка является частичным продолжением заявки и испрашивает приоритет по более ранней дате подачи заявки c серийным номером 12/542,976, поданной 18 августа 2009 года под названием «An Integrated Circuit Including a Programmable Logic Analyzer with Enhanced Analyzing and Debugging Capabilities and a Method Therefor» (Интегральная схема, включающая в себя программируемый логический анализатор с расширенными возможностями анализа и отладки и способ для этого), содержание которой полностью включено сюда путем ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится, в целом, к встроенному логическому анализатору и, в частности, к программируемому встроенному логическому анализатору для анализа электронной схемы.
УРОВЕНЬ ТЕХНИКИ
Логический анализатор представляет собой электронный измерительный прибор, который используется для захвата и отображения сигналов данных электронной схемы. Обычно логический анализатор захватывает сигналы данных, которые являются слишком быстрыми для того, чтобы их мог наблюдать пользователь. Пользователь наблюдает за сигналами данных, захваченными логическим анализатором, для эффективного анализа электронной схемы и принятия упреждающих мер или отладки на основании анализа.
В целом, логические анализаторы можно разделить на внешние логические анализаторы и встроенные логические анализаторы. Встроенный логический анализатор обычно входит в программируемое логическое устройство или интегральную схему (ИС), например в сложное программируемое логическое устройство (CPLD), программируемую логическую матрицу (FPGA), специализированную интегральную микросхему (ASIC). Встроенный логический анализатор имеет возможность захвата большого количества высокоскоростных сигналов данных внутри ИС.
Встроенный логический анализатор может включать в себя память для хранения захваченных сигналов данных. Обычно встроенный логический анализатор является программируемым для захвата и хранения сигналов данных, указанных пользователем. Сигналы данных, которые сохраняет встроенный логический анализатор, могут передаваться в компьютер для дальнейшего анализа. Сигналы данных обычно подаются в компьютер через интерфейс, предусмотренный на ИС.
На фиг.1 изображена блок-схема традиционного встроенного логического анализатора (ELA) 100, входящего в интегральную схему (не показано). ELA 100 включает в себя модуль 110 межсоединений для приема множества сигналов данных внутри интегральной схемы. Модуль 110 межсоединений является программируемым для выбора множества сигналов, которые должны быть подвергнуты выборке, и по меньшей мере одного запускающего сигнала для задействования выборки из множества принятых сигналов. По меньшей мере один запускающий сигнал передается в запускающий модуль 120. Запускающий модуль 120 является программируемым для установки условия запуска и обнаружения, удовлетворяет ли по меньшей мере один запускающий сигнал условию запуска. Если удовлетворено условие запуска, запускающий модуль 120 инициирует процесс выборки. После инициирования процесса выборки, контроллер 130 памяти начинает выборку множества сигналов, которые должны быть подвергнуты выборке, из модуля 110 межсоединений. Выборочные сигналы можно хранить в памяти 140 для дальнейшего анализа. Поэтому ELA 100 запускает выполнение общего кода, приведенного ниже:
IF (<TRIGGER CONDITION> THEN (SAMPLE SIGNALS(X)) (IF (<условие запуска>) THEN (выполнять выборку сигналов(X))),
где TRIGGER CONDITION - любая логическая операция или последовательность логических операций, и SIGNALS (X) - множество сигналов, которые должны быть подвергнуты выборке, из модуля 110 межсоединений. Согласно коду, который выполняет ELA 100, когда выполнено условие запуска, ELA 100 осуществляет выборку по меньшей мере одного выборочного сигнала и сохраняет выборочный сигнал в памяти 140.
Однако ELA не может выполнить действие, которое отличается от выборки, когда выполнено условие запуска. Кроме того, традиционные ELA не захватывают, не анализируют и/или не отлаживают сигналы данных программного обеспечения или данных программно-аппаратных средств внутри ИС, и может потребоваться дополнительный(е) инструмент(ы) для того, чтобы анализировать эти типы данных. В дополнение, для того чтобы запрограммировать ELA или проанализировать данные, сохраненные в ELA, пользователю необходимо присутствовать на рабочей станции, где установлен ELA.
Поэтому было бы желательно выполнить ELA с расширенными возможностями анализа и отладки для устранения вышеупомянутых недостатков.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Примерный вариант осуществления настоящего раскрытия устраняет недостатки в известных логических анализаторах и, таким образом, удовлетворяет значительную потребность в механизме для эффективного тестирования и отладки системы. Согласно примерному варианту осуществления, раскрыта интегральная схема, коммуникативно связанная в пределах системы, причем интегральная схема включает в себя логический анализатор, имеющий вход, принимающий множество сигналов, и выход для обеспечения показания обнаружения, с помощью логического анализатора по меньшей мере одного запускающего события относительно по меньшей мере одного из принятых сигналов. Интегральная схема дополнительно включает в себя блок со встроенным самотестированием (BIST), имеющий первый вход для приема одного или более сигналов, появляющихся на входе логического анализатора, и второй вход, соединенный с выходом логического анализатора для избирательного подключения блока BIST. Блок BIST генерирует и поддерживает в нем сигнатуру на основании первого и второго входных сигналов блока BIST. За счет поддержания сгенерированной сигнатуры на основании одного или более сигналов, появляющихся на входе логического анализатора и обеспечения в нем сгенерированной сигнатуры для запуска или выборки события и хранения в нем, логический анализатор позволяет более эффективно тестировать и отлаживать систему.
Дополнительные признаки и преимущества будут изложены в приведенном ниже подробном описании и частично будут очевидны специалистам в данной области техники из этого описания и исследованы при практической реализации настоящего изобретения, которое описано здесь, включая приведенное ниже подробное описание, формулу изобретения, а также прилагаемые чертежи.
Следует понимать, что вышеизложенное общее описание и нижеследующее подробное описание настоящих вариантов осуществления изобретения предназначены для того, чтобы обеспечить общее представление или основные принципы для понимания сущности и особенности изобретения, как изложено в формуле изобретения. Сопроводительные чертежи включены для лучшего понимания настоящего изобретения, и включены и образуют часть этого описания. Чертежи иллюстрируют различные варианты осуществления настоящего изобретения и вместе с описанием служат для объяснения принципов и работы настоящего изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеупомянутые и другие особенности и преимущества различных вариантов осуществления и способ достижения их станут более очевидными и станут более понятными со ссылкой на сопроводительные чертежи, на которых:
фиг.1 - блок-схема традиционного встроенного логического анализатора;
фиг.2 - блок-схема одного варианта осуществления интегральной схемы, включающей в себя логический анализатор;
фиг.3 - блок-схема устройства, встраиваемого в интегральную схему (фиг.2);
фиг.4 - блок-схема, иллюстрирующая устройство доступа к сети, связывающее удаленный хост с интегральной схемой (фиг.2);
фиг.5 - блок-схема, иллюстрирующая интерфейс для подачи программных сигналов в логический анализатор, входящий в интегральную схему (фиг.2);
фиг.6 - блок-схема, иллюстрирующая интерфейс, выполненный с возможностью подачи программных сигналов в логический анализатор (фиг.1), согласно настоящему изобретению;
фиг.7 - блок-схема, показывающая процессор, поддерживающий связь с логическим анализатором, входящим в интегральную схему (фиг.2);
фиг.8 - блок-схема последовательности операций, иллюстрирующая действия, выполняемые для захвата программных сигналов внутри интегральной схемы (фиг.2);
фиг.9 - блок-схема, иллюстрирующая систему, имеющую интегральную схему, согласно примерному варианту осуществления;
фиг.10 - блок-схема, иллюстрирующая систему, имеющую интегральную схему, согласно примерному варианту осуществления;
фиг.11 - блок-схема, иллюстрирующая систему, имеющую интегральную схему, согласно примерному варианту осуществления;
фиг.12 - блок-схема, иллюстрирующая систему, имеющую блок BIST, связанный с логическим анализатором, согласно другому примерному варианту осуществления;
фиг.13 - блок-схема блока BIST (фиг.12);
фиг.14 - блок-схема системы, включающей в себя интегральную схему, имеющую блок BIST, связанный с логическим анализатором, согласно другому примерному варианту осуществления;
фиг.15 - блок-схема системы, включающей в себя интегральную схему, имеющую блок BIST, связанный с логическим анализатором, согласно другому примерному варианту осуществления; и
фиг.16а и 16b - блок-схема последовательности операций, иллюстрирующая работу системы на фиг.12, 14 и 15.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Теперь будет сделана ссылка на подробное описание примерного варианта осуществления (примерных вариантов осуществления) настоящего изобретения, как изображено на сопроводительных чертежах. Во всех возможных случаях подобные ссылочные позиции будут использоваться везде на чертежах для ссылки на подобные или похожие части.
Настоящее изобретение относится к программируемому встроенному логическому анализатору, включенному в интегральную схему, имеющую расширенные возможности для анализа и отладки. На фиг.2 изображен один вариант осуществления встроенного логического анализатора (ELA) 200, расположенного на интегральной схеме (ИС) 260. ELA 200 включает в себя модуль 200 межсоединений, который является программируемым для выбора по меньшей мере одного из множества сигналов-кандидатов в пределах ИС 260. Множество сигналов-кандидатов, выбранных модулем 210 межсоединений, может включать в себя по меньшей мере один запускающий сигнал и/или один сигнал, который должен быть подвергнуты выборке (то есть выборочный сигнал). Модуль 210 межсоединений маршрутизирует по меньшей мере один запускающий сигнал в запускающий модуль 220. Запускающий модуль 220 обнаруживает, удовлетворяет ли по меньшей мере один запускающий сигнал по меньшей мере одному условию запуска, установленному пользователем. Если удовлетворено условие запуска, то выходной модуль 230 выполняет по меньшей мере одну задачу. Например, выходной модуль 230 может модифицировать по меньшей мере один сигнал в пределах ИС 260.
ИС 260 включает в себя множество шин 265, которые переносят множество сигналов-кандидатов. Множество сигналов включает в себя по меньшей мере один выборочный сигнал и по меньшей мере один запускающий сигнал. Модуль 210 межсоединений принимает множество сигналов из множества шин 265. Модуль 210 межсоединений является программируемым для выбора по меньшей мере одного выборочного сигнала и/или по меньшей мере одного запускающего сигнала из множества принятых сигналов. По существу, модуль 210 межсоединений выбирает выборочный сигнал (выборочные сигналы) и/или запускающий сигнал (запускающие сигналы), установленные пользователем. В одном варианте осуществления, модуль 210 межсоединений может быть мультиплексором.
Модуль 210 межсоединений маршрутизирует запускающий сигнал в запускающий модуль 220. Запускающий модуль 220 является программируемым для установки условия запуска. Условие запуска может быть одной логической операцией (например, простым событием) или рядом логических операций (например, сложная последовательность событий, выполняемая машиной с конечным числом состояний). Запускающий модуль 220 обнаруживает, удовлетворяет ли запускающий сигнал по меньшей мере одному условию запуска. Если удовлетворено условие запуска, то запускающий модуль 220 подает информацию в выходной модуль 230.
Выходной модуль 230 выполняет по меньшей мере одну задачу из группы задач на основании, в ответ на или в результате удовлетворения по меньшей мере одного условия запуска. Группа задач может включать с себя модификацию по меньшей мере одного сигнала из множества принятых сигналов, модификацию по меньшей мере одного условия запуска и инициирование процесса выборки. В одном варианте осуществления, выходной модуль 230 представляет собой программируемую логическую матрицу.
Если выходной модуль 230 инициирует процесс выборки, контроллер 240 выборки начинает выборку выборочного сигнала из модуля 210 межсоединений. Выборочный сигнал, отобранный с помощью контроллера 240 выборки, можно сохранить в памяти 250. Сигналы, сохраненные в памяти 250, можно передать в компьютер (не показан) для анализа. Такая передача сигнала в компьютер может происходить через порт 280 связи, такой как порт USB-порт. Пользователь в дальнейшем может анализировать сигналы, переданные в компьютер.
Хотя на фиг.2 показано, что память 250 находится в ELA 200, специалисты в данной области техники смогут оценить, что память может представлять собой отдельный компонент на интегральной схеме 260 в другом варианте осуществления. В еще одном варианте осуществления, память может располагаться отдельно от интегральной схемы 260 при условии, что она остается коммуникативно связанной с ELA. После анализа этих сигналов по меньшей мере одно действие внутри устройства 300, включающего в себя ИС 260, как показано на фиг.3, можно выполнить путем конфигурирования или программирования выходного модуля 230 для выполнения конкретной задачи на основании анализа. Например, пользователь может отладить ошибку или неисправность или исправить действие компонента устройства 300. Поэтому устройство 300 может быть диагностировано более эффективно, чтобы обеспечить правильное функционирование устройства 300. В одном варианте осуществления, устройство 300 может быть устройством формирования изображения, таким как принтер, сканер или многофункциональное устройство, которое позволяет печатать, сканировать, использовать факсимильную связь или копировать.
Выходной модуль 230 можно запрограммировать или выполнить с возможностью модификации по меньшей мере одного сигнала на основании, в ответ на или в результате удовлетворенного условия запуска. Если удовлетворенное условие запуска показывает ошибку, выходной модуль 230 может модифицировать по меньшей мере один сигнал из множества сигналов, принятых с помощью ELA 200 для исправления указанной ошибки. Например, если значение сигнала 'X' должно быть равным 30 для безошибочной работы устройства 300, и если не удовлетворено условие запуска X≠30, выходной модуль 230 модифицирует значение сигнала Х до доведения значения сигнала до 30 для безошибочной работы устройства 300.
Выходной модуль 230 может также инструктировать контроллер 270, который показан (на фиг.2), для модификации по меньшей мере одного сигнала из множества сигналов, принятых ELA 200 для исправления указанной ошибки. Например, выходной модуль 230 может инструктировать контроллеры 270 для выключения широтно-импульсного модулятора (ШИМ), если обнаружено, что ШИМ, который регулирует скорость вращения двигателя, завис, таким образом предотвращая повреждение двигателя. Выходной модуль 230 может также остановить операцию прямого доступа к памяти (DMA). Кроме этого, выходной модуль 230 может модифицировать, при необходимости, условие запуска. Эти возможности выходного модуля 230 значительно повышают эффективность отладки ELA 200. Поэтому ELA 200 обычно выполняет код, приведенный ниже:
IF (<CONDITION>) THEN (<ACTION(S)>) (IF (<условие>) THEN (<действие(я)>)),
где ACTION(S) - по меньшей мере любое одно из вышеупомянутых действий, которое выполняет выходной модуль или контроллер, и CONDITION - условие запуска, которое устанавливает пользователь.
В одном варианте осуществления, как показано на фиг.4, ИС 260 включает в себя устройство 400 доступа к сети. Устройство 400 доступа к сети коммуникативно связано с ELA 200 и соединено с удаленным хостом 410 непосредственно или через сеть. Это соединение может включать в себя проводное соединение и/или беспроводное соединение, и сеть может представлять собой Интернет, локальную сеть, глобальную сеть или городскую сеть. Удаленный хост 410 позволяет запрограммировать ELA 200 в ИС 260. Удаленный хост 410 позволяет также анализировать выборочные сигналы, сохраненные в памяти. Удаленный хост 410 осуществляет доступ к ELA 200 через устройство 400 доступа к сети.
ELA 200 можно запрограммировать на автоматическое или периодическое отправление сохраненных выборочных сигналов в удаленный хост 410 для анализа. Например, ELA 200, встроенный в принтер, можно запрограммировать на автоматическую и периодическую передачу сигнала кодера в удаленный хост 410. Сигнал кодера показывает вращение двигателя внутри принтера. Если определено, что сигналы кодера затухают или переходят в плохое состояние, удаленный пользователь может предоставить инструкцию для технического обслуживания принтера. В одном варианте осуществления ELA 200 на передачу сохраненных сигналов данных в удаленный хост 410, если такая инструкция или команда была принята из удаленного хоста 410.
В другом варианте осуществления, как показано на фиг.5, ИС 260 включает в себя центральное процессорное устройство (ЦПУ) 500. ЦПУ 500 подает множество сигналов данных в ELA 200. Сигналы данных могут представлять собой сигналы аппаратных средств, программного обеспечения или программно-аппаратных средств. Сигналы данных подаются из ЦПУ 500 в ELA 200 через интерфейс. Интерфейс коммуникативно связан с ЦПУ 500 и ELA 200. Интерфейс включает в себя носитель 510 данных и множество линий (1-n) связи. Множество линий связи коммуникативно связаны с ЦПУ 500 и носителем 510 данных. Множество линий (1-n) связи выполнено с возможностью подачи множества сигналов данных из ЦПУ 500 в носитель 510 данных. Носитель 510 данных выполнен с возможностью хранения множества сигналов данных.
Каждый сигнал данных из множества сигналов данных связан с полем данных и полем адреса. Поле данных предусматривает значение сигнала данных, которое необходимо сохранить, и поле адреса точно определяет местоположение в носителе 10 данных, где хранится сигнал данных. Носитель 510 данных включает в себя множество ячеек памяти. Каждая из множества ячеек памяти имеет уникальный адрес. Множество сигналов данных, которые хранятся на носителе 500 данных, подается через модуль 200 межсоединений через множество шин на ИС 260. По существу, носитель 510 данных находится в электрическом сообщении с множеством шин на ИС 260 для подачи сохраненных сигналов данных в модуль 210 межсоединений.
Сохраненные сигналы данных, поданные в модуль 210 межсоединений, включают в себя сигналы данных аппаратных средств, программного обеспечения и/или программно-аппаратных средств. Сигналы данных включают в себя множество выборочных сигналов и по меньшей мере один запускающий сигнал. Модуль 210 межсоединений выбирает множество выборочных сигналов и по меньшей мере один запускающий сигнал из множества принятых сигналов данных. Запускающий сигнал подается в запускающий модуль 220. Запускающий модуль 220 обнаруживает, удовлетворяет ли запускающий сигнал по меньшей мере одному условию запуска. Если удовлетворено условие запуска, то контроллер 240 выборки осуществляет выборку множества выборочных сигналов из модуля 210 межсоединений. Множество выборочных сигналов сохраняется в памяти 250. Множество сохраненных сигналов наряду с другими сохраненными сигналами передаются в компьютер для анализа. Поэтому сигналы программного обеспечения, аппаратных средств и/или программно-аппаратных средств можно анализировать одновременно на компьютере.
В другом варианте осуществления, как показано на фиг.6, интерфейс, то есть множество линий (1-n) связи и носитель 510 данных расположены на ИС 600. ИС 600 включает в себя ELA 100 (фиг.1) и ЦПУ 610. ЦПУ 610 подает множество сигналов данных в ELA 100. Множество сигналов данных включает в себя по меньшей мере один сигнал данных программного обеспечения или программно-аппаратных средств. Множество сигналов данных подается из ЦПУ 610 в ELA 100 через множество линий (1-n) связи и носитель 510 данных. Множество линий (1-n) связи выполнено с возможностью подачи множества сигналов данных из ЦПУ 610 в носитель 510 данных. Носитель 510 данных выполнен с возможностью сохранения множества сигналов данных. Сигналы данных, сохраненные на носителе 510 данных, подаются в модуль 110 межсоединений через множество шин на ИС 600. По существу, носитель 510 данных находится в электрическом сообщении с множеством шин ИС 600 для подачи сохраненных сигналов данных в модуль 110 межсоединений.
В еще одном варианте осуществления, как показано на фиг.7, ELA 100 расположен на ИС 700, который включает в себя процессор 710. Процессор 710 принимает множество сигналов из множества шин на ИС 700. Такие сигналы могут представлять собой любую комбинацию сигналов аппаратных средств, программного обеспечения и/или программно-аппаратных средств (показанных стрелкой А) внутри ИС 700. Процессор 710 коммуникативно связан с ELA 100, размещенным на ИС 700. Более конкретно, процессор 700 может быть коммуникативно связан с запускающим модулем 120 ELA 100.
В альтернативном варианте осуществления, ИС 700 может быть коммуникативно связана с ELA 200 (фиг.2). В этом варианте осуществления, процессор 700 принимает по меньшей мере один запускающий сигнал из запускающего модуля 220 для обнаружения, удовлетворено ли по меньшей мере одно условие запуска. Если удовлетворено по меньшей мере одно условие запуска, процессор 700 модифицирует по меньшей мере один сигнал из множества сигналов данных, принятых с помощью процессора 710. Процессор 710 также является программируемым для модификации по меньшей мере одного условия запуска в запускающем модуле 220, когда удовлетворено по меньшей мере одно условие запуска. Процессор 710 возможно программировать через интерфейс 720, предусмотренный на ИС 700.
ИС 700 может включать в себя устройство 400 доступа к сети. Устройство 400 доступа к сети коммуникативно связывает ИС 700 с удаленным хостом 410. Удаленный хост 410 может программировать ELA 100, расположенный на ИС 700. Удаленный хост 410 может также анализировать выборочные сигналы, сохраненные в ELA 100. Поэтому удаленный хост 410 может диагностировать устройство 730, включающее в себя ELA 100, и устройство 400 доступа к сети.
На фиг.8 изображена блок-схема последовательности операций, иллюстрирующая способ захвата сигналов программного обеспечения или событий внутри ИС 260. На этапе ЦПУ 500, расположенное на ИС 260, подает множество сигналов программного обеспечения на носитель 510 данных. Носитель данных выполнен с возможностью хранения множества сигналов программного обеспечения (этап 805). На этапе 810, носитель 510 данных отправляет сигналы сохраненного программного обеспечения в модуль 210 межсоединений ELA 200. Модуль 210 межсоединений запрограммирован на выбор множества сигналов программного обеспечения, которые должны быть подвергнуты выборке, из множества принятых сигналов программного обеспечения (этап 815). Модуль 210 межсоединений также запрограммирован на выбор по меньшей мере одного запускающего сигнала программного обеспечения из множества принятых сигналов программного обеспечения (этап 820). Пользователь устанавливает в запускающем модуле 220 по меньшей мере одно условие запуска для события программного обеспечения (этап 825). Запускающий модуль 220 обнаруживает, удовлетворено ли установленное условие запуска с помощью по меньшей мере одного сигнала запуска программного обеспечения (этап 830). Если удовлетворено условие запуска, то запускающий модуль 220 инициирует процесс выборки на этапе 835. В противном случае, запускающий модуль повторяет обнаружение удовлетворенного установленного условия запуска.
После инициирования процесса выборки, контроллер 240 выборки осуществляет выборку множества сигналов программного обеспечения, которые должны быть подвергнуты выборке, из модуля 210 межсоединений (этап 840). Выборочные сигналы программного обеспечения можно затем сохранить в памяти 250 на этапе 845. Сигналы сохраненного программного обеспечения можно также передать в компьютер для анализа с помощью запуска программы на компьютере или с помощью пользователя.
Специалисты в данной области техники могут оценить, что настоящее изобретение не ограничено сигналами программного обеспечения. Напротив, другие сигналы, такие как сигналы аппаратных средств и программно-аппаратных средств, можно захватывать вместо и/или совместно с сигналами программного обеспечения.
На фиг.9 изображена интегральная схема 900 системы, согласно другому варианту осуществления настоящего изобретения. Интегральную схему 900 можно расположить в системе 905, имеющей множество модулей М. Интегральная схема 900 может включать в себя встроенный логический анализатор 902, имеющий модуль 210 межсоединений, запускающий модуль 220, контроллер 240 памяти и память 250, как описано выше. Встроенный логический анализатор 902 может быть связан с системными модулями М таким образом, чтобы можно было использовать встроенный логический анализатор 902 для эффективного тестирования или отладки системы 905, в котором она расположена.
Кроме того, следует понимать, что фразы "тестирование" и "отладка" предназначены для того, чтобы включать в себя эти операции, которые обычно выполняются во время разработки, тестирования, отладки анализа системы и контроля по месту эксплуатации и обслуживания системы и ее системных модулей М, и не предназначены для ограничения только одной фразой или периодом времени активности системы от проектирования до используемого срока службы системы.
Интегральная схема 900 может также включать в себя специализированный блок 904, который принимает один или более сигналов, связанный со встроенным логическим анализатором 902. В частности, специализированный блок 904 может принимать в качестве входного сигнала один или более сигналов, поданных во встроенный логический анализатор 902 из других модулей М системы. Такие сигналы могут включать в себя сигналы, которые имеются в наличие для выборки или запуска события с помощью встроенного логического анализатора 902. Специализированный блок 904 может генерировать на своем выходе один или более выходных сигналов, которые основаны на одном или более принятых входных сигналах и которые подаются обратно во встроенный логический анализатор 902 для выборки или запуска. За счет подачи во встроенный логический анализатор 902 одного или более дополнительных сигналов для выборки и/или запуска события, которое основано на сигналах, связанных со встроенным логическим анализатором 902, встроенный логический анализатор 902 позволяет более эффективно отладить систему, в которой расположена интегральная схема 900.
Специализированный блок 904 может включать в себя схему, которая является специальной для конкретной системы и/или системных модулей М, которые доступны для тестирования и/или отладки с использованием встроенного логического анализатора 902. В примерном варианте осуществления настоящего изобретения специализированный блок 904 выполнен таким образом, чтобы сигналы, сгенерированные таким образом можно было сконфигурировать. Наличие специализированного блока 904, выполненного предпочтительным образом, позволяет обеспечить существенную гибкость для тестирования и/или отладки большого разнообразия системных модулей М и системных сигналов, сгенерированных таким образом. Специализированный блок 904 можно реализовать в виде FPGA или CPLD. Альтернативно, специализированный блок 904 можно реализовать с помощью процессора, имеющего память, связанную с ним, для хранения кода, который исполняет процессор. При наличии памяти, доступной для загрузки другого кода, специализированный блок 904 может обеспечить достаточную гибкость для тестирования и/или отладки по существу большого числа различных системных модулей М. В еще одном альтернативном варианте, специализированный блок 904 может включать в себя схему машины состояний, которая программируется частично путем программирования и/или хранения информации в регистрах, которые расположены в или связаны с машиной состояний. Следует понимать, что специализированный блок 904 можно реализовать большим количеством способов для обеспечения конфигурируемых функциональных возможностей и генерации сигнала.
Как показано на фиг.9, специализированный блок 904 может принимать один или более сигналов, которые подаются во встроенный логический анализатор 902. Такие сигналы, которые подаются во встроенный логический анализатор 902, можно принимать с помощью специализированного блока 904 путем прямого соединения одного или более входов специализированного блока 904 с одним или более входами встроенного логического анализатора 902. В дополнение или альтернативно, такие сигналы, поданные во встроенный логический анализатор, можно принимать с помощью специализированного блока 904 путем непосредственного соединения одного или более входов специализированного блока 904 с одним или более выходов модуля 210 межсоединений, которые должны запускать событие, и/или должны быть подвергнуты выборке, как показано пунктирными линиями на фиг.9. Как дополнительно показано на фиг.9, выход специализированного блока 904 позволяет обеспечить во встроенном логическом анализаторе 902 один или более выходных сигналов для запуска события или выборки. Такие, один или более выходных сигналов можно подать во встроенный логический анализатор 902 путем прямого соединения выхода специализированного блока 904 с входом встроенного логического анализатора 902. В дополнение или альтернативно, такие один или более выходных сигналов можно подать во встроенный логический анализатор 902 путем прямого соединения выхода специализированного блока 904 с входом запускающего модуля 920 и/или с входом контроллера 240 памяти, как показано пунктирными линиями на фиг.9.
Интегральная схема 900 может дополнительно включать в себя интерфейс 906, который можно использовать для осуществления доступа к специализированному блоку 904 и встроенному логическому анализатору 902. В частности, интерфейс 906 может обеспечивать проводное или беспроводное соединение с сетевым устройством по сети, таким как удаленный хост (не показан). Интерфейс 906 может обеспечить необходимый интерфейс между сетевым устройством и различными блоками в интегральной схеме 900, включающей в себя встроенный логический анализатор 902 и специализированный блок 904. Встроенным логическим анализатором 902, и, в частности, модулем 210 межсоединений, и запускающим модулем 220 можно управлять, конфигурировать и/или программировать с использованием интерфейса 906. Кроме этого, данные, подвергнутые выборке с помощью встроенного логического анализатора 902, можно загрузить в сетевое устройство для анализа через интерфейс 906.
Как упомянуто выше, доступ к специализированному блоку 904 можно осуществить с использованием интерфейса 906. Например, если специализированный блок 904 является реконфигурируемым и/или программируемым, то специализированный блок 904 можно сконфигурировать с помощью сетевого устройства с использованием интерфейса 906 для генерации одного или более выходных сигналов специально для тестируемых или отлаживаемых конкретных системных модулей М. В дополнение или в качестве альтернативы, специализированным блоком 904 можно управлять с помощью удаленного хоста во время тестирования или отладки системы с использованием интерфейса 906. В результате, специализированный блок 904 можно сконфигурировать во время выполнения сеанса тестирования или отладки на уровне системы.
На фиг.9 показан специализированный блок 904 отдельно от встроенного логического анализатора 902 в интегральной схеме 900. Понятно, что, альтернативно, специализированный блок 904 может быть расположен во встроенном логическом анализаторе 902 в интегральной схеме 900 и соединен с модулем 210 межсоединений, запускающим модулем 220 и контроллером 240 памяти, как описано выше.
На фиг.10 изображена интегральная схема 910 системы 905, согласно другому примерному варианту осуществления настоящего изобретения. Интегральная схема 910 может включать в себя встроенный логический анализатор 902, как описано выше в отношении фиг.9, имеющий модуль 210 межсоединений, запускающий модуль 220, контроллер 240 памяти и память 250. Интегральная схема 910 может также включать в себя специализированный блок 220 для генерации одного или более сигналов для выборки или запуска события с помощью встроенного логического анализатора 902 на основании сигналов, поданных в и/или сгенерированных внутри встроенного логического анализатора 902.
Подобно специализированному блоку 904, показанному на фиг.9, специализированный блок 920 соединен со встроенным логическим анализатором 902 для приема в качестве входного сигнала одного или более сигналов, поданных во встроенный логический анализатор 902. Специализированный блок 920, подобно специализированному блоку 904, может генерировать один или более выходных сигналов на основании одного или более принятых входных сигналов, которые подаются во встроенный логический анализатор 902, запускающий модуль 220 (для запуска события) и/или контроллер 940 памяти для избирательной выборки. Подобно специализированному блоку 904, специализированный блок 920 может включать в себя схему, которая является специальной для системных модулей М, которые можно тестировать или отлаживать с помощью встроенного логического анализатора 902. В одном варианте осуществления, функции, выполняемые специализированным блоком 920 при генерации одного или более выходных сигналов, можно сконфигурировать или запрограммировать с использованием схемы FPGA или CPLD, процессора, исполняющего загруженный код тестирования/отладки, схемы машины состояний и т.д. Интерфейс 906 может быть соединен со специализированным блоком 920 для обеспечения доступа к нему для того, чтобы специализированным блоком можно было управлять, конфигурировать и/или программировать, используя сетевое устройство, такое как хост-устройство.
Кроме того, специализированный блок 920 может принимать в качестве входного сигнала один или более сигналов, сгенерированных запускающим модулем 220. В частности, один или более запускающих сигналов, сгенерированных запускающим модулем 220, который указывает на обнаружение по меньшей мере одного события, можно подать в качестве входного сигнала в специализированный блок 220. Один или более выходных сигналов, сгенерированных специализированным блоком 220, могут быть основаны на одном или более запускающих сигналах, сгенерированных запускающим модулем 220. Таким образом, выходной сигнал, сгенерированный специализированным блоком 920, можно задать на основании сигналов, сгенерированных системными модулями М при тестировании и/или отладке, а также действий, которые заданы или выполняются во время сеанса тестирования или отладки.
Например, запускающий сигнал, сгенерированный с помощью запускающего модуля 220 встроенного логического анализатора 902 и поданный в специализированный блок 920, можно использовать для избирательного задействования схемы генерации сигналов внутри специализированного блока 920. В одной реализации, специализированный блок 920 можно сконфигурировать в виде накопителя для подсчета числа событий, таких как число слов, считанных из памяти с помощью модуля системы с прямым доступом к памяти (DMA). При тестировании или отладке, система выбирает модуль DMA для контроля и управляет, программирует и/или конфигурирует запускающий модуль 220, соответственно, с использованием интерфейса 906. Запускающая программа, с помощью которой запускающий модуль 220 сконфигурирован, может включать в себя действие для запуска накопления. После обнаружения условия одного или более сигналов, поданных в запускающий модуль 220, запускающий сигнал, сгенерированный с помощью запускающего модуля 220, указывает на обнаружение условия и задействует накопитель, сконфигурированный внутри специализированного блока 920, для начала накопления синхронно с тактовым сигналом (не показано). Запускающий м