Синтаксические ошибки VHDL / vivado - PullRequest
0 голосов
/ 07 ноября 2018

Напишите модуль VHDL для параллельного правого сдвига параллельного входа регистр рисунка (прилагается), но добавить асинхронный активный низкий уровень сигнал очистки ClrN. Не используйте отдельные триггеры в своем коде. Смоделируйте модуль, чтобы получить временную диаграмму, подобную рисунку (Прилагается).

Пожалуйста, используйте параметры, перечисленные ниже для генерации сигналов.

-установить ClrN = 1 для 3,5 тактов, = 0 для следующей половины такта, = 1 для отдыха для теста.

-установить L = 1 для 5 тактов, = 0 для следующих 3 тактов, = 1 для оставшейся части теста

с набором СИ = 1

-сет D = 0101

-установить Sh = 0 для 1 такта, = 1 для следующих 5 тактов, = 0 для остальной части теста

Отправка имитационных сигналов, демонстрирующих работу вашего код.

Я получаю ошибку [Synth 8-1789] cannot update 'in' object dout

Я пробовал следующее:

library ieee;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;

entity insertname is
port (
    SI, Clk, ClrN, Sh, L : in std_logic;
    Din : in std_logic_vector (3 downto 0);
    SO : out std_logic;
    Dout : std_logic_vector (3 downto 0)
);
end entity insertname;

architecture behavioral of insertname is
    signal temp: std_logic_vector (3 downto 0) := "0000";
begin
    process (Clk, ClrN)
    begin
        if ClrN = '0' then
            temp <= x"0";
        elsif Clk'event and Clk = '1' and Sh = '1' then
            temp <= SI & temp(3 downto 1);
            SO <= temp(0);
        elsif Clk'event and Clk = '1' and Sh = '0' and L = '1' then
            temp <= Din;
        elsif Clk'event and Clk='1' and Sh='0' and L='0' then
            temp <= temp;
        end if;
    end process;
Dout <= temp;
end behavioral;

Цифры, упомянутые выше

1 Ответ

0 голосов
/ 07 ноября 2018

Чтобы исправить синтаксическую ошибку, проверьте список портов в объявлении вашей сущности: сигнал Dout должен быть определен как out, например:

Dout : out std_logic_vector (3 downto 0)

Как отмечено пользователем1155120, IEEE Std 1076-2008, 6.5.2 Объявления объектов интерфейса состояния:

Если нет режима явно указано в объявлении интерфейса, кроме интерфейса объявление файла, предполагается режим в.

...