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。

VHDL 程序分析:计算 C 和 D 的值

原文地址: https://www.cveoy.top/t/topic/nP6X 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录