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

    

alxkon

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о alxkon

  • Звание
    Частый гость

Посетители профиля

2 321 просмотр профиля
  1. Приветствую всех! А есть ли у кого реальная статистика / опыт с SEU? Приятель например жалуется что несколько сотен устройств на Циклонах 3 произвольно и хаотически сбоят показывая SEU ошибку, устройство должно быть всегда включено и часто не перегружается, по нескольку лет. Это происходит не часто но 1-2 раза в год, но это очень нежелательно. Правда звучит как косяк в архитектуре устройства - сбой может произойти и нужно уметь это разруливать, а у них это аварийная ситуация . Уровень над морем не более 20м, не горы, устройство в помещении и в металическом шкафу. Рядом есть силовые установки, вот меня терзают смутные сомнения действительно, ли это от радиации или все же проблемы по питанию. Лично никогда не встречал SEU от радиации, как правило все сбои ПЛИС были следствием результатов разработки схемы, разводки плат, конструкции корпуса или заземления. Но это не значит что их нет.
  2. Cпасибо, прохлопал :) Некоторые проекты с LSE другие Synplify . Наверное нужно выбрать все же Synplify
  3. Приветствую! Судя по документации в Квартусе и Вивадо есть варианты для TCL, а Diamond только чрез ГУИ: https://www.doulos.com/knowhow/fpga/Setting..._for_Synthesis/ Я так понимаю сначала парсит, а потом исправляет определенные константы на нужные для текущего синтеза значения? Спасибо, это один из методов решения.
  4. Приветствую Всех! Поскажите, есть ли какой-то способ в Diamond назначить generic (VHDL) в топовом модуле с помощью командной строки или TCL ?
  5. Со всем уважением, но может тему перенести в "Общение" ?
  6. Цитата(Leka @ Mar 14 2018, 11:26) У меня входной клок был 25МГц - pll вообще не запускалась, если указывать реальную частоту. Запускалась, если указывать более высокую частоту. И в этом случае не замечал проблем даже при плохом питании. Подробно не исследовал, просто подумал - не по этой ли причине на всех массовых китах клок не меньше 50МГц. Хотя у низкочастотных генераторов меньше потребление, например. А Вы с какой версий Квартуса работали и был ли такой эффект в других версиях?
  7. Цитата(Leka @ Mar 13 2018, 18:21) А частота входного клока pll какая была? У меня сложилось впечатление, что для входных клоков <50МГц мегавизард неправильно конфигурирует pll, в таком случае укзываю 50МГц, нормально получается. Насколько помню, 33МГц. А Вы клок наружу выводили или как удалось определить что визард ошибся?
  8. Цитата(yes @ Mar 13 2018, 16:13) не могу утверждать, но сложилось впечатление, что pll у Альтер (циклон 3-4, стратикс 3) достаточно "слабая" - чувствительна к шумам и т.д. то есть в функционально похожих приборах, разрабатывавшихся одной командой, никогда не сталкивался с "глюками" PLL у ксайлинсов, латисов, актелов, а с альтерами было несколько раз... еще советую продублировать lock (хотя бы для проверки во время отладки) - он не всегда срабатывает: например, запустить два достаточно длинных счетчика, один от гарантированного такта, другой с этой pll и проверять их отношение Да, замечал такое - идентичная плата, различие только в ПЛИС, локация ПЛИС на плате та же. Spartan-6 работал без сбоев, а Cyclone-3/4 редко но сбоили pll и иногда загадочным образом детектировалось SEU, похоже слетала прошивка. Качество питания проверяли, sso также. А всеравно, в похожих условиях Spartan-ы ни разу не сбоили
  9. Цитата(Anke @ Feb 1 2018, 12:13) Может быть кто-нибудь поможет. Мне надо автоматизировать процесс прошивки MachXO2 LCMX02-1200UHC Lattice. У меня есть файл *.jed. Разработчики предлагают программу Diamond Programmer. Как я могу прошить из командной строки? Где бы мне поискать информацию? Я пишу программу на LabVIEW. Работаю еще с микроконтроллерами от АТМЕЛ, с ними ни каких проблем. Хотелось бы чего-нибудь похожего для Lattice: "%s\\atprogram.exe" -t avrispmk2 -i ISP -d ATMEGA32 program -f "%s" Заранее благодарю. http://www.latticesemi.com/en/Support/Answ...2/3/1/2318.aspx .... For Lattice Diamond Programmer command line options, In the main toolbar of Diamond Programmer Help > search > pgrcmd pgrcmd is the command line utility for running the Diamond Programmer Tool The latest Diamond Programmer versions are posted on our website. http://www.latticesemi.com/Products/Design...Programmer.aspx
  10. Цитата(Stewart Little @ Jan 29 2018, 18:17) А для какого семейства синтезируете? Для MachXO2 - пробовал для 640HC и 7000HE, speed grade 6 и 4, temp. - C. Простой счетчик 5 бит, тактовая - констрейнт 260МГц (обьявил клоковый пин как LVDS25 чтобы обойти порог 150МГц для single-ednded): << Place & Route Trace >> LSE: FREQUENCY PORT "clk" 260.000000 MHz (0 errors) 28 items scored, 0 timing errors detected. Report: 371.747MHz is the maximum frequency for this preference. Synplify FREQUENCY PORT "clk" 260.000000 MHz (0 errors) 28 items scored, 0 timing errors detected. Report: 273.448MHz is the maximum frequency for this preference.
  11. Приветствую Всех! Diamond 3.10 У меня сложилось субьективное мнение что LSE синтезирует лучше чем Synplify, макс. частота выше, разницы по LUTах нет. Правда девайс забит только на 40%. А какой опыт у Вас?
  12. Цитата(ViKo @ Nov 13 2017, 14:27) Вот. Последние варианты (4 и 5, одинаковые). Остальные показывают процесс разработки. :-) CODE `define LENTH 28 `define VAR5 `ifdef VAR1 `define TIM1 `elsif VAR2 `define TIM1 `elsif VAR3 `define TIM1 `else `define TIM2 `endif module Timer_m `ifdef TIM1 ( (* chip_pin = "91", altera_attribute = "-name global_signal on; -name io_standard lvds" *) input bit clk, // high-speed clock input bit [`LENTH-1:0] rld, // reload data output bit pls // timer overload pulse ); `endif `ifdef VAR1 bit [`LENTH:0] cnt; always_ff @(posedge clk) begin if (cnt[`LENTH]) cnt <= {1'b0, rld}; else cnt <= cnt - 1; end assign pls = cnt[`LENTH]; `elsif VAR2 bit [`LENTH-1:0] cnt; always_ff @(posedge clk) begin if (cnt[`LENTH-1]) cnt <= rld; else cnt <= cnt - 1; end assign pls = cnt[`LENTH-1]; `elsif VAR3 bit [`LENTH-1:0] cnt; always_ff @(posedge clk) begin if (cnt[`LENTH-1]) cnt <= rld; else cnt <= cnt[`LENTH-2:0] - 1; end assign pls = cnt[`LENTH-1]; `endif `ifdef TIM2 ( (* chip_pin = "91", altera_attribute = "-name global_signal on; -name io_standard lvds" *) input bit clk, // high-speed clock input bit [`LENTH-1:0] rld, // reload data input bit ldp, // load pulse output bit pls // timer overload pulse ); `endif `ifdef VAR4 bit [`LENTH:0] cnt; always_ff @(posedge clk) begin if (cnt[`LENTH]) cnt <= {ldp, rld}; else cnt <= cnt[`LENTH-1:0] - 1; end assign pls = cnt[`LENTH]; `endif `ifdef VAR5 bit [`LENTH-1:0] cnt; always_ff @(posedge clk) begin if (pls) {pls, cnt} <= {ldp, rld}; else {pls, cnt} <= cnt - 1; end `endif endmodule : Timer_m Извините, забыл совсем ответить. Если я не ошибаюсь в Вашем варианте загружаемое значение lpd должно быть на 1 меньше от желаемого значения счета.
  13. Цитата(petrov @ Dec 4 2017, 13:40) Даёшь подраздел для каждого сообщения! Хватит уже. Количество подфорумов и подразделов превышает необходимое на порядок, есть подразделы в которых годами нет новых сообщений. С точки зрения новичка форум выглядит полумёртвым и непонятным. Есть две крайности - "все в одну кучу" и "подраздел для каждого сообщения". Как по мне, так сейчас вполне удобно, большего дробления не нужно, меньшего тоже. Подотдел HLS я предложил только как альтернативу целому отделу, хотя судя по всему HLS шагает семимильными шагами где-то в области Virtex-сов и Stratix-ов. Ну для быстрого прототипирования можно и в Artix, но всеравно пока все интерфейсы пишутся на HDL
  14. В разделе ПЛИС есть подраздел SoC там ему и место, проще по моему добавить в ПЛИС подраздел High-Level Synthesis (HLS): Matlab, SystemC,C++,.....
  15. Цитата(aaarrr @ Nov 24 2017, 00:16) Можно подумать, что утверждение "на россыпухе получится дороже" чем-то подкреплено. 100 аналоговых каналов могут оказаться много дороже всего остального. А может оказаться дороже плата под вашу ПЛИС. Или трудозатраты на построение системы, если тираж составляет 1 экз. aliexpress 13,80 EP4CE6 altera fpga board