位拆分与运算

描述

题目描述:           

现在输入了一个压缩的16位数据,其实际上包含了四个数据[3:0][7:4][11:8][15:12],

现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号(在不输出时候拉低)

0:   不输出且只有此时的输入有效 

1:输出[3:0]+[7:4]

2:输出[3:0]+[11:8]

3:输出[3:0]+[15:12]

信号示意图:

波形示意图:

输入描述:

输入信号   d, clk, rst
类型 wire
在testbench中,clk为周期5ns的时钟,rst为低电平复位

输出描述:

输出信号 validout    out
类型  reg 

解题分析:

        寄存器的位是可以分开单独运算的,并不是一个输入就一定是一个数据,在很多情况下,一个输入既包括数据又包括地址等其他有效信息

        需要考虑数据锁存的问题,一定要在sel为0的时候进行锁存,只有此时的写入才是有效的(validout的下降沿写入有效),同时存在多种情况且没有优先级问题,建议使用case语句

代码如下:

`timescale 1ns/1nsmodule data_cal(
input clk,
input rst,
input [15:0]d,
input [1:0]sel,output [4:0]out,
output validout
);
reg [4:0]out;
reg validout;
reg [15:0] dreg;
//*************code***********//
always @(posedge clk or negedge rst)beginif(~rst)beginvalidout <= 0;out <= 0;dreg <= 0;endelsebegincase(sel)'d0:begindreg <= d; out <= 0;  validout <= 0; end'd1:beginout <= dreg[7:4] + dreg[3:0];  validout <= 1;      end'd2:beginout <= dreg[11:8] + dreg[3:0];  validout <= 1; end'd3:beginout <= dreg[15:12] + dreg[3:0];  validout <= 1; endendcaseendend//*************code***********//
endmodule

波形图:

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

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

相关文章

EasyClick常见拓展函数及应用

十天学会从入门到实战游戏脚本开发教程--EassyClick入门教程&#xff1a;2024 十天学会EasyClick从入门到实战&#xff0c;自动化脚本&#xff0c;游戏脚本开发系列教程_哔哩哔哩_bilibili2024 十天学会EasyClick从入门到实战&#xff0c;自动化脚本&#xff0c;游戏脚本开发系…

Redis-Redis事务

Redis事务 Redis事务简介 Redis事务是一组命令的集合&#xff0c;一个事务中的所有命令都将被序列化&#xff0c;按照一次性、顺序性、排他 性的执行队列系列的命令。Redis单条命令保证原子性&#xff0c;但是事务不保证原子性&#xff0c;且没有回滚。事务中任意命令执行失败…

DBeaver如何csv导入数据

简言之先要创建任务&#xff0c;任务还需要去执行&#xff0c;只有执行之后才是执行真的导入了 那个保存任务真的很误导人啊 1.首先点击你要被导入的表&#xff0c;右键选择导入数据然后选择直接点击下一步,这个地方需要修改格式&#xff0c;否则会乱码 如果你导入的没有标题…

GPT-4o API 全新版本发布:提升性能,增加性价比

5月13日&#xff0c;OpenAI 发布了全新ChatGPT模型 GPT-4o&#xff0c;它在响应速度和多媒体理解上都有显著提升。在这篇文章中&#xff0c;我们将介绍 GPT-4o 的主要特点及其 API 集成方式。 什么是 GPT-4o&#xff1f; GPT-4o 是 OpenAI 于5月13日发布的最新多模态 AI 模型…

职业生涯第一课---“Redis分布式锁优化:确保唯一性与效率“

前言 最近因为刚入职公司开启自己的实习生涯&#xff0c;工作和毕设论文同步进行&#xff0c;导致有段时间没更新博客了&#xff0c;今天来分享一下最近学到的一些知识。 场景介绍 BOSS让我写一些接口&#xff0c;他提出这样一个需求&#xff0c;该接口的参数有多个&#xf…

ubuntu下不生成core dumped

1、先用ulimit -c&#xff0c;如果看到0&#xff0c;说明没有开core dump。 所以我们输入ulimit -c unlimited&#xff0c;打开core dump。 再次用ulimit -c&#xff0c;看到unlimited了&#xff0c;说明core dump打开了。 注意这句ulimit -c unlimited只对当前会话有效。要永…

酷开科技的智能电视操作系统—酷开系统,带来更加舒适的观看体验

酷开科技的智能电视操作系统——酷开系统&#xff0c;通过大数据和人工智能技术的结合&#xff0c;会根据会员的观看历史和收视行为偏好&#xff0c;刻画出“消费者群体画像”&#xff0c;然后将内容进行“人工编辑智能推荐”的方式推送到消费者面前&#xff0c;不仅省去了消费…

在Python中防止某些字段被Pickle序列化

在Python中&#xff0c;如果你想防止某些字段被pickle序列化&#xff0c;可以使用__reduce__()方法来自定义pickle行为。__reduce__()方法允许你返回一个元组&#xff0c;其中包含要在对象被pickle时调用的函数以及传递给该函数的参数。下面就是我遇到的问题以及最终解决方案。…

Verdaccio私服搭建

前言 Verdaccio是一个轻量级的私有npm注册表&#xff0c;由Node.js创建&#xff0c;并且是sinopia1.4.0的衍生版本&#xff0c;与其100%向后兼容。Verdaccio的名称来源于意大利中世纪晚期fresco绘画中流行的一种绿色。 Verdaccio的主要功能是在本地环境中管理和共享npm软件包。…

鸿蒙应用开发之调用C++开发代码库3

接着下来,我们仔细分析C++代码的实现,要理解怎么样把ArkTS类型转换为C++类型,并且返回参数值时,怎么从C++的类型转换为ArkTS类型。 要想在ArkTS调用C++的代码,需要把上面的编译器信息打包到应用程序HAP里,当运行的时候,就可以找到加载的对应的声明信息。 我们从JS调用框…

framework ‘CoreAudioTypes‘ not found

几天前我升级Xcode15之后遇到了这个问题。关于“CoreAudioTypes”的信息完全是误导。在我的例子中&#xff0c;原因是在删除一些旧代码时&#xff0c;我不小心删除了仍然需要的类。然而&#xff0c;在构建时弹出的唯一消息是关于“CoreAudioTypes”——当我恢复丢失的类时&…

基于区块链的Web 3.0关键技术研讨会顺利召开

基于区块链的Web3.0关键技术研讨会 2024年4月23日&#xff0c;由国家区块链技术创新中心主办的“基于区块链的web3.0关键技术研讨会”召开。Web3.0被用来描述一个运行在“区块链”技术之上的“去中心化”的互联网&#xff0c;该网络上的主体掌握自己数据所有权和使用权&#xf…

使用OpenCV GUI清理数据集 | 为目标检测模型创建更好的数据集

点击下方卡片&#xff0c;关注“小白玩转Python”公众号 在深度学习中有几件重要的事情&#xff0c;我认为数据是最关键的。如果没有合适的数据&#xff0c;要取得好的结果是非常困难的。即使你用强大的预训练模型和GPU训练模型&#xff0c;你的模型也可能表现不佳。在本文中&a…

Kotlin核心编程知识点-02-面向对象

文章目录 1.类和构造方法1.1.Kotlin 中的类及接口1.1.1.Kotlin 中的类1.1.2.可带有属性和默认方法的接口 1.2.更简洁地构造类的对象1.2.1.构造方法默认参数1.2.2.init 语句块1.2.3.延迟初始化&#xff1a;by lazy 和 lateinit 1.3.主从构造方法 2.不同的访问控制原则2.1.限制修…

Apifox接口报错401,msg:“未授权”

Apifox接口报错401&#xff0c;msg:“未授权” 报错&#xff1a; 原因&#xff1a;Apifox接口好像两小时token就过期了&#xff0c;得重新获取 一、打开登录接口&#xff0c;找到token 二、打开根目录找到token&#xff0c;将登录的token值拷贝过来&#xff0c;点击保存 三…

Milvus的系统架构

简介 Milvus的构建在许多知名的向量搜索库比如Faiss, HNSW, DiskANN, SCANN等之上的&#xff0c;它针对稠密向量数据集的相似搜索而设计&#xff0c;能支持百万、十亿甚至万亿级别的向量搜索。 Milvus支持数据分片&#xff0c;流式数据插入&#xff0c;动态schema&#xff0c…

JVM运行时内存:虚拟机栈

文章目录 1. 概述2. 栈针3. 栈针内部结构3.1 局部变量表3.2 操作数栈3.3 动态链接3.4 方法返回地址3.5 一些附加信息 运行时内存整体结构如下图所示: 1. 概述 如何理解栈管运行&#xff0c;堆管存储&#xff1f; 角度一&#xff1a;GC;OOM角度二&#xff1a;栈、堆执行效率角…

电子合同怎么盖章的

数字证书盖章&#xff1a;利用个人或企业的数字证书进行盖章。数字证书作为数字身份证明&#xff0c;确保了电子签名和盖章的可信度。通过加密技术&#xff0c;确保合同内容不被篡改&#xff0c;盖章过程完成后&#xff0c;合同具有法律效力。 时间戳盖章&#xff1a;在电子合…

STM32 HAL TM1638读取24个按键

本文分享一下天微电子的另一款数码管按键驱动芯片TM1638的单片机C语言驱动程序。 笔者采用的MCU是STM32单片机&#xff0c;STM32CubeMX Keil5开发&#xff0c;使用了HAL库。 一、TM1638介绍 1、基础信息 TM1638属于一款LED驱动控制专用电路&#xff0c;其特性如下&#xf…

析构函数详解

目录 析构函数概念特性对象的销毁顺序 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 &#x1f412;&#x1f412;&#x1f412; 个人主页 &#x1f978;&#x1f978;&#x1f978; C语言 &#x1f43f;️&#x1f43f;️&#x1f43f;️ C语言例题 &…