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

牛客网Verilog刷题——VL52

牛客网Verilog刷题——VL52

  • 题目
  • 答案

题目

  请编写一个十进制计数器模块,当mode信号为1,计数器输出信号递增,当mode信号为0,计数器输出信号递减。每次到达0,给出指示信号zero。模块的接口信号图如下:

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

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

信号类型输入/输出位宽描述
clkwireInput1系统时钟信号
rst_nwireInput1异步复位信号,低电平有效
modewireInput1模式选择信号,当该信号为1,计数器每个时钟加一;为0,则每个时钟减一
numberregOutput44比特位宽,计数器当前输出读数
zeroregOutput1过零指示信号,当number为0时,该信号为1,其他时刻为0

答案

`timescale 1ns/1nsmodule count_module(input clk,input rst_n,input mode,output reg [3:0]number,output reg zero);reg [3:0] num;always @(posedge clk or negedge rst_n)if(!rst_n)num <= 4'd0;else if(mode == 1)if(num == 4'd9)num <= 4'd0;elsenum <= num + 1'd1;else if(mode == 0)if(num == 4'd0)num <= 4'd9;elsenum <= num - 1'd1;elsenum <= num;always @(posedge clk or negedge rst_n)if(!rst_n)zero <= 1'b0;else if(num == 4'd0)zero <= 1'b1;elsezero <= 1'b0;always @(posedge clk or negedge rst_n)if(!rst_n)number <= 4'd0;elsenumber <= num;endmodule
http://www.lryc.cn/news/105938.html

相关文章:

  • 4-7月预测价差方向准确率统计
  • 《Vue3+Typescript》一个简单的日历组件实现
  • 第一章 修学旅行
  • 如果你也能认识并使用这个低代码平台,那真的是泰酷辣——iVX低代码平台
  • uC-OS2 V2.93 STM32L476 移植:系统移植篇
  • gitee修改代码提交操作步骤说明
  • 物联网|可变参数的使用技巧|不一样的点灯实验|访问外设的寄存器|操作寄存器实现点灯|硬件编程的基本流程-学习笔记(11)
  • 30. 利用linprog 解决 生产决策问题(matlab程序)
  • 一百三十九、Kettle——Linux安装Kettle8.2
  • react路由在layout中的监听
  • Java反射(三)
  • ansible-playbook roles编写lnmp剧本
  • 相机可用性变化监听AvailabilityCallback流程分析
  • 使用Python多线程实现生产者消费者模型
  • Notepad++工具通过正则表达式批量替换内容
  • 从零构建深度学习推理框架-3 手写算子relu
  • 想做上位机,学C#还是QT?
  • Ansible —— playbook 剧本
  • ARM寻址方式
  • 【JAVA】String ,StringBuffer 和 StringBuilder 三者有何联系?
  • 关于计数以及Index返回订单号升级版(控制字符长度,控制年月标记)
  • 【计算机网络】11、网桥(bridge)、集线器(hub)、交换机(switch)、路由器(router)、网关(gateway)
  • 第九篇-自我任务数据准备
  • 2023.8.1号论文阅读
  • webpack优化前端框架性能
  • Unity UGUI的Outline(描边)组件的介绍及使用
  • 爆改vue3 setup naiveui可编辑table
  • 功率放大器的种类有哪三种类型
  • HDFS 分布式存储 spark storm HBase
  • Vue3文字实现左右和上下滚动