Jump to content

    

Halfback

Участник
  • Content Count

    384
  • Joined

  • Last visited

Everything posted by Halfback


  1. А я как вижу все не жужжат, зачастую переплачивая китайским перекупам. Вот в РФ парни заложили в проект STM32L4xx по 400р/шт (прайс на пол года назад) - а теперь (точнее месяц назад) китайские друзья предлагают его за 90$/шт и с непонятными перспективами при дальнейшем серийном производстве. Хошь не хошь а отечку придётся теперь рассмотреть.
  2. Господа, есть кто использует данный МК? Как впечатления? А то 8 страниц флуда по теме цены и импортозамещения. Интересно как сейчас поют разработчики из РФ когда импортные МК либо не купить либо за них ломят 10-кратно, в лучшем случае. Интересует вот еще что - МК производиться, как я понял, с 2016 года. Эррата последняя датируется 2017 годом. В выпускаемых/продаваемых сейчас образцах исправлены ошибки? Или НИЭТ забил на это болт? А то прочитал про USB EndPoint 3,4 и как-то даже улыбнуло )))
  3. Спасибо за вариант. Но хотелось бы реализацию попроще и с меньшим потреблением. Разве нет таких вариантов мемс датчиков, где просто говоря - записываешь в регистр значение угла наклона при котором возникнет прерывание и всё работает...
  4. Доброго времени суток. Нужно чтобы датчик сам смог бы вычислять угол наклона и формировать импульс (прерывание): -либо по превышению какого-либо (заранее заданного) угла наклона. Точность высокая не нужна, 1-2град будет достаточно. -либо по определенной (заранее заданной) силе удара. Такие датчики вообще бывают? Понимаю что можно поставить малошумящий акселлерометр и подцепить к нему МК но к сожалению нет возможности чтобы все время работал МК и вычислял эти события. Заранее спасибо!
  5. Круто, спасибо! Идею я понял. ТОлько не понятно что делает Ctrl + 1 Я так понимаю на это дело можно сделать макрос записать. Где можно взять справочник по ключевым комбинация клавиш?
  6. Всем доброго времени суток. PCAD 2006SP2, есть плата, на которой куча контуров Copper Pour на разных слоях. После наложения нетлиста каждый раз приходиться контурам делать Pour/Repour. Причем в определенной последовательности. Можно ли как-то этот неинтересный процесс автоматизировать? Если можно то как? Заранее спасибо!
  7. Не поделитесь ссылкой или как в гугле поискать? Пока в поисковике вижу только Altera DSP Builder, но как я понимаю это не то что мне нужно... обратил. У меня для Cyclone III (Quartus 13.0.1) нет такого примера, но есть вот такой темплейт для DSP Features/Sum of Four Multipliers (Stratix V, Arria-V, Cyclone-V and later device families) Мне не совсем понятно чем эта реализация отличается от моей. Если разница есть то ткните пожалуйста. есть еще вот такой темплейт Sums of Multipliers (я так понял для плис помедленнее). Я таким образом тоже реализовывал - умножение с суммированием в виде отдельного модуля, где то-же самое делалось по клоку. Но ситуация со слеками никак не изменилась. Еще непонятно - целенаправлено ли скобки т.о. расставлены или нет.
  8. Всем доброго времени суток! Реализовал полифазный децимирующий фильтр на 70 точек (на выходе каждая 10-я точка относительно входа), в моделсиме показывает всё как надо, в железе на столе тоже работает, но квартус валит слэки по Setup (Slow 1200mV 0C и +85С, по Fast - слэков нет). Причем в sdc когда ставлю 80МГц - слэков нет, на 100МГц еже есть. Буду очень признателен если поможете найти плохое место в коде. Может есть возможность что-то поправить/улучшить?
  9. разобрался, то что LVDS имеет только 5578ТС104 и 5578ТС064. ВОпрос к счастливым обладателям 5578ТС104 - возможна ли работа LVDS на прием на скорости 120МГц ? ЧТо с регистрами LVDS приемника? Будет всё работать как в Cyclone III ?
  10. Всем доброго дня. Скажите пожалуйста, плис 5578ТС084 имеет LVDS ? И еще вопрос в догонку - где можно взять документацию на 5578ТС084 ? Надо платку под эту плис спроектировать...
  11. это не требования а мои личные полежания для удобства работы с моделсим, чтобы каждый раз при вызове моделсим не тратить время на вышеописанные рутинные операции.
  12. есть еще мелкие вопросики по modelsim. Есть файлик с модулем mod.v и его соотв. тесбенч mod_tb.v Что нужно написать в mod_tb.v чтобы 1.График сразу стал ZoomFull 2.Определенные регистры, обьявленные как беззнаковые, показывались как Decimal а не Bin (почему -то так по умолчанию).
  13. Господа, спасибо за помощь!!! Считываю файлы вот так. Проверено, работает.
  14. варантов я так понял два, $readmemh и $readmemb Первому значения в HEX надо скормить, второму в бинари А есть вариант считать и запихать в массив типа вот такого текстового файла? Просто переделывать 16800 точек в другую запись не очень хочется. -2,-1,13,23,16,12,7,0,8,1,-18,-16,-11,-10,-3,6
  15. да, дейтсвительно, пятница.... Тогда вопрос сразу - моделсим начал орать что неправильно декларировал массивы I_value Q_value. А как правильно? И еще вопрос - функция чтения массива из файла, допустим, вот такя $readmemb("dI.txt", I_value); по какому пути будет этот файл искать? Сунул dI.txt туда же где и файл тесбенча -ан нет, пишет * Warning: (vsim-7) Failed to open readmem file "dI.txt" in read mode. # # No such file or directory. (errno = ENOENT)
  16. Всем доброго времени суток Столкнулся с непонятно проблемой Ругается на строку integer i; Пишет вот что Error .... near "integer": syntax error, unexpected integer, expecting ';' or ',' Error .... (vlog-2730) Undefined variable: 'i'. Почему - мне не понятно. Буду благодарен за пояснения
  17. тогда так ;) outdata_reg <= ((indata + (32'd1<<31)) >> 16) - (16'd1<<15)+indata[31];
  18. Да, Вы правы. чтобы был "0" надо прибавить "1". outdata_reg <= ((indata + (32'd1<<31)) >> 16) - (16'd1<<15)+1;
  19. des00 Спасибо, интересно. Посмотрев Ваш код я не понял почему Вы так делаете outdata = indata >>> 8; а не так outdata = indata >> 8;
  20. на все отрицательные числа от -1 до -65355 результат будет "-1" а д.б. "0". кому это не критично - скорее всего так и делают.
  21. Всем доброго дня. Надо по сути 32-разрядное знаковое число сократить до 16-разрядного знакового. по сути это будет outdata_reg <= indata/65536; но поскольку на младших циклонах знак деления штука не экономная то написал так: module conv_sign_32to16 ( input clk, input signed [31:0] indata, output signed [15:0] outdata ); reg [15:0] outdata_reg; always @ (posedge clk) begin outdata_reg <= ((indata + (32'd1<<31)) >> 16) - (16'd1<<15); end //always assign outdata = outdata_reg; endmodule может есть способ элегантнее? Заранее спасибо.
  22. не могу понять следующее. Если я в настройках мегафункции выставляю что это дециматор на 12 то правильно ли я понимаю что никакой НЧ-фильтрации в соответствии с моими коэффициентами присходить не будет? Т.е. если я хочу правильно произвести децимацию сигнала то сначала надо поставить компонент с мегафункцией ФНЧ на часоту среза в два раза меньшей частоты децимации (в моем случает частота среза будет в 24 раза меньше часты семплирования), а затем ставить компонент мегафункции дециматора с коэффициентом децимации = 12 ?
  23. есть еще вопрос по мегафункции DSP FIR Compiler II v13 делаю ФНЧ, коэффициентов в матлабе получаю около сотни и загружаю их через текстовый файл в модуль мегафункции. Генерирую - вроде работает, кушает много умножителей и вентилей. Как только выставляю понадобившуюся децимацию, скажем R=12 то кол-во умножителей сокращается раза в 3, вентилей также. Вопросов два - 1. Почему включение децимации резко сокращает необходимое кол-во ресурсов и как пользоваться децимацией? В чём подвох? 2. При включенной децимации в какой момент считывать данные? Я обратил внимание что относительно тактирования входа каждый 12-й импульс на выходе ast_source_valid возникает импульс.
  24. а можно поподробнее с этого момента?
  25. Прошу помоши в создании файла SDC Читал-перечитывал TimeQuest для чайников но всё равно не могу догнать вроде как простых вещей. В проекте есть блок, который из входной частоты 120МГц делает другую частоту 20Мгц. Блок описан на Verilog, там по сути деление частоты на 6. Далее 20МГц расходиться на несколько других блоков. ВОпрос - как правильно описать эти 20МГЦ в sdc? Вот такую запись не воспринимает и пишет ошибку: create_clock -name "clkD" -period 20MHz -source [get_registers {clkconv:inst50|clkout}]