Jump to content

    

des00

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

    7659
  • Joined

  • Last visited

Community Reputation

0 Обычный

About des00

  • Rank
    Вечный ламер
  • Birthday 01/14/1980

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Томск

Recent Profile Visitors

27265 profile views
  1. Примеры не эквивалентны. в постановке задачи написано что должна быть функция. Аналога этой функции в V/SV нет, т.к. используется VHDL фича, заложенная в объявлении типа unsigned и возможность декларации переменной, разрядность которой, задается в параметре вызова функции. В вашем же случае, это просто код уровня модуля и он такой будет и в V/SV. Изменится только тип цикла. Но, при синтезе, все равно эта VHDL функция должна быть с априори известным числом, задающем разрядность, поэтому тут чисто удобство описания. В V/SV, если для синтеза, это может быть описано через шаблоны функций, реализованных на модулях/интерфейсах, для моделирования шаблон на модулях/интерфейсах/классах либо перевод в неупакованные массивы и использование функции редуцирования массивов sum. ЗЫ. Повторюсь, говнокод определяется не тем языком, на котором описывают схему, а тем какую именно схему им описывают ЗЗЫ. А с какой версии софта от вендоров, foreach стал синтезируемым?
  2. Нет. А чего жалеть то? младшие 12 бит из 32-х битного адресного пространства. Только хуже сделаетет, усложнив логику декодирования адреса устройства в арбитре шины
  3. Да ква удругчает последнее время, вчера 4 часа потратил на выяснение откуда в блоке на 4к лишних 1к регистров, при Timing Driven Synthesis и констрейнах мультицкла. Оказалось, что если TDS встречает мультицикл, то перестает оптимизировать регистры, даже если они зашарены с другими(ну т.е. один источник шел на два регистра). Отключение TDS или комменатрий констрейна, приводил к адекватному варианту и 1к регистро редуцировался)
  4. полярность ресета точно не перепутана? без мига, проц работает?
  5. похоже она https://www.amazon.com/RTL-Modeling-SystemVerilog-Simulation-Synthesis/dp/1546776346/ref=sr_1_1?s=books&rps=1&ie=UTF8&qid=1497603716&sr=1-1&keywords=rtl+systemverilog&refinements=p_85%3A2470955011
  6. про технологии, это вам явно не в книги, это надо брать и делать, хотя бы на уровне симулятора с имитаторами от вендоров. Про DSP : DSP with FPGA, Advanced Synthesis Cookbook от Альтеры Про подход к разработке Principles of VLSI RTL Design REUSE METHODOLOGY MANUAL FOR SYSTEM -ON-A-CHIP DESIGNS Ну и немного не мейнстримового Asynchronous Circuit Design. А не популисткие книги типа вот этой вашей)
  7. В любом случае будет не полный рандом как нужно ТС, в остальном согласен. Все упрется в раскладку и контролер. Насколько знаю, все современные аппаратные контроллеры в плис, банки держат открытыми. И даже между командами стараются паузы заполнять. Делал похожий для сдрам, выжал практически максимум за счет конвейризации команд разных банков между собой, открытых банков памяти, все еще лежит на опенкоресах, в доках графики скоростей чтения/записи в разных режимах.
  8. тогда вам не в книги, а в статьи. все что можно взять с книг, вы взяли уже. ну либо в верификацию SV: uvm, assertions
  9. прочитайте лучше Stuart Sutherland and Don Mills "Verilog and SystemVerilog Gotchas 101 Common Coding Errors and How to Avoid Them" оно для не-начинающих, судя по этой теме, полезнее ;)
  10. вы отдаете себе отчет, что уважаемый @zombi, в своем вопросе, говорит про чип, у которого 240/570 триггеров всего, нет памяти и речь идет про DDR SDRAM?
  11. при рандомном, ни на какой. потому SRAM и не умерла до сих пор. UPD при квази рандомном(когда связь между блоками все же есть), с кешем и собственным контроллером можно попробовать. Но может вам все же остаться на SRAM?
  12. если вам критичен именно этот параметр, то тут нужно полное ТЗ на вашу разработку. Судя по всему, тактовая частота у вас 24МГц, макс5 спокойно работает на частоте 96МГц, вполне возможно проработать вариант вашей архитектуры с учетом передискретизации (oversample) и хранением результатов в памяти, но в макс5 памяти нет, а делать память на триггерах, будет тоже самое шило на мыло. Может быть возможен вариант понижения разрядности счетчиков, за счет их работы на пониженой частоте (за счет генерации сигналов разрешения), но это может быть не допустимо по вашим требованиям. Подытожу, вы реализовали ваш шим в лоб, пути оптимизации по ресурсам есть, но зависят они, от поставленного вам ТЗ. Будь вы моим студентом, рекомендовал бы вам отложить софт, взять ручку, тетрадь, затем думать и рисовать) памяти на макс2/5 нет
  13. в квартусе абсолютно тоже самое, если судить по нему, то все мои проекты с интерфейсами и с массивами структур, не рабочие)))
  14. попробовал на 15.1 для второго, результат тотже. balanced/area одинаковы. Да и не понятно с чего, даже беглый взгляд по вашему коду, показывает использование порядка 4*22+4*22+4*22+3+7+8+22+12+12 = 328 регистров, типовое соотношение регистры/логика порядка 1 к 2.5, что и дает порядка 820LE. Результат ожидаем. А вот код мне ваш не понравился: 1. типовая ошибка описания регистровой логики. 2. плохая самодокументируемость кода(названия переменных, куча констант в битовом формате, не нужные разрядности в сравнениях и т.д.). 3. не очень хорошая архитектурная проработка проекта. судя по всему в PWM.v описано несколько раз одно и тоже. сделайте ядро и вставьте его несколько раз с нужными параметрами. Вот над этим я бы рекомендовал вам поработать)
  15. чип MAX V: 5M1270ZT144I5, Quartus Prime 15.1 вариант Balanced/Area 819/1270 (64%), Performance Agressive 821/1270(65%). Глянул код, так у вас только одни счетчики по сути, тут сильно по площади не разыграешься. Поэтому и разницы стратегий практически нет.