Jump to content

    

dvladim

Свой
  • Content Count

    743
  • Joined

  • Last visited

Community Reputation

0 Обычный

About dvladim

  • Rank
    Знающий

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

3992 profile views
  1. Я поэтому и привел в пример TAP контроллер - он имеет возможность выхода в начальное состояние из любого без сброса. Поэтому я говорил о конкретном автомате, а не об общем случае. Если на выходе (после gray или как-нибудь еще) данные отличаются 1-м битом, то проблем не предвидится. PS. Вообще есть ощущение, что все это можно сделать и без такого автомата состояний.
  2. Автомат с гарантированным выходов в исходное состояние. Например JTAG TAP и выход по 5 единицам в TEST LOGIC RESET. У ТС автомат сделан как gray, условия переходов в зависимости от асинхронного сигнала - только в то же состояние или в следующее. Т.е. может измениться только 1 бит. Метастабильность в нем будет соответствовать или предыдущему или следующему состоянию. Т.е. если кодирование этих ближайших состояний отличается 1-м битом, то все безопасно (но это не точно))).
  3. TLP минимального размера состоит из 3-х слов. (разумеется не содержит данных). Пакеты для работы с 32-х разрядным пространством адресов имеют заголовок в 3 слова, с 64-х разрядным - 4 слова. Данные в зависимости от типа пакета.
  4. Как-то плохо верится в коммерчески успешную разработку даже с ценами на уровне диджикей, а уж с ценами на уровне китайцев верится еще меньше.
  5. А так ли? По-моему добавляется второй клок и при STA будут рассматриваться оба.
  6. Т.е. вот так SDC верно написан, STA проходит, а схема не работает? Как-то странно. Ну а почему бы не использовать локальных клок для приема (не тащить его через глобальное дерево), а затем перекинуть данные на глобальный клок.
  7. В Verilog обычно используют $test$plusargs $value$plusargs - это управление через коммандную строку. Или свой скрипт через PLI, или Cocotb, или можно попробовать приспособить MyHDL. Ну или по-простому читать файл через $fgets, разбирать его и выполнять, или читать данные через $readmemh/$readmemb
  8. Для Альтеры удобнее derive_pll_clocks особенно если не переименовываете клоки.
  9. Не совсем. Я, конечно, хотел сказать, что в одиночку поднимать все это очень непросто, хотя и возможно. Эти этапы вполне стандартны для любой цифровой схемы, да и аббревиатуры вы все эти знаете не хуже меня. (PnR - Place and route, CTS - Clock Tree Synthesis (чего нет в FPGA, но есть в ASIC), DFT - design for testability (вставка тестовых цепочек), ATPG - Automatic test pattern generation (генерация тестовых векторов), STA -Static timing analysis) Но в этом списке действительно нет специализированных этапов, а для бесплатного чипа от гугла приведенные выше этапы очень даже имеют смысл.
  10. А вам точно FPGA нужен? Судя по этому: Есть компьютер общего назначения, операции - простейшие. Почему не получается все что нужно сделать на компьютере? И не станет ли проблемой скорость обмена с FPGA? Обычно если уж берут FPGA в качестве ускорителя, то для выполнения операций, которые плохо ложатся на процессор общего назначения и обмен с ускорителем довольно плотный. Может имеет смысл арендовать FPGA в облаке? Например ускорители этих ребят https://www.bittware.com/
  11. А что в вашем понимании "сделать"? Начальная часть работы - это схемотехника и моделирование. Если аналоговая схема - то транзисторы pmos/nmos и Spice модель. Если цифровая, то Verilog. Если хотите получить железку, что-то что можно пощупать, то для цифровой схемы - сделанный Verilog - в ПЛИС. Для аналоговой схемы - сделанную схемотехнику - Layout, DRC, LVS, GDSII tapeout и договор с фабрикой на MPW, Assembly. Если хотите ASIC для цифровой схемы, то к предыдущему добавьте Синтез, PnR, CTS, DFT, ATPG, STA. Вон выше ссылку на efabless давали.
  12. Никто в здравом уме за фиксированную зарплату брать на себя такую ответственность не будет.
  13. Тут вот проскакивало по 450мм пластины. А что реально кто-то использует, а то я что-то пропустил этот момент?
  14. Для вашего мультицикла худшим случаем должно быть: данные формирующиеся на такте "n" должны защелкиваться не ранее такта "n+2". Т.е. для set_multicycle_path -setup 2 set_multicycle_path -hold 1 данные, которые формируются на такте n не будут корректны на такте n+1 и захватывать их нельзя.