Я новичок в FPGA и сейчас пытаюсь реализовать MUX.
В настоящее время мой код выглядит так
entity mux4x1 is
Port ( S : in std_logic_vector(1 downto 0);
E : in std_logic_vector(3 downto 0);
Y : out std_logic);
end mux4x1;
architecture Behavioral of mux4x1 is
signal outputBuff: std_logic;
begin
Y <= outputBuff;
with S select
outputBuff <= E(0) when "00",
E(1) when "01",
E(2) when "10",
E(3) when "11",
'0' when others;
end Behavioral;
К сожалению, каждый раз, когда я пытаюсь смоделировать код и изменить значения ввода «S», значения E не меняются!
Когда я пытаюсь создать битовый поток, он показывает следующий отчет об ошибках:
Vivado Commands
General Messages
[USF-XSim-62] 'elaborate' step failed with error(s). Please check the Tcl console output or 'C:/Users/John Bryan Valle/Documents/Vivado/Programme/Artix-7/MUX4X1/MUX4X1.sim/sim_1/behav/xsim/elaborate.log' file for more information.
[Vivado 12-4473] Detected error while running simulation. Please correct the issue and retry this operation.
Synthesis
[Designutils 20-970] Unrecognized or unsupported command 'set_property IOSTANDARD LVCMOS33 [get_ports {E[2]}}]' found in constraint file. ["C:/Users/John Bryan Valle/Documents/Vivado/Programme/Artix-7/Lab-1/Lab 1 Full Adder/BASYS 3/Full_Adder_2.xdc":55]
Implementation
Design Initialization
[Designutils 20-970] Unrecognized or unsupported command 'set_property IOSTANDARD LVCMOS33 [get_ports {E[2]}}]' found in constraint file. ["C:/Users/John Bryan Valle/Documents/Vivado/Programme/Artix-7/Lab-1/Lab 1 Full Adder/BASYS 3/Full_Adder_2.xdc":55]
Place Design
DRC
Pin Planning
IO Standard
[DRC BIVC-1] Bank IO standard Vcc: Conflicting Vcc voltages in bank 14. For example, the following two ports in this bank have conflicting VCCOs:
E[2] (LVCMOS18, requiring VCCO=1.800) and E[0] (LVCMOS33, requiring VCCO=3.300)
[Vivado_Tcl 4-23] Error(s) found during DRC. Placer not run.
Заранее спасибо! :)
При выборе сообщения об ошибке, соответствующего заголовку («[USF-XSim-62] 'этап уточнения' завершился неудачно с ошибкой(ами)"), какие сообщения об ошибках и предупреждения были обнаружены в файле develop.log? С включением контекстного предложения (library ieee; use ieee.std_logic_1164.all;
) перед объявлением сущности ваш код может анализировать (компилировать), разрабатывать (связывать) и запускать (загружать и выполнять) в других симуляторах. Остальные ошибки связаны с файлом XDC, который не соответствует целевому устройству. «Запустить симуляцию» в этот момент.
E - это вход, поэтому вы не ожидаете, что он изменится сам по себе в моделировании - скорее, изменения в E и S повлияют на Y.
Если ваш тип данных не является типом bit
, вы должны использовать его библиотеку. Вы использовали тип данных std_logic_vector
. Поэтому вам нужно вызвать реализующую библиотеку. Библиотека называется std_logic_1164
.
Также нет необходимости определять промежуточный буфер, но его наличие не проблема
library IEEE;
use IEEE.std_logic_1164.all
entity mux4x1 is
Port ( S : in std_logic_vector(1 downto 0);
E : in std_logic_vector(3 downto 0);
Y : out std_logic);
end mux4x1;
architecture Behavioral of mux4x1 is
begin
with S select
Y <= E(0) when "00",
E(1) when "01",
E(2) when "10",
E(3) when "11",
'0' when others;
end Behavioral;
Спасибо за ваш ответ, теперь моя программа работает успешно!
Обратите внимание, что в сообщении об ошибке говорится: «Шаг 'уточнения' завершился с ошибкой (ошибками). Пожалуйста, проверьте вывод консоли Tcl или файл 'C:.../sim_1/behav/xsim/elaborate.log' для получения дополнительной информации». Таким образом, проработка (грубо говоря, этап компиляции компоновщика) не удалась. Проверьте вышеупомянутый файл для получения дополнительной информации: и, если необходимо, добавьте эту информацию к вопросу.