0
我想換班std_logic_vector
。如何移位std_logic_vector?
但是這個代碼是有錯誤:
architecture led_main of testing is
signal clk_cnt : std_logic_vector(64 DOWNTO 0) := (others => '0');
signal led_buf : std_logic_vector(3 downto 0) := "0001";
begin
process(clk)
begin
if rising_edge(clk) then
clk_cnt <= clk_cnt + 1;
if clk_cnt >= 24999999 then
led_buf <= led_buf(0) & led_buf(3 downto 1);
end if;
end if;
end process;
ground <= '0';
end led_main;
我覺得 「0001」, 「0010」, 「0100」 ......
this co de led_buf <= led_buf(0)&led_buf(3 downto 1);更改led_buf <= led_buf srl 1; (error) –
你想要移位或旋轉嗎?你的問題要求轉移,但你的代碼顯示旋轉。您是否想要向右或向左進行操作,因爲您的代碼位於右側,而您的文本顯示的是左側的示例! – Paebbels
@YannVernier不,桶式移位器是移位器的一種實現形式,速度非常快,但也耗費資源。你可以延長桶轉換也做轉動,但是桶形轉換器描述了結構如何構建一個好的轉換器,而不是轉動。看到這個答案[n位桶式移位器](https://stackoverflow.com/questions/26551049/vhdl-n-bit-barrel-shifter)桶式移位器結構。 – Paebbels