Перейти к содержанию
    

Gowin EDA отказывается синтезировать примитивы

Здравья всем! Занялся портированием ранних проектов на gowin и уперся в примитивнейшую проблему - синтезатор gowin не хочет работать с такой табличкой состояний:

primitive dffep (q, ck, en, d, s, r);
	output q; // dff output
	input ck; // clock
	input en; // clock enable
	input d; // dff data input
	input s; // async set
	input r; // async reset

	table
	//  ck  en  d  s  r  :  q 
// rising transitions on ck
		p   1  0  0  ?  :    0;		
		p   1  1  ?  0  :    1;
		p   1  1  ?  1  :    0;
		p   0  ?  ?  1  :    0;
		p   0  ?  1  0  :    1;
		p   0  ?  0  0  :    -;
// falling transitions on ck
		n   ?  ?  0  0  :    -;
		n   ?  ?  ?  1  :    0;
		n   ?  ?  1  0  :    1;
// transition on reset
		?   ?  ?  ?  p  :    0;
		?   ?  ?  0  n  :    -;
		?   ?  ?  x  n  :    -;	// to handle time 0 transition in modelsim
		?   ?  ?  1  n  :    1;
// transition on set
		?   ?  ?  p  0  :    1;
		?   ?  ?  n  0  :    -;
		?   ?  ?  *  1  :    0;
// set/reset precedence over ck transition & reset precedence over set
		*   ?  ?  ?  1  :    0;
		*   ?  ?  1  0  :    1;
// data changes on steady ck
		?   ?  *  0  0  :    -;
		?   ?  *  ?  1  :    0;
		?   ?  *  1  0  :    1;
// level sensitive descriptions
		?   ?  ?  ?  1  :    0;
		?   ?  ?  1  0  :    1;	
		?   0  ?  0  0  :    -;	
// transitions on en
		?   *  ?  0  0  :    -;
		?   *  ?  ?  1  :    0;
		?   *  ?  1  0  :    1;
	endtable
endprimitive

ругается приблизительно так:

ERROR (EX3411) : Illegal output symbol '-' for combinational UDP("/home/tvl/Gowin/Projects/reciever/src/dffep.v":38)
...
ERROR (EX3978) : Illegal edge p100?:0 in a combinational table("/home/tvl/Gowin/Projects/reciever/src/dffep.v":67)

 

Будьте добры, если кто встречался с подобным, наставьте на путь истинный. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, ValeiyT said:

 Занялся портированием ранних проектов на gowin

c CPLD?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, ValeiyT сказал:

наставьте на путь истинный. 

Вы, когда даёте отладочную информацию, привязанную к конкретному файлу, уж и сам файл давайте.
Что за строки 38 и 67?

И второе: для какого IDE был написан исходный проект?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, Zversky сказал:

Вы, когда даёте отладочную информацию, привязанную к конкретному файлу, уж и сам файл давайте.
Что за строки 38 и 67?

И второе: для какого IDE был написан исходный проект?

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

Исходный проект был написан в квартусе с использование интеловских IP-ядер. В частности altshift_taps (наиболее часто используемое). Для переноса этой коры на говин решил попробовать использовать исходники, используемые квартусом для формальной верификации (конкретно вот этот: 15.1/quartus/eda/fv_lib/verilog/altshift_taps.v) и, после подключения этого файла к проекту, и связанного с ним dffep.v, получил эти ошибки синтеза.

Наверное, проще было написать собственную реализацию, тем более что altshift_taps  наиболее простое ядро из используемых с точки зрения выполняемой логики, но хотелось бы попробовать как-то упростить процесс и минимизировать модификацию самого проекта.

Вот, собственно эти самые файлы

altshift_taps.v dffep.v

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 минуты назад, ValeiyT сказал:

используемые квартусом для формальной верификации

а какое отношение имеет верификация к синтезу?

25 минут назад, ValeiyT сказал:

хотелось бы попробовать как-то упростить процесс

процесс чего: синтеза или верификации?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 минут назад, Zversky сказал:

а какое отношение имеет верификация к синтезу?

Я ж говорю "хотел попробовать" ) полагая, возможно, ошибочно, что в данном случае - отншение непосредственное. 

13 минут назад, Zversky сказал:

процесс чего: синтеза или верификации?

Конечно, синтеза. Думаю, что Вы и так это поняли 😉

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...