「Verilog学习笔记」信号发生器

news2024/11/17 21:32:41
专栏前言

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

        方波的实现,较为简单,只需要设置一个计数器,使输出保持10个时钟为0,跳变为20,再保持10个时钟。依次循环。可以按照如下的过程实现:cnt每个时钟加一,当cnt=19时,将wave的值置为0,同时cnt置为0;当cnt=9时,将wave的值置为20。

        锯齿波的实现,即输出信号由0每次加一递增到20,然后从20跳变到0。可以按照如下的过程实现:当wave=20,将wave的值置为0,其余时刻,wave加一。

        三角波的实现,类似于锯齿波,但当wave达到20时,不是跳变到0,而是以一为步长递减到0。可以设置一个指示信号up,当up的值是1时,wave每个时钟加一。当up的值为0时,则减一。        

`timescale 1ns/1ns
module signal_generator(
	input clk,
	input rst_n,
	input [1:0] wave_choise,
	output reg [4:0]wave
	);

	reg [4:0] cnt ; 
	reg up ;
	always @ (posedge clk or negedge rst_n) begin 
		if (!rst_n) begin 
			wave <= 5'd0 ; 
			cnt <= 5'd0 ; 
		end
		else begin 
			case (wave_choise) 
				2'b00 : begin 
					if (cnt == 5'd19) begin 
						wave <= 5'd0 ; 
						cnt <= 5'd0 ; 
					end
					else if (cnt == 5'd9) begin 
						wave <= 5'd20 ;
						cnt <= cnt + 1'd1 ; 
					end
					else begin 
						wave <= wave ; 
						cnt <= cnt + 1'd1 ; 
					end
				end
				2'b01 : begin
					if (wave == 5'd20) wave <= 5'd0 ; 
					else wave <= wave + 1'd1 ; 
				end
				2'b10 : begin 
					if (wave == 5'd20) begin 
						wave <= wave - 1'd1 ; 
						up <= 1'd0 ; 
					end
					else if (wave == 5'd0) begin 
						wave <= wave + 1'd1 ; 
						up <= 1'd1 ; 
					end
					else if (up) wave <= wave + 1'd1 ; 
					else wave <= wave - 1'd1 ; 
				end
				default : 
					wave <= 1'b0 ; 
			endcase
		end
	end			
  
endmodule

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1261815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode [中等]3. 无重复字符的最长子串

3. 无重复字符的最长子串 - 力扣&#xff08;LeetCode&#xff09; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 1. 滑动窗口&#xff08;Sliding Window&#xff09;&#xff1a; 滑动窗口是一种用于处理数组或列表的子数组或子序列的问题…

信奥编程 1168:大整数加法

解析&#xff1a;在c中需要考虑这么几个问题&#xff0c;第一个是大数据的输入&#xff0c;第二个是大数据的存储&#xff0c;第三是大数据的计算方式&#xff0c;最后是输出。 针对上述几个问题&#xff0c;第一个问题&#xff0c;采用字符串的方式或者数组加循环的方式接收输…

视频文件+EasyDarwin做摄像机模拟器模拟RTSP流很方便,还能做成系统服务,方法与流程

之前我看到过一家人工智能做算法的企业&#xff0c;用EasyDarwinFFMPEG做了一个摄像机的模拟器&#xff0c;方法大概是&#xff1a; 用ffmpeg读取mp4等类型的视频文件&#xff08;当然ffmpeg啥都能读取&#xff09;&#xff0c;再以RTSP协议的形式推送给EasyDarwin&#xff1b…

【Python】基础练习题_组合数据类型_2

dictMenu f’卡布奇洛’:32,‘摩卡’:30,‘抹茶蛋糕’:28,‘布朗尼’:26}&#xff0c; dictMenu 中存放了你的双人下午套餐&#xff08;包括咖啡2份和点心2份)的价格,请编写程序,让Python帮忙计算并输出消费总额。 dictMenu {卡布奇洛: 32, 摩卡: 30, 抹茶蛋糕: 28, 布朗尼: 2…

一个注解搞定 SpringBoot 接口防刷

来源&#xff1a;blog.csdn.net/weixin_42533856 /article/details/82593123 首先是写一个注解类 拦截器中实现 注册到springboot中 在Controller中加入注解 说明&#xff1a;使用了注解的方式进行对接口防刷的功能&#xff0c;非常高大上&#xff0c;本文章仅供参考 一&am…

戴上HUAWEI FreeBuds Pro 3, 近离城市喧嚣,尽情享受无损音质在耳边漫游

无损音质&#xff0c;由耳入心。戴上FreeBuds Pro 3&#xff0c;随着音符跃动、流转&#xff0c;感受生活细节之美&#xff0c;在这个温暖冬日来一场耳边漫游。

【Python小知识 - 5】:QGraphicsDropShadowEffect设置按钮阴影

文章目录 QGraphicsDropShadowEffect介绍案例 QGraphicsDropShadowEffect介绍 QGraphicsDropShadowEffect 是 PyQt 中的一个类&#xff0c;它可以在图形对象周围产生阴影效果&#xff0c;常用于美化界面。通过调整阴影的偏移、颜色、模糊度等参数&#xff0c;可以实现不同风格…

饰品价格持续下跌,steam搬砖还有搞头吗?

已经11月了&#xff0c;你手里的饰品出完了吗&#xff1f;csgo市场价格持续下跌&#xff0c;许多人听风就是雨&#xff0c;盲目跟风抛货、囤货&#xff0c;抛货是认为市场崩了&#xff0c;赶紧退场降低损失&#xff0c;不然会输得很惨&#xff0c;囤货的则认为有跌必有升&#…

【bmp文件怎么批量改成JPG?】

操作 在需要修改格式的图片文件夹中新建一个TXT文本文档 文档中输入(ren *.原图片类型 *.需要修改成的图片类型) ren *.bmp *.jpg 输入完成后保存 将刚刚新建的文档重命名 修改为.bat后缀的文件 弹出弹窗&#xff0c;点击是 双击此程序&#xff0c;即可将文件夹中的BMP图…

Databend 开源周报第 121 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 支持追加流 Da…

网站HTTPS证书

作为拥抱数字化时代的重要一环&#xff0c;建设一个安全可靠的网站对于吸引访问者并保持用户信任至关重要。在这方面&#xff0c;HTTPS证书是不可或缺的工具。HTTPS&#xff08;安全套接层传输协议&#xff09;证书是由受信任的第三方CA机构颁发的一种数字证书。它通过加密通信…

nodejs+vue+elementui足球篮球联赛系统

系统主要是以后台管理员管理为主。管理员需要先登录系统然后才可以使用本系统&#xff0c;管理员可以对个人中心、用户管理、赛事信息管理、球队信息管理、球员信息管理、比赛分值板管理、系统管理等进行添加、查询、修改、删除&#xff0c;以保障足球联赛管理系统的正常运行。…

【一文带你读懂docker,从入门到精通!】

dockerfile 是啥?dockerfile 用来构建 docker 镜像的文件。 前言 Docker 入门到精通 1、DockerFile 介绍 dockerfile 是啥?dockerfile 用来构建 docker 镜像的文件。 具体步骤&#xff1a; 1、编写一个 dockerfile 文件 2、docker build 构造一个镜像 3、docker run 运行…

SpringCloudAlibaba之sentinel 流量卫兵(流控,熔断降级) ——详细讲解

目录 一、什么是sentinel 二、sentinel使用 1. sentinel dashboard的安装 2.启动 3.访问web界面 ​编辑 4.登录 三、sentinel 实时监控服务 1.创建项目引入依赖 2.配置 3.启动服务 4.访问dashboard界面查看服务监控 5.开发服务 6.启动进行调用 7.查看监控界面 四、senti…

使用契约的链上期权合约

我们很高兴地宣布利用比特币契约的力量在链上实施期权合约。 只要该链支持比特币式契约&#xff08;例如 Bitcoin SV 和 MVC&#xff09;&#xff0c;就可以直接在区块链上执行复杂的金融合约&#xff0c;例如看涨期权和看跌期权。 与通常需要多个中介机构的传统金融平台不同&a…

骨传导耳机对人有伤害吗?佩戴骨传导耳机有什么副作用?

使用骨传导耳机并不会对人体造成伤害&#xff0c;也没有副作用&#xff0c;相反&#xff0c;使用骨传导耳机还可以在一定程度上起到保护听力的作用。 一、什么是骨传导耳机&#xff1f; 首先让我们先了解下骨传导耳机是什么&#xff1a; 骨传导耳机是指通过人体骨骼来传递声…

机器学习(1)机器学习类型和机器学习的主要概念

0.前提 深度学习&#xff08;Deep Learing&#xff09;是机器学习&#xff08;Machine Learning&#xff09;领域中的一个新的研究方向&#xff0c;在如今的时代研究深度学习的大模型是十分热门的。我不知道有多少人有关注到最近openai的事件啊&#xff0c;说个比较让我惊讶的…

【数字化转型方法论读书笔记】选型数据中台的几大建议

企业数字化转型离不开企业数字化技术的配备。但企业在选择数字化技术时也面临着一个问题&#xff0c;就是如何在大胆采用先进的数字化技术和对技术进行投资之间找到平衡&#xff0c;将投资风险降到最低&#xff0c;毕竟错误的技术选型会给企业带来不可估量的损失。 熟悉先进数…

抖音团购小程序怎么开通?怎么做抖音团购?

餐饮同行们已经纷纷上架了抖音团购服务&#xff0c;还没入局的商家还在等待什么呢&#xff1f;如果你还没有抓住这个流量的红利期&#xff0c;那就真的OUT了&#xff01;为了在这个竞争激烈的市场中脱颖而出&#xff0c;建议你尽快行动起来&#xff0c;打造一个属于自己的抖音团…

MES系统中的工厂计时计件工资

在制造业中&#xff0c;为了提高工资核算的准确性和效率&#xff0c;实时的数据跟踪和数据处理成为了关键。本文将从多个方面详细介绍MES系统在工厂计时计件工资系统方面的解决方案&#xff0c;以及MES系统与ERP系统如何实现联动集成。 一、MES系统在工厂计时计件工资系统中的解…