VL6 多功能数据处理器

news2024/10/6 20:31:48

一、题目

根据指示信号select的不同,对输入信号a,b实现不同的运算。输入信号a,b为8bit有符号数,当select信号为0,输出a;当select信号为1,输出b;当select信号为2,输出a+b;当select信号为3,输出a-b.

接口信号图如下:

输入描述:

clk:系统时钟

rst_n:复位信号,低电平有效

a,b:8bit位宽的有符号数

select:2bit位宽的无符号数

输出描述:

c:9bit位宽的有符号数

二、思路

select信号共有4种不同的取值,需要声明为2比特无符号数据。输入信号和输出信号为有符号数,输出信号可能是输入信号的和,所以需要拓展一位,防止溢出。

可以使用if else语句,但是有四种情况显得特别冗余,所以改用case语句。

在复位信号有效时,输出置为0,否则根据指示信号select的不同取值,对数据做不同的运算。另外,对于case语句的使用,保持良好的代码风格,需要添加default情况,防止select出现以上列举的取值之外的数值,导致电路中出现不必要的锁存器。另一方面,当每个取值情况下执行的代码超过一句,需要使用begin…end包含,如果只有一句,则可以省略begin…end。

三、设计文件

`timescale 1ns/1ns
module data_select(
    input clk,
    input rst_n,
    input signed[7:0]a,
    input signed[7:0]b,
    input [1:0]select,
    output reg signed [8:0]c
);

always@(posedge clk or negedge rst_n)
if (rst_n == 0)
c <= 9'b0;
else  begin
    case (select)
    2'b00: c<=a;
    2'b01: c<=b;
    2'b10: c<=a+b;
    2'b11: c<=a-b;
    default c<= 9'b0;
    endcase
end


endmodule

四、补充总结

1、因为输入输出都已经直接定义了signed有符号数类型,所以直接相加、相减也没有问题,不会出现运算错误。

有符号数+有符号数=有符号数

这其中,如果加数中有无符号数,那么就会按照无符号运算。

如果表达式中有一个无符号数,则所有的操作数都会被强行转换为无符号数;

即:有符号A +无符号B时,会将补码表示的有符号A当成无符号数A1,,再计算A1+B,这样得到的结果就是错的了。

解决方法:

涉及到有符号数运算时,和有符号相关的输入、输出、中间变量均定义成signed有符号数,这样全部遵循有符号数运算规则

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195774.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5、排序与分页

文章目录1 排序数据1.1 排序规则1.2 单列排序1.3 多列排序2 分页2.1 背景2.2 实现规则2.3 拓展尚硅谷MySQL数据库教程-讲师&#xff1a;宋红康 我们缺乏的不是知识&#xff0c;而是学而不厌的态度 1 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC&#xff08;ascend&…

MySQL安装教程(windows 64位)详细教程

1.确保电脑为64位系统 2.国外官网下载地址&#xff1a;MySQL : Download MySQL Community Server 2.1.点击下载之后&#xff0c;可以选择注册Oracle账号&#xff0c;也可以跳过直接下载 2.2.国内下载网址&#xff1a;Index of /mysql/MySQL-8.0/ 2.3.下载完成后解压到某一个文…

Qt 播放音频文件的几种方式

文章目录摘要1 QMediaPlayer1.1 播放音频文件1.2 播放视频文件1.3 我遇到的问题2 QSound3 QSoundEffect4 QAudioOutput关键字&#xff1a; Qt、 QSound、 QSoundEffect、 QMediaPlayer、 multimedia摘要 这篇文章至少拖了有一两个月了&#xff0c;这不阳了&#xff0c;在家实…

Linux的tree命令原来用处那么大,涨知识了!

大家应该熟悉或了解 Linux 中的目录结果&#xff0c;它就像树的根。这正是 tree 命令的概念。它以树状方式显示当前目录及其子目录的内容。 在使用 tree 命令之前&#xff0c;需要首先安装。 安装 tree 大多数 Linux 发行版中都没有预安装 tree 命令&#xff0c;但是可以在官…

XSS Game通关教程

12.XSS Game通关教程 1、Ma Spaghet! 审查源码 一个不安全的方式&#xff0c;直接get传输somebody 输入123看看位置 ?somebody123 如下 用下input标签即可 <input onmouseoveralert(1)>当鼠标移动到输入框时触发弹窗 2、Jefff 传入的jeff在eval里&#xff0c;那就…

MySQL(二)

schema与数据类型优化 数据类型的优化 更小的通常更好 应该尽量使用可以正确存储数据的最小数据类型&#xff0c;更小的数据类型通常更快&#xff0c;因为它们占用更少的磁盘、内存和CPU缓存&#xff0c;并且处理时需要的CPU周期更少&#xff0c;但是要确保没有低估需要存储的…

项目管理:产品新人常犯的四个错误

作为产品经理&#xff0c;在刚进入职场的时候总会遇到各种各样的困难&#xff0c;产品小白常犯的错误&#xff1a; 1、拿到需求就开始写方案 很多新人在接到一个需求时&#xff0c;常常犯的错误就是直接开始写产品需求文档。很多时候我们的需求来自于老板或者甲方&#xff0c;…

LeetCode-350. 两个数组的交集 II

目录方法一&#xff1a;哈希表方法二&#xff1a;排序 双指针题目来源 350. 两个数组的交集 II 方法一&#xff1a;哈希表 由于同一个数字在两个数组中都可能出现多次&#xff0c;因此需要用哈希表存储每个数字出现的次数。对于一个数字&#xff0c;其在交集中出现的次数等于…

看板:自我管理的高效工具!

当在团队中在做看板管理的时候&#xff0c;我们一直强调的是看板中的工作项需要承载价值。通过拉动承载价值的工作项在看板中的流动&#xff0c;我们可以清晰地看到产品价值从需求端流动到交付端的进展及状态。也正因如此&#xff0c;我们需要及时识别看板中没有价值的工作项并…

解锁极狐GitLab 自动化功能:Webhook 触发 Pipeline 与计划流水线

本文来自&#xff1a; 杨洪丽 极狐GitLab 高级网站可靠性工程师(SRE) 只使用极狐GitLab 存放代码? 那你就 OUT 啦&#xff01; 如果你也遇到了如图 A / B / C / D 各位同学的烦恼&#xff0c;不要错过这篇能够让你日常工作更高效的内容。 使用极狐GitLab Webhook 触发 Pipelin…

JSON格式店铺商品列表api

对于做竟店分析来说&#xff0c;首先要知道店铺有哪些商品&#xff0c;店铺宝贝列表则提供了这样的入口&#xff0c;可以查看该店铺的所有宝贝&#xff0c;也可以通过关键词全局搜索来获取店铺宝贝&#xff0c;但搜索会夹带这很多推荐的结果在里面&#xff0c;会比较混乱。 淘宝…

Python语言零基础入门教程(二)

Python 变量类型 变量是存储在内存中的值&#xff0c;这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型&#xff0c;解释器会分配指定内存&#xff0c;并决定什么数据可以被存储在内存中。 因此&#xff0c;变量可以指定不同的数据类型&#xff0c;这些变…

2023年不良资产项目尽调研究报告

第一章 不良资产的尽调方法 1.1 档案查阅 阅档是尽职调查工作的第一步也是最基础的环节。阅档过程是对资产进行了解的过程&#xff0c;阅档需要判断债权是否具有瑕疵&#xff0c;担保是否继续有效&#xff0c;初步了解各类资产所含的法律关系、状态、权益等。 通过查阅项目卷…

AI人工智能方向

AI人工智能方向 图像CV 图像处理&#xff0c;犬类识别&#xff0c;场景文字识别&#xff0c;人脸算法&#xff0c;图像增强&#xff0c;计算机影像&#xff0c;车型识别&#xff0c;物体检测&#xff0c;黄色图片识别&#xff0c;目标检测API文档Logo检测使用手册&#xff0c…

【数字孪生百科】每周认识一个数字孪生要素 —— 气泡图(Bubble Chart)

简介气泡图&#xff08;Bubble Chart&#xff09;是一种多变量的图片&#xff0c;是散点图的一种变体&#xff0c;气泡图其实是在散点图的基础上进行升级改造的&#xff0c;在原有的以横纵坐标为变量的基础上&#xff0c;引入第三个变量&#xff0c;用气泡的大小来表示&#xf…

Lesson 5. 分类模型决策边界与模型评估指标(上)

文章目录一、决策边界&#xff08;Decision Boundary&#xff09;基本概念与用途1. 决策边界基本概念与绘制方法2. 通过决策边界观察模型性能3. 逻辑回归决策边界与模型可解释性二、逻辑回归决策边界绘制与使用方法1. 定义决策边界绘制函数2. 决策边界绘制3. 逻辑回归决策边界与…

3、Maven——Maven创建java web工程,IDEA更改XML版本、Maven Search插件的安装与使用

目录 一、Maven创建java web工程 二、Maven创建java web项目的结构 1、添加项目目录 2、web.xml配置处理报错 三、IDEA更改XML版本 四、Maven Search插件的安装与使用 1、Maven Search的安装 2、Maven Search的使用 一、Maven创建java web工程 创建Empty Project空工程…

【U8+】用友U8试算UFO报表后,显示#公式错误;并且函数向导中没有用友账务函数。

【问题描述】 使用用友U816.1软件的时候&#xff0c; 打开UFO报表&#xff0c;计算资产负债表后&#xff0c;显示【#公式错误】。 【排查过程】 开始以为是选择的报表模板文件有问题&#xff0c;将其文件发送到其他U8客户端电脑上&#xff0c;操作正常。 那么可以认为报表模板…

java vector 类

目录 一.前言 1.1vector简介 1.1.1java Collection下的子类图 1.1..2 介绍 1.1.3Vector类详细规则 1.2Vector与ArrayList的区别 二.Vector的方法 三.代码示例(demo) 一.前言 1.1vector简介 1.1.1java Collection下的子类图 1.1..2 介绍 Vector类 是在 java 中可以实现…

从0到1一步一步玩转openEuler--02 openEuler操作系统的安装

2 openEuler操作系统的安装 2.1 openEuler操作系统的安装流程 2.2 openEuler操作系统的安装详细步骤 本次介绍 openEuler 22.03-LTS 基于 X86 架构的安装。 2.2.1 下载地址 官网下载地址&#xff1a;https://www.openeuler.org/zh/download/ 根据你的实际需求选择适合架构…