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

牛客网Verilog刷题——VL51

牛客网Verilog刷题——VL51

  • 题目
  • 答案

题目

  请编写一个十六进制计数器模块,计数器输出信号递增每次到达0,给出指示信号zero,当置位信号set 有效时,将当前输出置为输入的数值set_num。模块的接口信号图如下:

在这里插入图片描述
  模块的时序图如下:

在这里插入图片描述
  输入输出描述:

信号类型输入/输出位宽描述
clkwireInput1系统时钟信号
rst_nwireInput1异步复位信号,低电平有效
setwireInput1置位指示信号,当该信号有效时,表示将输出信号强制置为set_num
set_numwireInput44比特信号,当set信号有效时,将该信号的数字赋予输出信号number
zeroregOutput1过零指示信号,当number计数到0时,该信号为1,其余时刻为0
numberregOutput44比特位宽,表示计数器的当前读数

答案

`timescale 1ns/1nsmodule count_module(input clk,input rst_n,input set,input [3:0] set_num,output reg [3:0]number,output reg zero);reg [3:0] r_number;always @(posedge clk or negedge rst_n)if(!rst_n)r_number <= 4'd0;else if(set)r_number <= set_num;else if(r_number == 4'd15)r_number <= 4'd0;elser_number <= r_number + 1'b1;always @(posedge clk or negedge rst_n) if(!rst_n)zero <= 1'b0;else if(r_number=='d0)zero <= 1'b1;elsezero <= 1'b0;always @(posedge clk or negedge rst_n) if(!rst_n)number <= 'd0;elsenumber <= r_number;endmodule
http://www.lryc.cn/news/105730.html

相关文章:

  • 从零实现深度学习框架——Transformer从菜鸟到高手(一)
  • 数组指针
  • C++设计模式之过滤器设计模式
  • SpringBoot整合RedisTemplate操作Redis数据库详解(提供Gitee源码)
  • SQL 执行计划管理(SPM)
  • 浅谈微服务异步解决方案
  • 【音视频SDK测评】线上K歌软件开发技术选型
  • Jackson:String转object反序列化失败
  • Spark_Core---6
  • 游戏运营需要什么条件和准备?
  • SVN限制Message提交的格式
  • windows下安装anaconda、pycharm、cuda、cudnn、PyTorch-GPU版本
  • 【计算机网络】传输层协议 -- UDP协议
  • python制作超高难度走迷宫游戏,你要来挑战嘛~(赶紧收藏)
  • springboot整合tio-websocket方案实现简易聊天
  • 《TCP IP网络编程》第十三章
  • 驱动开发 day8 (设备树驱动,按键中断实现led亮灭)
  • DataX将MySQL数据同步到HDFS中时,空值不处理可以吗
  • P3373 【模板】线段树 2(乘法与加法)(内附封面)
  • 实现langchain-ChatGLM API调用客户端(及未解决的问题)
  • 【AltWalker】模型驱动:轻松实现自动化测试用例的生成和组织执行
  • 大数据课程E3——Flume的Sink
  • 如何快速做单元测试?
  • 不同对象的集合转换
  • 【机器学习】Gradient Descent
  • 直播读弹幕机器人:直播弹幕采集+文字转语音(附完整代码)
  • K3s vs K8s:轻量级对决 - 探索替代方案
  • dev控件gridControl,gridview中添加合计
  • SpringBoot基础认识
  • 二十三种设计模式第十九篇--命令模式