Jump to content

    

Recommended Posts

Собственно вот картинка, на которую мы ориентировались:

image.thumb.png.0385a0a01fa6b366213e556793c38849.png

По документации там всё привязано к OPCG макро и собственно к моменту генерации оного.

Мы у себя сделали на скриптах вставку Toggle Mux:

	create_inst -name $my_mux [get_db lib_cells *MUX2X1] $my_module
	if {![llength [get_db $my_FF_invertion .pins *QN]]} {
		set inverter_name "my_si_inv$num"
		create_inst -name $inverter_name [get_db lib_cells */INVX1] $my_module
		connect [get_db $my_FF_invertion .pins *QP] [get_db [get_db $my_inst_name .insts */$inverter_name] .pins *A]
		connect [get_db [get_db $my_inst_name .insts */$inverter_name] .pins *Y] [get_db [get_db $my_inst_name .insts */$my_mux] .pins *D0]
	} else {
		connect [get_db $my_FF_invertion .pins *QN] [get_db [get_db $my_inst_name .insts */$my_mux] .pins *D0]
	}

Но это "неофициальная" подтяжка. И когда происходит DFT reordering, может всё завалиться, если указанные Mux+FF не заблокировать от реордера.

К чему это всё: Возможно обьявив домены (а не группы как у нас) и используя команды автогенерации из Genus'а можно получить "официальные" Toggle Mux и не бояться, что дальше их испортят. Но такое у нас не получилось с нашим проектом. А в официальном RAK немного не тот подход... Ну и там, конечно всё получается

Share this post


Link to post
Share on other sites

Я так понимаю, эта схема изолирует входы из другого клокового домена в режиме скан.  Превращает входные флопы в генераторы. Но если в режиме скан - OPCG один на весь чип, то это синхронный режим и такие муксы не нужны. Отсюда вопрос - так сколько у вас тестовых клоков в чипе? Больше одного? Может быть все же один тестовый клок оставить?

Еще один момент. Вставка этих муксов, если они нужны, таким способом - явный костыль. Надо добиваться от кеденса нормального решения, либо вменяемого воркэраунда если найден баг. То, что вы сделали, конечно круто, но очень рисковано.

Share this post


Link to post
Share on other sites

Сразу извиняюсь за возможные неточности или кустарные обьяснения. Я только учу данную область и ещё не владею всеми премудростями/терминами/понятиями.

2 hours ago, Aleх said:

Превращает входные флопы в генераторы.

Не совсем так. Такие танци нужны для проверки работы флопа на его рабочей частоте и отсечении от возможных сбоев при CDC от соседнего домена. Как понятно - такая схема делается для первого флопа в цепи одной частоты. Если все остальные можно проверить записывая инверсные/рассчётные для ATPG значения, то у первого значительное влияние появляется из соседнего клокового домена, который может быть и быстрее (что хорошо), а может быть медленнее или просто асинхронный, что не позволит нормально протестировать работу этого флип-флопа (исключаем ошибки проектирования, если неправильное CDC - отбивать руки нужно фронт-енду).

3 hours ago, Aleх said:

Но если в режиме скан - OPCG один на весь чип, то это синхронный режим и такие муксы не нужны.

Как раз дело в том, что в режиме сканирования это не играет роли. А вот когда производится тестирование (execution) в режиме LOS (Launch on Shift) домены будут работать на своей рабочей частоте и изолировать вервый флоп нужно по ряду причин.

3 hours ago, Aleх said:

Отсюда вопрос - так сколько у вас тестовых клоков в чипе? Больше одного? Может быть все же один тестовый клок оставить?

Да, в проекте присутствует как минимум 3 клока. И все 3 клока не являются тестовыми, а обычными рабочими. Тестовый клок как не сложно докадаться один (для скана и для тестирования в большинстве режимов)

3 hours ago, Aleх said:

Еще один момент. Вставка этих муксов, если они нужны, таким способом - явный костыль.

Тут я категорически согласен. Но увы на текущей версии Genus'а (v18.1) и/или с таким подходом это реализовать не получилось. До меня этим вопросом занимался другой инженер и официальный ответ от Каденс саппорта был "это сделать невозможно, но вы держитесь".

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

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.