位拆分与运算

描述

题目描述:           

现在输入了一个压缩的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.hqwc.cn/news/706359.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

猛兽派对是什么游戏 猛兽派对攻略大全 苹果电脑怎么玩《猛兽派对》?

猛兽派对是多人派对类型的游戏&#xff0c;该款游戏的动作基于物理原理设计的&#xff0c;体验游戏玩家可以选择自己喜欢的小动物角色参加派对&#xff0c;游戏内具有很多不同的关卡可供挑战。 在steam平台上&#xff0c;猛兽派对对应英文名称是PartyAnimals&#xff0c;官方正…

用AI帮你写简历,入职啦简历编辑器

简历的重要性 在当前就业形势严峻、竞争加剧的背景下&#xff0c;获取理想工作的难度与日俱增。此时&#xff0c;一份精心准备、亮点突出的简历&#xff0c;成为了您脱颖而出、成功获得面试机会乃至工作offer的关键。面对HR有限的审阅时间和众多应聘者的激烈角逐&#xff0c;如…

深度学习设计模式之工厂方法模式

文章目录 前言一、工厂方法模式介绍二、详细分析1.核心组成2.实现步骤3.示例代码4.优缺点优点缺点 5.应用场景 总结 前言 本篇文章主要学习工厂方法模式&#xff0c;工厂方法模式是对简单工厂模式进一步的抽象&#xff0c;由子类去决定实例化哪个类。 一、工厂方法模式介绍 工…

JavaGUI---JavaFX---未完结

一、Java事件处理机制的应用 JavaFX&#xff1a;JavaFX是Java平台上的一个GUI工具包&#xff0c;它提供了一些内置的事件处理机制。 Swing&#xff1a;Swing是Java平台上的另一个GUI工具包&#xff0c;它也提供了一些内置的事件处理机制。 二、JavaFX和Swing的关键区别&…

electron的Remote模块

03 【electron的Remote模块】 在渲染进程里&#xff08;比如index.html里面加载了一些js文件&#xff0c;那里面的js如果要使用到 BrowserWindow 这些属性的话就必须使用 remote&#xff09; 使用 remote 模块, 你可以调用 main 进程对象的方法 1.electron14.0之前版本使用 …

手机自养号测评系统:专业应对电商平台风控,提升账号稳定性

用手机做自养号测评它具备无限生成不同真实手机底层环境的能力&#xff0c;每个环境都相当于一台全新的手机设备。通过先进的底层屏蔽技术&#xff0c;我们成功让亚马逊等平台仅能检测到我们预设的参数&#xff0c;如手机型号、内存、lMEI、序列号、MAC地址以及运营商信息等。每…

svn批量解锁

问题 svn对文件进行checkout之后&#xff0c;先进行lock&#xff0c;之后再去更改&#xff0c;最后进行Commit操作&#xff1b; 上述为我们通过svn管理代码的正常方式&#xff0c;但总会有其他现象发生&#xff1b; 如果我们非正常操作&#xff0c;批量锁所有的svn文件&#x…

谷歌举办Gemini API开发者大赛;ChatGPT iOS版更新支持中文

&#x1f989; AI新闻 &#x1f680; 谷歌举办Gemini API开发者大赛&#xff0c;大奖1981款电动DeLorean 摘要&#xff1a;IT之家 5 月 15 日消息&#xff0c;在 2024 年谷歌 I/O 开发者大会上&#xff0c;谷歌宣布举办 Gemini API 开发者大赛&#xff0c;主要面向个人开发者…

ICode国际青少年编程竞赛- Python-4级训练场-绿色飞板1

ICode国际青少年编程竞赛- Python-4级训练场-绿色飞板1 1、 while Flyer.disappear():wait() Dev.step(4)2、 Dev.turnRight() Dev.step()while Flyer[0].disappear():wait() Dev.step(3) Dev.turnLeft() Dev.step() while Flyer[1].disappear():wait() Dev.step(2) Dev.tu…

LabVIEW数字电桥多功能测量系统

LabVIEW数字电桥多功能测量系统 在现代电子测量领域&#xff0c;精密仪器的应用越来越广泛&#xff0c;尤其是在电容、电阻、电感等参数测量上。针对这一需求&#xff0c;利用LabVIEW软件开发一个基于TH2827C数字电桥的多功能测量系统。该系统不仅能够实现电参数的精密测量&am…

即刻报名:南京智博会|2024南京国际人工智能展览会

在21世纪的科技浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;无疑已经跃升为一个全新的战略制高点&#xff0c;成为驱动社会经济发展的重要引擎。2024年11月&#xff0c;南京这座历史与现代交融的城市&#xff0c;将举办一场科技界的盛宴——2024南京国际人工智能展览…

单链表经典算法 面试题--力扣02.04

链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09;【点击即可跳转】 思路&#xff1a;创建新链表&#xff1a;大链表和小链表 将pcur节点小于x的值&#xff0c;尾插在小链表中 将pcur节点大于或等于x的值&#xff0c;尾插在大链表中 最终---- return lessHead->…