小弟进来做个小程序 仿真过不了! index 是个buffer端口 通过查表所得数值与其做加法运算 然后传给下一级使用,同时返回给输入端,由下一个输入再次更新~~ 程序如下 --------------------------------------------------------------------
------------ -- Company: -- Engineer: -- -- Create Date: 22:48:39 05/04/07 -- Design Name: -- Module Name: kuis_1 - Behavioral -- Project Name: -- Target Device: -- Tool versions: -- Description: -- -- Dependencies: -- -- Revision: -- Revision 0.01 - File Created -- Additional Comments: -- --------------------------------------------------------------------
------------ library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all;
entity kuis_1 is Port ( code : in std_logic_vector(3 downto 0); index : buffer std_logic_vector(8 downto 0)); end kuis_1;
architecture Behavioral of kuis_1 is function adder9 ( a:std_logic_vector; b:std_logic_vector ) return std_logic_vector is variable vsum : std_logic_vector(8 downto 0); variable carry : std_logic; variable i:integer; begin
carry :='0'; for i in 0 to 8 loop vsum(i):= (a(i) xor b(i)) xor carry; carry := (a(i) and b(i)) or (carry and (a(i) or b(i))); end loop; return vsum; end adder9; signal tmp:std_logic_vector(8 downto 0); signal tmp1:std_logic_vector(8 downto 0); begin p1:process(code) begin case code is when"0000"=> tmp<="111111111"; when"0001"=> tmp<="111111111"; when"0010"=> tmp<="111111111"; when"0011"=> tmp<="111111111"; when"0100"=> tmp<="000000010"; when"0101"=> tmp<="000000100"; when"0110"=> tmp<="000000110"; when"0111"=> tmp<="000001000"; when"1000"=> tmp<="111111111"; when"1001"=> tmp<="111111111"; when"1010"=> tmp<="111111111"; when"1011"=> tmp<="111111111"; when"1100"=> tmp<="000000010"; when"1101"=> tmp<="000000100"; when"1110"=> tmp<="000000110"; when"1111"=> tmp<="000001000"; when others=> tmp<="ZZZZZZZZZ"; end case; end process p1; p2:process(tmp,index) begin tmp1<=adder9(index,tmp); index<=tmp1; end process p2; end Behavioral;
|