【VHDL语言学习笔记(三)】 数据比较器

2023-05-16

目的:实现一个4位二进数据比较器。

分析:两个操作数的比较有三种结果,即A等于B,A大于B和A小于B。两个4位二进制比较器,构建比较器表如下。

比较器的真值表
输入输出
ABAGQBAGTBALTB
A = B100
A > B010
A < B001

转向控制语句:next 和 exit

(1)next语句

跳转到本次循环的起始位置,开始下一次循环。

(2)exit语句

跳转到本次循环的结束位置,结束循环。

程序

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity num_compare is
	port(
		Ai,Bi			:in std_logic_vector(3 downto 0);
		AEQB,AGTB,ALTB	:out std_logic	--AEQB-Ai等于Bi,AGTB-Ai大于Bi,ALTB-Ai小于Bi
		);	
end num_compare;

architecture behave of num_compare is
begin
	process(Ai,Bi)
	begin
		for n in 3 downto 0 loop
			if(Ai(n) = Bi(n)) then 
				AEQB <= '1';
				AGTB <= '0';
				ALTB <= '0';
				next;	--回到当前循环起始处进行第二轮比较
			elsif(Ai(n) > Bi(n)) then
				AEQB <= '0';
				AGTB <= '1';
				ALTB <= '0';
				exit;	--比较结束,跳出循环
			elsif(Ai(n) < Bi(n)) then
				AEQB <= '0';
				AGTB <= '0';
				ALTB <= '1';
				exit;	--比较结束,跳出循环
			end if;
		end loop;
	end process;
end behave;

 仿真波形图

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【VHDL语言学习笔记(三)】 数据比较器 的相关文章

  • vhdl中的4位加法器

    我对 vhdl 语言还很陌生 所以请耐心等待 我刚刚为 1 位加法器编写了 vhdl 代码 但在为 4 位加法器编写时遇到了麻烦 这就是我到目前为止所得到的 如果有人能指出我要查找的内容的正确方向 那就太棒了 VHDL代码 LIBRARY
  • VHDL乘法器

    library IEEE use IEEE STD LOGIC 1164 ALL entity Lab3 Adder1 is Port cin in STD LOGIC a in STD LOGIC VECTOR 3 downto 0 b
  • 使用“downto”进行 VHDL std_logic_vector 索引

    我想单独设置 std logic vector 的位 以便轻松设置单个位或位组的注释 这是我所拥有的 signal DataOut std logic vector 7 downto 0 DataOut lt 5 gt 1 Instruct
  • VHDL:进程块内的多个上升沿检测

    我对 VHDL 以及一般的数字电路 还很陌生 我正在尝试使用 BCD 样式块实现两位数的计数器 该电路的外部有一些按钮 按下这些按钮时 会将感兴趣的数字加一 很像闹钟 这是一个异步操作 会在某种形式的编辑模式下发生 外部强制 我编写的代码在
  • 是否可以使用循环创建同一组件的多个实例?

    我有一个组件 Component CAU is port CLK in std logic RESET in std logic START in std logic V DIRECTION in vector 3d P ORIGIN in
  • VHDL - 分配默认值

    我有以下架构 architecture datapath of DE2 TOP is begin U1 entity work lab1 port map error on this line clock gt clock 50 key g
  • 全8位加法器,非逻辑输出

    我创建了一个带全加器的 8 位加法器 正如您所看到的 我开始从右到左添加相应的位 对于 cin 信号 t1 和 t2 并按顺序 cout t2 和 t1 第一个 cin 设置为加法器输入 cin 我在实现中没有看到任何问题 但是当我运行它时
  • 赋值语句中的“others=>'0'”是什么意思?

    cmd register process rst n clk begin if rst n 0 then cmd r lt others gt 0 elsif clk event and clk 1 then cmd r lt end if
  • ACTIV HDL - VHDL -“信号无法合成,同步描述错误”

    我在 Xilinx 中综合此代码时遇到错误 这个错误是 信号 Z 1 无法合成 同步描述错误 entity uk3 is port rst in BIT C in INTEGER clk in BIT S out INTEGER end u
  • VHDL 中的进程是可重入的吗?

    一个进程是否可以连续运行两次或多次VHDL 如果在进程的顺序执行未完成的情况下发生另一个事件 在敏感信号列表上 会发生什么 有可能还是我的VHDL流程中的模型完全错误 进程运行时不会发生任何事件 当进程被事件唤醒时 它会运行到完成 结束进程
  • vhdl中process语句的顺序执行

    对于vhdl中的process语句 据说process语句内部的执行顺序是连续的 我的问题是 请先看下面的代码 a b和c信号在进程语句中的if语句中是同时还是顺序分配给它们的新值 process clk is begin if risin
  • VHDL - FSM 未启动(仅在时序仿真中)

    我正在写我的硕士论文 而且我对 VHDL 还很陌生 但我仍然必须实现一些复杂的东西 这是我必须编写的最简单的结构之一 但我仍然遇到了一些问题 它是一个 FSM 采用低电平有效同步信号 用于对 DAC 进行编程 实现 24 位移位寄存器 这只
  • VHDL 计数器错误 (vcom-1576)

    伙计们 我试图用 VHDL 编写一个简单的计数器 但我总是收到此错误 Error C Users usrname dir1 dir2 dir3 counter vhd 22 near rising edge vcom 1576 expect
  • 在单周期数据路径中加载半字和加载字节

    有人询问如何在单周期数据路径中实现加载字节而无需更改数据存储器 解决方案如下 替代文本 http img214 imageshack us img214 7107 99897101 jpg http img214 imageshack us
  • VHDL 中的 #define 等价物是什么

    VHDL 中的 define ifdef 和 ifndef 相当于什么 我想使用泛型作为 define 并根据它们更改设计 举一个简单的例子 定义一个字符串泛型并用它来确定时钟是单时钟还是差分时钟 generic something boo
  • VHDL STD_LOGIC_VECTOR 通配符值

    我一直在尝试用 VHDL 代码为我在 Altera DE1 板上实现的简单 16 位处理器编写有限状态机 在有限状态机中 我有一个CASE处理不同 16 位指令的语句 这些指令由 16 位 STD LOGIC VECTOR 带入 FSM 但
  • 无符号和 std_logic_vector 之间的区别

    谁能告诉我以下书面陈述之间的区别 signal A unsigned 3 downto 0 signal B std logic vector 3 downto 0 Both std logic vector and unsigned ar
  • 使用 if 语句更改进程内的信号 - VHDL

    我有这个 VHDL 代码 我想要的是在 sw event 时首先上升 然后 首先自行下降 但当我模拟这个时 首先永远不会跌倒 process rst clk sw begin if clk EVENT and clk 1 then if r
  • 是否为 VHDL numeric_std 有符号/无符号定义了溢出

    如果我有一个unsigned MAX downto 0 包含值2 MAX 1 VHDL 87 93 200X 标准是否定义了当我将其加一时会发生什么 或者 类似地 当我从零减一时 简短回答 没有溢出处理 溢出进位只是丢失 因此结果就是你的操
  • 带计数器的无符号加法不起作用

    我正在构建一个计数器 用于计算输入通道的上升沿 我简化了我的设计以包含两种状态 one and two 其中进行计数 由于某种原因 每当我尝试将 1 添加到counter reg 或者尝试为其分配任何数字 信号在 ModelSim 中变为红

随机推荐

  • ORA-01113 file 1 needs media recovery

    启动数据库时报错 ORA 01113 datafile1需要恢复 rman执行恢复 恢复后尝试打开数据库 xff0c 看结果 rman target recover datafile 1 alter database open 反复上述过程
  • 网络管理员比赛回顾01-基本操作和简单vlan

    目录 一 模拟器eNSP 二 基本操作 三 配置IP地址 四 VLAN 一 模拟器eNSP 使用eNSP模拟器 xff0c 来源于网络上的安装包 xff0c 学习一个 基本操作就不多说了 xff0c 在实践里慢慢记录 二 基本操作 认识3种
  • SAP有用的NOTE(持续更新)

    目录 2421240 Portal is not loaded on Chrome 56 or higher 66971 Supported SAP GUI platforms 66971 Supported SAP GUI platfor
  • 网络管理员比赛回顾02-网关、静态路由、动态路由

    目录 一 配置网关 二 配置静态路由 三 配置动态路由 3 1 使用RIP协议配置动态路由 3 2 使用OSPF协议配置动态路由 2021年9月参加青年网络管理员比赛 xff0c 因为网管超龄不能按照 青年 参赛 xff0c 临时培训我们这
  • 网络管理员比赛回顾03-单臂路由

    三层交换机sw1配置 xff0c 划分三个vlan xff0c 3个接入端口分别允许各自vlan通过 xff0c 一个骨干端口允许所有vlan通过 lt Huawei gt undo terminal monitor lt Huawei g
  • SAP创建webservice

    目录 一 创建webservice 二 更改webservice 三 SoapUI测试webservice 四 查看webservice日志及排错 一 创建webservice 以用户相关的函数User为例创建webservice xff0
  • SAP事务码f-02做账界面显示“页数”字段

    事务码 f 02 做账界面 xff0c 没有显示页数 用户账号的参数添加 CSF xff08 Country Specific Fields xff09 参数 xff0c 参数值为 CN xff08 伟大的China xff09 再次来到
  • 网络管理员比赛回顾04-DHCP

    目录 一 DHCP的配置 二 DHCP中继 2021年9月参加青年网络管理员比赛 xff0c 因为网管超龄不能按照 青年 参赛 xff0c 临时培训我们这批 青年 参赛 xff0c 回顾一下经过以及学到的技能 本节回顾DHCP 一 DHCP
  • SNMP服务配置

    由于服务器账号密码要定期更改 xff0c 监控服务器一般不应使用可登录的账号 xff0c 而应该使用SNMP协议获取服务器信息 记录一下CentOS 7配置SNMPv3服务的过程 安装SNMP服务 yum install net snmp
  • zabbix-agent安装

    最近新上了zabbix监控 xff0c 记录部署过程 一 Linux上安装 修改yum源配置 vim etc yum repos d lt your repo gt zabbix name 61 zabbix baseurl 61 http
  • SublimeText + Anaconda插件 打造 Python IDE

    目录 一 安装anaconda插件 二 创建构建环境 三 快捷键 自己尝试了SublimeText 43 Anaconda插件 xff0c 打造 Python IDE的方案是可行的 xff0c 记录配置过程 安装SublimeText的过程
  • 在Ubuntu22.4下搭建pytorch深度学习环境

    Anacnda安装 xff1a 这个在其他地方搜索 xff0c 可以搜到参考oknacUbuntu下安装Anaconda的步骤 xff08 带图 xff09 知乎 安装完毕source bashrc进入base环境 xff0c conda
  • leetcode算法题-两数之和

    解法一 xff1a 哈希表 class Solution def twoSum self nums List int target int gt List int hashmap 61 for ind num in enumerate nu
  • python 求列表中出现频率最高的元素

    def count l1 list return max set l1 key l1 count max set list key 61 list count 函数会根据关键词参数key 61 list count所指定带有一个参数的函数
  • 算法python回文数数学法

    class Solution def isPalindrome self x int gt bool if x lt 0 or x 10 61 61 0 and x 61 0 return False y 61 0 t 61 x while
  • MapReduce程序开发

    通过API操作之前要先了解几个基本知识 基本数据类型 Hadoop的基本数据类型和Java的基本数据类型是不一样的 xff0c 但是都存在对应的关系 如下图 如果需要定义自己的数据类型 xff0c 则必须实现Writable hadoop的
  • Jetson AGX Xavier 配置VNC远程桌面连接及默认分辨率调整

    Jetson AGX Xavier 配置VNC远程桌面连接及默认分辨率调整 Jetson AGX Xavier 配置VNC远程桌面连接安装VNC Server配置VNC Server把VNC Server设为开机自启动设置VNC Serve
  • frp内网穿透windows配置开机启动

    首先下载我们需要的frp软件包 点我即可跳转下载页 解压之后得到我们的文件夹 xff0c 降不需要的frps开投的文件删掉 xff0c 新建文本 start bat start bat内容如下 xff1a 64 echo off home
  • kube-flannel.yml 保存

    apiVersion policy v1beta1 kind PodSecurityPolicy metadata name psp flannel unprivileged annotations seccomp security alp
  • 【VHDL语言学习笔记(三)】 数据比较器

    目的 xff1a 实现一个4位二进数据比较器 分析 xff1a 两个操作数的比较有三种结果 xff0c 即A等于B xff0c A大于B和A小于B 两个4位二进制比较器 xff0c 构建比较器表如下 比较器的真值表 输入输出ABAGQBAG