早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求教:用VHDL写一个8位加法器,电路的输入输出信号分别为:A7-A0:8位的第一操作数A,输入B7-B0:8位的第二操作数B,输入asc:电路当前完成加/减的控制输入Cin:数据的较低位所产生的“进位”/“

题目详情
求教:用VHDL写一个8位加法器,
电路的输入输出信号分别为:
A7-A0:8位的第一操作数A,输入
B7-B0:8位的第二操作数B,输入
asc :电路当前完成加/减的控制输入
Cin :数据的较低位所产生的“进位”/“借位”输入
en :电路的“使能”控制输入
d7-d0:电路的运算结果数据输出
Cout :向高位提供的“进位”/“借位”输出
AF :电路的辅助“进位”/“借位”输出
要求:
在执行“加法”运算时,若A3 + B3 产生向高位的进位时,AF = 1 ,否则,AF = 0;在执行“减法”运算时,若A3 – B3 产生向高位的借位时,AF = 1,否则,AF = 0.
在 en = 0 时,电路不工作,所有输出均为“高阻”态
在 asc = 0 且 en = 1 时,实验电路执行“加法”运算;在asc = 1 且 en = 1 时,实验电路执行“减法运算”
这是老师布置的实验,VHDL还要我们自学,我粗浅的看了下,按要求编了下面这样一个程序,但结果输出不对:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity jiafaqi is
port(A :in std_logic_vector(7 downto 0);
B :in std_logic_vector(7 downto 0);
asc :in std_logic;
Cin :in std_logic;
en :in std_logic;
d :out std_logic_vector(7 downto 0);
Cout:out std_logic;
AF :out std_logic);
end jiafaqi;
architecture behave of jiafaqi is
begin
process(A,B,asc,Cin,en)
begin
AF
▼优质解答
答案和解析
建议你添加一个中间变量比如tmp,宽度设置为9bit,然后赋值,tmp