Jump to content

    

_Ivan_

Свой
  • Content Count

    615
  • Joined

  • Last visited

Everything posted by _Ivan_


  1. Михаил, привет! https://habrahabr.ru/post/321674/ вот этот пост интересен, там еще народ в комментариях нашел ошибку у автора и приводит кучу аргументов и ссылок
  2. https://geektimes.ru/post/285840/ Очень интересная статья по теме студента, который смог.
  3. Найдите книгу в интернетах Харрис и Харрис - Digital design and computer architecture - есть перевод книги на русский язык. Там есть 4 глава где на примерах цифровых схем есть синтаксис на верилоге и вхдл параллельно. Это вам поможет.
  4. 6 спартан обещали держать до 2026 года. Как раз на семинаре говорили как преимущество хилых над альтерой что сроки жизни продукта на рынке у первых порядка 15-20 лет, а у вторых 12.
  5. 3 года назад делал PCI-E устройство на ядре от Virtex-6 как диплом. Могу поделиться самим дипломом и исходными кодами.
  6. и если честно я что то не понял. 16 элементов массива. Входные данные datain входят в нулевой элемент массива который 1 байт, а остальные сдвигаются? Или в одном слове массива происходит прием datain со сдвигом?
  7. можно. по умолчанию все числа беззнаковые. но есть волшебное слово signed, пишем после reg или wire. Результат тоже должен быть знаковый? Если знаковые, то в верилоге результат, который имеет разрядность 16 бит и регистры которые имеют разрядность 8 бит приведутся к 16 бит, причем недостающие биты заполнятся нулями. Нужен sign extension(в той книге есть)
  8. shift_reg <= {shift_reg[6:0], datain} это вместо for(i=7; i>0; i=i-1) begin shift_reg <= shift_reg[i-1]; end shift_reg[0] <= datain; А shift_reg в массиве знаковые или беззнаковые? И их точно 16 штук или согласно 3 сообщению 6? и массив из 16 слов по 8 бит в верилоге это reg [7:0] array[0:15]; в общем случае это вот так по идее reg [15:0] dout; // в нашем случае это как провод, а не регистр integer i; always@* begin for(i = 0; i < 16; i = i + 1) begin dout = dout + shift_reg; end end но вообще это очень плохо, так как получится слишком большой сумматор из 16 ступеней что приведет к большим propogational delay скорей всего и частота работы схемы снизится
  9. sr в ветке положительного резета есть shift_reg? вторую часть можно написать элегантнее: shift_reg <= {shift_reg[6:0], datain}; без всяких циклов. Я немного не понял, вы хотите просуммировать биты в регистре или просуммировать массив регистров?
  10. Посмотрите в сторону generate для SV.
  11. wire - это провод. Для соединения блоков и для выражения комбинационной логики. reg - может выражать последовательностную схему, а может комбинационную схему в зависимости от написания. подробнее можно прочитать тут https://habrahabr.ru/post/306982/ <= и = это неблокирующее и блокирующее присваивание. Основное правило - первое мы применяем в последовательностной логике, а второе в комбинационной. по фронту выдачу можно организовать что-то типа такого : пишем цикл нужный http://www.asic-world.com/verilog/verilog_one_day2.html вот тут затем туда вставляем фронт (@negedge clk) и выдаем данные - вот тут смотрите http://www.angelfire.com/in/verilogfaq/pli.html
  12. Резет от кнопки не очень хорошо. У вас может быть так, что снятие резета в произвольный момент времени способствует метастабильности всех регистров под резетом, поэтому схема не работает. http://www.eetimes.com/document.asp?doc_id=1278998 А клок откуда подается? Идет ли он через PLL или DCM или так напрямую? Какая плис?
  13. Смотрели ли вывод ошибок синтезатора и разводчика? Какая схема резета в девайсе?
  14. Вопрос появился: Допустим у нас есть сложный sequence_item. А для reusable у нас сделан драйвер, который воспринимает только простые операции. Например есть burst на axi шине. А драйвер может только чтение или запись 1 слова. Преобразование сложного пакета в набор простых операций делаем в sequencer, так? Или есть какие то еще методы?
  15. Ссылку выше посмотрите. Этот учебник системнее.
  16. http://www.edaboard.com/thread195003.html Some of the key differences of Questa over ModelSim: Compile flow optimizations Simulation Performance optimizations (2-50X)
  17. http://www.sunburst-design.com/papers/Hunt...esets_paper.pdf в Advanced UVM эта статья скопирована Перечитал дискуссию, понял что я немного не понял Kopart Я сейчас речь веду про 100% transition coverage и phase jump поможет. А вот загнать это в default state увы. Видится только force release state_reg DUT
  18. Questasim Спасибо за мнение, но. Как раз у меня случай с авионикой. DO-254, 10^-9 вероятность отказа и прочее. И если ошибка - погибнут люди. А я потом спать не буду и все такое. Сейчас примерно смотрю - у меня по code coverage - переходы автомата из состояния в IDLE состояние по резету нету покрытия и default в автомате. Но так как там еще будет вотчдог, то наверное придется рушить автомат для покрытия этого и смотреть. В любом случае uvm это дело очень сильно упрощает и если я раньше думал что это гвозди микроскопом, то сейчас мне кажется при reusability модулей тестбенча это все весьма прекрасно.
  19. Я покупал электронную версию. Да и 40 баксов это отличная возможность стать лучше, мотивировать себя лучше знать uvm, а также сэкономить себе кучу рабочих часов за счет грамотной работы, а затем попросить прибавку к зарплате.