首先,一个8位的移位唤铅神寄存器不应该这么写。其次里面有好些错误,我先给你个正确的寄存器的思路:entity shift8 isport(d,clk:in std_logic; b: out std_logic_vector(7 downto 0));end entity shift8;architecture rtl of shift8 issignal b_s : std_logic_vector(7 downto 0);beginprocess (clk)beginif rising_edge(clk) then b_s <= b_s(6 downto 0) & d; --左移 --或者 b_s <= d & b_s(7 downto 1); --右移end if;b <= b_s;end process;end rtl;上面才是正确的以为寄存器的VHDL写法。 我建议你把我的代码综合以后用软件看看RTL图,你就会理解VHDL描述的东西都可以转化为逻辑电路,不能用写C的思维来写VHDL。另外附加一句建议,SHARED VARIABLE,VARIABLE等最好不要在你的激蚂逻辑电路设计中使用,用和亏也只在TESTBENCH中使用,因为在片上,VARIABLE什么都不是,是无法被综合成电路的一部分的。希望能帮到你