реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> BILBO (Built-In-Logic-Block-Observation) с чем едят?, захотелось применить LFSR для тестирования проекта...
Doka
сообщение Jul 20 2006, 13:56
Сообщение #1


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



наткнулся на BILBO при поисках в контексте желания использовать LFSR для задач тестирования.
про BILBO (Built-In-Logic-Block-Observation) слышу впервые. вроде бы понятно что енто такое, но вот в каких случаях применяются и чем этот BILBO реально лучше в данной области?
притом, почти везде изложение от LFSR идет сразу к BILBO..

у кого-нить есть реальный опыт использования?
где бы об этом более подробно почитать? А то словосочетание "BILBO BIST" как-то плохо гуглится в РуНете.. М.б. у нас используется русскоязычный эквивалент названия сей методологии??


ссылки для ознакомления:
Logic BIST Architectures http://www.ece.wisc.edu/~va/COURSE/lec26.ppt
A Novel BIST Architecture With Built-in Self Check
http://eprint.iitd.ac.in/dspace/bitstream/...ullanov1996.pdf
Design for ‘X’ (интересный документ о концепциях тестирования аппаратуры на различных стадиях) http://www.itiv.uni-karlsruhe.de/download/...esign_for_x.pdf
BILBO sandwich project & assignment wants to get students more familiar to BILBO BIST techniques:
BILBO sandwich project http://www.eeng.dcu.ie/~ee404/Projects/bsp/index.html
BILBO sandwich assignment http://www.eeng.dcu.ie/~ee404/Projects/bsa/index.html
исходник: http://www.eeng.dcu.ie/~ee404/Projects/bsp/bilbo1_test.vhd
Go to the top of the page
 
+Quote Post
acex2
сообщение Jul 20 2006, 16:57
Сообщение #2


Адепт
****

Группа: Свой
Сообщений: 520
Регистрация: 15-02-05
Пользователь №: 2 656



Ничего сложного в BILBO нет - это классическая регулярная DFT структура, которая может работать в 4 режимах:
- параллельного регистра
- сдвигового регистра
- генератора псевдослучайных последовательностей (LFSR)
- многоканального сигнатурного анализатора (MISR)

Выбор режима задается двумя битами. Работает все это примерно так: в штатном режиме BILBO используется как обычный параллельный регистр в схеме. Когда нужно провести тестирование, BILBO на входе (перед тестирумой подсхемой) переключается в режим LFSR, BILBO на выходе переключается в режим MISR. Во входную BILBO загоняется начальное значение генератора (путем его временного переключения в режим сдвигового регистра), прогоняется определенное число тактов, потом полученная сигнатура с выходного BILBO выводится наружу или в модуль BIST для проверки путем переключения в режим сдвигового регистра.

В теории примерно так. За счет того, что структура может выполнять все 4 основные операции, экономится место на кристалле.
Go to the top of the page
 
+Quote Post
Doka
сообщение Jul 25 2006, 21:36
Сообщение #3


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(acex2 @ Jul 20 2006, 20:57) *
Ничего сложного в BILBO нет - это классическая регулярная DFT структура, которая может работать в 4 режимах:
- параллельного регистра
- сдвигового регистра
- генератора псевдослучайных последовательностей (LFSR)
- многоканального сигнатурного анализатора (MISR)

Выбор режима задается двумя битами. Работает все это примерно так: в штатном режиме BILBO используется как обычный параллельный регистр в схеме. Когда нужно провести тестирование, BILBO на входе (перед тестирумой подсхемой) переключается в режим LFSR, BILBO на выходе переключается в режим MISR. Во входную BILBO загоняется начальное значение генератора (путем его временного переключения в режим сдвигового регистра), прогоняется определенное число тактов, потом полученная сигнатура с выходного BILBO выводится наружу или в модуль BIST для проверки путем переключения в режим сдвигового регистра.

спасибо за сообщение. действительно теперь ясно. штука довольно интересная.
переложил на верилог модуль из ссылки-примера.
но есть две непонятки:
строчка в которой LFSR - непонятная вовсе конструкция (1й раз вижу в классическом LFSR XOR с тремя разными сигналами):
Код
aux = {aux[1] ^ flip_flops[0] ^ z[1],  aux[0] ^ z[2],  flip_flops[3] ^ z[3]};


непойму - зачем в реж.MISR XORить вдвигаемый разряд?!
Код
2'b01: flip_flops <= {flip_flops[2:0],aux[2] ^ z[0]};    // MISR mode



Цитата(acex2 @ Jul 20 2006, 20:57) *
В теории примерно так. За счет того, что структура может выполнять все 4 основные операции, экономится место на кристалле.


да, действительно, поигрался с вышеприведенным примером - довольно компактно (и по трассам тоже - загрузка/выгрузка по последовательному интервейсу -одна линия сюда - одна обратно)

//============================================================
код полностью:
Код
//   bilbo.v
module bilbo_test(
        input rst,
        input clk,
        input scan_in,
        output scan_out, // inout
        input [1:0] b,
        input [3:0] z,
        output [3:0] q);

    reg [3:0] flip_flops;
    wire [2:0] aux;

   always @ (posedge clk or negedge rst)    
     if (!rst)    
       flip_flops <= 0;
     else //if (ce)
        case(b)        // synopsys full_case parallel_case
          2'b00: flip_flops <= {flip_flops[2:0],scan_in};    // SHIFT mode
         2'b01: flip_flops <= {flip_flops[2:0],aux[2] ^ z[0]};    // MISR mode                  
         2'b10: flip_flops <= 4'b0000;    // RESET mode
         2'b11: flip_flops <= z;      // PARALLEL LOAD mode
        endcase

   assign q = flip_flops;
   assign q = flip_flops;    
    assign scan_out = flip_flops[3];
    assign aux = {aux[1] ^ flip_flops[0] ^ z[1],  aux[0] ^ z[2],  flip_flops[3] ^ z[3]};

endmodule


Сообщение отредактировал Doka - Jul 25 2006, 21:37
Go to the top of the page
 
+Quote Post
disel
сообщение Jul 26 2006, 02:45
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Цитата(Doka @ Jul 26 2006, 01:36) *
строчка в которой LFSR - непонятная вовсе конструкция (1й раз вижу в классическом LFSR XOR с тремя разными сигналами):
Код
aux = {aux[1] ^ flip_flops[0] ^ z[1],  aux[0] ^ z[2],  flip_flops[3] ^ z[3]};

Это не LFSR, а MISR.

Цитата(Doka @ Jul 26 2006, 01:36) *
непойму - зачем в реж.MISR XORить вдвигаемый разряд?!
Код
2'b01: flip_flops <= {flip_flops[2:0],aux[2] ^ z[0]};    // MISR mode


Происходит умножение (в смысле Галуа) входных данных на полином. Результатом является искомая сигнатура.

Сообщение отредактировал disel - Jul 26 2006, 02:59
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 08:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01404 секунд с 7
ELECTRONIX ©2004-2016