AlexZabr 0 6 декабря, 2007 Опубликовано 6 декабря, 2007 · Жалоба Есть файл VHDL написанный я Quartusе, там есть сигналы определенные как natural. Некоторые определения типа natural - в genericах. В Quartusе все принимается, компилируется и т.д., тот-же проэкт в FPGA Advantage падает на компиляции с Errors о том что тип natural - есть Non-standard IEEE тип. Почему так ? На кого полагаться ? Кроме того, те natural которые у меня определены в generic - не имеют ranges, FPGA Advantage на это тоже сетует warningом, тогда как Quartus не обращал внимания. Почему такие отличия в подходах ? Означает ли это что FPGA Advantage более строг в свом подходе (может пытается сохранять backward compatibility со старыми VHDL стандартами) ? Или польза такого подхода в том что он, заставляя писать боле строго стандартизированный код, таким образом заботиться об общегчении синтеза или что-то в этом роде ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Singer 0 7 декабря, 2007 Опубликовано 7 декабря, 2007 (изменено) · Жалоба Означает ли это что FPGA Advantage более строг в свом подходе (может пытается сохранять backward compatibility со старыми VHDL стандартами) ? Или польза такого подхода в том что он, заставляя писать боле строго стандартизированный код, таким образом заботиться об общегчении синтеза или что-то в этом роде ? Скорее второе. Ну посудите сами, если у сигнала не описан range, будет автоматически сгенерен регистр, компаратор, сумматор и т.д. с максимальной для дального типа разрядностью (например для целого типа - 32 бит). Что приведет к значительно более худшим временам и дополнительной площади кристалла...Поэтому Advantage справедливо сомневается, а нужен ли вам такой широкий регистр...а может вы просто забыли указать range, и вам нужно то всего 8 бит... Изменено 7 декабря, 2007 пользователем Singer Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexZabr 0 7 декабря, 2007 Опубликовано 7 декабря, 2007 · Жалоба Скорее второе. Ну посудите сами, если у сигнала не описан range, будет автоматически сгенерен регистр, компаратор, сумматор и т.д. с максимальной для дального типа разрядностью (например для целого типа - 32 бит). Что приведет к значительно более худшим временам и дополнительной площади кристалла...Поэтому Advantage справедливо сомневается, а нужен ли вам такой широкий регистр...а может вы просто забыли указать range, и вам нужно то всего 8 бит... Да, логично, согласен. Но почему он вообще дает ошибку на natural в принципе ? Я нашел в его настройках какие виды warning и errors и как реагировать. Там действительно было установлено error на natural. Я могу это конечно отменить, но сомнения гложут. Ежели оно было установлено by default, значит есть какая-то логика наверно...но что именно ? Может это намекает на то что впредь не рекомендуется использовать natural как тип для синтезируемого дизайна ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться