реклама на сайте
подробности

 
 
> Глобальная проблема с Verilog, Не компилируется
cinema_effect
сообщение Sep 22 2009, 05:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 20-08-09
Пользователь №: 51 964



Здравствуйте! Смысл проблемы в следующем: я реализую алгоритм на языке Verilog. Два 32-х битных числа складываются по модулю 2 в степени 32. Тридцатидухбитный результат разбивается на восемь четрехбитных блоков. Каждый из четырехбитных блоков представляет собой число от 0 до 15.
Есть таблица из одной строки и 15 столбцов. Так вот значение числа(четырехбитного блока) указывает на номер столбца, в котором записано еще одно число, которое должно быть на выходе алгоритма.
Например, табица - 4 10 9 2 13 8 0 14 6 11 1 12 7 15 5 3
если в четырех битном блоке число 7 (0111), то на выходе будет 14 (1110) и т.д.
Вот код программы:

module XXX (
.
.
.
reg [31:0] N1;
reg [31:0] X0,X1,X2,X3,X4,X5,X6,X7;
reg [63:0] K0,K1,K2,K3,K4,K5,K6,K7;
reg [3:0] K0_o,K1_o,K2_o,K3_o,K4_o,K5_o,K6_o,K7_o;
reg [31:0] R;
reg [31:0] CM1;
.
.
always
...
K0=64'h4A92_D80E_6B1C_7F53;
K1=64'hEB4C_6DFA_2381_0759;
.
.
.
CM1=((N1+X0)%33'h1_0000_0000);
K0_o=K0[(4*CM1[31:28]+3):(4*CM1[31:28])];
K1_o=K1[(4*CM1[27:24]+3):(4*CM1[27:24])];
K2_o=K2[(4*CM1[23:20]+3):(4*CM1[23:20])];
K3_o=K3[(4*CM1[19:16]+3):(4*CM1[19:16])];
K4_o=K4[(4*CM1[15:12]+3):(4*CM1[15:12])];
K5_o=K5[(4*CM1[11:8]+3):(4*CM1[11:8])];
K6_o=K6[(4*CM1[7:4]+3):(4*CM1[7:4])];
K7_o=K7[(4*CM1[3:0]+3):(4*CM1[3:0])];

При компиляции выдается следующая ошибка:

Illegal operand for constant expression [4(IEE)] K0_o=K0[(4*CM1[31:28]+3):(4*CM1[31:28])];

И так для всех К.._o. Подскажите, пожалуйста, как можно исправить эту ошибку!!!! Жизненно необходимо!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 08:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016