Jump to content

    

myq

Свой
  • Content Count

    211
  • Joined

  • Last visited

Community Reputation

0 Обычный

About myq

  • Rank
    Местный
  • Birthday 08/20/1981

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

3026 profile views
  1. Коллеги, пост был в феврале 2018 ) Вакансия уже не актуальна.
  2. Привет! Не совсем понял разницу между п.2 и п.3. Я делал так: Большой модуль, который занимает несколько SLR - не привязан ни к чему. В нём заведены некие партишены, которые я точно знаю, в какой SLR их положить. Для этих партишенов заведены pblock'и размером с SLR. В большом модуле между партишенами используются SLR Crossing Register Slices для AXIS-интерфейсов, и самописные модули slr_cross для forward-only интерфейсов. На сегодняшний день оптимальный переход между SLR'ами - это 4 триггера: обычный -> Laguna_TX -> Laguna_RX-> обычный.
  3. В команду очень не хватает FPGA/ASIC RTL-инженеров. Проект новый, legacy кода нет. Необходимо знать максимально из списка: Verilog/SV (VHDL тоже пойдёт, если готовы быстро переучиться) AXI4-Stream / Avalon-ST AXI3/AXI4/whatever DDR IP Core (Xilinx MIG) PCIe Endpoint Stream data processing Используем Git, Confluence, Jira. Синтез - Vivado. Симулятор - по желанию. Можно брать модуль и разрабатывать его как black-box, можно тесно взаимодействовать. Можно tb писать, можно не писать - напишут другие. Нам требуется максимальная утилизация FPGA. Максимальные частоты, максимально памяти, вычислений, DDR и PCIe bandwidth. Если вы - ASIC RTL-инженер, вы тоже подходите. Вы можете взять часть работы, которая не зависит от платформы (fpga vendor/asic), а через некоторое время появятся задачи для ASIC Design Engineer. У нас отличный офис, топовые development kits (Virtex Ultrascale+, Zynq MPSoC). Работа в офисе - да. Место - Москва, Волгоградский пр-т, около м. Текстильщики. Возможность удалёнки - сейчас уточняется. ДМС, чай/кофе - да. Печенек нет - вредно. Если вы - мидл/профи - вы нам подходите, найдём подходящую часть задачи. Если вы - джуниор, который желает быстро и многому научиться - тоже найдём задачи. Зарплатная вилка официально не объявлена, любая разумная цифра - обсуждаема. mike-fpga@ яндекс.ру
  4. Выглядит, вроде, нормально. Тут каждая функция необратима. Только нет смысла усложнять. Просто SHA m раз. m равно общему числу хэширований в вашей схеме, примерно n*n / 2 (арифм. прогрессия).
  5. Да, была такая проблема, решил оставить на потом. Хорошее решение!
  6. Задача по большей части решилась, при условии, что в домене удвоенной частоты писать не if (clk), а if (tff) а tff - переключается каждый такт по удвоенной частоте. т.е. tff равен либо clk либо ~clk, но это обычный триггер, а не клок. Проект собрался с clk_x2 = 714 MHz на Ultrascale+ (период 1.4ns). Без Post-route PhysOpt - -0.02ns, PhysOpt вывел слаки в плюс.
  7. Добрый день, коллеги. Основная логика работает на базовой частоте, а небольшая выделенная часть, например, BlockRAM - на удвоенной или утроенной. Как это лучше реализовать, если учесть, что [высокая] частота BRAM близка к максимальной для данного ПЛИСа. Про идею можно почитать тут: https://cpufpga.files.wordpress.com/2016/04...s_isca_2016.pdf слайд 74 https://www.xilinx.com/support/answers/68595.html http://citeseerx.ist.psu.edu/viewdoc/downl...p1&type=pdf Вопросы/требования: 1) оба клока (clk, clk_x2) должны быть выходами PLL или необязательно? 2) надо обойтись без синхронизаторов и async fifo 3) надо ли дополнительно констрейнить или САПР сам правильно всё понимает? По клокам, я предполагаю, что снаружи надо генерить более высокую частоту с низким джиттером (т.е. clk_xN), а внутри - делить её уже на N. Как достоверно определять 1-й такт из N? always @ (posedge clk_xN) begin if (clk) blablabla; end - выглядит не очень, и тут надо знать точно как соотносятся моменты перепада clk и clk_xN.
  8. https://s24.postimg.org/a1pa8bo51/vivado_bu...39-50_small.png
  9. Подтверждаю. Не цепляет опции "-generic" в Runs, не видит некоторые корки (некоторые - видит). У меня -generic и -verilog_define задают опции сборки. Например пишет: IP-ядро такое-то не найдено. На самом деле в проеке оно есть, САПР считает, что оно в проект не входит (т.к. это определяется -generic и -verilog_define, а он их игнорирует). Простой какой-нибудь счётчик V2017.1 собрать может. Мой проект - нет.
  10. Коллеги, а у вас нет проблем с лицензией?
  11. Так я же в начале написал, что у меня была долгая дискуссия с одним рук-лем проекта, по asic'ам. И он утверждал, что async dcfifo - штука в asic'е ненадёжная, и что надо писать проверяющий модуль снаружи. Чем меня здорово удивил.
  12. Ответ на 1й вопрос в 1м посте: Да, с двумя независимыми клоками. На что это ещё похоже? Не понял, поясните. Спасибокэп.
  13. Согласен с доводами, считаю ваш ответ -- "достаточно" :) В старые и не очень времена у обоих вендоров было много косяков. С DDR-контроллером, PLLями, трансиверами, да бог знает с чем ещё, возможно и с FIFO. Я вот нашёл Sim-Syn mismatch для Xilinx FIFO последних версий (годичной давности). Но в целом я про то, надо ли вводить доп. контроль или нет. Прихожу к выводу, что нет.
  14. Лексика не понравилась. Resync - правильно, Reclock - допустимо, Retact - это уже какой-то язык с Брайтон-Бич ("Вам чиз как - послайсить или целым писом?" - отвратно же). И потом они утонули, обсуждая изобретённый автором велосипед вместо кода Грея. То ли он про него не знает, то ли знает и не применяет, не охото в это погружаться. Это как начать решать систему уравнений и погрязнуть в дискуссиях о формуле дискриминанта. "Запись в FIFO одновременно со сбросом...." - а нафига расставлять себе грабли и потом удивляться... Надо просто аккуратно писать код. p.s. Надо читать знаменитые 2 pdf от Клиффорда Саммингса, вот код на примере его статей: http://subversion.assembla.com/svn/ecpe-29...ll_async_fifo.v Так вот, мой вопрос - этого достаточно для ASIC, или надо что-то ещё. Мой визави утверждает, что _недостаточно_, и надо мониторить FIFO на предмет дублирования и пропадания данных на выходе. Моё короткое мнение - это чушь собачья, т.к. FIFO - это не трёхрегистровый синхронизатор.