牛客网Verilog刷题——VL51

牛客网Verilog刷题------VL51

题目

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

模块的时序图如下:

输入输出描述:

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

答案

c 复制代码
`timescale 1ns/1ns

module 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;
  else
    r_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;
  else
    zero <= 1'b0;

always @(posedge clk or negedge rst_n) 
  if(!rst_n)
    number <= 'd0;
  else
    number <= r_number;

endmodule
相关推荐
知识充实人生1 小时前
静态时序分析详解之时序路径类型
fpga开发·时序路径·关键路径
9527华安21 小时前
Xilinx系列FPGA实现DP1.4视频收发,支持4K60帧分辨率,提供2套工程源码和技术支持
fpga开发·音视频·dp1.4·4k60帧
cycf1 天前
高速接口基础
fpga开发
forgeda1 天前
从Vivado集成Lint功能,看FPGA设计的日益ASIC化趋势
fpga开发·vivado·lint·eco·静态检查功能
hexiaoyan8272 天前
国产化FPGA开发板:2050-基于JFMK50T4(XC7A50T)的核心板
fpga开发·工业图像输出·vc709e板卡·zynq 通用计算平台·模拟型号处理
雨洛lhw2 天前
The Xilinx 7 series FPGAs 设计PCB 该选择绑定哪个bank引脚,约束引脚时如何定义引脚电平标准?
fpga开发·bank·电平标准
红糖果仁沙琪玛2 天前
FPGA ad9248驱动
fpga开发
minglie12 天前
XSCT/Vitis 裸机 JTAG 调试与常用命令
fpga开发
沐欣工作室_lvyiyi2 天前
基于FPGA的电梯控制系统设计(论文+源码)
单片机·fpga开发·毕业设计·计算机毕业设计·电子交易系统
阿sir1982 天前
ZYNQ PS XADC读取芯片内部温度值,电压值。
fpga开发