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

Снова вопросы начинающего... VErilog

ничего :)

написать вместо

if ((din == FarBPackage.nextCRC16_D24({FifoMemory[WrPntr_p-1],din[15:8]},0))

вот это

if ((din == tObj.nextCRC16_D24({FifoMemory[WrPntr_p-1],din[15:8]},0))

 

з.ы. Скажите а чем вам не понравилось идея подключать (инклудить) функции?

 

@E: CG100 :"C:\My\My_work\Almaz\HDL\FAR_BOS\SDR\SDR_Model_FPGA\fifo_anal_rec_my.v":90:40:90:43|Reference to unknown variable tObj

 

 

инклюдить щаз буду пытаться... некрасиво ето как-то

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


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

@E: CG100 :"C:\My\My_work\Almaz\HDL\FAR_BOS\SDR\SDR_Model_FPGA\fifo_anal_rec_my.v":90:40:90:43|Reference to unknown variable tObj

инклюдить щаз буду пытаться... некрасиво ето как-то

Ваша правда, такое в квартусе не компиляется. А вот с

din == FarBPackage.nextCRC16_D24

всё ок :-)

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


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

Ваша правда, такое в квартусе не компиляется. А вот с

din == FarBPackage.nextCRC16_D24

всё ок :-)

 

повезло Вам.

у меня Xil :05:

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


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

повезло Вам.

у меня Xil :05:

 

инклуд файл сделайте, либо, если SV поддерживается сделайте честный пакет.

либо возьмите прецижен синтезатор.

 

Удачи.

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


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

инклуд файл сделайте, либо, если SV поддерживается сделайте честный пакет.

либо возьмите прецижен синтезатор.

 

Удачи.

 

Работаю Ise8.2 + Synplify 8.5

у меня получился довольно сложный проект, (кстати инклуд не получилось заставить работать, может подскажете как :) ), и в свете етого и высказываний CaPpuCcino по поводу некачественной реализации Verilog в Synplify, вообще щаз подумываю о возврате всего проекта обратно в VHDL. Насколько я понял (и по экспериментам) оптимизация в Precision гораздо хуже, а у меня все будет на пределе, 3-й военный спартан надо заставить работать на частоте 180 МГц (8b10, crc, fifo,сложная логика- 5 уровней вложенности if then). Боюсь что Precision просто хуже разведет, кроме того со смешанным дизайном один геморрой - уже второй день в кучу собрать не могу, он то не синтезится, то не маппится.

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


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

Насколько я понял (и по экспериментам) оптимизация в Precision гораздо хуже

можно по-подробнее о плохости оптимизации в Пресижине (если есть ссылки на критику, в том числе частную, и/либо о собственном опыте по сравнению с альтернативными синтезаторами)

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


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

Работаю Ise8.2 + Synplify 8.5

у меня получился довольно сложный проект, (кстати инклуд не получилось заставить работать, может подскажете как :) ), и в свете етого и высказываний CaPpuCcino по поводу некачественной реализации Verilog в Synplify, вообще щаз подумываю о возврате всего проекта обратно в VHDL. Насколько я понял (и по экспериментам) оптимизация в Precision гораздо хуже, а у меня все будет на пределе, 3-й военный спартан надо заставить работать на частоте 180 МГц (8b10, crc, fifo,сложная логика- 5 уровней вложенности if then). Боюсь что Precision просто хуже разведет, кроме того со смешанным дизайном один геморрой - уже второй день в кучу собрать не могу, он то не синтезится, то не маппится.

вот тут о том как сделать инклуд этих фунций

http://electronix.ru/forum/index.php?s=&am...st&p=287932

 

:biggrin:

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


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

можно по-подробнее о плохости оптимизации в Пресижине (если есть ссылки на критику, в том числе частную, и/либо о собственном опыте по сравнению с альтернативными синтезаторами)

 

Ссылок на других авторов не дам, специально не сохранял, экспериментировал над своим проектом.

 

Коммутатор данных на Virtex2 1000, загрузка кристалла 92%. Там несколько каналов обмена с Tiger Shark и ядро обработки данных. Щаз в Синплифае каналы разводятся на 150 DDR, ядро на 130 МГц. (а там 32 разрядные шины и обработка). Попытался подключить Пресижн - тактовая в IO упала чуть ли не до 75 DDR.

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

Разбираться я не стал, а в свете того факта, что корявый синтаксис VHDL позволяет реализовать все возможные программные конструкции, а красивый Verilog для такой же функциональности требует бесконечного количества обновлений языка, за которым никогда не успевают разработчики синтезаторов, я просто плюнул на Пресижен и в новом проекте написал все параметризованные модули в VHDL, а все сложные и алгоритмические в Verilog. Сейчас чувствую весь новый проект из Verilog-a сползает обратно в VHDL.

 

 

 

P.s. Получается что претензия к качеству синтеза проекта написанного на VHDL, мда, но все равно, как в том анекдоте: "...ложка нашлась, а осадок остался."

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


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

Коммутатор данных на Virtex2 1000, загрузка кристалла 92%. Там несколько каналов обмена с Tiger Shark и ядро обработки данных. Щаз в Синплифае каналы разводятся на 150 DDR, ядро на 130 МГц. (а там 32 разрядные шины и обработка). Попытался подключить Пресижн - тактовая в IO упала чуть ли не до 75 DDR.

ещё коварный вопрос: а приведённую частоту вы брали из того, что выдают синтезаторы, или уже после разводки и размещения в кристалле?

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


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

Разбираться я не стал, а в свете того факта, что корявый синтаксис VHDL позволяет реализовать все возможные программные конструкции, а красивый Verilog для такой же функциональности требует бесконечного количества обновлений языка, за которым никогда не успевают разработчики синтезаторов, я просто плюнул на Пресижен и в новом проекте написал все параметризованные модули в VHDL, а все сложные и алгоритмические в Verilog. Сейчас чувствую весь новый проект из Verilog-a сползает обратно в VHDL.

 

Не верю (с) Станиславский. если не сложно покажите параметризованный вхдл код, который невозможно перевести на верилог. :) А то может зря я с SV связался :)))

 

ЗЫ. Кстати, если мне память не изменяет, обновление красивого верилога было в 95, 2001, 2005 году, тогда как корявого, по вашим словам вхдля 93, 2000, 2002.

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


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

ЗЫ. тогда как ... вхдля 93, 2000, 2002.

и ещё одно ожидается (кстати из года в год начиная с 2006-ого). что они там так тормозят с выпуском нового стандарта?..

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


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

Не верю (с) Станиславский. если не сложно покажите параметризованный вхдл код, который невозможно перевести на верилог. :) А то может зря я с SV связался :)))

 

ЗЫ. Кстати, если мне память не изменяет, обновление красивого верилога было в 95, 2001, 2005 году, тогда как корявого, по вашим словам вхдля 93, 2000, 2002.

 

я не говорил что в VHDL есть конструкции, которых нельзя реализовать в SV. Я говорил, что есть конструкции, которые нельзя реализовать в Verilog 2001. Именно SV я называл надстройкой к верилогу. А Synplify SV не поддерживает. И мне кажется, что так как Precision хуже разводит VHDL, он также хуже разводит и Verilog.

Что же касается конструкции, которая вызвала сложности то вот модуль:

 

-- type SregTrBlockStMash_type is (IdleSt, TransmitSt);

SregTrBlockStMashine: process(ClkDivSwitch)

begin

if (ClkDivSwitch'event and ClkDivSwitch = '1') then

if Reset = '1' then

TransReady <= '0';

SregTrBlockStMash_p <= IdleSt;

else

case SregTrBlockStMash_p is

when IdleSt =>

TransReady <= '0';

TransDone_p <= (others => '0');

DetConnLoop: for i in 0 to (Trans_num - 1) loop

if NeedToTr = '1' and BusGrant_p(i) = '1' then

TransReady <= '1';

SregTrBlockStMash_p <= TransmitSt;

end if;

end loop DetConnLoop;

 

when TransmitSt =>

DisconnLoop: for i in 0 to (Trans_num - 1) loop

if NeedToTr = '0' then

if BusGrant_p(i) = '1'then

TransDone_p(i) <= '1';

else

SregTrBlockStMash_p <= IdleSt;

end if;

end if;

end loop DisconnLoop;

 

when others => null;

 

end case;

end if;

end if;

end process;

 

 

ещё коварный вопрос: а приведённую частоту вы брали из того, что выдают синтезаторы, или уже после разводки и размещения в кристалле?

 

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

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


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

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

извините, помню, что подобную тему обсуждали, но не помню с кем (время, дела)

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


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

2 a123-flex

 

за копи пастил, посмотрю чуть позже, щас времени мало.

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


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

2 a123-flex

 

за копи пастил, посмотрю чуть позже, щас времени мало.

да че там смотреть та ?

параметрированный цикл внутри машины состояний

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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