Jump to content

    

VitalyM4

Свой
  • Content Count

    468
  • Joined

  • Last visited

Community Reputation

0 Обычный

About VitalyM4

  • Rank
    Местный
  • Birthday 04/28/1981

Контакты

  • Сайт
    Array

Информация

  • Город
    Array
  1. Здравствуйте! Фирме занимающейся разработкой и производством ASIC требуются 2 цифровых инженера-конструктора с опытом работы от 2х лет, на постоянную основу, 8-ти часовой рабочий день. Требования: знание verilog (синтезируемое и симуляционное подмножества), ассемблер (желательно), нормальный уровень английского языка - понимание спецификаций, участие в общении с клиентом. Фирма находится в районе метро Святошино. резюме - vim4@list.ru, детали и вопросы если есть пишите в сопроводительном письме. С ув. Виталий
  2. У Кад*нса для создания DFT структур используется RC Compiler, дальше можно оптимизировать скан-цепочки по-месту при помощи First Enc*unter. А непосредственно для ATPG используется Enс*unter Test. Насчет генерации- тест векторов я не специалист, а вот с DFT помочь могу если будут предметные вопросы. Русскоязычной литературы нет, по крайней мере я не видел, но зато встречаются лабораторные работы разных университетов по этой тематике, доволно неплохой материал для старта.
  3. Спасибо, нужно первое: tb.uut.<bla-bla>.spi_register.enable == 0 Я начну с классического наверное, он понятней Огромное спасибо за предоставленную информацию, как сделаю представлю на суд достопочтенной публике ! :maniac:
  4. Спасибо, нет нужно просто посмотреть на симуляции или выход Enable равен 0, в железе делать не надо. Ну у меня в принципе так и сделано, вот я и спрашиваю как лучше организовать монитор. Как он узнает что команда отработана. До ovm еще пока не дорос, тут бы с простым SV разобраться Второе звучит соблазнительно устрашающе, постараюсь по-немногу раскурить что это значит. :laughing:
  5. С рандомизацией я разобрался, вопрос такой, а как проверять результаты выполнения когда команды случайным образом выбираются. Пример: имеем набор SPI команд : typedef enum {NOP, CR, RSLP, CSLP,RSTBY, CSTBY, NRM, SM, SD, RO, WR, RR} command_t; Они генерируются случайным образом и передаются на выполнение объекту класса spi_driver, который драйверит сигналы MISO, MOSI, SCLK, CS. А как проверить например что после выполнения CSLP комманды выходная шина logic[7:0] Enable должна обязательно быть равна 0. Это должен быть модуль который опять собирает сигналы MOSI, MISO, SCLK, CS в посылку и определяет тип команды и например по возрастающему фронту CS смотрит на результаты? Или нужно сделать некоторое подтверждениие в классе spi_driver что он отработал посылку, потом создавать объект, который проверит результаты и сгенерирует разрешение на формирование новой случайной команды? Или использовать транзакции (пока не совсем понятно как)? Как более правильно? Заранее спасибо
  6. Огромное спасибо, хорошо я попробую поднять тему, где уже это обсуждалось. http://electronix.ru/forum/index.php?showtopic=43365
  7. Огромное спасибо, насчет оптимальности не знаю, но работает железно. Еще вопрос а при симуляции с SDF нормально ли будуть работать ассерты? Теоретически должны. И еще чтобы не плодить темы, как правильно проверять более сложные вещи: Например я посылаю SPI посылку 2 байта и после них хочу посмотреть как поменялись сигналы. Имею два экземпляра 2х классов: один генерирует случайным образом команды, объявленные как enumerate и передает во второй - драйвер, который драйверит непосредственно сигналы SCLK, MOSI, MISO ,CS. Так вот как лучше сделать следующее, когда выбрана и отработана команда SLEEP я хочу проверить сигнал bit[7:0] Enable должны быть равны 0 независимо от того что в в него было записано. Заранее спасибо
  8. Огромне спасибо! Действительно, когда я повесил $display на ассершн оно 8 раз писало что он успешно пройден. Теперь описываю следующие сигналы и не могу объединить два утверждения в одном. Первое что после фронта TRACK_BUF_DIG на 14 такте HOLD_BUF_DIG_B должен стать нулем Второе что они должны поменять свое состояние обязательно в одном такте property check_TRACK_BUF_DIG_HOLD_BUF_DIG_B; @(posedge UUT.U_clock_divider.CLK1MHz25) disable iff (!PORB) (TRACK_BUF_DIG) |-> ##14 (!HOLD_BUF_DIG_B); //and $rose(HOLD_BUF_DIG_B)==$fell(TRACK_BUF_DIG); endproperty assert property (check_TRACK_BUF_DIG_HOLD_BUF_DIG_B);
  9. Здравствуйте! Подскажите пожалуйста можно ли описать такую последовательность и повесить на нее ассершн. При переходе сигнала BUS в 0, сигнал А - в клоках 0-7 должен быть равен сигналу В в клоках 8-15. Т.е грубо говоря В это копия А но на 8 тактов позже. Спасибо.
  10. Спасибо за столь содержательный ответ, а то у меня были некие опасения по-поводу использования таких флопов, но теперь я спокоен
  11. Здравствуйте! Просматривая библиотеку нашего фаба нашел что там есть триггеры без резета. В симуляционных моделях после питания они в Х. Т.е. начальное состояние это флип-флопа после включения питания предугадать нельзя, я правильно понял? Спасибо.
  12. Здравствуйте! Подскажите кто знает какие-нибудь хорошие тренинг по проектированию автомобильных ASICs. вообщем интересует все то, что называют Designs for hostile environment. Заранее спасибо.
  13. Остальное verilog и vhdl, vhdl если мне не изменяет память процентов 15 %
  14. Я наверное не очень удачно назвал тему. Мне не нужны исходники или еще что-либо, мне нужна статистика. Например: NVIDIA GPU 6800 - 30 % на СистемВерилоге. Достаточно просто названия и того что вы точно знаете что он написан на СВ :-)
  15. Здравствуйте! Вот мы обсуждаем примущества СистемВерилога и в то же время по интернету сложно найти дизайны которые были бы написаны на нем. Т.е я имею ввиду не использование SV для верификации и assetrion, а именно для дизайна. Кто-то может знает какие-либо известные проекты, которые были написаны на SV? Заранее спасибо.