VHDL 程序分析:计算 C 和 D 的值
VHDL 程序分析:计算 C 和 D 的值
假设输入 A 的内容是 3(十进制)、B 的内容是 2(十进制)。则经过下列程序后,C 和 D 的值各为多少(十进制)?写出您的推导。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CH2_1_3 is
PORT(
A : IN Std_Logic_Vector(1 DOWNTO 0);
B : IN Unsigned(1 DOWNTO 0);
C : OUT Unsigned(7 DOWNTO 0);
D : OUT Std_Logic_Vector(1 DOWNTO 0)
);
END CH2_1_3;
ARCHITECTURE a OF CH2_1_3 IS
SIGNAL E,F,G : Unsigned(1 DOWNTO 0);
SIGNAL H : Unsigned(7 DOWNTO 0);
BEGIN
E <= Unsigned (A); --(1)
F <= B; --(2)
H(1 DOWNTO 0) <= E+F; --(3)
H(3 DOWNTO 2) <= E-F; --(4)
H(7 DOWNTO 4) <= E*F; --(5)
G(0) <= E(0) AND F(0); --(6)
G(1) <= E(1) OR F(1); --(7)
C <= H; --(8)
D <= Std_Logic_Vector (G); --(9)
END a;
根据程序,经过运算:
(1) E = 0011
(2) F = 0010
(3) H(1 DOWNTO 0) = E + F = 0101
(4) H(3 DOWNTO 2) = E - F = 0001
(5) H(7 DOWNTO 4) = E * F = 0110
(6) G(0) = E(0) AND F(0) = 0
(7) G(1) = E(1) OR F(1) = 1
因此,C 的值为 01100010,即 98(十进制),D 的值为 10。
原文地址: https://www.cveoy.top/t/topic/nP6X 著作权归作者所有。请勿转载和采集!