我写了两个,一个是全加器,一个是其TESTBENCH<br />前者编译通过,后者死活不行。高手帮我看看,指点指点,<br />万分感谢!<br /><br />--Full_Adder2.vhd<br />library ieee;<br />use ieee.std_logic_1164.all;<br /><br />entity full_adder2 is<br /> port( x, y, cin : in std_logic ;<br /> sum, cout : out std_logic ) ;<br />end full_adder2 ;<br /><br />architecture b_adder of full_adder2 is<br /> signal s : std_logic;<br />begin<br /> s <= x xor cin;<br /> sum <= s xor cin;<br /> cout <= ( s and cin ) or ( x and y ) ;<br />end b_adder ;<br /><br />=================================================<br /><br />-- Full_Adder2_TestBench.vhd<br /><br />library ieee;<br />use ieee.std_logic_1164.all ;<br />use ieee.std_logic_arith.all ;<br />use ieee.std_logic_unsigned.all ;<br />use ieee.numeric_std.all ;<br /><br />entity e_adder is<br />end e_adder ;<br /><br />architecture e_adder of e_adder is<br />component full_adder2 <br /> port( x , y , cin : in std_logic ;<br /> sum, cout : out std_logic ) ;<br />end component ;<br /><br />for all:full_adder2 use entity work.full_adder2(b_adder);<br />begin <br /> x <= '0', '1' after 150ns, <br /> '0' after 200ns,<br /> '1' after 250ns,<br /> '0' after 400ns ;<br /> y <= '0', '1'after 100ns,<br /> '0' after 150ns,<br /> '1' after 200ns,<br /> '0' after 300ns,<br /> '1' after 350ns,<br /> '0' after 400ns ;<br /> cin <= '0', '1' after 50ns,<br /> '0' after 100ns,<br /> '1' after 200ns,<br /> '0' after 250ns,<br /> '1' after 300ns,<br /> '0' after 400ns ;<br />end e_adder ; <br /> |
|