0 / 0 / 0
Регистрация: 27.02.2023
Сообщений: 6
1

Умножение многочленов с применением регистра сдвига

27.02.2023, 16:15. Показов 245. Ответов 1

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

Код
module shift_reg(input logic clk,
                 input logic in,
                 input logic enable,
                 output logic out);
                 
     reg [2:0] data = 3'b000;
     always @(posedge clk) begin
        if (enable)
            data <= { in, data[2:1] };
     end
     
     assign out = in ^ data[2] ^ data[0];
endmodule
Я плохо понимаю, как в SystemVerilog происходит конкатенация шин:

Код
data <= { in, data[2:1] };
Здесь получается шина, где in - старший разряд, а data[1] - самый младший? Что будет, если поменять переменные местами и написать:

Код
data <= { data[2:1], in };
Теперь data[2] и data[1] будут старшие разряды, а in - самый младший?
Будет ли схема работать по-другому, если написать:

Код
data <= { in, data[1:0],};
Здесь регистр сдвигает полученные биты влево, поэтому конкатенация должна быть соответствующая, при которой эти биты сдвигаются влево.

И еще вопрос. Есть ли возможность сразу на широкую шину (скажем, 8 бит) выставить коэффициенты многочлена единовременно, а не по одному биту? Как это сделать?

Как задаются индексы шины при конкатенации шин? Вот например:

wire [1:0] dataIn;
assign dataIn = {d1,d0};

Тут dataIn[0] содержит сигнал d0 или d1? Или это не имеет значения?
Миниатюры
Умножение многочленов с применением регистра сдвига  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2023, 16:15
Ответы с готовыми решениями:

Используя команды сдвига, выполнить умножение и деление содержимого любого регистра общего назначения на 8
1.Используя команды сдвига, выполнить умножение и деление содержимого любого регистра общего...

Можно ли упростить код с применением операторов сдвига
Уважаемые форумчане. Раньше в Си тип boolean представлялся в виде 1 или 0;

Увеличить разрядность регистра сдвига
помогите как с двух 8-разрядных регистров сделать 16-разрядный регистр Заранее спасибо

М-последовательность на основе 4-разрядного регистра сдвига
Здравствуйте. Нужно получить M4-последовательность, если отводы сделаны от 1 и 4 разрядов. Исходное...

1
0 / 0 / 0
Регистрация: 27.02.2023
Сообщений: 6
02.03.2023, 17:58  [ТС] 2
Можно ли реализовать этот сдвиговый регистр так?

Код
module shift(clk, reset, in, out, state);
    input wire clk, reset, in;
    output logic out;
    output logic [3:0] state;

    reg a, b, c;

    always @(posedge clk) begin
        if (!reset)
            out <= 0;
        else begin
            a <= in;
            b <= a;
            c <= b;
            out <= in ^ a ^ c;
        end
    end

    assign state = {a, b, c, out};

endmodule
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2023, 17:58
Помогаю со студенческими работами здесь

Умножение 3 многочленов
Привет всем. Нужно перемножить многочлены: x^4 + x+ 1, x^4+ x^3 + x^2+ x+ 1, x^2+ x+ 1. ...

Умножение многочленов
Написать программу, умножающую два многочлена, записанные в виде текстовой строки и выдающие...

Умножение 2-х многочленов.
Правильно ли написанно!!! если нет то исправте Умножение 2-х многочленов. 1 :uses Crt;...

Умножение многочленов
дорогие форумчане!! помогите пожалуйста не могу написать программу умножения двух многочленов и их...

Умножение многочленов
В массивах a: array of integer и b: array of integer хранятся коэффициенты двух многочленов...

Умножение многочленов
задача: операция умножения многочленов с получением нового объекта-многочлена; class Program ...

Умножение многочленов
Помогите пожалуйста написать программу. &quot;Перемножить два многочлена, заданных списками...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru