MAZZI 1 2 мая, 2007 Опубликовано 2 мая, 2007 · Жалоба Нашел после долгих мучений :) --------------------------------------------------------------------------------------------------------------- пример кода, который понимает ISE9.1(SP3): --------------------------------------------------------------------------------------------------------------- parameter SRCPORT_NUMB_WIDTH = f_clogb2(SRCPORT_NUMB-1) /* как только поставил параметром а не вычисление ISE9.1 проглотил */ ; reg [(SRCPORT_NUMB_WIDTH - 1): 0] R_count_distrib_access =0; ... C_MUXP #( .WIDTH_SEL (SRCPORT_NUMB_WIDTH), ... --------------------------------------------------------------------------------------------------------------- пример кода, который не понимает ISE9.1(SP3), но не мешает для ISE8.1(SP3) со сторонним синтезатором Synplify PRO 8.4: --------------------------------------------------------------------------------------------------------------- reg [( f_clogb2(SRCPORT_NUMB-1) - 1): 0] R_count_distrib_access =0; ... C_MUXP #( .WIDTH_SEL ( f_clogb2(SRCPORT_NUMB-1) ), ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 2 мая, 2007 Опубликовано 2 мая, 2007 · Жалоба не понял а в какой конфигурации ваша связка ISE + Synplify? --------------------------------------------------------------------------------------------------------------- пример кода, который не понимает ISE9.1(SP3), но не мешает для ISE8.1(SP3) со сторонним синтезатором Synplify PRO 8.4: --------------------------------------------------------------------------------------------------------------- вы в первом случае для синтеза пользуетесь XST или тоже в связке с Симплифай ? вы синплифай отдельно запускает или из под ИСЕ? и на что кто из них ругается - выглядит так как будто Синплифай просто не справляется с синтаксическим разбором - или не находит вкючаемый файл с описанием функции при выч. параметра вы не пробовали директивой инклюд явно включать сигнатуру функции непосредственно в область видимости модуля с вычислением параметра? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAZZI 1 2 мая, 2007 Опубликовано 2 мая, 2007 · Жалоба Synplify все понимает корректно... ISE используется как с Synplify, так и без него, проект на Synplify полностью работает, для того чтобы найти где ругается ISE ставлю XST синтезатор, он ругается, но таких ошибок нет в описании, либо показывает на ошибку не связанную ни с чем пока сидел ещё нашел, что не понимает ISE9.1: SELREF_WIDTH = f_clogb2( f_clogb2(REFC_MAX/REFC_MIN - 1)), так пропускает: SELREF_WIDTH_S = f_clogb2(REFC_MAX/REFC_MIN - 1), SELREF_WIDTH = f_clogb2( SELREF_WIDTH_S ), в целом мой проект все равно не проходит, где-то ещё срубается. по поводу включаемой функции: /* Подключение стандартных функций */ /* функция расчета округленного логарифма от заданной константы */ `include "L:/GMV2/FUNCTION/f_clogb2.v" текст: // Функция вычисления ширины шины в зависимости от её "глубины" // Вызов: f_clogb2(YOUR_NUMBER - 1), пример: если YOUR_NUMBER = 8, то f_clogb2 = 3; function integer f_clogb2; //Входы input [31:0] value; //Значение глубины шины //Цикл функции if (value == 0) f_clogb2 = 1; else if (value == 1) f_clogb2 = 1; else begin for (f_clogb2 = 0; value > 0; f_clogb2 = f_clogb2 + 1) value = value >> 1; end endfunction //MaZZi'S ZoNE ещё что заметил, как-то не правильно обрабатывается иерархия проекта, к примеру у меня каждый модуль включает используемые компоненты, причем все файлы в проекте обрамлены такой шапкой: `ifdef include_C_STROBE2/*условие проверки включения компоненты */ `else `define include_C_STROBE2 /* макрос включения компоненты */ /* подключение констант модуля и его компонент */ module C_STROBE2 .... endmodule `endif это для того, чтобы не было одинакового подключения, так вот заметил, если уже где-то используется компонента, то проподает сразу же верхний уровень... все это точно, препроцессор некорректно работает с `ifdef не помню было ли такое раньше, вроде не было... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Doka 4 2 мая, 2007 Опубликовано 2 мая, 2007 · Жалоба ещё что заметил, как-то не правильно обрабатывается иерархия проекта, к примеру у меня каждый модуль включает используемые компоненты... .... все это точно, препроцессор некорректно работает с `ifdef не помню было ли такое раньше, вроде не было... тема ISE и иерархия проекта (verilog) а насчет XST - так он вроде и никогда не поодерживал динамическое (через функцию )вычисление разрядности портов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAZZI 1 3 мая, 2007 Опубликовано 3 мая, 2007 · Жалоба теперь они поддерживают, но при этом все сломали... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться