当前位置: 首页 > news >正文

「Verilog学习笔记」位拆分与运算

专栏前言

本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网

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

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

`timescale 1ns/1nsmodule data_cal(
input clk,
input rst,
input [15:0]d,
input [1:0]sel,output reg [4:0] out,
output reg validout
);
//*************code***********//reg [15:0] data_lock ; always @ (posedge clk or negedge rst) begin if (~rst) data_lock <= 0 ; else if (!sel) data_lock <= d ; end always @ (posedge clk or negedge rst) begin if (~rst) begin out <= 1'b0 ; validout <= 0 ; end else begin case (sel) 0 : begin out <= 1'b0 ; validout <= 0 ; end 1 : begin out <= data_lock[3:0] + data_lock[7:4] ; validout <= 1 ; end 2 : begin out <= data_lock[3:0] + data_lock[11:8] ; validout <= 1 ; end 3 : begin out <= data_lock[3:0] + data_lock[15:12] ;validout <= 1 ; end endcase end end  //*************code***********//
endmodule

 

http://www.lryc.cn/news/221237.html

相关文章:

  • protobufjs实现protobuf序列化与反序列化
  • el-select多选以tag展示时,超过显示长度以...省略号显示,且在一行展示
  • 计算机网络第4章-通用转发和SDN
  • DDD技术方案落地实践 | 京东云技术团队
  • MySQL 案例:update set 和 and 的坑
  • VSCode remote-ssh 连接远端服务器失败
  • 通达信动量线MTM指标原理详解及MTM底背离选股公式
  • 汇编-DUP操作符
  • 2311C++抽象工厂
  • Lavarel定时任务的使用
  • Java开发者的网络安全指南(二)
  • Python基础学习016__UnitTest
  • 一物一码需求,标签制作功能轻松解决
  • 【Linux】七、基础IO
  • Elasticsearch语法之Term query不区分大小写
  • 远程管理SSH服务
  • Linux 实现原理 — NUMA 多核架构中的多线程调度开销与性能优化
  • Oracle锁处理
  • 持续集成交付CICD:安装Jenkins Slave(从节点)
  • Dart(一):Dart入门
  • [动态规划] (十一) 简单多状态 LeetCode 面试题17.16.按摩师 和 198.打家劫舍
  • 【EI会议投稿】第三届计算机、人工智能与控制工程国际学术会议 (CAICE 2024)
  • python 之 列表推导式
  • 【左程云算法全讲2】链表、栈、队列、递归、哈希表和有序表
  • SQL第三次上机作业
  • 前端事件案例补充
  • 3.8 Android eBPF HelloWorld调试(二)
  • xss如何快速提取cookies
  • 在 ASP.NET C# 中用Aspose.PDF将 PDF 页面转换为 JPG 图像
  • Docker Compose安装milvus向量数据库单机版-milvus基本操作