当前位置: 首页 > news >正文

Verilog零基础入门(边看边练与测试仿真)-时序逻辑-笔记(4-6讲)

文章目录

  • 第四讲
  • 第五讲
  • 第六讲

第四讲

1、计数器
在这里插入图片描述
代码:

//计数器
`timescale 1ns/10ps
module counter(clk,res,y);
input           clk;
input           res;
output[7:0]     y;reg[7:0]        y;
wire[7:0]        sum;//+1运算的结果(1)
assign           sum=y+1;//组合逻辑部分(2)always@(posedge clk or negedge res)
if(~res) beginy<=0;
end
else beginy<=sum;             //可省略上面(1)(2)语句,y<=y+1;
end
endmodule//--------testbench of counter------
module counter_tb;
reg             clk,res;
wire[7:0]       y;counter counter(.clk(clk),.res(res),.y(y));initial beginclk<=0;res<=0;#17     res<=1;#6000   $stop;
endalways #5 clk<=~clk;endmodule

仿真结果:
在这里插入图片描述
2、4级伪随机码发生器
在这里插入图片描述
在这里插入图片描述

代码:

//四级伪随机码发生器
`timescale 1ns/10ps
module m_gen(clk,res,y);
input                 clk;
input                 res;
output                y;reg[3:0]              d;
assign                y=d[0];always@(posedge clk or negedge res)
if(~res)begind<=4'b1111;
end
else begind[2:0]<=d[3:1];      //右移一位d[3]<=d[3]+d[0];     //模二加
endendmodule//-------testbench of m_gen-------
module m_gen_tb;
reg                    clk,res;
wire                   y;
m_gen m_gen(.clk(clk),.res(res),.y(y));initial beginclk=0;res=0;#17     res=1;#600   $stop;
end
always #5 clk=~clk;endmodule

仿真波形图:
在这里插入图片描述
在这里插入图片描述
小结:
在这里插入图片描述

第五讲

1、秒计数器(s_counter, 0-9秒循环计数)

在这里插入图片描述
代码:

//2023-09-07,time
//秒计数器,0-9循环;
`timescale 1ns/10ps
module s_counter(clk,res,s_num);
input               clk;
input               res;
output[3:0]         s_num;parameter           frequency_clk=24;//24MHzreg[24:0]             con_t;     //秒脉冲分频计数器;
reg                  s_pulse;   //秒脉冲尖;
reg[3:0]       			 s_num;
always@(posedge clk or negedge res)
if(~res)begincon_t<=0;s_pulse<=0;s_num<=0;end
else begin//if( con_t==frequency_clk*1000000-1)beginif( con_t==frequency_clk*1000-1)begin//为了仿真方便观察,数值改小了con_t<=0;endelse begincon_t<= con_t+1;endif( con_t==0)begins_pulse<=1;endelse begins_pulse<=0;endif(s_pulse)beginif(s_num==9)begins_num<=0;endelse begins_num<=s_num+1;endend
end
endmodule//-------testbench of s_counter------
module s_counter_tb;
reg           clk,res;
wire[3:0]     s_num;
s_counter s_counter(.clk(clk),.res(res),.s_num(s_num));initial beginclk<=0;res<=0;#17   res<=1;#300000 $stop;
endalways#5 clk=~clk;endmodule

仿真图:
在这里插入图片描述2、秒计数器加数码管显示

在这里插入图片描述
3、0-59秒显示
在这里插入图片描述
小结:
在这里插入图片描述

第六讲

1、相邻点累加
在这里插入图片描述
构想:
在这里插入图片描述
代码:

//2023-09-11,time
//相邻16点相加;
`timescale 1ns/10ps
module sigma_16p(clk,res,data_in,syn_in,data_out,syn_out);
input                   clk;
input        						res;
input[7:0]              data_in;//采样信号
input                   syn_in;//采样时钟
output[11:0]            data_out;//累加结果输出
output                  syn_out;//累加结果同步脉冲reg                     syn_in_n1;//syn_in的反向延时;
wire                    syn_pulse;//采样时钟上升沿识别脉冲;
assign									syn_pulse=syn_in&syn_in_n1;
reg[3:0]                con_syn;//采样时钟循环计数器wire[7:0]               comp_8;//补码
wire[11:0]              d_12;//升位结果
assign                  comp_8=data_in[7]?{data_in[7],~data_in[6:0]+1}:data_in;//补码运算;
assign                  d_12={comp_8[7],comp_8[7],comp_8[7],comp_8[7],comp_8};
reg[11:0]               sigma;//累加计算;
reg[11:0]								data_out;
reg                     syn_out;always@(posedge clk or negedge res)
if(~res)beginsyn_in_n1<=0;con_syn<=0;sigma<=0;data_out<=0;syn_out<=0;
end
else beginsyn_in_n1<=~syn_in;if(syn_pulse)begincon_syn<=con_syn+1;endif(syn_pulse)beginif(con_syn==15)beginsigma<=d_12;data_out<=sigma;syn_out<=1;endelse beginsigma<=sigma+d_12;endendelse beginsyn_out<=0;end
endendmodule//---------testbench of sigma_16p_tb-------
module sigma_16p_tb;
reg                     clk,res;
reg[7:0]                data_in;
reg                     syn_in;
wire[11:0]              data_out;
wire                    syn_out;
sigma_16p sigma_16p(.clk(clk),.res(res),.data_in(data_in),.syn_in(syn_in),.data_out(data_out),.syn_out(syn_out));initial beginclk<=0;res<=0;data_in=1;syn_in<=0;#17     res<=1;#25000  $stop;
endalways #5 clk<=~clk;always #100 syn_in<=~syn_in;endmodule

仿真结果:
data_in=1:
在这里插入图片描述
data_in=8’b1000_0001 //data_in=-1在这里插入图片描述

小结:
在这里插入图片描述

相关文章:

Verilog零基础入门(边看边练与测试仿真)-时序逻辑-笔记(4-6讲)

文章目录 第四讲第五讲第六讲 第四讲 1、计数器 代码&#xff1a; //计数器 timescale 1ns/10ps module counter(clk,res,y); input clk; input res; output[7:0] y;reg[7:0] y; wire[7:0] sum;//1运算的结果&#xff08;1&#xff0…...

2023-09-12力扣每日一题

链接&#xff1a; 1462. 课程表 IV 题意 一个pair<int,int>表示a是b的前置 进行n次查询&#xff0c;查询q是否是p的前置&#xff08;可以不是直接前置&#xff09; 解&#xff1a; 就是要把01、12、13这种能转换出02、03&#xff0c;弗洛伊德即可 无环无负权 实际…...

leetcode面试题:交换和(三种方法实现)

交换和&#xff1a; 给定两个整数数组&#xff0c;请交换一对数值&#xff08;每个数组中取一个数值&#xff09;&#xff0c;使得两个数组所有元素的和相等。 返回一个数组&#xff0c;第一个元素是第一个数组中要交换的元素&#xff0c;第二个元素是第二个数组中要交换的元…...

前端可视化界面开发技术:实战与优化

引言 在当今的互联网时代&#xff0c;数据可视化已经成为信息展示和交互的重要方式。特别是在前端开发领域&#xff0c;可视化界面的应用越来越广泛&#xff0c;涉及到数据监控、分析和决策等多种场景。本文将深入探讨前端可视化界面开发的关键技术&#xff0c;通过实例解析提…...

Python实现机器学习(下)— 数据预处理、模型训练和模型评估

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。本门课程将介绍人工智能相关概念&#xff0c;重点讲解机器学习原理机器基本算法&#xff08;监督学习及非监督学习&#xff09;。使用python&#xff0c;结合sklearn、Pycharm进行编程&#xff0c;介绍iris&#xff08;鸢尾…...

树结构处理,list和tree互转

1、实体类 package com.iot.common.test.entity;import lombok.Data;import java.util.List;/*** description:* author:zilong* date:2023/9/8*/ Data public class Node {//idprivate String id;//父节点idprivate String pId;//名称private String name;//编码private Stri…...

可视化大屏设计模板 | 主题皮肤(报表UI设计)

下载使用可视化大屏设计模板&#xff0c;减少重复性操作&#xff0c;提高报表制作效率的同时也确保了报表风格一致&#xff0c;凸显关键数据信息。 软件&#xff1a;奥威BI系统&#xff0c;又称奥威BI数据可视化工具 所属功能板块&#xff1a;主题皮肤上传下载&#xff08;数…...

Spring Boot + Vue的网上商城之客服系统实现

Spring Boot Vue的网上商城之客服系统实现 在网上商城中&#xff0c;客服系统是非常重要的一部分&#xff0c;它能够为用户提供及时的咨询和解答问题的服务。本文将介绍如何使用Spring Boot和Vue.js构建一个简单的网上商城客服系统。 思路 在本教程中&#xff0c;我们学习了…...

RabbitMQ: return机制

1. Return机制 Confirm只能保证消息到达exchange&#xff0c;无法保证消息可以被exchange分发到指定queue。 而且exchange是不能持久化消息的&#xff0c;queue是可以持久化消息。 采用Return机制来监听消息是否从exchange送到了指定的queue中 2.Java的实现方式 1.导入依赖 &l…...

记录一些奇怪的报错

错误&#xff1a;AttributeError: module distutils has no attribute version 解决方案&#xff1a; 第一步&#xff1a;pip uninstall setuptools 第二步&#xff1a;conda install setuptools58.0.4 错误&#xff1a;ModuleNotFoundError: No module named _distutils_hac…...

Ubuntu 安装redis数据库,并设置开机自启动

1、下载安装包 wget http://download.redis.io/releases/redis-7.0.9.tar.gz 2、解压 tar -zxvf redis-7.0.9.tar.gz 3、复制到解压缩的包移动到/usr/local/ sudo mv ./redis-7.0.9 /usr/local/ 4、编译 cd /usr/local/redis-7.0.9 sudo make 5、测试: 时间会比较长&#xff0…...

基于开源模型搭建实时人脸识别系统(五):人脸跟踪

继续填坑&#xff0c;之前已经讲了人脸检测&#xff0c;人脸识别实战之基于开源模型搭建实时人脸识别系统&#xff08;二&#xff09;&#xff1a;人脸检测概览与模型选型_开源人脸识别模型_CodingInCV的博客-CSDN博客&#xff0c;人脸检测是定位出画面中人脸的位置&#xff0c…...

VUE | 配置环境变量

本篇目录 1. 创建开发环境配置文件2. 创建正式环境配置文件3. 在代码中访问环境变量4. 加载环境变量 在 Vue 项目中是使用 .env 文件来定义和使用不同的环境变量&#xff0c;这些文件在 Vue 项目根目录下创建。推荐有几种环境就创建几个 .env 文件&#xff0c;下面就开发环境和…...

Dynamic-TP入门初探

背景 在使用线程池的过程中&#xff0c;会出现一些痛点&#xff1a; 代码中创建了一个线程池&#xff0c;但是不知道那几个核心参数设置多少比较合适。凭经验设置参数值&#xff0c;上线后发现需要调整&#xff0c;改代码重新发布服务&#xff0c;非常麻烦。线程池相对开发人…...

Git的基本操作:远程操作

7 Git的远程操作 远程操作主要是指&#xff0c;在不同的仓库之间进行提交和代码更改。是一个明显的对等的分布式系统。其中本地个仓库与远程仓库&#xff0c;不同的远程仓库之间都可以建立这种关系。这种关系之间的操作主要有pull和push。 远程仓库 创建SSH key远程仓库和本…...

【IOC,AOP】spring的基础概念

IOC 控制反转 对象的创建控制权转交给外部实体&#xff0c;就是控制反转。外部实体便是IOC容器。其实就是以前创建java对象都是我们new一下&#xff0c;现在我们可以把这个new交给IOC容器来做&#xff0c;new出来的对象也会交由IOC容器来管理。这个new出来的对象则称为Bean。 …...

安全实战 | 怎么用零信任防范弱密码?

防范弱密码&#xff0c;不仅需要提升安全性&#xff0c;更需要提升用户体验。 比如在登录各类业务系统时&#xff0c;我们希望员工登录不同系统不再频繁切换账号密码&#xff0c;不再需要3-5个月更换一次密码&#xff0c;也不再需要频繁的输入、记录、找回密码。 员工所有的办…...

1-4 AUTOSAR方法论

总目录——AUTOSAR入门详解AUTOSAR入门详解目录汇总&#xff1a;待续中。。。https://xianfan.blog.csdn.net/article/details/132818463 目录 一、前言 二、方法论 三、单个ECU开发流程 一、前言 汽车生产供应链上有以下角色&#xff1a;OEM、TIER1、TIER2&#xff0c;其主…...

MFC C++ 数据结构及相互转化 CString char * char[] byte PCSTR DWORE unsigned

CString&#xff1a; char * char [] BYTE BYTE [] unsigned char DWORD CHAR&#xff1a;单字节字符8bit WCHAR为Unicode字符:typedef unsigned short wchar_t TCHAR : 如果当前编译方式为ANSI(默认)方式&#xff0c;TCHAR等价于CHAR&#xff0c;如果为Unicode方式&#xff0c…...

多版本CUDA安装切换

系统中默认的安装CUDA为12.0&#xff0c;现在需要在个人用户下安装CUDA11.7。 CUDA 下载 CUDA官网下载 安装 Log file not open.Segmentation fault (core dumped)错误 将/tmp/cuda-installer.log删除即可。重新安装&#xff0c;去掉驱动的安装&#xff0c;设置Toolkit的安装…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...