Это модный момент для чтения. См. Описание аргумента value <> в разделе «Аргументы силы» в Справочном руководстве по командам.
Одномерный массив символов перечисления может быть принужден как последовательность символьных литералов или как на основе числа с поразрядной 2, 8, 10 или 16. Например, следующие значения эквивалентны для сигнал типа bit_vector (от 0 до 3):
Вы могли бы отметить, что IEEE Std 1076-2008 15.5.3 на основе литералы говорит нам:
Литеральный байт - это абстрактный литерал, выраженный в форме, которая явно указывает базу. Основание должно быть не менее двух и не более шестнадцати.
Имеются стандартные литералы на основе VHDL, которые не могут быть выражены командой силы.
заметить также использование на вопрос по
force SW 01000001
совместим с последовательности литерных например, в Command Reference Manual. Смотрите следующий ПРИМЕЧАНИЕ:
Для чисел, основанных на VHDL, ModelSim транслирует каждый 1 или 0 до соответствующего значения для перечисленных типов этого числа. Перевод контролируется таблицей переводов в файле pref.tcl. Если ModelSim не может найти перевод для 0 или 1, он использует левую границу типа сигнала (type'left) для этого значения.
Также обратите внимание от значения на вопрос и сигнала, что право наиболее положение SW
сек перечисления транслирует правильно. Это говорит о том, что поведение не соответствует команде force < value> description.
В терминах VHDL вы пытаетесь использовать строковый литерал, как показано в ответе scary_jeff, а не строковый литерал для предоставления значения. (Оба без кавычек).
Литеральная последовательность символов соответствует правилу, но не переводится правильно. Вы могли бы задаться вопросом, помогут ли кавычки - как бы иначе заставить значение объекта типа строки содержать ведущее пространство?
В качестве раннего пользователя MTI Modelsim симулятор первоначально поддерживал только VHDL. Проблема заключается либо в симуляторе, либо в примере.
И, конечно же, использование тестового стенда VHDL вместо внедрения последовательности моделирования в файл do.
Этот метод будет переносим между VHDL тренажеров:
entity schal_tb is
end entity;
architecture foo of schal_tb is
signal SW: bit_vector(7 downto 0);
signal LED: bit_vector(7 downto 0);
begin
DUT:
entity work.schal
port map (
SW => SW,
LED => LED
);
STIMULUS:
process
begin
SW <= "01000001";
wait for 20 ns;
SW <= "01000000";
wait for 20 ns;
wait for 60 ns; -- to show 100 ns on waveform
wait; -- suspends process permenently
end process;
end architecture;
И дает:
Есть также онлайн VHDL TestBench контурные генераторы, такие как Doulos VHDL Testbench generator или этого Online VHDL Testbench Template Generator.
Возможно, вам стоит взглянуть на команду 'force' в руководстве Modelsim. Возможно, он рассчитывает значение в шестнадцатеричном размере по умолчанию и игнорирует дополнительные символы ... –