VHDL编写二位数值比较器

简介: VHDL编写二位数值比较器

VHDL编写二位数值比较器

二位数值比较器是由四个输入端和三个输出端组成的比较器,实现两个二位二进制数大小的比较(用高低电平来表示输入输出)真值表如下:

(xx表任意状态)

因此设计时,定义4个输入端和3个输出端的实体,分别为A1A0,B1B0和f1(a>b)f2(a

具体代码如下:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY homework2 IS
  PORT(A1:IN STD_LOGIC;             --定义4个输入端和3个输出端
     A0:IN STD_LOGIC;
     B1:IN STD_LOGIC;
     B0:IN STD_LOGIC;
     f1:OUT STD_LOGIC;
     f2:OUT STD_LOGIC;
     f3:OUT STD_LOGIC);
END homework2;
ARCHITECTURE HA OF homework2 IS
SIGNAL tmp:STD_LOGIC_VECTOR(3 DOWNTO 0);--定义一个信号数组
BEGIN
tmp<=A1 & B1 & A0 & B0;                 --用&连接四个输入值,并赋值给tmp
PROCESS(tmp)
BEGIN
  CASE tmp IS                         --CASE语句实现具体代码
    WHEN "0000" =>f1<='0';f2<='0';f3<='1';
    WHEN "0001" =>f1<='0';f2<='1';f3<='0';
    WHEN "0010" =>f1<='1';f2<='0';f3<='0';
    WHEN "0011" =>f1<='0';f2<='0';f3<='1';
    WHEN "0100" =>f1<='0';f2<='1';f3<='0';
    WHEN "0101" =>f1<='0';f2<='1';f3<='0';
    WHEN "0110" =>f1<='0';f2<='1';f3<='0';
    WHEN "0111" =>f1<='0';f2<='1';f3<='0';
    WHEN "1000" =>f1<='1';f2<='0';f3<='0';
    WHEN "1001" =>f1<='1';f2<='0';f3<='0';
    WHEN "1010" =>f1<='1';f2<='0';f3<='0';
    WHEN "1011" =>f1<='1';f2<='0';f3<='0';
    WHEN "1100" =>f1<='0';f2<='0';f3<='1';
    WHEN "1101" =>f1<='0';f2<='1';f3<='0';
    WHEN "1110" =>f1<='1';f2<='0';f3<='0';
    WHEN "1111" =>f1<='0';f2<='0';f3<='1';
  END CASE;
END PROCESS;
END HA;

仿真结果如下:

相关文章
|
9月前
50.编写程序,逆转字符串
50.编写程序,逆转字符串
54 0
|
C语言
输出下三角数字阵列C语言
输出下三角数字阵列C语言
98 0
|
传感器 算法 C语言
C语言基础算法---从数组中找最大最小值的实际应用
C语言基础算法---从数组中找最大最小值的实际应用
108 0
|
6月前
|
Java uml
使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实
该博客文章通过UML类图和Java代码示例,展示了如何使用工厂方法模式设计一个支持加法、减法、乘法和除法运算的计算机程序,并严格按照类图设计实现程序。
|
6月前
|
Java uml
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
该博客文章展示了如何使用简单工厂模式设计一个程序,该程序能够根据用户输入的运算符(加、减、乘、除)对两个数进行计算,并提供了相应的UML类图和Java源码实现。
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
|
8月前
|
人工智能 算法 大数据
编译器推荐+二位最值
【6月更文挑战第3天】这篇文章除了介绍了几款编译器,如CP Editor、Sublime Text3、Code::Blocks和DevC++,特别推荐了CP Editor,因为它可以直接连接到竞赛网站提交代码。尽管它在代码格式化和错误提醒方面稍有不足,但其网站连接功能非常方便。Sublime Text3则因其强大的插件和高亮显示受到好评,但无法直接连接网站。对于初学者,Code::Blocks和DevC++因简洁易用而被推荐。文章还提及了一个编程问题,涉及二维最值的算法应用,但未提供完整解决方案。
65 0
|
9月前
|
算法 搜索推荐 程序员
C语言第二十六练 实现罗马数字转整数
C语言第二十六练 实现罗马数字转整数
124 0
|
前端开发 C语言
【C语言】字符串逆序与三步翻转法(倒置字符串)
【C语言】字符串逆序与三步翻转法(倒置字符串)
222 0
|
编译器 C++
c++中基本类型详细解释外加基本运算规则
类型 含义 wchat_t 宽字符 bool 布尔类型 char 字符 chat16_t unicode字符 chat_32 unicode字符 short 短整型 int 整形 long 长整型 longlong 长整型 float 单精度浮点型 double 双精度浮点型 longdouble 扩展精度浮点型
131 1
|
Python
制作实现加减乘除运算的简单计算器
制作实现加减乘除运算的简单计算器
137 0

热门文章

最新文章