Verilog刷题笔记62

news/2024/9/19 19:27:20/ 标签: 笔记, fpga开发

题目:
Exams/review2015 fancytimer
This is the fifth component in a series of five exercises that builds a complex counter out of several smaller circuits. You may wish to do the four previous exercises first (counter, sequence recognizer FSM, FSM delay, and combined FSM).
在这里插入图片描述
解题:

module top_module (input clk,input reset,      // Synchronous resetinput data,output [3:0] count,output counting,output done,input ack );parameter s0=0,s1=1,s11=2,s110=3,s1101=4,b1=5,b2=6,b3=7,cnt=8,waitter=9;reg [3:0]state,next_state;reg [15:0]counter;reg [3:0]delay,delay0;always@(posedge clk)beginif(reset)state=s0;elsestate=next_state;endalways@(*)begincase(state)s0:next_state=data?s1:s0;s1:next_state=data?s11:s0;s11:next_state=data?s11:s110;s110:next_state=data?s1101:s0;s1101:next_state=b1;b1:next_state=b2;b2:next_state=b3;b3:next_state=cnt;cnt:next_state=(counter==(delay0+1)*1000-1)?waitter:cnt;waitter:next_state=ack?s0:waitter;endcaseendalways@(posedge clk)begincase(state)s1101:delay[3:0]={delay[2:0],data};b1:delay[3:0]={delay[2:0],data};b2:delay[3:0]={delay[2:0],data};b3:begin delay[3:0]={delay[2:0],data};delay0=delay;endcnt:begin counter=counter+1;if(counter==1000)delay=delay-1;else if(counter==2000)delay=delay-1;else if(counter==3000)delay=delay-1;else if(counter==4000)delay=delay-1;else if(counter==5000)delay=delay-1;else if(counter==6000)delay=delay-1;else if(counter==7000)delay=delay-1;else if(counter==8000)delay=delay-1;else if(counter==9000)delay=delay-1;else if(counter==10000)delay=delay-1;else if(counter==11000)delay=delay-1;else if(counter==12000)delay=delay-1;else if(counter==13000)delay=delay-1;else if(counter==14000)delay=delay-1;else if(counter==15000)delay=delay-1;else if(counter==16000)delay=delay-1;enddefault:begin counter=0;delay=0;endendcaseendassign count=delay;assign counting=state==cnt;assign done=state==waitter;endmodule

结果正确:
在这里插入图片描述

本题结合前面的FSM,为一个较为完整的计数器。


http://www.ppmy.cn/news/1520440.html

相关文章

黑马大事件

项目介绍 演示网站: https://fe-bigevent-web.itheima.net/login 实现 1)创建项目 npm init vuelatest2)安装项目需要的依赖 npm install element-plus --save npm install axios npm install sass -D3)在main.js中加入Elem…

低代码用户中心的构建与应用

引言 在现代软件开发中,低代码平台因其高效、灵活、用户友好的特性而逐渐受到青睐。特别是在用户中心的构建方面,低代码平台能够显著提升开发效率,降低开发成本。本文将探讨如何利用低代码平台构建一个高效的用户中心,并分享一些…

记录工作时的一些错误

1、mobaxterm问题: 解决方案:找不到mottynew.exe 2、虚拟机安装centos7进入不了引导页面 解决方案:检查镜像 虚拟机 192.168.40.128 root/Root yxr/y123x123r123 解决方案: 问题:docker run不起来容器,显…

计算机视觉软件教学平台

1、基本介绍 计算机视觉软件教学平台是中智讯公司开发的一款面向人工智能相关专业机器视觉方向的综合型实验平台,主要满足:图像处理、图像识别、机器视觉应用、边缘计算应用、智能算法等课程的实验和实训,是基于新工科和工程教育思维和专业改…

MATLAB 中的对数计算

在 MATLAB 中,计算对数是进行数学分析和科学计算的常见需求。对数运算在数据分析、信号处理和控制系统中都有广泛应用。本篇博客将详细介绍如何在 MATLAB 中进行对数计算,包括自然对数、常用对数以及任意底数的对数。 1. 自然对数(以 e 为底…

Spark-Yarn模式如何配置历史服务器

在Spark程序结束之后我们也想看到运行过程怎么办? Yarn模式下,通过以下步骤配置历史服务器即可: mv spark-defaults.conf.template spark-defaults.conf修改spark-default.conf 文件,配置日志存储路径 spark.eventLog.enabled true spark.…

xxxSendMessageBSM函数分析

BSM的意思:Broadcast Special Message 第一部分A: //Broadcast Special Message Recipient list #define BSM_ALLCOMPONENTS 0x00000000 #define BSM_VXDS 0x00000001 #define BSM_NETDRIVER 0x00000002 #define BSM_INS…

鸿蒙模拟器篇

1、首先需要在华为官网申请模拟器资格,附链接:鸿蒙模拟器(HarmonyOS Emulator)Beta活动申请 填写相关信息提交申请,申请结果状态在个人中心 — 我的活动页面查看 2、申请通过之后开始下载模拟器 注意&#xff1a…

HTML沙漏爱心

目录 写在前面 完整代码 下载代码 代码分析 系列文章 写在最后 写在前面 教你用HTML语言实现炫酷的沙漏爱心,该代码不仅可以用电脑运行,手机、平板也可以直接运行哦。 完整代码 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><…

自定义注解-接口幂等

使用自定义注解的方式来解决接口幂等性的问题&#xff0c;方法仅供参考&#xff0c;可以按照实际业务进行调整。 一、定义注解 import java.lang.annotation.*; import java.util.concurrent.TimeUnit;/*** 自定义防接口重复提交注解*/ Inherited Target(ElementType.METHOD) …

GhostBSD操作系统简介

GhostBSD 是一个基于 FreeBSD 的 Unix-like 操作系统&#xff0c;专为桌面和笔记本电脑设计。它以 MATE 桌面环境作为默认版本&#xff0c;并提供 XFCE 桌面环境的社区版本。GhostBSD 的目标是简化 FreeBSD 的使用&#xff0c;使其在桌面或笔记本电脑上更容易被新手使用&#x…

Redis的内存淘汰策略- volatile-lru

volatile-lru 策略简介 在 volatile-lru 策略下&#xff0c;当 Redis 的内存使用达到配置的上限&#xff08;maxmemory&#xff09;时&#xff0c;它会优先删除那些设置了过期时间的键&#xff0c;并且选择最近最少使用的键进行删除。LRU 算法的核心思想是&#xff0c;优先删除…

godot开发初体验

点击加号可以创建一个新的场景 点击其它节点可以添加节点 想对某个节点添加子节点可以右键这个节点,然后点击添加子节点 在左下角的文件系统中,可以右键某个场景,并将其设置为主场景,主场景作为程序的入口 点击项目->项目设置-> 输入映射,可以添加一个新的动作,在添加新动…

JS设计模式之“名片设计师” - 工厂方法模式

image.png 前言 上篇文章我们了解到什么是简单工厂模式&#xff0c;请参考上篇文章&#xff1a;JS设计模式之 “神奇的魔术师” - 简单工厂模式&#xff0c;不过这是工厂中最简单的一种&#xff0c;本篇文章我们将同大家一起认识一种更复杂的工厂模式&#xff0c;它将给我们提…

【SpringCloud应用框架】GateWay网关

Spring Cloud Alibaba 之初识GateWay网关 文章目录 一、网关介绍二、网关对比三、GateWay基本概念&#xff1a;执行流程&#xff1a; 总结 一、网关介绍 在微服务架构中&#xff0c;一个系统会被拆分为多个微服务。如果没有网关存在&#xff0c;我们只能在客户端记录梅哥为服务…

编译可执行命令的FFmpeg

上一篇讲到了使用FFmpeg生成视频封面图&#xff0c;其实也可以直接使用FFmpeg相关命令截取一帧的图像数据保存到本地&#xff0c;然后加载到ImageView上&#xff0c;有时候使用命令确实比写代码更加简单和使人轻松一点&#xff0c;所以这一篇是讲解如何导入FFmpeg相关源码 然后…

自然语言处理系列四十八》Word2vec词向量模型》算法原理

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列四十八Word2vec词向量模型》算法原理Word2vec词…

[HZNUCTF 2023 preliminary]easyAPK-快坚持不下去的第三天

第一做安卓题&#xff0c;前提jadx,java环境&#xff0c;模拟器&#xff0c;我配了好久&#xff0c; 这段代码实现了一个简单的登录界面&#xff0c;用户需要输入用户名和密码。用户名和密码会与预设的硬编码值进行比较&#xff0c;登录成功后会启动另一个 Activity。如果密码错…

ChatTCP:一款离线TCP数据包分析macOS APP,致力于让分析TCP数据包像看聊天记录一样简单

ChatTCP是一款离线TCP数据包分析macOS APP&#xff0c;致力于让分析TCP数据包像看聊天记录一样简单&#xff01;已为UI交互方式申请专利&#xff0c;独家聊天会话方式分析TCP数据包&#xff0c;给你不一样的TCP数据包分析体验! ChatTCP是Easy TCP Analysis的离线版本&#xff…

竞赛实战--天池金融风控分类问题

背景 1、金融风控分类问题&#xff0c;作为机器学习竞赛是一个比较好的选择 2、如何进行数据处理 代码 数据分析部分 #!/usr/bin/env python # coding: utf-8import os import gc import numpy as np import pandas as pd import warnings import lightgbm as lgb import c…