RobFPGA 27 9 февраля, 2017 Опубликовано 9 февраля, 2017 · Жалоба Приветствую! Есть такое творение воспаленного разума - некий class для работы с dynamic array typedef u8_t array_u8_t[]; // unsigned 8 bit typedef i32_t array_u64_t[]; // signed 32 bit ... typedef u1000_t array_u1000_t[]; // unsigned 1000 bit class #(type T=array_u8_t) my_class; function T new_fill(int len, fill_type_t fill_mode); T new_array=new[len]; case (fill_mode) FILL_INC : foreach(new_array[ii]) new_array[ii]=ii; FILL_RND: foreach(new_array[ii]) new_array[ii]=$urandom_range(max_val,min_val); ... endcase ... endfunction Возник вопрос - можно-ли( и как) получить тип элемента массива для определения max_val и min_val ?; Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fitc 0 9 февраля, 2017 Опубликовано 9 февраля, 2017 · Жалоба Можно было бы сделать класс-обертку для динамического массива следующего вида: class #(type atom_t=bit, int ITEM_LENGTH=8) my_class; //параметр нужен для определения является ли тип знаковым parameter UITEM_MAX_VALUE = 2**ITEM_LENGTH-1; parameter MAX_VALUE = ...; parameter MIN_VALUE = ...; typedef atom_t[ITEM_LENGTH-1:0] item_t; typedef item_t dynamic_array_t[]; ... endclass в качестве atom_t можно указывать bit, bit signed, logic,... В случае signed для вычисления MAX_VALUE и MIN_VALUE нужно добавить функцию, которая бы определяла, знаковый тип или нет путем присвоения UITEM_MAX_VALUE переменной типа item_t и сравнения результата с UITEM_MAX_VALUE. Если они равны - тип беззнаковый. Данную функцию использовать для вычисления параметров MAX_VALUE и MIN_VALUE. Можно пойти и другим путем -urandom_range вызвать для беззнаковой версии элемента массива, результат привести к signed и присвоить элементу массива. Ну или вместо urandom_range использовать randomize. Также, если интересуют всяческие удобные контейнеры и не только, советую взглянуть на библиотеку clue_logic. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fitc 0 10 февраля, 2017 Опубликовано 10 февраля, 2017 (изменено) · Жалоба ссылка на библиотеку clue_logic Изменено 10 февраля, 2017 пользователем Fitc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 10 февраля, 2017 Опубликовано 10 февраля, 2017 · Жалоба Приветствую! ссылка на библиотеку clue_logic Большое спасибо за разъяснения и за ссылку! Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться