【VHDL】半减器 and 或门 组成 全减器

建议先把课本上的 半加器与全加器理解一下,再来写 半减器和全减器
点这里查看 哔哩哔哩上的视频 《半加器与全加器》(讲得挺清晰的)
点这里查看 哔哩哔哩上的视频 《什么是全减器》(讲得挺清晰的)

代码仿真效果

在这里插入图片描述

在这里插入图片描述

注意:半减器和或门 要放在同一个工程目录下

半减器:

LIBRARY IEEE;--引用库
USE IEEE.STD_LOGIC_1164.ALL;--调用库中的函数

ENTITY h_subter IS--实例化一个半减器
	PORT(
		A : IN STD_LOGIC;
		B : IN STD_LOGIC;
		DI : OUT STD_LOGIC;--结果位
		BO : OUT STD_LOGIC --借位端
		  );
END ENTITY h_subter ;--结束实例化

ARCHITECTURE fh1 of h_subter IS --声明一个半减器结构体
	BEGIN 
	
		DI	<= A XOR B ; --A 异或 B
		BO <= NOT A AND B;-- 非A 与 B
		
END ARCHITECTURE fh1;--结束结构体的声明
		  

或门:

LIBRARY IEEE;--引用库
USE IEEE.STD_LOGIC_1164.ALL;--调用库中的程序包

ENTITY or2a IS --实例化 或门

	PORT ( a, b : IN STD_LOGIC; 
			c : OUT STD_LOGIC );
	
END ENTITY or2a;

ARCHITECTURE one OF or2a IS
  BEGIN
 
	c <= a OR b; --c = A | B
 
END ARCHITECTURE;

全减器:

LIBRARY IEEE; --全减器顶层设计描述
USE IEEE.STD_LOGIC_1164.ALL; --调用库函数中的程序包

ENTITY a_subter IS
 PORT ( ain, bin, cin : IN STD_LOGIC;
				diff, sub_out : OUT STD_LOGIC );
END ENTITY a_subter;

ARCHITECTURE fd1 OF a_subter IS
	 COMPONENT h_subter   --调用半减器声明语句
		PORT ( A, B : IN STD_LOGIC; 
		   DI, BO : OUT STD_LOGIC );
	 END COMPONENT;
	 
	 COMPONENT or2a --调用或门声明语句
		PORT ( a, b : IN STD_LOGIC; c : OUT STD_LOGIC );
	 END COMPONENT;
	 
	SIGNAL net1, net2, net3 : STD_LOGIC; --定义3个信号作为内部的连接线(看电路图会更加清晰)
	  BEGIN 
		u1 : h_subter PORT MAP(A=>ain, B=>bin, DI=>net1, BO=>net2 );--例化语句
		u2 : h_subter PORT MAP(A=>net1, B=>cin, DI=>diff, BO=>net3); --简写的语句
		sub_out <= net2 or net3;
END ARCHITECTURE;

喜欢看图敲 练熟练度的小伙伴点这里

半减器

在这里插入图片描述

或门

在这里插入图片描述

全减器

在这里插入图片描述

参考:【VHDL】半减器和全减器的设计
【HDL系列】半减器、全减器和减法器原理和设计

每天进步一点点 笔记仅供自学,用来回看复习,不一定适合你,如有错误请指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KevinGuo457

哈哈哈资助我买两包辣条叭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值