[an error occurred while processing this directive]
|
проблемы возниают вот в таких местах
always @(posedge CLK or posedge RST)
if (RST) D<= 0;
else if (условие 1) D<= 1;
else if (условие 2) D<= 0;
Вместо честного флипфломпа синтезатор BuildGates строит асинхроный RS триггер (точнее это флипфлоп, но на CLK и D подаются нули),а в логике замешивается CLK и RST с "условие1" и "усдовие2" и заводят их на Set и Reset. В принципе да фиг бы с им, но при построении дерева клока задержку этой логики не удается скомпенсировать деревом, так как видя что клок заходит не на CLK вход элемента, забивает на эту ветвь, как бы я ее ему не указывал. А если в "условиях 1 и 2" использубтся значения триггеров работающих по это му же клоку получаются просечки.
Дерево строится Clock Tree Geneator от Cadenca, синтезатор BuildGates.
Вопрос.
1. Может подскаджите по аналогии с Синпсисом, как заставить синтезатор делать честный флипфлоп ? (пока пришлось переписать весь подобный код, что бы были однозначно флипфлопы). Должны же быть какие либо ключи - хотя бы примерное их название.
2. Можно ли как нибуть указать генератору дерева, что бы он достраивал дерево до заданной точки нивзерая ни на что. И как генератор может знать о том что тот или иной вход библиотечного элемента - клок. Может тут какая беда в библиотеках ?
E-mail: info@telesys.ru