Описание тега specman

Specman - это имитатор для ʻe` (IEEE 1647), языка аппаратной верификации аспектно-ориентированного программирования (АОП), который позволяет генерировать условно-случайные стимулы и покрывать их.
2 ответа

Specman -Как ждать, чтобы событие произошло несколько раз

Я должен к событиям: event clk_e is rise (smp.port_uart_clk$) @sim; event async_16_clk_e is rise (smp.port_br_clk_16$) @sim; * UART CLK быстрее, чем br_clk_16 update_int()@clk_e is { while TRUE { if ((uart_env.uart_regs.uartis.rxmi | uart_env.uart_r…
11 апр '18 в 07:03
2 ответа

Система Verilog Аналог для "синхронизации" Specman e

Я хотел бы спросить, что является аналогом sync Specman e в системном языке Verilog. Я это понимаю @ event_indentifier эквивалентно wait @ event Specman e. Но как насчет sync @ event?
27 мар '13 в 09:40
3 ответа

Как можно найти несоответствие спецификации, когда и RTL, и специалисты по верификации пропускают определенную функцию спецификации?

У меня есть несколько вопросов относительно проверки IP. Предположим, если бы определенный дизайн / функциональность из спецификации IP отсутствовал как в RTL, так и в плане проверки (точки покрытия), как бы вы определили эту ошибку? Так как он не б…
07 сен '11 в 09:48
1 ответ

Получить ссылку на источник для всех расширений структуры в Specman

Я знаком с collect команда в Specman, которая возвращает все расширения указанного метода. Тем не мение, show source для определенной структуры возвращает только определение базовой структуры, а не все расширения. есть команда в Specman, которая экв…
06 окт '15 в 13:40
4 ответа

*** Предупреждение: WARN_GEN_CFA_UNSUPPORTED: в specman, почему я получаю его и что это значит?

У меня есть этот код: <' type type_t:[GOOD,BAD]; struct packet { t:type_t; !header:uint(bits:3); }; extend sys { !pkt:packet; keep read_only(pkt.t==GOOD) => pkt.header==6; run() is also { gen pkt; gen pkt.header; print pkt; }; }; '> И когда…
26 мар '14 в 16:46
2 ответа

Specman e: определение макроса как ошибка

У меня есть несколько идентичных ограничений на списки uint в моей среде проверки. Я написал макрос, чтобы иметь возможность писать только один раз ограничения, и он распространит их на все остальные списки. Например, я хотел бы написать: data_delay…
23 апр '18 в 07:38
1 ответ

Specman: отладка недоступной памяти

У нас огромная среда, построенная из вспомогательных сред, поддерживаемых многими пользователями. Когда мы запускаем тест, мы видим, что у нас есть GC каждые 10 мкс, когда мы используем "show mem", мы видим, что у нас есть около 3 ГБ в качестве недо…
15 май '14 в 04:10
1 ответ

Внедрение зависимостей перед поколением

Это дополнительный вопрос из моего предыдущего вопроса ( разница между "новым" и "общим"). Есть ли способ передать зависимости в структуру до генерации? Я заинтересован в том, чтобы попытаться написать свой код способом, который легко проверить. В н…
30 июн '15 в 15:25
1 ответ

Покрытие Specman: Как охватить диапазон значений в списке?

У меня есть список структур my_list: struct my_struct { comparator[2] : list of uint; }; my_list[10] : list of my_struct; Значения всех компараторов настраиваются время от времени. Я хотел бы собрать диапазон всех настроенных компараторов, т. Е. Не …
15 дек '14 в 11:56
1 ответ

В specman, как проверить наличие переменной или структурного поля?

Мало что в руководстве для специалиста указывает на то, что можно на лету определить, была ли создана конкретная переменная. (не спрашивая о проверке индекса массива или хеш-членов, что можно сделать с помощью exist ()) Я только заметил, что обсужде…
10 фев '11 в 22:05
1 ответ

Файл синтаксиса VIM для specman

Где я могу найти обновленный файл синтаксиса для specman? В Интернете есть много таких, но я хочу один с рекомендациями.
19 фев '09 в 08:24
1 ответ

Specman / E "UML like" взял инструмент для генерации диаграммы классов. Вы знаете?

Я ищу инструмент, который может генерировать диаграмму классов (стиль UML) языка программирования specman / E. Я ищу в Интернете и не могу найти ни одного. Есть ли какое-нибудь понимание этого вопроса? Спасибо
19 мар '12 в 09:50
1 ответ

Specman - как выполнить множественное расширение подтипа, также для различных типов подтипов

Я хочу добиться следующей функциональности: расширить пакет RED GREEN BLUE {...} эта строка приведет к добавлению членов структуры в фигурных скобках ко всем указанным подтипам определенного перечислимого типа. результат будет выглядеть так: extend …
29 апр '14 в 14:31
2 ответа

Синхронизировать с вхождением данных в том же цикле

Я использую Sync следующим образом: sync true (ports.ocp_cmd$ == 3'b010); Я хочу, чтобы симулятор переходил к следующей команде в том же цикле, где данные ocp_cmd is 010, в настоящее время симулятор автоматически переходит 1 цикл и только затем пере…
29 июл '15 в 14:28
2 ответа

Есть ли эффективный способ преобразовать набор в (список) целых чисел?

Я делаю некоторые операции над множествами, в результате чего получается набор, содержащий (для упрощения) одно целое число. Как я могу преобразовать набор обратно в uint? В настоящее время я делаю что-то вроде этого: var my_set: set = [3]; var my_i…
21 авг '14 в 13:26
0 ответов

Ошибка при использовании body() также использует тестовый поток Specman

Я впервые использую функцию Testflow в Specman. my_tb_env_testflow.e: extend MAIN MAIN_TEST my_tb_env_vseq { // virtual sequence pre_body() @driver.clock is { driver.raise_objection(TEST_DONE); }; body() @driver.clock is first { // Start issuing tra…
14 дек '16 в 10:13
1 ответ

Как создать список, который еще не существует?

У меня есть список списков, я хотел бы создать новый список, которого нет в старых списках, как я могу сделать это автоматически? DB : list of list of uint; generate_new_data() is { for i from 1 to 10 { var new_list : list of uint; gen new_list keep…
23 фев '16 в 16:05
1 ответ

Specman e: Как использовать предопределенный sequence.item?

У меня есть последовательность: sequence bus_sequence using item=bus_item, created_driver=bus_sequence_driver; Когда я пытаюсь вести предмет, используя следующий код: extend bus_sequence { body() @driver.clock is only { do item; }; }; Я получаю ошиб…
01 май '18 в 11:36
1 ответ

Макросы Specman: как использовать дополнительные теги?

У меня есть макрос для определения портов: -- Create simple port define <p_def'struct_member> "p_def <name'name> <type'type>" as { <name'name> : inout simple_port of <type'type> is instance; keep bind(<name'name>,…
24 дек '15 в 12:07
1 ответ

Specman e ждет окончания потоков (не трудоемкий метод)

Есть ли способ заставить unit3.thread() работать после двух других потоков? run() is also { start unit1.thread(); start unit2.thread(); unit3.thread(); }; Я хотел бы, чтобы потоки в блоках 1 и 2 работали параллельно, а потоки 3 - после завершения об…
31 дек '15 в 23:04