有时候在复杂系统设计的时候会用遇到让“计数器在某个区间内来回不停递增递减”的问题。
话不多说,我们直接上代码。
以0-10的循环计数为例。
工具:Modelsim, VScode
1.准备工作
首先在电脑上新建三个文件夹,SRC、TB以及SIM,用来放置源代码、仿真文件以及仿真工程文件。
一定不要怕麻烦,特别是新手一定要注意代码的分类工作!良好的分类能够大大的提高工作效率。
刚接触代码量小,几十行代码一个文件就搞定了。但是随着从业时间的增加,工作复杂度的提升,代码的难度也会随之提升,如果不做好分类管理,面对几十个源代码,十几个仿真文件……崩溃是必然的。
请注意:一定不能有中文路径!!


2.工程建立
- 在src文件中添加一个.v文件,名字自拟,最好能够体现出文件的特性。
module test (
input sys_clk,
input rst_n,
);
reg flag;
reg [7:0] adc_data;
always @(posedge sys_clk or negedge rst_n) begin
if (~rst_n)
flag <= 1'd0;
else
case (flag)
1'd0:
if (adc_data == 8'd9) // -1
flag <= 1'd1;
else
flag <= 1'd0;
1'd1:
if (adc_data == 8'd1) // +1
flag <= 1'd0;
else
flag <= 1'd1;
default: flag <= flag;
endcase
end
always @(posedge sys_clk or negedge rst_n) begin
if (~rst_n) begin
adc_data <= 8'd0;
end
else if (flag == 1'd0)
adc_data <= adc_data + 8'd1;
else if (flag == 1'd1)
adc_data <= adc_data - 8'd1;
else
adc_data <= adc_data;
end
endmodule
- 在tb文件夹中新建文件,给出仿真所需要的激励。我们此次所需的只有时钟和复位。时钟设置为50Mhz,复位1000ns。
`timescale 1 ns /1 ps
module tb_test;
reg sys_clk;
reg rst_n;
test u_tb_test(
.sys_clk (sys_clk),
.rst_n (rst_n)
);
initial begin
sys_clk = 0;
rst_n = 0;
#1000;
rst_n = 1;
#20000;
end
always #10 sys_clk = ~ sys_clk;
endmodule
- 在sim文件夹中新建一个Modelsim仿真工程,添加src,tb中的文件,此过程不再展示。
3.仿真验证
仿真1us,观察波形。实现了0-10直接的循环计数,设计成功。

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
FPGA
+关注
关注
1646文章
22069浏览量
619729 -
仿真分析
+关注
关注
3文章
108浏览量
33967
发布评论请先 登录
相关推荐
热点推荐
雷电(雷击)计数器的原理、作用及行业应用解决方案
安全事故。雷电(雷击)计数器作为防雷系统中的重要组成部分,扮演着“记录雷击事件、辅助安全运维”的关键角色,已经成为智能防雷系统中不可或缺的一环。 二、雷电(雷击)计数器的原理 1. 工作原理 雷电计数器主要依靠电磁

?尘埃粒子计数器有什么特点
在当今对空气质量要求日益严苛的时代,尘埃粒子计数器作为一种高效、准确的检测工具,正逐渐成为众多领域重要的得力助手。它采用激光散射原理,以稳定的气流流速对空气进行采样,当空气中的微粒通过内部光敏
智能雷击计数器的综合行业解决方案
智能雷击计数器 是一种用于记录雷击事件发生次数的高科技装置,广泛应用于防雷系统中。与传统的机械式雷击计数器相比,智能雷击计数器不仅能够精确记录雷击次数,还能对雷电参数进行分析,并通过智能通信模块

获取通信事件计数器与获取通信事件记录
11功能码主要用于获取从设备通信计数器中的状态字和事件计数的值,本功能码不支持广播模式。通过在通信报文之前和之后读取通信事件计数值,可以确定从设备是否正常处理报文。
雷击计数器的概述与应用分析
雷击计数器 是一种用于监测和记录电力系统、通信系统、建筑物等关键设施遭受雷击次数的设备。它能够有效地帮助管理人员掌握雷电活动的情况,以便进行预防性维护和风险评估。雷击计数器根据工作原理可以分为无源

频率计数器的技术原理和应用场景
的不断涌现,频率计数器也将与这些技术相结合,实现更加智能化、网络化的测量功能。例如,它可以通过与传感器、云计算等技术的结合,实现对远程信号的实时监测和分析。综上所述,频率
发表于 10-18 14:03
74ls163是几进制同步计数器
到9,然后回到0,形成一个循环。 以下是关于74LS163的一些基本信息: 功能 :74LS163 是一个同步计数器,意味着所有的计数位同时更新。它通常用于需要精确控制计数序列的应用中
台式尘埃粒子计数器的优势有哪些
在当今精密制造与洁净环境日益重要的背景下,台式尘埃粒子计数器凭借其全面的监测与记录能力,成为了众多行业的质量控制工具。台式尘埃粒子计数器不仅集成了温湿度及大气压力测量功能,更是将智能化监测推向新高度。
台式尘埃粒子计数器的功能优势与应用
一、台式尘埃粒子计数器的工作原理 台式尘埃粒子计数器是用于测量空气中尘埃颗粒物浓度的仪器,它基于激光散射原理能够连续采集并计算单位体积内空气中不同粒径的悬浮颗粒物个数,即颗粒物浓度分布,进而换算成为
智能防雷计数器行业应用解决方案
雷击灾害作为一种常见的自然现象,会对建筑物、设备以及人类活动产生严重影响,特别是在电子设备广泛应用的今天,雷击带来的损失往往是巨大的。为了有效监测和统计雷电活动的频率与强度,智能防雷计数器应运而生

计数器的特点和参数
计数器作为一种常用的电子元件,在电子设备和系统中扮演着至关重要的角色。它们不仅用于存储和增减数字值,还广泛应用于时序和频率测量、事件计数、控制步进电机和伺服系统、错误检测和纠正以及计算机数据存储和操作等领域。以下将详细阐述
评论