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

Verilog零基础入门(边看边练与测试仿真)-笔记

文章目录

  • 第一讲
  • 第二讲
  • 第三讲
  • 第四讲

第一讲

1、testbench 没有端口,所以没括号
2、testbench 输入端 之后要变动 所以定义为reg
3、#10 :过10个时间单位 ;’timescale 1ns/10ps 即 1ns 的时间单位 10ps的时间精度
4、reg 型变量赋值的时候 用带箭头的等号“<=”,

第二讲

1、always@(a or b or sel) 中的a, b, c是敏感变量,输入。有几个输入写几个输入
2、在always 里面赋值饿变量需要是reg型。
在这里插入图片描述
3、$stop 系统任务
4、多路选择器
在这里插入图片描述
代码:

//四选一逻辑
`timescale 1ns/1ps
module fn_sw_4(a,b,sel,y);
input 							a;
input 							b;
input[1:0]					sel;
output 							y;reg 								y;
always@(a or b or sel)begincase(sel)2'b00:begin y <= a&b;end2'b01:begin y <= a|b;end2'b10:begin y <= a^b;end2'b11:begin y <= ~(a^b);endendcase
endendmodule//-------testbench of fn_sw_4----------
module fn_sw_4_tb;
reg[3:0]						absel;
fn_sw_4 fn_sw_4(.a(absel[0]),.b(absel[1]),.sel(absel[3:2]),.y(y));initial beginabsel<=0;   //先赋初始值#200  $stop;
endalways #10 absel<=absel+1;   //每过10ns,absel加一,这样经过16次加一,可以取完四位寄存器所有可能,并观察y的取值
endmodule

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

第三讲

1、补码转换
在这里插入图片描述
代码:

//补码转换逻辑
`timescale 1ns/10ps
module comp_conv(a,a_comp);input[7:0]             a;
output[7:0]            a_comp;wire[6:0]              b;//按位取反的幅度位
wire[7:0]              y;//负数的补码assign                 b=~a[6:0];
assign                 y[6:0]=b+1;//按位取反+1
assign                 y[7]=a[7];//符号位不变assign                 a_comp=a[7]==1?y:a;//二选一
//assign               a_comp=a[7]?{a[7],~a[6:0]+1}:a;//可替换上面的wire和assign语句
endmodule //----------testbench of comp_conv--------
module comp_conv_tb;
reg[7:0]               a_in;
wire[7:0]              y_out;
comp_conv comp_conv(.a(a_in),.a_comp(y_out));
initial begin a_in<=0;#3000     $stop;
endalways#10 a_in=a_in+1;
endmodule

在这里插入图片描述
2、7段数码管译码器
在这里插入图片描述
代码:

//七段码译码器
`timescale 1ns/10ps
module seg_dec(num,a_g);
input[3:0]                 num;
output[6:0]                a_g;//a_g-->{a,b,c,d,e,f,g}reg[6:0]                   a_g;
always@(num)begincase(num)4'd0: a_g<=7'b111_1110; 4'd1: a_g<=7'b011_0000;  4'd2: a_g<=7'b110_1101;  4'd3: a_g<=7'b111_1100;  4'd4: a_g<=7'b011_0011;  4'd5: a_g<=7'b101_1011;  4'd6: a_g<=7'b101_1111;  4'd7: a_g<=7'b111_0000;  4'd8: a_g<=7'b111_1111;  4'd9: a_g<=7'b111_1011;  default: a_g<=7'b000_0001;  //中杠endcaseendendmodule//--------test bench of seg_dec---------
module seg_dec_tb;
reg[3:0]                    num_in;
wire[6:0]                   a_g_out;
seg_dec seg_dec(.num(num_in),.a_g(a_g_out));
initial begin num_in<=0;#100        $stop;
end														always #10 num_in<=num_in+1;															
endmodule

如图:输入3,应该是111_1110,根据波形图是正确的。
在这里插入图片描述

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

第四讲

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运算的结果
assign           sum=y+1;//组合逻辑部分always@(posedge clk or negedge res)
if(~res) beginy<=0;
end
else beginy<=sum;
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

仿真结果:
在这里插入图片描述

相关文章:

Verilog零基础入门(边看边练与测试仿真)-笔记

文章目录 第一讲第二讲第三讲第四讲 第一讲 1、testbench 没有端口&#xff0c;所以没括号 2、testbench 输入端 之后要变动 所以定义为reg 3、#10 &#xff1a;过10个时间单位 &#xff1b;’timescale 1ns/10ps 即 1ns 的时间单位 10ps的时间精度 4、reg 型变量赋值的时候 用…...

LLMs之Code:Code Llama的简介、安装、使用方法之详细攻略

LLMs之Code&#xff1a;Code Llama的简介、安装、使用方法之详细攻略 导读&#xff1a;2023年08月25日(北京时间)&#xff0c;Meta发布了Code Llama&#xff0c;一个可以使用文本提示生成代码的大型语言模型(LLM)。Code Llama是最先进的公开可用的LLM代码任务&#xff0c;并有潜…...

[国产MCU]-W801开发实例-MQTT客户端通信

MQTT客户端通信 文章目录 MQTT客户端通信1、MQTT介绍2、W801的MQTT客户端相关API介绍3、代码实现本文将详细介绍如何在W801中使用MQTT协议通信。 1、MQTT介绍 MQTT 被称为消息队列遥测传输协议。它是一种轻量级消息传递协议,可通过简单的通信机制帮助资源受限的网络客户端。 …...

搭建个人hMailServer 邮件服务实现远程发送邮件

文章目录 1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网映射工…...

React的 虚拟DOM创建

React是一个流行的JavaScript库&#xff0c;用于构建用户界面。它通过使用虚拟DOM来提高性能和渲染速度。本文将详细介绍React的虚拟DOM的创建方式、用法和案例&#xff0c;以及相关代码和解释。 虚拟DOM是什么&#xff1f; 虚拟DOM是React的一个重要概念&#xff0c;它是一个…...

供热管网安全运行监测,提升供热管网安全性能

城市管网是城市的“生命线”之一&#xff0c;是城市赖以生存和发展的基础&#xff0c;在城市基础设施高质量发展中发挥着重要作用。供热管网作为城市生命线中连接供热管线与热用户的桥梁&#xff0c;担负着向企业和居民用户直接供热的重要职责。随着城市热力需求的急剧增加&…...

手写Mybatis:第14章-解析和使用ResultMap映射参数配置

文章目录 一、目标&#xff1a;ResultMap映射参数二、设计&#xff1a;ResultMap映射参数三、实现&#xff1a;ResultMap映射参数3.1 工程结构3.2 ResultMap映射参数类图3.3 添加类型处理器3.3.1 日期类型处理器3.3.2 类型处理器注册机 3.4 存放映射对象3.4.1 结果标志3.4.2 结…...

GE VME-7807RC-410001350-93007807-410001 K数字输入模块

通道数目&#xff1a; VME-7807RC-410001350-93007807-410001K 数字输入模块通常具有多个数字输入通道&#xff0c;可以同时监测多个数字信号。 输入类型&#xff1a; 这种模块通常用于监测数字信号&#xff0c;例如开关状态&#xff08;ON/OFF&#xff09;或计数器脉冲。 采…...

C++插入加密,替代加密

void 插入加密() {//缘由https://bbs.csdn.net/topics/396047473int n 1, j 0;char aa[60]{}, aaa[] "abcde";cin >> aa;while (j < 60 && (aa[j] - \0))cout << aa[j] << aaa[j % 5]; } void 插入加密() {//缘由https://bbs.csdn.n…...

Web前端开发概述

Web&#xff08;World Wide Web&#xff0c;全球广域网&#xff09;是指一种基于互联网的信息系统&#xff0c;通过超文本链接将全球各地的文档、图像、视频等资源相互关联起来&#xff0c;并通过Web浏览器进行交互浏览和访问。Web的发展使得人们可以方便地获取和共享各种类型的…...

Web自动化 —— Selenium元素定位与防踩坑

1. 基本元素定位一 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By # selenium Service("../../chromedriver.exe") # driver webdriver.Chrome(serviceService) # driver.…...

【数据结构】树和二叉树的概念及结构(一)

目录 一&#xff0c;树的概念及结构 1&#xff0c;树的定义 2&#xff0c;树结点的分类及关系 3&#xff0c;树的表示 二&#xff0c;二叉树的概念及结构 1&#xff0c;二叉树的定义 2&#xff0c;特殊的二叉树 3&#xff0c;二叉树的性质 4&#xff0c;二叉树的存储结构 1&…...

第三章 USB应用笔记之USB鼠标(以STM32 hal库为例)

第三章 USB应用笔记之USB鼠标&#xff08;以STM32 hal库为例&#xff09; 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 第三章 USB应用笔记之USB鼠标&#xff08;以STM32 hal库为例&#xff09;前言一、STM32 U…...

微服务01-基本介绍+注册中心EureKa

基本介绍 服务集群&#xff1a;一个请求由多个服务完成&#xff0c;服务接口暴露&#xff0c;以便于相互调用&#xff1b; 注册中心&#xff1a;每个服务的状态&#xff0c;需要进行维护&#xff0c;我们可以在注册中心进行监控维护服务&#xff1b; 配置中心&#xff1a;这些…...

【ES6】JavaScript中的异步编程:async和await

在JavaScript中&#xff0c;异步编程是一种处理长时间运行的操作的方法&#xff0c;这些操作包括读取文件、网络请求或处理大数据等。在传统的回调函数中&#xff0c;代码按照顺序执行&#xff0c;一旦遇到长时间运行的操作&#xff0c;就需要回调函数来处理结果。这使得代码变…...

51单片机热水器温度控制系统仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机热水器温度控制系统仿真设计 1.主要功能&#xff1a;2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单 &&下载链接 51单片机热水器温度控制系统仿真设计( proteus仿真程序原理图报告讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译器&#x…...

Spring Boot 配置文件加密

方式一&#xff1a;Spring Cloud Config 一、建立config server 1. build.gradle 文件中添加&#xff1a; plugins {id javaid org.springframework.boot version 2.7.0id io.spring.dependency-management version 1.0.11.RELEASE }ext {set(springCloudVersion, "202…...

【树形权限】树形列表权限互斥选择、el-tree设置禁用等等

需求&#xff1a;按照权限管理配置的数据权限树展开&#xff1b;点击查看按钮后进入其他指定机构选择弹窗为一树形结构 本文章对项目中出现得关键点进行总结。 一、实现如上树形列表 在 element 官方表格示例中&#xff0c;实现树形表格列表数据渲染&#xff0c;非常简单。只…...

ubuntu 22.04安装cuda、cudnn、conda、pytorch

1、cuda 视频连接 https://www.bilibili.com/video/BV1bW4y197Mo/?spm_id_from333.999.0.0&vd_source3b42b36e44d271f58e90f86679d77db7cuda 11.8 https://developer.nvidia.com/cuda-toolkit-archive点击进入 https://developer.nvidia.com/cuda-11-8-0-download-arc…...

2023 最新前端面试题 (HTML 篇)

1. src 和 href 的区别 src 用于替换当前元素&#xff08;引入&#xff09;&#xff0c;href 用于在当前文档和引用资源之间确立联系&#xff08;引用&#xff09; &#xff08;1&#xff09;src&#xff08;source&#xff09; 指向外部资源的位置&#xff0c;指向的内容将会嵌…...

别再手动改稿了!用LaTeX的soul包搞定论文批注(删除线/高亮/引用兼容)

LaTeX高效批注指南&#xff1a;用soul包实现学术协作的优雅排版 当导师的红色批注铺满论文初稿&#xff0c;或是合作者发来二十处修改意见时&#xff0c;大多数研究者都会面临一个共同困境——如何在保留原始内容的同时清晰标记修改痕迹&#xff1f;传统的手动添加删除线或高亮…...

海康MVS软件从下载到实时预览:MV-CA013-21UC工业相机5分钟极速上手教程

海康MVS软件从下载到实时预览&#xff1a;MV-CA013-21UC工业相机5分钟极速上手教程 工业视觉系统正成为智能制造的核心组件&#xff0c;而海康威视MV-CA013-21UC工业相机凭借其高帧率、低噪声和稳定性能&#xff0c;在自动化检测、机器人引导等领域广受欢迎。本文将带您从零开…...

Qwen3.5-9B-AWQ-4bit部署教程:Docker容器内路径映射与模型加载权限配置

Qwen3.5-9B-AWQ-4bit部署教程&#xff1a;Docker容器内路径映射与模型加载权限配置 1. 引言 今天我们要探讨的是如何在Docker环境中部署Qwen3.5-9B-AWQ-4bit模型&#xff0c;这是一个支持图像理解的多模态模型。这个模型能够结合上传的图片与文字提示词&#xff0c;输出中文分…...

【架构实战】健康检查与故障转移机制

一、为什么需要健康检查 在分布式系统中&#xff0c;服务实例可能因为各种原因变得不可用&#xff0c;而调用方却毫不知情&#xff0c;继续向故障实例发送请求&#xff0c;导致大量失败。常见的服务不可用场景&#xff1a;- 进程假死&#xff1a;Java进程存在但无法响应请求&am…...

TTL门电路在现代数字设计中的应用:从基础到OC门实战

TTL门电路在现代数字设计中的应用&#xff1a;从基础到OC门实战 在数字电路设计的工具箱里&#xff0c;TTL&#xff08;晶体管-晶体管逻辑&#xff09;门电路就像瑞士军刀一样经典而实用。尽管CMOS技术如今占据主流&#xff0c;但TTL在特定场景下依然展现出独特的优势。特别是在…...

别再手动改配置了!用Docker Compose一键部署Pikachu靶场,5分钟搞定测试环境

5分钟极速搭建Pikachu靶场&#xff1a;Docker Compose自动化实战指南 每次准备网络安全练习环境时&#xff0c;最头疼的莫过于反复安装配置各种服务——PHP版本不兼容、MySQL连接失败、Web服务器配置错误...这些琐碎问题消耗了本应用于渗透测试学习的宝贵时间。今天要分享的这套…...

ROS2 Humble下,如何用MoveIt! Action接口让机械臂“听话”?一个抓取demo的完整复盘

ROS2 Humble下机械臂精准控制实战&#xff1a;从MoveIt! Action接口到完整抓取任务 在工业自动化和服务机器人领域&#xff0c;机械臂的精准运动控制一直是核心挑战。ROS2 Humble版本中的MoveIt!框架为这一挑战提供了优雅的解决方案&#xff0c;而理解其Action接口的运作机制则…...

3步解锁音乐自由:NCMDump帮你破解网易云音乐NCM格式

3步解锁音乐自由&#xff1a;NCMDump帮你破解网易云音乐NCM格式 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为下载的网易云音乐只能在特定App里播放而烦恼吗&#xff1f;当你精心挑选的歌单无法在车载音响、运动手表或家庭音…...

SOONet模型Python入门实践:用10行代码实现视频片段搜索

SOONet模型Python入门实践&#xff1a;用10行代码实现视频片段搜索 你是不是也遇到过这种情况&#xff1a;手里有一段很长的视频&#xff0c;想快速找到某个特定场景&#xff0c;比如“主角第一次出场的时候”或者“那个爆炸的镜头”&#xff0c;结果只能手动拖进度条&#xf…...

驯服中点电位:I型NPC三电平逆变器离网系统建模与动态平衡策略

1. I型NPC三电平逆变器的中点电位难题 搞电力电子的兄弟们都知道&#xff0c;中点钳位型&#xff08;NPC&#xff09;三电平逆变器有个让人又爱又恨的特点——中点电位漂移。这就像你骑自行车时突然发现车把不听使唤&#xff0c;明明直线行驶却总往一边偏。在离网系统中&#x…...