Jump to content

    

AltairNsk

Участник
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

0 Обычный
  1. Итого выкинул из проекта совсем лишнюю логику (лишний счетчик, два десятка регистров). В процессе проверил на железе с осциллографом, исправил грубые ошибки (в симуляторе глядел, но плохо). И методом последовательного тыка настроек компилятора получилось уложить в 100 МГц. Счетчики пока не переделывал.
  2. bit_cnt[11:0], word_cnt[3:0], msg_cnt[6:0]; *_cntmax - регистры, значения загружаются перед счетом как-то так always @(posedge clk, posedge rst) begin if (rst) begin bit_cnt <= 0; end else begin if (bit_cnt < bit_cntmax) bit_cnt <= bit_cnt + 1; else bit_cnt <= 0; end end Вот от ручного написания хотелось бы уйти. Точнее понять, где заканчивается интеллектуальность компилятора и только руками. Поглядел что делает megawizard plugin. Похоже, вяжет цепочку LABов по канонам счетчикостроения и оно тикает, если cnt_en. Когда q==bit_cntmax, дёрнуть sclr. От сумматора избавляюсь, верно?
  3. Добрый день Осваиваю плисоводство, на плате MaxII EPM570T100, соответственно quartus 13.0sp1 webedition. Нарисовалась вот такая штука, три вложенных счетчика с параметрами, задающих времянки //input bit_cntmax, word_cntmax if (bit_cnt < bit_cntmax) bit_cnt <= bit_cnt + 1; else bit_cnt <= 0; if (bit_cnt == bit_cntmax) begin if (word_cnt < word_cntmax) word_cnt <= word_cnt + 1; else word_cnt <= 0; end if (bit_cnt == bit_cntmax && word_cnt == word_cntmax) begin if (msg_cnt < MSG_LENGTH) msg_cnt <= msg_cnt + 1; else msg_cnt <= 0; end //output sig = f(bit_cnt, word_cnt, msg_cnt) Привычно глазам, в симуляторе тикает как надо, но в железе не успевает. Можно ли как-то объяснить синтезатору, что тут нужно делать именно счетчики, а не регистры+сумматор+компаратор? Или смириться и привыкать вставлять мегафункции?
  4. ТС нашелся. Уточнил параметры импульса тока: 40 +/-5 нс длительность, ~ 5 нс фронты, амплитуда задается, 80-2000 мА. Перечитал тему и сел делать железяку... Вот как раз понял, что это будет определяющий момент. По датащитам ~5 нс каждая вторая рассыпуха может. А потом я начинаю ставить это на текстолит и плавать в вопросе... Про точность амплитуды - не формализовано. На пальцах - "ну примерно прямоугольник". Все-таки не колокол и тем более не зуб пилы.
  5. Возникла задача выдать на нагрузку (импульсный волоконный лазер, ~= светодиод) одиночные импульсы тока: Длительность импульса тока 10..50 нс, амплитуда 100..2000 мА, управляемые. Фронты <=2..3 нс. Между импульсами ~ n*мс. Крайне желательна защита от отказа ключа и некорректного управления. Сейчас сделал на частично разряжаемой емкости, проще некуда: V+ -> C -> Rтокоогр. -> Нагр. -> мосфет -> земля. Как-то работает, но вместо прямоугольного импульса - кочка с переходными процессами. И беззащитность. Как это сделать правильно? В какую сторону, по каким ключевым словам читать, искать и разбираться?
  6. Добрый день всем. Присоединюсь к теме с тем же по сути вопросом и небольшими уточнениями: Есть разведенные платы (для определености - в старом альтиуме), покупная комплектуха. Задача: задокументировать сборку в корпус - схема соединений, сборочный чертеж, жгуты,... И первый раз с такой задачей сталкиваюсь. С чего начать и в чем будет проще-быстрее? Элементов и соединений сравнительно мало, можно рисовать картинками и проверить глазами.