Формат файла тестовых векторов

Вот пример файла тестового вектора:

# мой тестовый вектор для add32
A[8]      B[8]      C[8]      Cin Cout
0000_0000 0000_0000 0000_0000 0   0
-2        0x05      3         0   0
0         0o3       3         0   0

Прежде всего, формат файла простой. Заголовки соответствуют входным/выходным контактам схемы. Под ними находятся значения для проверки.

Первая непустая строка без комментариев перечисляет имя каждого входного контакта схемы и его разрядность (если > 1), разделённые пробелами.

Одна вещь, которая часто сбивает с толку начинающих, заключается в том, что разрядность должна быть указана в заголовке всякий раз, когда она не равна 1 биту.

ПРИМЕЧАНИЕ: Разрядность не обязательно совпадает с количеством символов в значении. Например, 4-битное значение 13 может быть представлено как 1101, 00001101, 0x0d, 0o15, 15 или 0b1101 и т.д.

Пустые строки игнорируются. Всё, что следует за символом '#', является комментарием. Первая непустая строка без комментариев перечисляет имя каждого входного контакта схемы и его разрядность (если > 1), разделённые пробелами.

Остальные строки перечисляют каждое значение, разделённое пробелами. Значения могут быть в шестнадцатеричном, восьмеричном, двоичном или знаковом десятичном формате. Шестнадцатеричные значения должны иметь префикс '0x'. Восьмеричные значения должны иметь префикс '0o'. Двоичные и десятичные различаются по количеству цифр: двоичные значения должны всегда иметь ровно столько цифр, сколько разрядность столбца; десятичные значения должны всегда иметь меньше цифр, не должны иметь ведущих нулей и могут иметь знак минус.

Для улучшения читаемости вы можете использовать подчёркивания (_) в любом месте в числовых значениях. Подчёркивания игнорируются при разборе. Примеры: 0x0000_1111, 0o1234_5670, 1111_0000, 1_234 или -5_000.

Для шестнадцатеричных, восьмеричных и двоичных значений цифра 'x' указывает четыре, три или один "безразличный" бит. Таким образом, значение 101xx — это пятибитное двоичное значение с двумя последними неопределёнными битами, а 0x1ax5 — это шестнадцатеричное значение с четырьмя неопределёнными битами. Такие "безразличные" значения нельзя использовать в десятичной нотации.

Предыдущий: Окно тестовых векторов | Следующий: Специальные значения.