VL5 位拆分与运算

【5】基础语法篇 - VL5 位拆分与运算 基础语法篇 - VL5 位拆分与运算 阅读详情

一、题目描述

现在输入了一个压缩的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信号的四种选择,马上想到case语句。

1.sel = 0时的声明(不输出且只有此时的输入有效 ),此时应定义一个寄存器d_lock用于寄存数据d,剩下三个状态的计算输入皆是从定义的d_lock寄存器中得到的。

2.有输出时validout=1;否则validout=0。

三、代码展示

方法1

`timescale 1ns/1ns

module data_cal(
input clk,
input rst,
input [15:0]d,
input [1:0]sel,

output [4:0]out,
output validout
);
//*************code***********//
reg [4:0] out;
reg validout;
reg [15:0]  d_lock;



always@(posedge clk or negedge rst)
    if(rst == 1'b0) begin
        out <= 5'b0;
        validout <= 1'b0;
        d_lock <= 16'd0;
    end
    else    case(sel)
        2'd0 : begin
            out <= 5'd0;
            validout <= 1'b0;
            d_lock <= d;
        end
        2'd1 : begin 
            out <= d_lock[3:0] + d_lock[7:4];
            validout <= 1'b1;
        end
        2'd2 : begin
            out <= d_lock[3:0] + d_lock[11:8];
            validout <= 1'b1;
        end
        3'd3 : begin 
            out <= d_lock[3:0] + d_lock[15:12];
            validout <= 1'b1;
        end
        default : begin 
            out <= 5'd0;
            validout <= 1'b0;
        end
    endcase

//*************code***********//
endmodule

方法2

利用组合逻辑

`timescale 1ns/1ns

module data_cal(
input clk,
input rst,
input [15:0]d,
input [1:0]sel,

output [4:0]out,
output validout
);
//*************code***********//
reg [15:0] d_reg;
wire [3:0] d0;
wire [3:0] d1;
wire [3:0] d2;
wire [3:0] d3;
assign d0 = d_reg[3:0];
assign d1 = d_reg[7:4];
assign d2 = d_reg[11:8];
assign d3 = d_reg[15:12];
reg [4:0] out_reg;
reg validout_reg;

always@(posedge clk or negedge rst)
    begin
        if(!rst)begin
            out_reg<=5'd0;
            validout_reg<=1'b0;
            d_reg<=16'd0;
        end
        else begin
          case(sel) 
			2'b00 : begin
 				d_reg <= d;
 				out_reg <= 5'b0;
                validout_reg<=1'b0;
            end
            2'b01 : begin
 				out_reg <=  d_reg[3:0] + d_reg[7:4];// d0 + d1;
                validout_reg<=1'b1;
            end
            2'b10 : begin
 				out_reg <=   d0 + d2;
                validout_reg<=1'b1;
            end
            2'b11 : begin
 				out_reg <=  d0 + d3;
                validout_reg<=1'b1;
            end
            default:
                begin
                   out_reg <= 5'b0;
				   validout_reg <= 1'b0; 
                end
        endcase
    end
end
assign out = out_reg;
assign validout = validout_reg;
//*************code***********//
endmodule
`timescale 1ns/1ns
 
module data_cal(
input clk,
input rst,
input [15:0]d,
input [1:0]sel,
 
output [4:0]out,
output validout
);
//*************code***********//
reg [4:0]out_temp;
reg validout_temp;
reg [15:0]d_temp;
 
always@(posedge clk or negedge rst)begin
if(!rst)begin
out_temp<=0;
validout_temp<=0;
end
else begin
	case(sel)
		0:begin out_temp<=0; d_temp<=d;validout_temp<=0; end
		1:begin out_temp<=d_temp[3:0]+d_temp[7:4]; validout_temp<=1; end
		2:begin out_temp<=d_temp[3:0]+d_temp[11:8]; validout_temp<=1; end
		3:begin out_temp<=d_temp[3:0]+d_temp[15:12]; validout_temp<=1; end
		default:begin out_temp<=0; validout_temp<=0; end
	endcase
end
end
 
assign validout=validout_temp;
assign out=out_temp;
//*************code***********//
endmodule
【校招Verilog快速入门】基础语法篇:VL5、位拆分与运算 基础语法篇:VL5、位拆分与运算 阅读详情

相关推荐

产业大脑+未来工厂:揭秘浙江数字经济系统的5大核心场景搭建指南

本文深入解析了“产业大脑+未来工厂”这一浙江数字经济系统的核心范式,并提供了五大核心场景的实战搭建指南。文章详细阐述了从供应链协同、产能共享到产品创新、质量追溯及绿色低碳等关键场景的构建逻辑与技术架构,旨在帮助企业实现从技术驱动到场景驱动的价值落地,破解数据孤岛难题,提升产业链整体效能。

mac99的博客 666

【牛客网刷题】VL5-VL7位拆分与运算、数据处理器、求差值

👉 本系列博客记录牛客网刷题记录👉 日拱一卒,功不唐捐!

记录学习历程 2020

BCM-BCP-DRP-运维管理之故障管理——故障的分类与处理流程

ITSM Business Continuity Manage(BCM) BusinessContinuityPlan(BCP) 偏业务 DisasterRecoveryPlan(DRP) 偏IT 天塌了,考虑在天塌了的状态下做什么,怎么开展业务就是BCP; 天塌了,考虑怎么把天撑回去,就是DRP。 DRP+BCP+供应链管理+危机管理等就是BCM (业务连续性管...

mmgithub123的博客 2721

【verilog】VL5 位拆分与运算

本文比较了两种Verilog实现16位数据拆分运算的写法。第一种写法在组合逻辑中存储输入数据会产生锁存器(latch),而第二种写法使用时序逻辑(时钟触发)存储数据更合理。关键区别在于:1)组合逻辑中变量未在所有分支赋值会产生latch;2)存储数据应使用时序逻辑;3)输出波形显示sel和out同步变化,适合用组合逻辑。文中还分析了正确的数据采样方式,指出组合逻辑中不能使用非阻塞赋值(<=),并解释了时钟上升沿采样的时序关系。

wangweiwei2020的博客 302

CAPL 中的变量类型详解与应用

CAPL 中的变量类型详解与应用

qq_42268594的博客 1448

IGS精密星历高效获取与解析指南

本文详细介绍了IGS精密星历在高精度定位中的核心作用,对比了IGS Final、IGR和IGU等不同产品的精度与时效性差异。指南提供了从武汉大学、NASA CDDIS等数据中心高效下载数据的实战方法,并深入解析了SP3文件格式,帮助用户掌握精密星历的获取、解析与自动化处理技巧,以支持厘米级定位应用。

garlic的博客 838

牛客Verilog入门 VL5位拆分与运算

综合结果问题

Allcce的博客 311

钉钉开发(三)——Java推送钉钉待办任务

之前一篇博文中,讲解了如何推送钉钉群消息,感兴趣的可以点击查看。 钉钉开发(一)——Java给钉钉群推送消息

Monten_Cristo的博客 6410

牛客网verilog VL5 位拆分与运算

【代码】牛客网verilog VL5 位拆分与运算。

qq_62556923的博客 149

基于YOLO26深度学习框架的文档表格识别系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的文档表格识别系统实现方法。系统采用YOLO26网络架构,通过数据预处理、模型训练、检测推理和表格分析四个模块实现高效表格识别。研究详细阐述了数据归一化、增强等技术处理,以及采用迁移学习策略优化模型训练过程。实验表明,该系统能有效识别多种表格结构并生成结构化数据,为文档自动化处理提供了可靠解决方案。

一键难忘的博客 971

YOLOv5基于深度学习的道路缺陷检测系统

然而,由于长期的自然侵蚀、车辆磨损等因素,道路表面容易出现裂缝、坑洼等缺陷。这些缺陷不仅会影响驾驶舒适性,还可能引发交通事故,尤其是在恶劣天气或夜间行车条件下。随着人工智能技术的快速发展,基于深度学习的道路缺陷检测技术能够在降低人力成本的同时提高检测效率,为道路维护提供了新的解决方案。本项目构建了基于YOLOv5的道路缺陷检测系统,结合PyQt5开发了用户友好的UI界面,具备实时检测和图片分析功能。工具对图片进行标注,生成YOLO格式的标注文件。上传包含道路裂缝或坑洼的图片,系统会标注出缺陷的位置及类别。

YOLO 1076

牛客Verilog刷题日记VL5

现在输入了一个压缩的16位数据,其实际上包含了四个数据[3:0][7:4][11:8][15:12],现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号(在不输出时候拉低)0: 不输出且只有此时的输入有效。3:输出[3:0]+[15:12]2:输出[3:0]+[11:8]1:输出[3:0]+[7:4]VL5 位拆分与运算。

U2802856569的博客 298

弥散圆以及最大弥散圆

1弥散圆的形成? 原本景物中的一点应该经过透镜本应该也是一点才对。但是因为离焦,球差的存在,最终成像会投影成一个光斑圆圈。越小越清晰,越大就互相干涉变得越模糊。 同时人们规定二零最大弥散圆,就是人眼能够感受清晰模糊的一个边界,直径大于它,感受到模糊;直径小于它,感受不到模糊。 下面分别是离焦(左),球差(右)。 2弥散圆大小怎么计算呢? ,f为焦距;<1> ,D为光圈有效孔径;<2> F=f/D; <3> 3条公式合并可得出: ...

camerall 3114

【牛客网刷题系列 之 Verilog快速入门】~ 位拆分与运算

vcs+verdi联合仿真传送门现在输入了一个压缩的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

qq_40549426的博客 1016

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

TensorRT-LLM对Qwen2.5-VL多模态模型的技术实现深度解析

TensorRT-LLM作为NVIDIA推出的高性能大语言模型推理框架,近期在Qwen2.5-VL多模态模型支持方面实现了重大技术突破。本文从技术架构、优化策略、部署实践三个维度深入分析TensorRT-LLM如何为Qwen2.5-VL提供端到端的推理加速解决方案。 ## Qwen2.5-VL模型架构的技术特性 Qwen2.5-VL作为通义千问团队推出的多模态大模型,其架构设计融合了视觉编码器

gitblog_01165的博客 850

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Qwen2.5-VL-7B-Instruct部署教程:RTX 4090多卡并行推理可行性与负载均衡配置

本文介绍了如何在星图GPU平台上自动化部署👁️Qwen2.5-VL-7B-Instruct镜像,实现多卡并行推理。该平台简化了部署流程,用户可快速搭建支持视觉理解与对话的AI助手,典型应用场景包括批量分析图片内容、自动描述图像或根据网页截图生成代码,有效提升多模态任务处理效率。

weixin_34725745的博客 411

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

EVA-01部署教程:Qwen2.5-VL-7B模型并行推理配置(Tensor/Pipeline)与吞吐提升

本文介绍了如何在星图GPU平台上自动化部署🟣 EVA-01: VISUAL NEURAL SYNC SYSTEM镜像,以快速搭建基于Qwen2.5-VL-7B多模态大模型的视觉理解应用。该镜像集成了炫酷的交互界面,能够高效完成图片内容分析、场景描述等任务,适用于智能客服、创意内容分析等多种场景。

weixin_36444661的博客 330

【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL5

现在输入了一个压缩的16位数据,其实际上包含了四个数据[3:0][7:4][11:8][15:12],现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号(在不输出时候拉低)在testbench中,clk为周期5ns的时钟,rst为低电平复位。0: 不输出且只有此时的输入有效。,其分支分别表示各个sel信号的情况;输入信号 d, clk, rst。3:输出[3:0]+[15:12]2:输出[3:0]+[11:8]1:输出[3:0]+[7:4]信号,首先在语句块中想到使用。

qq_44629558的博客 395

牛客刷题verilog

这是通过的代码,但总觉得波形图不对,根据波形图。中间应该没有寄存器才对。

hahalueluelue的博客 122

Qwen3-VL推理吞吐低?批量处理优化部署实战案例

本文介绍了基于星图GPU平台自动化部署Qwen3-VL-2B-Instruct镜像的优化实践,通过集成vLLM推理框架实现动态批处理,显著提升多模态模型在WebUI场景下的推理吞吐。该方案适用于图文理解、视频分析等AI应用开发,支持高并发低延迟服务部署,助力开发者高效构建生产级AI应用。

weixin_42502089的博客 139

【入门篇】vl4 移位运算和乘法

Verilog移位和乘除法运算

qq_35825604的博客 862

Qwen3-VL-30B部署最低硬件配置要求

深入解析百亿参数多模态模型Qwen3-VL-30B的部署硬件需求,详解为何必须使用8×A100/H100及以上配置,涵盖显存计算、GPU选型、分布式并行策略与真实应用场景,并结合vLLM框架提供可落地的部署方案。

weixin_42613360的博客 1226

牛客网Verilog快速入门题目收获——移位运算与乘法(VL4)

掌握移位和拼接运算符。学会如何将奇数倍的乘除法进行拆分。

H19981118的博客 2902

Qwen3-VL-30B跨模态推理性能评测:为何需要强大GPU支持?

Qwen3-VL-30B作为大规模视觉语言模型,依赖强大GPU支持以应对高分辨率图像处理、长序列注意力计算和KV缓存占用等挑战。其跨模态推理能力虽经稀疏激活优化,仍需A100/H100级别显卡与多卡并行架构保障效率。

weixin_30798867的博客 935
上一篇: VL4-移位运算与乘法
下一篇: VL6 多功能数据处理器
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大西瓜的科研日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值