Vhdl Can';t处理注册的多驱动程序

Vhdl Can';t处理注册的多驱动程序,vhdl,Vhdl,我从编译器中获取所有“busreg”位的信息: topld:busshift.vhd:(E463)'busreg(7)'-无法处理已注册的多驱动程序 topld:busshift.vhd:(E446)无法处理所选设备中“busreg(7)”的多个驱动程序 我被要求做轮班索具,我可以把从两侧,因为我选择取决于方向 我的代码: LIBRARY ieee; USE ieee.std_logic_1164.ALL; use ieee.std_logic_arith.all; ENTITY shiftb

我从编译器中获取所有“busreg”位的信息:

topld:busshift.vhd:(E463)'busreg(7)'-无法处理已注册的多驱动程序

topld:busshift.vhd:(E446)无法处理所选设备中“busreg(7)”的多个驱动程序

我被要求做轮班索具,我可以把从两侧,因为我选择取决于方向

我的代码:

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
use ieee.std_logic_arith.all;

ENTITY shiftbus IS
    PORT
        (
        busreg       :  inout std_logic_vector(7 downto 0);
        dir,clk   :  IN   std_logic;
        pinL,pinR    :  inout   std_logic
        );
END shiftbus;

ARCHITECTURE behavioral OF shiftbus IS
BEGIN
    busreg<="00000000";
    process(clk,dir)
    begin
        if (rising_edge(clk)) then 
            if(dir='1') then --1 we input from right
                busreg<=busreg(6 downto 0)&pinR;
            else-- else is 0 and we input from left 
                busreg<=pinL & busreg(7 downto 1);
            end if;
        end if;
    end process;
END behavioral; 
ieee库;
使用ieee.std_logic_1164.ALL;
使用ieee.std_logic_arith.all;
实体移位总线是
港口
(
busreg:inout标准逻辑向量(7到0);
dir,clk:标准逻辑中;
pinL,pinR:inout标准逻辑
);
末端移位总线;
shiftbus的体系结构是
开始

busreg您有以下行:

busreg <= "00000000";

busreg您正在从两个进程驱动信号
busreg
:显式进程和隐式进程
busreg