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

dvladim

Свой
  • Постов

    754
  • Зарегистрирован

  • Посещение

Весь контент dvladim


  1. О как! А чем же будут отличаться мультиплексор с обратной связью, латч и описание вида assign q = en ? d : q;
  2. Менять прошивку в ПЛИС смысла нет. Виноваты скорее всего платы. Имеет смысл посмотреть моделирование плат на crosstalk и с осциллографом ползать по платам.
  3. Да что вы говорите. Вот с точки зрения Qu latch - это комбинационная схема с обратной связью. Т.е. комбинационная схема выходы которой определяются не только входами.
  4. Параметры снаружи никак не изменить. Изменить можно define-ы (для ncverilog: ncelab +define+name). Это с полной пересборкой проекта. Параметры внутри можно вычислить (например parameter name = `extdefine) Это все тоже приведет к пересборке проекта, т.к. собственно меняется сама схема. Без пересборки проекта тестбенчем можно управлять через $plusargs
  5. С модулем на осциллографе импульсы наблюдаются? Для ПЛИС линия всегда входная? Если так, то вероятно наводки (паразитная емкость) а на стенде или внутри модуля нужно смотреть осциллографом.
  6. А за счет чего Required уменьшился? Он определяется прежде всего констрейнтами. Сравните один и тот же путь: до и после.
  7. Грубо ошибаетесь. Вам уже сказали, но и я добавлю: Если в списке чувствительности нет фронта клока, а в теле есть save_reg = save_reg; (без разницы = или <=) то у вас получится комбинационная логика с обратной связью - т.е. latch.
  8. Я про подробности спрашивал, потому что вы пишете ахинею: И как же? Required измениться не должен, Arrival уменьшился, а как Slack мог остаться тем же? Required измениться так же не должен, Arrival останется 7нс, а с чего бы Slack должен быть другим??
  9. Arrival - это то что получилось. Required - то во что нужно уложиться. Slack = Required - Arrival. Лучше бы подробнее: что было, что стало. Какие констрейнты, путь один и тот же?
  10. С save_reg вроде все нормально, а с ram_read_data - непонятно. Попробуйте вывести save_reg и ram_read_data через $display always @(save_reg) $display($time, save_reg);
  11. Абсолютно неверно. Коммутация в FPGA - это мультиплексор и буфер, поэтому fanout на задержку никак не влияет.
  12. Я поэтому и привел в пример TAP контроллер - он имеет возможность выхода в начальное состояние из любого без сброса. Поэтому я говорил о конкретном автомате, а не об общем случае. Если на выходе (после gray или как-нибудь еще) данные отличаются 1-м битом, то проблем не предвидится. PS. Вообще есть ощущение, что все это можно сделать и без такого автомата состояний.
  13. Автомат с гарантированным выходов в исходное состояние. Например JTAG TAP и выход по 5 единицам в TEST LOGIC RESET. У ТС автомат сделан как gray, условия переходов в зависимости от асинхронного сигнала - только в то же состояние или в следующее. Т.е. может измениться только 1 бит. Метастабильность в нем будет соответствовать или предыдущему или следующему состоянию. Т.е. если кодирование этих ближайших состояний отличается 1-м битом, то все безопасно (но это не точно))).
  14. TLP минимального размера состоит из 3-х слов. (разумеется не содержит данных). Пакеты для работы с 32-х разрядным пространством адресов имеют заголовок в 3 слова, с 64-х разрядным - 4 слова. Данные в зависимости от типа пакета.
  15. Как-то плохо верится в коммерчески успешную разработку даже с ценами на уровне диджикей, а уж с ценами на уровне китайцев верится еще меньше.
  16. А так ли? По-моему добавляется второй клок и при STA будут рассматриваться оба.
  17. Т.е. вот так SDC верно написан, STA проходит, а схема не работает? Как-то странно. Ну а почему бы не использовать локальных клок для приема (не тащить его через глобальное дерево), а затем перекинуть данные на глобальный клок.
  18. В Verilog обычно используют $test$plusargs $value$plusargs - это управление через коммандную строку. Или свой скрипт через PLI, или Cocotb, или можно попробовать приспособить MyHDL. Ну или по-простому читать файл через $fgets, разбирать его и выполнять, или читать данные через $readmemh/$readmemb
  19. Для Альтеры удобнее derive_pll_clocks особенно если не переименовываете клоки.
  20. Не совсем. Я, конечно, хотел сказать, что в одиночку поднимать все это очень непросто, хотя и возможно. Эти этапы вполне стандартны для любой цифровой схемы, да и аббревиатуры вы все эти знаете не хуже меня. (PnR - Place and route, CTS - Clock Tree Synthesis (чего нет в FPGA, но есть в ASIC), DFT - design for testability (вставка тестовых цепочек), ATPG - Automatic test pattern generation (генерация тестовых векторов), STA -Static timing analysis) Но в этом списке действительно нет специализированных этапов, а для бесплатного чипа от гугла приведенные выше этапы очень даже имеют смысл.
  21. А вам точно FPGA нужен? Судя по этому: Есть компьютер общего назначения, операции - простейшие. Почему не получается все что нужно сделать на компьютере? И не станет ли проблемой скорость обмена с FPGA? Обычно если уж берут FPGA в качестве ускорителя, то для выполнения операций, которые плохо ложатся на процессор общего назначения и обмен с ускорителем довольно плотный. Может имеет смысл арендовать FPGA в облаке? Например ускорители этих ребят https://www.bittware.com/
  22. А что в вашем понимании "сделать"? Начальная часть работы - это схемотехника и моделирование. Если аналоговая схема - то транзисторы pmos/nmos и Spice модель. Если цифровая, то Verilog. Если хотите получить железку, что-то что можно пощупать, то для цифровой схемы - сделанный Verilog - в ПЛИС. Для аналоговой схемы - сделанную схемотехнику - Layout, DRC, LVS, GDSII tapeout и договор с фабрикой на MPW, Assembly. Если хотите ASIC для цифровой схемы, то к предыдущему добавьте Синтез, PnR, CTS, DFT, ATPG, STA. Вон выше ссылку на efabless давали.
  23. Никто в здравом уме за фиксированную зарплату брать на себя такую ответственность не будет.
  24. Тут вот проскакивало по 450мм пластины. А что реально кто-то использует, а то я что-то пропустил этот момент?
×
×
  • Создать...