8位补码器设计
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
八位补码器设计实验报告
一、功能描述
将八位二进制数除最高位(符号位)取反得到反码,然后反码加一得到补码;正数的原码、反码、补码都相同。
例如:原码反码补码
00011010 00011010 00011010 (正数)
10011010 11100101 11100110 (负数)
二、元件及其VHDL代码
补码器代码
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity complement is
port (a: in std_logic_vector (7 downto 0); --定义输入数据a(7..0)
b: out std_logic_vector (7 downto 0)); --定义输出数据b(7..0)
end complement;
architecture behave of complement is
begin
process (a)
begin
if (a (7) ='0' ) then b<=a; --当输入数据为正数,实现正数补码运算
else b<='1'& (not a (6 downto 0) + '1' ); --当输入数据为负数,实现负数补码运算
end if;
end process;
end behave;