library ieee
use ieee.std_logic_1164.all
use ieee.std_logic_unsigned.all
entity adder2b is
port(cin;ins td_logic
a,b: in std_logic_vector(2 downto 0)
s: out std_logic_vector(2 downto 0)
cout: out std_logic)
end adder2b
architecture vhd of adder2b is
signed sint:std_logic_vector(3 downto 0)
signed al,bl:std_logic_vector(3 downto 0)
begin
al<='0'&a
bl<='0'&b
sint<=al+bl+cin
s<=sint(2 downto 0)
cout<=sint(3)
end vhd
无 进位输入 的:libarary ieee
use ieee.std_logic_1164.all
entity adder is(
a,b :in std_logic
s,carry:out std_logic)
architecture rtl of adder is
begin
s<=a xor b
carry<=a and b
end rtl
有 进位输入 的(c):
libarary ieee
use ieee.std_logic_1164.all
entity adder is(
a,b ,c:in std_logic
s,carry:out std_logic)
architecture rtl of adder is
begin
carry<= not (a xor b xor c)--not or ~, i can not remember ,please try it
carry<=a xor b xor c
end rtl
用异或逻辑写的看起来比较好看些,虽然它的速度不是最快的。(当然,差别1 2 个ns,基本可以忽略不计)。 直接粘贴即可。 -- 后面为注释。可以删掉。 此代码平台无关,是万金流。
另外,楼上那位仁兄的问题你要思考下,
你的芯片是什么?在device 下拉菜单里面找到相应选项,设置。
你的pins 是怎么设置的? 菜单栏有个独立的按钮。貌似在assign 等等下拉菜单中有此选项。
使用新软件,必须每个存在的选项 都试一下,才能够做到“基本了解”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)