1、多路选择器和半加器的VHDL描述
多路选择器的VHDL描述
a、b是2个数据 通道输入端口,s是通道选择控制端,y为数据输出端。
在一个语句中可以包含任意个进程语句结构,所有的进程语句本身都是并行语句,而有任一进程PROCESS引导的语句属于顺序结构。
代码比较简单,不需要过多解释。
ENTITY mux21a IS -- 定义实体
PORT( a,b,s : IN BIT; -- 设置输入端口 BIT数据类型的取值范围是'0'和'1'
y : OUT BIT ); -- 设置输出端口
END ENTITY mux21a;
ARCHITECTURE bhv OF mux21a IS -- 定义结构体bhv
BEGIN
PROCESS(a,b,s) -- 由PROCESS引导语句为进程语句,旁边的括号为敏感信号表,用来检测a,b,s是否发生变化
BEGIN
IF (s = '1') THEN y <= a; ELSE y <= b; -- 在VHDL语言中二进制必须使用单引号,否则会被当成int
END IF; -- 正常的IF判断,如果s = '1' a的值给y 否则 b的值给y
END PROCESS; -- 结束进制语句
END ARCHITECTURE bhv; -- 结束结构体bhv
半加器VHDL语言描述
在本实验中,CO为进位输出,SO为加和输出。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY h_adder IS
PORT(
A : IN STD_LOGIC;
B : IN STD_LOGIC;
SO: OUT STD_LOGIC;
CO: OUT STD_LOGIC
);
END ENTITY h_adder;
ARCHITECTURE fh1 OF h_adder IS
BEGIN
SO <= A XOR B;
CO <= A AND B;
END ARCHITECTURE fh1;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通