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

 
 
 
Reply to this topicStart new topic
> Глобальная проблема с 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
masics
сообщение Sep 22 2009, 07:19
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 21-02-05
Из: Melbourne, Australia
Пользователь №: 2 779



Во-первых, надо писать "always *".
Проблема с К.._o исправляется так:
K0_o=K0[4*CM1[31:28] +: 4];
Go to the top of the page
 
+Quote Post
SM
сообщение Sep 22 2009, 07:33
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(masics @ Sep 22 2009, 11:19) *
Во-первых, надо писать "always *".

Не поверите, даже "always @*" wink.gif smile.gif
Go to the top of the page
 
+Quote Post
cinema_effect
сообщение Sep 22 2009, 07:40
Сообщение #4


Участник
*

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



Поясните пожалуйста синтаксиса "+:"

Иначе я не вижу сходства в формулах!
Go to the top of the page
 
+Quote Post
masics
сообщение Sep 22 2009, 08:23
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 21-02-05
Из: Melbourne, Australia
Пользователь №: 2 779



Цитата(SM @ Sep 22 2009, 17:33) *
Не поверите, даже "always @*" wink.gif smile.gif

Подколол. Клавиатура незнакомая. Но, все-равно, спасибо за исправление.

Цитата(cinema_effect @ Sep 22 2009, 17:40) *
Поясните пожалуйста синтаксиса "+:"

Иначе я не вижу сходства в формулах!


VECTOR[expr +: const]

Взять "const" бит начиная с "expr".

VECTOR[expr +: const] == VECTOR[expr+const-1:expr]
Go to the top of the page
 
+Quote Post
cinema_effect
сообщение Sep 22 2009, 08:51
Сообщение #6


Участник
*

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



Спасибо большое за пояснения! Я не знал такого синтаксиса!
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 22 2009, 11:18
Сообщение #7


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(cinema_effect @ Sep 22 2009, 11:51) *
Спасибо большое за пояснения! Я не знал такого синтаксиса!

Для данной темы существует отдельная ветка


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post

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

 


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


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