library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
use ieee.numeric_std.all;
- 實體部分包含R代表註冊VHDL - 如何將1添加到STD_LOGIC_VECTOR?
的輸出entity register_16 is
port( input: in std_logic_vector(15 downto 0);
ld, inc, clk, clr: in std_logic;
R: buffer std_logic_vector(15 downto 0));
end register_16 ;
- 它必須平行處理在該步驟
inc_R: process (inc)
begin
R <= R+'1';
end process inc_R;
end behavioral ;
architecture behavioral of register_16 is
begin
reg: process (input, ld, clk, clr)
variable R_temp : std_logic_vector(15 downto 0);
begin
if (clr='1') then
R_temp := b"0000000000000000";
elsif (clk'event and clk='1') then
if (ld='1') then
R_temp := input;
end if;
end if;
R <= R_temp;
end process reg;
- 我的錯誤 - 主進程(reg)正常工作 - 但其他進程有加載錯誤g 1.
從#6開始,「使用整數來代替」一個更好的選擇是經常使用來自ieee.numeric_std的'unsigned'。這可以讓你保留'std_logic'語義,並且可以讓你使用'unsigned(127 downto 0)''這樣的大數值,你不能用整數。 – wjl 2014-02-21 18:04:04
@wjl我的意思是整數1,而不是R.OP是試圖添加一個std_logic_vector和一個std_logic,這是不允許的。給定5.,可以將整數1加到R. – zennehoy 2014-02-23 16:37:45
我同意這很有道理! – wjl 2014-02-23 16:51:33