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

Plisovik

Members
  • Постов

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

  • Посещение

Весь контент Plisovik

  1. Имеется в виду ПЛИС, язык Verilog, программа Quartus
  2. Здравствуйте! Подскажите пж. как правильно работать (складывать, вычитать делить и т. д.) с числами многобитными, знаковыми (signed) если входное число имеет битность одну, допустим [13:0] , а выходное, сильно его больше, допустим раз в 100. Подробнее. Мне нужно сигнал 14-битный с АЦП, входящий с частотой "clock", пересчитывать в другое число по формуле. И вход формулы и выход могут быть как отрицательным так и положительным числом. При этом выходное число раз в 100 может превышать входное (симуляция усилителя), т.е. его битность должна быть как минимум на 7 битов больше. Выходной сигнал на данном такте зависит как от входного на данном такте, так и от входного и выходного на предыдущих тактах. Далее мой код (частично: ... input signed [13:0] signal_in, output signed [13+7:0] signal_out, ... reg signed [13:0] inputsig [2:0]; reg signed [13+7:0] outputsig [2:0]; always @ (posedge clock) begin inputsig[2]<=inputsig[1]; inputsig[1]<=signal_in; / / Входной сигнал сбрасываю в память, чтоб хранить его за 2 предыдущих такта outputsig[2]<=outputsig[1]; outputsig[1]<=signal_out; / / вЫходной сигнал сбрасываю в память, чтоб хранить его за 2 предыдущих такта end assign y1B = (outputsig[1])*2'd2*alpha/12'd100; // alpha - по идее дробное число (0,98), поэтому я его делаю целым (98), а потом делю assign y2B = (outputsig[2])*alpha/12'd100*alpha/12'd100; //слагаемое на сто assign X0A = signal_in; assign X1A = (inputsig[1])*alpha/12'd100 + (inputsig[1])*alpha/tau*T/12'd100; // задал 4 слагаемых, определяющих выходной сигнал assign signal_out = (y1B - y2B + X0A - X1A); // полный выходной сигнал, складываю слагаемые , которые ранее задал ... Вопрос, как правильно перейти из 14-битного числа в (7+14) битное (тоже +/- знаковое), чтобы формула работала? Правильно ли я умножаю на альфу и делю на 100? А то что я ни делаю, какая-то кракозябла получается...Буду благодарен за помощь!
×
×
  • Создать...