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

VHDL несинтезируемая модель

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

Имеем требование для сигнала

micron.png

имеем базовую частоту с периодом Т, сигнал SDATA должен удерживаться до перехода SCLK в 1 минимум 5*Т и после перехода в 1 минимум 4*Т (см.картинку)

Вопрос как проверить что данное требование при работе с моделью выполнено, и в противном случае осуществить,к примеру вывод ошибки, if ...... report "Error: SDATA/SCLK timing failure!" severity failure. Простые модели с инерционной и транспортными задержками тут не подходят - они просто фильтруют сигнал.

Изменено пользователем vugluskr

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


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

похоже ситуевину можно асертами разрулить http://www.stefanvhdl.com/vhdl/html/sram.html

но вы делитесь опытом

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


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

вроде вот так получается, кто как реализовал бы?

 

---------------------------------- TWO WIRE INTERFACE TIMING CONTROL

-- START CONDITION CONTROL

process

begin

wait until SCLK='1';

wait for ((T/2)*4);

 

assert SDATA'DELAYED((T/2)*(5+4)) = SDATA

report "SDATA SU mustbe>="& time'image(T*5)

severity failure;

 

assert (SDATA'DELAYED((T/2)*4)) = SDATA

report "SDATA HOLD mustbe>="& time'image(T*4)

severity failure;

end process;

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


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

вот список всех атрибутов signal-ов, которые могут быть полезны для написания несинтезируемых моделей (что очень необходимо для отладки своего кода):

S'DELAYED(t) is the signal value of S at time now - t .

S'STABLE is true if no event is occurring on signal S.

S'STABLE(t) is true if no even has occurred on signal S for t units of time.

S'QUIET is true if signal S is quiet. (no event this simulation cycle)

S'QUIET(t) is true if signal S has been quiet for t units of time.

S'TRANSACTION is a bit signal, the inverse of previous value each cycle S is active.

S'EVENT is true if signal S has had an event this simulation cycle.

S'ACTIVE is true if signal S is active during current simulation cycle.

S'LAST_EVENT is the time since the last event on signal S.

S'LAST_ACTIVE is the time since signal S was last active.

S'LAST_VALUE is the previous value of signal S.

S'DRIVING is false only if the current driver of S is a null transaction.

S'DRIVING_VALUE is the current driving value of signal S.

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


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

Я, конечно, понимаю, что требуется VHDL, но, может, все-таки, перейти на Verilog? Там для этого все есть по дефолту. Блок specify, команда $setuphold.

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


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

Я, конечно, понимаю, что требуется VHDL, но, может, все-таки, перейти на Verilog? Там для этого все есть по дефолту. Блок specify, команда $setuphold.

соглашусь, НО это частность! VHDL позволяет творить модели более абстрактного уровня чем, verilog.

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


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

VHDL позволяет творить модели более абстрактного уровня чем, verilog.

Сильно сказано :)

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


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

Сильно сказано :)

ой, да когда речь заходит о сравнени verilog/vhdl доходит до мордобоя с кровавыми соплями поэтому я пытаюсь это дело обходить стороной. Я уверен и на этом форуме люди сцеплялись. Исторически сложилось так что, i love VHDL )) посему и выкручиваюсь его возможностями. Как говорят буддисты нужно стать мастером хотя бы в одном деле, прежде чем браться за другое. Поэтому если не исчерпан ресурс VHDL считаю не целесообразным менять инструмент (время переучки + время на исправление своего недопонимания дорогого стоит). Хотя я абсолютно уверен нужно знать оба языка (так же как програмерам использующим С, нужно иметь представление об asm)

 

вот, что меня действительно удивляет так это то, что никто не видит косяка в моем примере по реализации сути этой ветки... печально

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


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

Сильно сказано :)

 

вот авторитетное мнение в поддержку моего высказывания:

 

"My personal opinion is that Verilog is fine for RTL simulation and synthesis but a bit weak at board- and system-level modeling." book: ASIC AND FPGA VERIFICATION:

A GUIDE TO COMPONENT MODELING, by Richard Munden, page. #19

 

я тоже считаю, что вшдл лучше для абстрагирования и моделирования и в тоже время позволяет последовательно переходить от абстрактного уровня к уровню модели транзакций шин идалее до rtl

 

 

 

Сдаётся мне, надо использовать VITAL.

может я чего-то не догоняю, но как с помощью ВИТАЛА просимулировать модель CMOS sensor, производства APTINA?

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


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

может я чего-то не догоняю, но как с помощью ВИТАЛА просимулировать модель CMOS sensor, производства APTINA?
Ну вы же сами сказали, что нужно контролировать временные соотношения между сигналами.

Впрочем, я сам VITAL как-то ни разу специально не использовал, поэтому могу ошибаться.

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


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

вот авторитетное мнение в поддержку моего высказывания:

 

"My personal opinion is that Verilog is fine for RTL simulation and synthesis but a bit weak at board- and system-level modeling." book: ASIC AND FPGA VERIFICATION:

A GUIDE TO COMPONENT MODELING, by Richard Munden, page. #19

 

я тоже считаю, что вшдл лучше для абстрагирования и моделирования и в тоже время позволяет последовательно переходить от абстрактного уровня к уровню модели транзакций шин идалее до rtl

не хочу ввязываться в полемику, спрошу намеком вы хоть что-то знаете про SystemVerilog? уже минимум как 5 лет шагает по планете, стыдно не знать %)

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


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

не хочу ввязываться в полемику, спрошу намеком вы хоть что-то знаете про SystemVerilog? уже минимум как 5 лет шагает по планете, стыдно не знать %)

отвечу честно - пытаюсь избегать всего где есть слово verilog, единственное от чего не могу отвязаться это то, что некоторые производители (like Micron), делают модели на верилоге, посему работаю в смешанном режиме. Да по планете много чего шагает )) и знать всего не точно не стыдно, а и не нужно, я считаю что нету такой задачи, которую не выполнить с помощью vhdl. Вот если говорить в плоскости задачи этой ветки, чем верилог или системверилог лучше вшдл? Ведь получилось же вшдл-ем задачку то решить

 

Ну вы же сами сказали, что нужно контролировать временные соотношения между сигналами.

Впрочем, я сам VITAL как-то ни разу специально не использовал, поэтому могу ошибаться.

я на самом деле сейчас разбираюсь досканально в примудростях витала, честно говоря, покамест не знаю как красиво решить (а красиво синоним просто) задачку. Я для ВШДЛбной модельки кмоп сенсора (идеальной) сделал wraper с кучей феничек контролирующий тайминги входных-выходных сигналов (в общем перевел тайминг даташит в вшдл), простой и эффективный метод и не надо в даташит смотреть мой врапер при нарушении таймингов и протоколов вылетает из симуляции с просьбой исправить ошибки или убится об монитор

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


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

я считаю что нету такой задачи, которую не выполнить с помощью vhdl. Вот если говорить в плоскости задачи этой ветки, чем верилог или системверилог лучше вшдл? Ведь получилось же вшдл-ем задачку то решить

вашу задачу можно и на ABEL е решить, но вы же почему то выбрали VHDL %)

 

Знать всё не возможно и не нужно, но иметь представление о предмете, который хаете, нужно обязательно. В противном случае лучше отмолчаться %)

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


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

вашу задачу можно и на ABEL е решить, но вы же почему то выбрали VHDL %)

 

ну батенька, разница между этими вещами как между С и ASM....

 

Верилог я ни в коей мере не хаю (упаси боже - я же писал не дай бог в такую полемику ввязаться), тем более что это любимая приблуда в США. В какойто степени это сила привычки. НО для унификации кода, компонентов, библиотек, которые пишутся и копятся годами у разработчика (у меня в частности) не имеет смысл менять перфоратор бош на перфоратор хитачи, пока не исчерпаны возможности перфоратора бош при неоспоримом и явном преимуществе последнего над первым придется менять ))

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


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

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

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

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

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

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

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

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

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

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