【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语言学习笔记(三)】 数据比较器 的相关文章

  • 使用通用参数作为端口数组长度

    我想做的事 entity FIRfilter is generic NTAPS integer port h in array 0 to NTAPS 1 of std logic vector 15 downto 0 end FIRfitl
  • VHDL:正式端口“portName”没有实际值或默认值

    我在实例化 VHDL 模块 PWM 的 VHDL 测试平台上收到编译错误 正式端口 Duty Cycle 没有实际或默认值 当站在 dev to test PWM 代码行时会看到该错误 在实例化的 PWM 模块中 Duty Cycle st
  • 在变量类型VHDL中添加2个std_logic_vector

    我正在参与这个学校项目 我有两个 std logic vector 31 downto 0 A 和 B 并且我有一个变量类型 std logic vector 32 downto 0 我想添加 A B 并将结果放入 32 位的 std lo
  • VHDL——连接开关和LED

    我有 Xilinx Spartan6 和下一个 VHDL 代码 library ieee use ieee std logic 1164 all use ieee numeric std all entity Switches Leds i
  • VHDL 中的行为模型程序和数据流模型程序之间的混淆

    我正在使用 Douglas L Perry 所著的教科书 VHDL 示例编程 第四版 他在第 4 页给出了 Dataflow 编程模型的示例 Code I ENTITY mux IS PORT a b c d IN BIT s0 s1 IN
  • 使用 VHDL 实例化 FPGA 中的 RAM

    我试图按照中的指导实现双端口 RAM这篇优秀的博文 http danstrother com 2010 09 11 inferring rams in fpgas 然而 ModelSim 在编译时给出以下警告 Warning fifo ra
  • VHDL-读取HEX文件

    In VHDL 从 HEX 文件初始化 std logic vector 数组 https stackoverflow com questions 20164216 vhdl init std logic vector array from
  • 同时读取和写入寄存器

    我计划在 FPGA 上用 VHDL 设计一个类似 MIPS 的 CPU CPU 将具有经典的五级管道 没有转发和危险预防 在计算机体系结构课程中 我了解到第一个 MIPS CPU 用于在时钟上升沿读取寄存器文件并在时钟下降沿写入 我使用的F
  • 错误(10028):无法解析网络的多个常量驱动程序... VHDL 错误

    我正在尝试编写一个代码来检测 din 信号的上升沿 并在发生后将 doout 提高 5 个时钟周期 我在编译时不断收到不同的错误 但我不确定它们的含义 我认为我对 VHDL 中的一些概念缺乏基本的了解 但遗憾的是在网上查找并没有给我带来太大
  • 将整数转换为 std_logic

    假设你有一个循环 for i in 1 downto 0 loop for j in 1 downto 0 loop tS0 lt i 但我需要将整数 这是自然的 转换为 std logic tS0被声明为 std logic 我只做了一位
  • 将库添加到 Vivado 2014.4

    我对 Vivado 和 VHDL 还很陌生 我想要一些关于基本问题的指导 我猜我可以创建自己的库并在我的项目中使用它们 就像使用默认库和基本库一样 eg library IEEE use IEEE std logic 1164 ALL us
  • VHDL 中的 BRAM_INIT

    我正在模拟基于处理器的设计 其中程序存储器内容保存在 BRAM 中 我正在使用 VHDL 推断 BRAM 实现程序存储器 我试图避免使用 CoreGen 因为我想保持设计的可移植性 最终该设计将进入 FPGA 我想看看是否有一种方法可以使用
  • 全8位加法器,非逻辑输出

    我创建了一个带全加器的 8 位加法器 正如您所看到的 我开始从右到左添加相应的位 对于 cin 信号 t1 和 t2 并按顺序 cout t2 和 t1 第一个 cin 设置为加法器输入 cin 我在实现中没有看到任何问题 但是当我运行它时
  • 仅使用 std_logic_vector 包将 std_logic_vector 与常量进行比较

    我仅在 VHDL 文件中使用以下包 library IEEE use IEEE STD LOGIC 1164 ALL 在代码中 我将 std logic vector 信号 A 与常量值进行比较 例如 if A lt 00001011 th
  • VHDL (Xilinx) 中的错误:无法链接设计

    为什么我在 VHDL 中遇到错误 另外 有时 无法执行流程 因为之前的流程失败了 非常感谢 永久解决方案1 在win 10上 找出 installation directory Xilinx 14 x ISE DS ISE gnu MinG
  • VHDL FSM多驱动网Q连接到常量驱动程序,其他驱动程序被忽略,我的代码有什么问题?

    这段代码是一个 FSM 它是一个摩尔机 艾莉莎 P 哈克 Alyssa P Hacker 有一只蜗牛 沿着纸带爬下去 上面有 1 和 0 蜗牛 每当最后两个时都会微笑 它爬过的数字是 01 设计摩尔和米利 蜗牛大脑的 FSM 代码如下所示
  • 32x8 寄存器文件 VHDL 测试台

    我已经用 vhdl 编写了该电路的汇编代码 我想用测试台来模拟它 RegWrite 1 位输入 时钟 写寄存器个数 3位输入 写地址 写入数据 32 位输入 数据输入 读取 寄存器编号 A 3 位输入 读取地址 读取寄存器编号 B 3 位输
  • 用几个 1 位 ALU 制作一个 4 位 ALU

    我正在尝试将几个 1 位 ALU 组合成一个 4 位 ALU 我对如何在 VHDL 中实际执行此操作感到困惑 这是我正在使用的 1 位 ALU 的代码 component alu1 define the 1 bit alu componen
  • VHDL STD_LOGIC_VECTOR 通配符值

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

    我有一个关于 VHDL 中 if 语句的问题 请参见下面的示例 signal SEQ bit vector 5 downto 0 signal output bit if SEQ 000001 and CNT RESULT 111111 t

随机推荐

  • 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