[an error occurred while processing this directive]
Проблема с синтезатором S*nopsys Des*gnComp*ler ?
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено -=Sergei=- 13 октября 2004 г. 14:55

Имеем вот такую конструкцию на Verilog

always @(Q3 or D2Trans_RST or SSPBUF_WR or D2Transp or TRANSmask)
if (D2Trans_RST == 'b1)
begin
D2Trans <= 'b0;
end
else
if (Q3==1)
if (SSPBUF_WR==1 && (TRANSmask==0) && (D2Transp==0))
begin
D2Trans <= 1'b1;
end
else
begin
D2Trans <= D2Transp;
end
always @(Q0 or D2Trans_RST or D2Trans)
if (D2Trans_RST == 'b1)
begin
D2Transp <= 'b0;
end
else
if (Q0==1)
begin
D2Transp <= D2Trans;
end


assign D2Trans_RST = RST | (CLR_D2Trans & !CLR_D2Transt) | (I2C_CLR_D2Trans & !I2C_CLR_D2Transt);


-------------------------------------------
Два латч триггера образуют двух ступенчатую схему,
которые меняются по разным разнесенным по времени клокам Q3 и Q0. Для обоих триггеров есть ассинхронный ресет, который расчитывается как довольносложная комбинаторная сборка.

Проблема после синтеза заключается в следующем:
Первая ступень которая по Q3 в схеме синтезируется без асинхронного ресета, вторая по Q0 с ассинхронным ресетом.

Попытки через переменные настроек синтезатора избавится от этого не помогли:
Пытался ставить переменую
hdlin_latch_always_async_set_rest в "true", hdlin_seqmap_async_search_derth в "0".
Но всеравно первая ступень без ресета.

В результате синтезированная модель работает некоректно. Так как клоки Q3 и Q0 разнесены, то сбрасывается первая ступень позже второй и этого небольшого промежутка хватает для рушенья всей схемы.


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru