|
|
  |
Документация на System Verilog, Сбор документации на SVerilog. И обсуждение тонких моментов синтаксиса |
|
|
|
Apr 20 2011, 14:18
|

тоже уже Гуру
     
Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973

|
диар олл,
подскажите пожалуйста по приведению типов. есть следующая комбинация типов:
typedef bit [7:0] byte_type_vt; typedef bit [31:0] memory_word_vt;
typedef union packed { byte_type_vt [0:3] byte_view;//ахтунг - реверсивный порядок memory_word_vt memory_word_view; }mem_word_ut;
mem_word_ut bit_vec_32; memory_word_vt a;
вопрос. как будут располагаться биты каждого байта, если смотреть на них как на 32-битное слово, т.е.
a=bit_vec_32.memory_word_view;
вопрос в общем-то кажется простым, но я не могу найти это в стандарте, если кто помнит где это описато, плз, подскажите. ЗЫ: фишка в том, что как я тут недавно обнаружил, Квеста, начиная с версий позже начала 2010г., имеет на это приведение несколько иной взгляд чем я. те модели что работали норм, на предыдущих версиях больше правильно не работают. вот я и думаю, это из-за нарушения стандарта или из-за неопределенности в нём.
спб
--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
|
|
|
|
|
Apr 21 2011, 07:01
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(CaPpuCcino @ Apr 20 2011, 17:18)  подскажите пожалуйста по приведению типов... В стандарте не смотрел, но по моим представлениям должно получиться: byte0-bit7,... byte0-bit0, byte1-bit7, ... byte1-bit0, ... ... byte3-bit0 Mожно посмотреть в книжке "SystemVerilog for Design". Только вряд ли это называется "приведение типов".
|
|
|
|
|
Apr 21 2011, 10:34
|

тоже уже Гуру
     
Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973

|
Цитата(ViKo @ Apr 21 2011, 10:01)  В стандарте не смотрел, но по моим представлениям должно получиться: вот и по моим тоже, а по представлению ментор графикс в последних версиях квестасима, видимо нет (начиная с версии 6.5е). у них в последних версиях вообще какая-то беда(10.0а я даже копать боюсь - там очевидно косяк в планировщике событий), но об этом в отдельной ветке, когда напишу им очередное послание. в книжке этого я не видел - там пример с размерностью [3:0] [7:0] (однако, книжка всё-таки не стандарт - на неё не сошлёшься при апелляции ). ЗЫ: да это наверное не приведение типа, но как точно назвать я не знаю, поэтому не могу сообразить в каком разделе стандарта смотреть
--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
|
|
|
|
|
May 31 2011, 10:52
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Близкое к последнему, что здесь обсуждалось. Обнаружил разногласия между C и SV. В языке C битовые поля начинаются с младшего (правого) бита слова, и идут к старшим. Например, Код struct status_type { unsigned delta_cts: 1; // bit 0 unsigned delta_dsr: 1; unsigned tr_edge: 1; unsigned delta_rec: 1; unsigned cts: 1; unsigned dsr: 1; unsigned ring: 1; unsigned rec_line: 1; // bit 7 } status; В языке SV биты в упакованных структурах идут слева направо (от старшего к младшему). Код struct packed { logic valid; // bit 40 logic [ 7:0] tag; // bit 39..32 logic [31:0] data; // bit 31..0 } data_word;
|
|
|
|
|
Feb 22 2012, 12:01
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 18-01-09
Пользователь №: 43 553

|
почему не работает знаковое умножение CODE module mult2(IN,OUT);
input signed [11:0] IN; output signed [23:0] OUT; assign OUT = IN * 12'd1000;
endmodule
в резултате получаеться неправильный выход знаковый бит теряеться постоянно положительный результат
|
|
|
|
|
Feb 22 2012, 15:35
|
Участник

Группа: Участник
Сообщений: 60
Регистрация: 18-01-09
Пользователь №: 43 553

|
да действительно заработало правда места много занимает думаю вот попробовать этот алгоритм будет ли экономия http://electronix.ru/forum/index.php?act=a...st&id=65881
Эскизы прикрепленных изображений
|
|
|
|
|
May 17 2012, 09:12
|

Местный
  
Группа: Свой
Сообщений: 208
Регистрация: 11-05-04
Из: World wide
Пользователь №: 3

|
Цитата(CaPpuCcino @ Apr 21 2011, 23:06)  на это я пойтить не могу! в реальном проекте иерархия типов намного сложнее (до 5-6 уровней). если б было бы так просто как в примере, я конечно особо не горевал бы. пока, где нашёл заменил на явное присваивание через циклы. но проект огромный и расставлять костыли везде ток из-за ср....х румын оутсорсеров я не стану. сижу на старой версии Квесты. А вдруг синтезатор (Квартус, или ещё что) думает об этом не так, как старая Квеста... Я в таких спорных-не-моей-вине ситуациях стараюсь писать так, чтоб понятно всем было. Иначе мало ли что.
--------------------
IPSA SCIENTIA POTESTAS EST
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|