Jump to content

    

des00

Модераторы
  • Content Count

    7966
  • Joined

Everything posted by des00


  1. полосу PLL можно расширить, но я бы предположил что крутизна фронта не та. у эпкоса ТТЛ/ЦМОС, а у нашего клиппед синус
  2. Всем доброго. Хочу промоделировать модем для непрерывного сигнала (не пакетный) но не в симулинке, а именно кодом-скриптом. Для начала пусть будет простейший: маппер-up2 - RRC - сдвиг частоты, задержка - symbol recovery- RRC - down2 - carrier recovery - демаппер. Посчитать из длинного вектора не вариант, хочу при рассчете склеивать блоки, ну положим по 1000 символов. Для этого нужно хранить переменные состояния всех элементов системы, учесть задержки фильтров и т.д. Пробежал по хелпу, но все примеры таких систем в симулинке. Может кто сталкивался, ткните носом в материалы по такому моделированию или подскажите направление в каком рыть хелп? Спасибо
  3. от ручек все равно никуда не уйти, но можно их все инкапсулировать в один тип, класаа "аппаратный класс". А именно интерфейс, внутри которого описаны все константы/функции, возвращающий нужные вам разобранные и собраные данные. Писать много где, но в одном месте на пару экранов) Туда же, можно добавить макросов для добавления новых сигналов и еще больше минимизировать вероятность опечатки.
  4. могу ошибаться, но разве акси подсистема не с 0x8000_0000 адреса начинается?
  5. Именно поэтому, по вашему мнению, ей самое место в подфоруме софта для ПЛИС и только для ПЛИС? Если считаете, что я перенес ее не туда, пишите модератору раздела ПП, он ее перенесет. Сходу, в перечне существующих подфорумов, более подходящего места, для вашей темы и вашего вопроса, я не нашел.
  6. квартуса у меня нет, поэтому не подскажу по конкретике. но, на вашем месте, я бы начал с изучения документации на DMA IP и документации на шину Avalon, затем моделирование DMA-IP, скорее всего базовый тестбенч создается при генерации корки, затем моделирование DMA отдельно и в составе вашей системы.
  7. в IP корках раньше был Avalon State Sequencer, это микропрограмный автомат для шины Avalon. Скрывает от пользователя всю Avalon-mm кухню. Т.е. вы не зная как работает шина, не моделируя ничего, пытаетесь организовать через нее транзакцию? В частности, Avalon-mm содержит механизм рукопожатия (handshake), в вашем коде его не видно. ЕМНИП там есть режимы работы без hanshake, но с гарантированным wait-state (похожий механизм есть в AMBA APB), там настройка wait-state идет относительно самой Avalon подсистемы, и не факт, что ваш последний выложенный код подходит.
  8. вы с латтисом работаете, вам и карты в руки .Полагаю что в документе LatticeXP2 Family Data Sheet - Architecture - PFU Blocks должны быть описаны основные кубики. А дальше, ваше сопоставление хотелок, строительным кубикам и вперед, делать оптимальный, для целевой плис, код. забыли еще AND-OR мультиплексор. техника древняя, но кое где рабочая)
  9. ИМХО, вот такие перлы из-за того, что не читают хендбук на целевую ПЛИС, о том какие строительные кубики есть в этой песочнице)
  10. отлично, теперь вы знаете к чему стремиться и у вас есть основа для быстрой проверки изменений (кстати фазы вашего выхода, не соответствуют протоколу SPI 00 https://ru.wikipedia.org/wiki/Serial_Peripheral_Interface, но это не должно особо мешать). парадигма у вас стала синхронной, но не до конца и не учтены детали, про которые вам написали коллеги. Но вот какой факт, вы оставили без внимания: квартус переделал ваш логику, т.к. вы не корректно ее описали. Отметил эти моменты на скриншоте. Раньше квартус выдавал предупреждение об этом, но новые похоже делают так, как считают нужными. В итоге, помимо прочего, ваш асинхронный сигнал тянется через всю логику и логика отличается от того, что вы задумали. И да, симулятор эти моменты вам не покажет. Нужно работать дальше)
  11. Avalon State Sequencer выпилили из поставки ? простой микропрограмный автомат, как раз под авалон шину)
  12. избавиться от 12 ти битных "адресов", а вот способы избавления есть разные)
  13. Synthesis - Open Synthesized Deisgn - Report Clock Networs/Interaction
  14. бинго, у вас дизайн не синхронный никак. вроде выше обсуждалось как фронты выделять в синхронной парадигме. Это не считая странной логики прерываний)
  15. отлично, большой шаг сделан. Разница в том, что в коде вы можете сделать более сложные воздействия, проще изменить сценарии и т.д. Для всего этого, нужен соответствующий инструмент. То что вы получили одинаковый результат, ожидаемо, т.к. судя по задержками в вашем коде, вы подогнали мух под котлет. Выложите ваши оба файла, чтобы можно было их покрутить в симуляторе. Там можно будет двигаться дальше, разбирая, например, вот эти ваши места: //Детектирование фронта CLK always @(posedge i_core_clk) begin sync_clk <= i_clk; if(!counter && sync_clk) begin o_irq <= 1'd1; o_rx_buf <= sr_rx; end else o_irq <= 1'd0; end always @(posedge sync_clk or posedge i_cs) begin if(i_cs) counter <= 3'd0; else begin counter <= counter + 1'd1; sr_rx <= {sr_rx[6:0], i_mosi}; end end И еще, важный момент вашей разработки, которая вам будет нужна.: разработка ТЗ на ваш модуль. Да, этот модуль занимает 20-30 строчек, но ТЗ на него вам лучше оформить. ТЗ это не предложение: "хочу SPI, 4 провода и все чтоб работало". А указание по пунктам, например: "После принятия посылки из 8 бит, модуль должен сформировать сигнал прерывания длительностью 1 такт и выдать принятые данные на внешний порт" и т.д. Еще, будет очень вам полезно, сделать вейвформы вашего модуля, с указанием воздействий. Например вот типа таких https://wavedrom.com/editor.html Когда будет готово ТЗ, если к тому моменту, ваши ошибки будут не очевидны и код вы не исправите, будем решать по ситуации) ЗЫ. вот небольшой пример тестирования со сценарием и проверкой. http://www.asic-world.com/verilog/art_testbench_writing.html
  16. Вы забываете что тот, кому это адресовалось, уже сидит плотно в квартусе, в его симуляторе, отлаживается по светодиодам) Ну а так, как говорю всем студентам что были у меня, ПЛИСовод выращивается около 4-5 лет. Есть уникумы проходящие этот срок за 2-3 года, но меньше никак. А вот я, все никак не вырасту, хотя уже 20 лет прошло(
  17. это если в слепую идти или самодеятельностью заниматься. А если поставить софт, открыть туториал и идти по шагам, то первый простой проект (ЕМНИП, там обычный счетчик + тестбенч) проходится за 2-3 часа. За это время студент получает: навык работы со средой, проектом, компиляция, запуск моделирования, отладка). Потом уже туториал по проектной работе, работы с командной строки, библиотеки. Для старта этого достаточно. У меня студенты через это проходят все) Причем весь материал идет вместе с софтом)
  18. в трех словах: в утиль, все. осваивайте нормальный симулятор и тестбенчи. на все про все 2-3 часа туториала.
  19. вы логику того что написали, точно представляете? выложите файл модуля и тестбенча, как оно у вас работает в симуляторе
  20. главное что бы до "students lives matter" не дошло А если без шуток, читаю на форуме только раздел ПЛИС и ЦОС, так что по плисам, думаю в этом разделе мало кто из ПЛИСоводов будет болтаться, разве что @ViKo и @iosifk, поэтому, ИМХО студенты все равно все пойдут в тематический форум) ЗЫ. Голосовал против
  21. более того, если гранулярность логики не оптимальна базовому размеру блока логических элементов, то для частей одного и того же регистра, может использоваться разная техника, это увеличивает упаковку проекта)
  22. Вы аккуратнее вот в каком вопросе. Был проект, который использовал хитрое тактирование трансиверов(ошибка в плате), по документации, актуальной на тот момент, было сделано решение. Квартус старой версии его разводил, но работало так себе. В более старших версиях, проект не разводился в принципе и апргейт документации, уже не содержал того решения)
  23. от архитектуры плис зависит, в документах на старые плис еще сохранились вот такие картинки)
  24. Тема почищена. Любителям острословия, предупреждение Модератор