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;

仿真结果如下:

相关文章
|
6月前
|
存储 C语言
通俗易懂的学习C语言中输入一组数并找出其最大值
通俗易懂的学习C语言中输入一组数并找出其最大值
|
6月前
|
C语言
你知道C语言中实现有序序列并序输出的2种方法吗?
你知道C语言中实现有序序列并序输出的2种方法吗?
|
6月前
|
存储 Java
Java 编程实例:相加数字、计算单词数、字符串反转、元素求和、矩形面积及奇偶判断
Java中相加两个数字可通过简单赋值实现,如`int sum = x + y;`。若要用户输入数字相加,可使用`Scanner`类读取。计算单词数,可使用`split()`方法或`StringTokenizer`类。反转字符串,可用`for`循环或`StringBuilder`的`reverse()`方法。计算数组元素总和,可遍历数组累加。矩形面积通过长度乘以宽度得出。判断奇偶性,利用模2运算或位运算检查最低位。更多内容,可关注微信公众号`Let us Coding`。
80 0
|
3月前
|
Java uml
使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实
该博客文章通过UML类图和Java代码示例,展示了如何使用工厂方法模式设计一个支持加法、减法、乘法和除法运算的计算机程序,并严格按照类图设计实现程序。
|
1月前
|
C语言
【C语言】三位数(1-4)不重复组合
【C语言】三位数(1-4)不重复组合
|
6月前
|
C语言
【汇编语言实战】求两组给定数组最大值
【汇编语言实战】求两组给定数组最大值
18 0
|
Python
Python 分解质因数(编写函数实现:输入一个正整数n,把数字n分解成不能再分解因子的乘法,比如:8=2*2*2, 10 = 2*5,而不是 8 = 2 * 4 这种可以再分解的。)
Python 分解质因数(编写函数实现:输入一个正整数n,把数字n分解成不能再分解因子的乘法,比如:8=2*2*2, 10 = 2*5,而不是 8 = 2 * 4 这种可以再分解的。)
919 0
|
编译器 C++
c++中基本类型详细解释外加基本运算规则
类型 含义 wchat_t 宽字符 bool 布尔类型 char 字符 chat16_t unicode字符 chat_32 unicode字符 short 短整型 int 整形 long 长整型 longlong 长整型 float 单精度浮点型 double 双精度浮点型 longdouble 扩展精度浮点型
119 1