【Verilog语法】比较不同计数器的运算方式,其中有一个数是延迟打一拍的效果,目的是使得两个计数器的结果相同。

比较不同计数器的运算方式,其中有一个数是延迟打一拍的效果,目的是使得两个计数器的结果相同。

      • 1,第一种
      • 2,第二种
      • 3,第三种

第三种方案,完成实现。

1,第一种

(1)RTL


module c(
input clk,
input rst_n,
// input a,
// input b,
output cnt1,
output cnt2
);reg [4:0] cnt1, cnt2;
always@(posedge clk or negedge rst_n)    beginif(!rst_n)  begincnt1    <= 0;cnt2    <= 0;endelse if(cnt1 <= 16)    begincnt1    <= cnt1 + 1;cnt2    <= cnt1;        endelse   begincnt1 <= 0;cnt2 <= 0;end         
endendmodule

(2)TB


module tb_c;
reg clk;
reg rst_n;
wire [4:0]   cnt1;
wire [4:0]   cnt2;always #10 clk = ~clk;initial beginclk = 1; rst_n =1;#20;    rst_n = 0;#40;    rst_n = 1;    end c uu(
.clk(clk),
.rst_n(rst_n),
.cnt1(cnt1),
.cnt2(cnt2)
);endmodule

(3)仿真
在这里插入图片描述

2,第二种

(1)RTL


module c(
input clk,
input rst_n,
// input a,
// input b,
output cnt1,
output cnt2
);reg [4:0] cnt1, cnt2;
always@(posedge clk or negedge rst_n)    beginif(!rst_n)  begincnt1    <= 0;cnt2    <= 0;endelse if(cnt2 <= 16)    begincnt1    <= cnt1 + 1;cnt2    <= cnt1;        endelse   begincnt1 <= 0;cnt2 <= 0;end         
endendmodule

(2)TB


module tb_c;
reg clk;
reg rst_n;
wire [4:0]   cnt1;
wire [4:0]   cnt2;always #10 clk = ~clk;initial beginclk = 1; rst_n =1;#20;    rst_n = 0;#40;    rst_n = 1;    end c uu(
.clk(clk),
.rst_n(rst_n),
.cnt1(cnt1),
.cnt2(cnt2)
);endmodule

(3)仿真
在这里插入图片描述

3,第三种

(1)RTL


module c(
input clk,
input rst_n,
// input a,
// input b,
output cnt1,
output cnt2
);reg [4:0] cnt1, cnt2;
// 1
always@(posedge clk or negedge rst_n)    beginif(!rst_n)  begincnt1    <= 0;endelse if(cnt1 < 16)    begincnt1    <= cnt1 + 1;       // 1endelse   begincnt1 <= 0;end         
end// 2
always@(posedge clk or negedge rst_n)    beginif(!rst_n)  begincnt2    <= 0;endelse if(cnt2 < 16)    begincnt2    <= cnt1;               // 0endelse   begincnt2 <= 0;end         
endendmodule

(2)TB

module tb_c;
reg clk;
reg rst_n;
wire [4:0]   cnt1;
wire [4:0]   cnt2;always #10 clk = ~clk;initial beginclk = 1; rst_n =1;#20;    rst_n = 0;#40;    rst_n = 1;    end c uu(
.clk(clk),
.rst_n(rst_n),
.cnt1(cnt1),
.cnt2(cnt2)
);endmodule

(3)仿真

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习自学笔记一:神经网络和深度学习

神经网络是一种模拟人脑神经元之间相互连接的计算模型&#xff0c;它由多个节点&#xff08;或称为神经元&#xff09;组成&#xff0c;并通过调整节点之间的连接权重来学习和处理数据。深度学习则是指利用深层次的神经网络进行学习和建模的机器学习方法。 假设有一个数据集&a…

SAP Service服务重注册技术手册

当SAP服务被卸载后,或SAP虚拟机整机copy后(可能还需要涉及主机名更改),需要对SAP服务重注册。 在路径 \sapmnt\<SID>\ DVEBMGS00\exe下使用程序sapstartsrv.exe来卸载、安装SAP服务: 其中<SID>、NR参考Service中需要卸载的服务名(卸载后,Services列表中的SA…

力扣刷题-链表理论基础

什么是链表 什么是链表&#xff0c;链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null&#xff08;空指针的意思&a…

Android开发笔记 :理解Fragment

Android开发笔记&#xff1a;理解Fragment 导言 本篇文章产生的原因很简单&#xff0c;就是我在了解Android Jetpack中的Lifecycle框架时发现Lifecycle具体时间和状态的更新都是由一个名为ReportFragment的Fragment来跟踪的&#xff0c;为了更好的了解Fragment是如何追踪Activ…

从Python代码到诗

&#x1f433;序言 在Python社区&#xff0c;没有强制的编码标准&#xff0c;这虽然赋予了开发者更多的自由&#xff0c;但也导致代码风格不一致性。使得部分代码变得晦涩难懂&#xff0c;本文将探讨一系列的开发技巧和最佳实践&#xff0c;开发出优雅的Python脚本。 1、参数接…

基于AVR128单片机智能电风扇控制系统

一、系统方案 模拟的电风扇的工作状态有3种&#xff1a;自然风、常风及睡眠风。使用三个按键S1-S3设置自然风、常风及睡眠风。 再使用两个按键S4和S5&#xff0c;S4用于定时电风扇定时时间长短的设置&#xff0c;每按一次S4键&#xff0c;定时时间增加10秒&#xff0c;最长60秒…

iOS——present相关属性以及dismiss多级的方法

push和present 两者的区别 push: push由视图栈控制&#xff0c;每一个视图都入栈&#xff0c;调用之前的视图则需要出栈&#xff0c;可返回任意一层&#xff0c;一般用于同一业务不同界面之间的切换。 push是由UINavigationController管理的视图控制器堆栈&#xff0c;在wind…

vue项目打包优化

首先第一步通过浏览器看首次加载的问题大小&#xff0c;时间跨度等方面入手 1. Coverage观察 Coverage是chrome开发者工具的一个新功能&#xff0c;从字面意思上可以知道它是可以用来检测代码在网站运行时有哪些js和css是已经在运行&#xff0c;而哪些js和css是还没有用到的&a…

PID之Simulink仿真

昨天&#xff0c;在中南大学面试的老师&#xff0c;老师突然问到如何调PID&#xff0c;关于PID&#xff0c;我只知道一些基本概念&#xff0c;实际中并没有做过相关PID的项目&#xff0c;就连仿真也没搞过&#xff0c;所以今天就照着网上的教程做了PID的仿真&#xff0c;调PID的…

实现人工智能的去中心化,权力下放是最佳途径!

Web3和人工智能&#xff08;AI&#xff09;的交集&#xff0c;已成为加密社区中最热门的争论话题之一。毕竟&#xff0c;生成式AI正在彻底改变传统软件堆栈的所有领域&#xff0c;Web3也不例外。鉴于去中心化是Web3的核心价值主张&#xff0c;许多新兴的Web3生成AI项目和场景都…

KT142C语音芯片flash型用户如何更新固件的说明_V2

目录 一、简介 2.1 让芯片进入PC模式 2.2 双击提供的exe程序即可 一、简介 正常的情况下&#xff0c;用户肯定是不需要更新固件的&#xff0c;因为芯片出厂默认就烧录了对应的程序固件&#xff0c;但是有客户可能需要小修小改&#xff0c;或者订制一下某些功能&#xff0c…

全国职业技能大赛云计算--高职组赛题卷②(容器云)

全国职业技能大赛云计算--高职组赛题卷②&#xff08;容器云&#xff09; 第二场次题目&#xff1a;容器云平台部署与运维任务1 Docker CE及私有仓库安装任务&#xff08;5分&#xff09;任务2 基于容器的web应用系统部署任务&#xff08;15分&#xff09;任务3 基于容器的持续…