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

big-endian и разрядность регистра

Здравствуйте!

 

Прошу подсказать возможно ли присваивать 

reg [32:0]addr_offset = 'h10000000;

таску с параметром reg addr [0:32]

так чтобы остался big endian у addr?

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если я правильно понял вопрос, то Вы хотите, чтобы вектор

reg [31:0] addr_offset = 'h10000000;

переданный в таск  c параметром  reg addr [0:31]  (неупакованный массив!)

имел значение

addr [0:31]  = 'h00000008    (то есть addr[28] ==1 так же как и в исходном addr_offset [28]==1)
 

Вариант решения для sv - использовать {<<{}}:

logic [31:0] addr_offset;
logic addr_tmp [0:31];
logic dout [0:31];
  
task demo_task(input logic  addr[0:31], output oo [0:31]);
    oo = addr;
endtask

assign addr_offset = 'h10000000;
assign addr_tmp = {<<{addr_offset}};
always_comb begin
    demo_task(addr_tmp, dout);
end

Приведенный пример в Вивадо моделируется и синтезируется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тестбенч он как программа, я бы написал свою function swap_endian. Я когда то путал значение термина big/l-endian ведь тут же речь про порядок байтов, а не направление хода битов? Байты переставлять, а не зеркалирование битов? Или я ошибаюсь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/15/2024 at 2:17 AM, 1891ВМ12Я said:

Я когда то путал значение термина big/l-endian... 

Многие инженеры путают значение этого термина. Потому что он не инженерный, а гуманитарно-менеджерский. 

Те. Термин обозначает невозможность договориться двум группам (Motorolla/Intel) с какой стороны облуплять  яйцо. 

 

Те инженерного смысла в нём нет. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...