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

Builder

Свой
  • Постов

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

  • Посещение

Сообщения, опубликованные Builder


  1. 36 minutes ago, Zversky said:

    Может, обновлённый и обезличенный в закрома положите?

    Так оно там всё лежит, а объединять - надо смотреть, что-бы не было повторов, есть ли смысл?

    Но ок, на выходных попробую объеденить без повторов и забросить с коментарием, откуда оно взялось. Отпишу, как сделаю.

    • Thanks 1
  2. А я кажется в каком-то видео слышал про этот глюк и говорили как избавится, если верно запомнил - нужно отключить модууль переключения клока. Попробую поискать видео, а вообще, это не автор делал доклад?

    UP: нашел: 

     

  3. 8 hours ago, quest said:

    Вот эта фича - правильная? FEATURE ACTIVEHDL_SVA_SUPPORT?

    Поройтесь в местных закромах - по-моему в названии архива должно быть чо-то типа "2050" - нужно в тексте поискать фичу которая вам нужна...

    Спасибо, помогло, добавил фичу в старый файл лицензии. Причем файлов два, у которых в названии "2050" и я их уже смотрел, но не всё учел. Если кто ещё столкнется с таким: файл нужен тот,  у которого у этой фичи SIGN2 не нулевой и в "HOSTID=ANY_ID" хост вставить свой, только после этого заработало.

  4. 1 hour ago, Zversky said:

    Спрашивать, где вы взяли ключ к ActiveHDL, наверное, смысла особого не имеет?

    В местных закромах, 15-я. Но если посмотреть файл лицензии, то он совпадает с тем, что лежит с версией 13, которая везде по интернету находится.

    Полагаю, что в файле не хватает имени лицензии, грубым поиском не удалось найти её имя.

  5. А кто-то использует SystemVerilog assertion на ActiveHDL? 

    Решил я на старости лет изучить эту возможность SystemVerilog (в частности, начал с assert property), но столкнулся с тем, что в лицензиях, что везде лежат, нет поддержки этой фичи. При попытки симуляции, выдает "Error: You do not have a valid license to simulate SystemVerilog assertion".

    Не хочется на ModelSim переползать, у ActiveHDL интерфейс дружелюбнее - всё из одной коробки, и текстовый редактор и проект и симулятор.

     

  6. On 5/19/2023 at 6:16 PM, makc said:

    Нет, отпала необходимость. Теперь снова продают Артиксы и ещё Pango Micro Logos2 подвезли.

    Не, мне что-то не хочется возится с ними, для мелкой поделки возни много, да и драйвера у wch-ic "из коробки", не нужно со своими возится, попробую, закажу макетку поиграться.

  7. On 10/18/2022 at 7:31 AM, makc said:

    Например, использовать Gowin + http://www.wch-ic.com/products/CH367.html или http://www.wch-ic.com/products/CH368.html

    А вы их пробовали? Присматриваюсь к ним, но смущает что мало информации по ним, стабильно ли работают. Думаю вот заказать отладочную плату, поиграться.

  8. (5-3.3-0.7)/22 = 45 мА

    не слишком ли много тока для ноги Lattice?

    Так вот и я о том-же, не корректно считаю плата сделана, нет тут честных 5В поддержки, как пишут. Видимо расчёт на то, что 5В плату в наше время уже не найти, а древние уже давно выброшены на свалку.
  9. Возможно, выходной ток слабоват у латтиса, вот и ставят резисторы поменьше. Там ведь на хосте пулл-апы должны быть где то, в пятивольтовой ревизии.

    А вообще, конечно, опоздали Вы с вопросом лет на 15-20. Кому сейчас нужна плата под параллельный PCI? Персоналок таких почти не осталось, в РФ этой шиной не интересовались особо, тем более - в классическом исполнении с ножевым разъемом. Архаика. Вы еще бы плату с ISA нашли :biggrin:

    Насчёт - не интересовались несогласен, помню как в конце 90-х все носились с этим PCI, даже в MAX-сы не сильно крупные от альтеры запихивали, потом на 66 МГц переходили.

    Насчёт того что не ставят - да, много не ставят, но проблем с мамками где есть PCI нет, а в промышленных компах и ISA до сих пор есть. Потрясу производителя, спросил через дилера, молчат, ещё раз спрошу.

     

    Может "3.3 V/5 V " относились к дискретным входам/выходам, а не PCI интерфейсу?
    Смотрите фото, там чётко видно, что сигналы PCI.
  10. Не помню с какой ревизии, но PCI вроде как уже давно перевели на 3,3В и проблемы с пяти вольтовой толерантностью могут случиться только на каких то очень древних материнках.
    Я может бы с этим согласился, если бы в описании этой платы не было "3.3 V/5 V Universal PCI, 32-bit, 33 MHz".

    И я вижу, что другой производитель до сих пор ставит "честные" буфера.

    Я задал вопрос поддержке, пока молчат.

    Для меня это выглядит как не корректная информация, написали 3.3 V/5 V Universal PCI, а по факту это не так.

     

    Никто не ответил, но я предположу, всё что "электрически прекрасно" - не безобразно. Если это дает правильные уровни, нужную крутизну и тому подобное - почему бы и нет? Мне так кажется.
    Да как-то не получается ограничения по напряжению с 5В на 3.3В на 22Ом, только диоды могут не выдержать, я уже не помню подробности, но в рекомендациях по сопряжению 5В и 3.3В эти способом выходят заметно более высокие сопротивления, поставив которые потеряешь скорость.
  11. Попалась на глаза PCI тайваньская плата дискретных портов ввода/вывода.

    PCI сделан на Lattice 3.3V MachXO. Она 3.3V. В принципе там описывается, что можно активируя диод и ставя резистор обеспечить подключение 5В сигналов.

    Но дело в том, что на плате резисторы стоят гораздо более низких номиналов, чем это прописано в мануале на MachXO, специально нашел где это описывают.

    И это понятно, если поставить высокоомные резисторы, скорость потеряется на RC цепочке, что получиться, если бахнуть туда пару К ом.

     

    Кто-то ещё видел, что такую наглость практикуют? А то какое-то радиолюбительство получается в коммерческом продукте.

     

    up. Прикрепил фото, микросхема там LCMXO1200C, резисторы 22R

    В общем или я что-то не понимаю, или это жуткая халтура.

    post-322-1523026206_thumb.jpg

  12. Lattice говорит, что что данное сообщение возникает, если установка Diamond осуществлялась не по умолчанию, а по выбору - поддержку каких именно семейств устанавливать.

    Для решения проблемы рекомендуется осуществить установку даймонда по умолчанию (что-то типа Typical).

    Попробовал. Переустановил, не удаляя не нужные мне семейства. Всё запустилось. Видимо есть некая зависимость, которая критична, а они её не отслеживают.

    Спасибо за совет!

  13. Вот мне совершенно не нравится идея держать рядом несколько версий одного пакета под виндами (под линуксом - другое дело!).

    Тут, конечно, от самого пакета зависит, но, к примеру, что будет, если виндовские переменные среды указывают на одну версию, а запускается другая?

    Я последовательно обновлял версии даймонда (сносил старую и инсталлировал новую), никогда проблем не было. Сейчас v3.10 sp1 - полет нормальный.

     

    И в качестве оффтопа - у меня iCEcube2 v2017-08 не желает инсталлироваться под CentOS'ом 6.9 - ругается на отсутствие библиотеки, которая в системе имеется.

    Переставлял винду. Поставил Diamond 3.10 64-bit for Windows, ничего не поменялось - эксепшин при старте. SP ставил - не помогло.

    Лицензия - с сайта FREE. Ставлось всё по умолчанию - на C диск.

    Есть тут представители, что могут дать совет, что делать? Что-то в моей системе не нравится.

    Система - как и было Win10 X64

  14. Давайте подробности:

    - под какой осью (Win/Lin)?

    - до какой версии обновлялись?

    - как именно обновлялись (из-под даймонда или сносом старой версии и установкой новой)?

    Исправляюсь:

    - Win10 x64

    - старую (3.7) не трогал, доставлял в отдельные каталоги версии 3.9 и 3.10.

    Старая (3.7) продолжает работать. Сервиспаки для новых тоже ставил - не помогает.

  15. Может кто знает, что за фигня. Использовал версию 3.7 free.

    Решил обновиться, при запуске выскакивает окошко: Catch unknown exception. После нажатия ОК программа закрывается. Что на 3.9, что на 3.10.

    Непонятно что не нравится, может кто сталкивался?

    Поиск по инету ничего не дал.

  16. В целом второй триггер продолжает выполнять свою функцию. Он защелкивает состояние первого, интерпретируя его в случае метастабильности.

    Второй триггер остается единственным потребителем сигнала первого(пусть и измененного), это его основная функция, так что схема вполне корректна. Я поставил бы 3 триггера в этой ситуации, просто чтобы вопросов небыло%).

     

    Добавление логики не всегда ухудшает ситуацию, надо понимать что проблемы не в задержках, а в попадении на определенный момент. В случае если первый триггер все же схватит кривое состояние, то дальше вопрос выйдет он на устойчивое положение до следующего клока, когда сигнал с него потребит второй триггер. Логика может сработать как "усилитель" которая задавит кривой сигнал в какое-то устойчивое положение.

    Понятно, как-то повлияет, но для количественной оценки нужно знать константы микросхемы и задержки, из которых по формулам, аналогичным app Altera, что прикрепил, оценивать как влияет. Причем это влияние сильно не линейно, в app показано, что доли наны очень сильно влияют на время сбоя, на несколько порядков.

    Но вопрос - стоит ли так делать в общем случае, остался открыт.

    Не в проекте лишний триггер и так погоды не делают - оставил два на входе.

  17. Так, ушли в сторону, обсуждать стандартные рекомендации, там и так всё понятно. Для новичком прикрепляю то, что уже было ранее на форуме.

     

    Вопрос был не в том, нужно ли 2, нужно, во всех рекомендациях так указывается, и объясняется почему, в этом случае вероятность ошибка крайне мала, в отличии от случая, когда один стоит. Иногда и 3 могут рекомендоваться, но тут нужно технологию чипа знать, что бы посчитать вероятность, оправдано ли 3. Причем во всех рекомендациях указано, что два регистра ставятся без логики между ними, тоже в принципе понятно - меньше вносим новых задержек, меньше вероятность повлиять на второй триггер, в худшую сторону.

     

    Вопрос был в том - насколько корректен код SM и почему, когда у него перед вторым триггером стоит простая логика. Я понимаю, что вроде как логику маппер скорее всего поставит от триггера родную - та что перед триггером, т.е. вероятность ухудшить ситуацию небольшая. Но это не гарантируется, и нужно ещё разобраться, насколько это ухудшает ситуацию.

    Не правильнее ли ставить два триггера и уже со второго что-то считать, как сделано в сообщении #13 (я у себя примерно так-же делаю).

    Да, так лишний может быть так (в среднем пол такта), но зато голова не болит, всё ли правильно работает.

     

    Или я что-то не понимаю...

    async_signals.pdf

    an042.pdf

    design_rules_for_stable.pdf

    CummingsSNUG2001SJ_AsyncClk_rev1_1.pdf

  18. Почему? Предположу что один 2И особой роли не сыграет. В принципе так и есть: не знаю как у Xilinx, а у Altera два рядом стоящих триггера трассируются через локальные ресурсы и LUT. А луту все равно какую функцию выполнять - буфер или 2И.
    Вы не знаете, будут они рядом стоящие, или не рядом. Только если обконстренить, что хлопотно очень. Если встречали в рекомендации по метастабильности такой вариант - покажите где.
  19. вот кстати мой вариант для передачи стробов меж доменами. Данные - просто подрегистрить на задержку строба, если это надо. Выход completed - так, на всякий случай. Стробы обязаны быть на входе длиной в один период клока. На выходах тоже будут в один период. Какой клок быстрее - пофигу. Опробован уже и в асиках-кремнии, и на ФПГА, работает надежно. Что касается констрейнов - в разные клокогруппы их, в асинхронные, клоки эти, и забыть и забить. Если уж очень хочется обконстрейнить - то можно через set_max_delay внаглую от регистра-выхода одного клокодомена до входа другого.

     

    ЗЫ

    разные асинхронные клокогруппы и false_path это синонимы. Первое автоматически объявляет междоменные цепи false_path-ами, так что ваши варианты 0 и 1 это синонимы.

     

    module interck2 ( in, out, clka, clkb, reset, completed);
    input in, clka,clkb,reset;
    output out, completed;
    
    reg in_at_clka;
    reg [1:0] out_at_clkb;
    
    wire clra = reset | out_at_clkb[1];
    
    always @(posedge clka or posedge clra)
      if (clra) in_at_clka <= 1'b0;
      else if (in) in_at_clka <= 1'b1;
    
    always @(posedge clkb or posedge reset)
      if (reset) out_at_clkb <= 2'b00;
      else out_at_clkb <= {out_at_clkb[0] & !out_at_clkb[1], in_at_clka};
    
    assign out = out_at_clkb[1];
    
    reg [1:0] cmpl_at_clka;
    reg cmpl_at_clkb;
    wire clrb = reset | cmpl_at_clka[1];
    
    always @(posedge clkb or posedge clrb)
      if (clrb) cmpl_at_clkb <= 1'b0;
      else if (out_at_clkb[1]) cmpl_at_clkb <= 1'b1;
    
    always @(posedge clka or posedge reset)
      if (reset) cmpl_at_clka <= 2'h0; else
      cmpl_at_clka <= {cmpl_at_clka[0] & !cmpl_at_clka[1], cmpl_at_clkb};
    
    assign completed = cmpl_at_clka[1];
    
    endmodule

    Тема старая, так получилось, случайно нарвался, копаясь в архивах по теме.

    Не совсем понял, по модулю SM: почему при пере-синхронизации в новый домен сигнал до анализа пропускается только один триггер, а не как обычно по классике в перессинхронизаторах - через два, и сделано в модуле из сообщения #15 ?

    По идее строка "reg [1:0] out_at_clkb;", должны быть "reg [2:0] out_at_clkb;" где первые два триггера просто пропускают сигнал и только перед третьим ставим логику.

    Разве так можно, с одним чистым триггером? Считаем что простейшая логика с сигналом от своего триггера работает так-же как и чистый триггер?

  20. развожу плату PCI на FPGA, 32 бита, 33 МГц, мастер/слейв.

    Сопряжение с 5В делаю на idt3861, как рекомендуют. Они 10 битные.

    Как на зло - сигналов получается 51, ставить корпус ради одного сигнала как-то не хочется.

    Вижу два варианта:

    1) SERR - открытый коллектор, выход, есть мысль его пустить через резистор на шину PCI, не забыв в FPGA включить защитные диоды.

    Исходя из описания, учитывая что там открытый коллектор, вроде ничего плохого не будет. ТО, что будут затяжки - предусмотрено в спецификации, п. 3.7.4.2.

    2) вообще не разводить SERR.

     

    Пока склоняюсь к варианту 1, т.к. вариант 2 получается не запаиванием резистора.

     

    Кто на опыте, что скажете - вариант 1 годится?

  21. Могу подарить родной латтисовский программатор, в состоянии "муха не сидела" :)

    Есть возможность передать в Минск.

    Спасибо, получил.

    Если кому в Минске надо - могу одолжать на время, пишите.

  22. Покупал на али такой

    Прошивка точно работает, и плитчатый брильянт его опознает как родной. Тестировал на MachXO2.

    Отладка - не знаю, отлаживались на evalboard через их встроенный.

    Что внутри хз, расковырять не удалось без потери внешнего вида. Но судя по всему FT2232H.

    Спасибо, с этой ценой я поиском не находил. Визуально такой-же в других местах продают дороже. Если утвердят Lattice - для программирования самое то.

  23. Спасибо, не видел. Но если честно, если нет под рукой FT2232H Board, то затраты не менее чем заказать на ebay: купить, собрать, запустить.

    Пока самым оптимальным вариантом вижу что-то типа:

    http://www.ebay.com/itm/USB-ISP-Download-C...3UAAOSwp5JWYunl

    http://www.ebay.com/itm/USB-ISP-Download-C...lUAAOSwv0tVEuMx

    На ali дороже.

    Но не вижу отзывов явных. Только если косвенно - рейтинг продавцы высокий, значит вероятность что всё работает высокая.

×
×
  • Создать...