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

Verilog学习笔记3——数据位宽、阻塞/非阻塞赋值、二进制码、独热码、格雷码比较、编写原则、三态门、

文章目录

  • 前言
  • 一、数据位宽
    • 1、有符号定点数
    • 2、Nbit和Mbit相加或相乘
  • 二、阻塞赋值和非阻塞赋值
  • 三、timescale
  • 四、三态门的设计
  • 五、verilog模块编程原则
  • 六、二进制码、独热码、格雷码比较
    • 1、独热码
    • 2、格雷码
    • 3、二进制码


前言

2023.4.5 清明节


一、数据位宽

N位有符号数:-2^(N-1) ~ 2^(N-1) -1
N位无符号数:0 ~ 2^N-1
如:8bit无符号数范围0-255,有符号数范围-128-127(0占掉了正数)

1、有符号定点数

范围:
最大值:3 + 2^-1 + 2^-2 + 2^-3 + 2^-4
最小值:-4 - (2^-1 + 2^-2 + 2^-3 + 2^-4 +2^-5)

N = 8,3Q5    //总共8位数,整数部分3位,小数部分5位

2、Nbit和Mbit相加或相乘

相加位数:+1
相乘位数:N+M

二、阻塞赋值和非阻塞赋值

组合电路要使用阻塞赋值,时序电路使用非阻塞赋值

阻塞赋值非阻塞赋值
=<=
立刻执行,立刻改变一个周期计算右边的值,下个周期赋值给左边,在过程块结束时才完成赋值操作
执行过程不受其他语句执行的影响不影响其他语句的执行
其他语句在执行后顺序执行并行执行
在串行语句块中,顺序执行;在并行语句块中,同时执行在串行语句块中,执行没有先后之分,各条语句并行执行

三、timescale

  • 时间精度要小于等于时间单位
  • 只能是1、10、100这样的数
  • verilog是没有默认的timescale,没有声明的模块可能会错误的使用前面模块的定义
`timescale 时间单位/时间精度
`timescale 1ns/1ps

四、三态门的设计

三态门:既不是0,也不是1,电阻很大,相当于开路

always@(din or en)beginif(en)dout = din;elsedout = 1'bz;
end//或者assign赋值
assign dout = en ? din : 1'bz;

五、verilog模块编程原则

  • 时序电路建模时,用非阻塞赋值。
  • 锁存器电路建模时,用非阻塞赋值
  • 用always块建立组合逻辑模型时,用阻塞赋值。
  • 在同一个always块中建立时序和组合逻辑电路时,用非阻塞赋值。
  • 在同一个always块中不要既用非阻塞赋值又用阻塞赋值。
  • 不要在一个以上的 always 块中为同一个变量赋值。
  • $strobe系统任务来显示用非阻塞赋值的变量值。
  • 在赋值时不要使用#0延时。

六、二进制码、独热码、格雷码比较

1、独热码

一种使用N位状态寄存器来对N个状态进行编码的方法,每个状态都由它独立的寄存器位,并且在任意时候,其中只有一位有效。

  • 优点:状态比较时仅需要比较一位,从而在一定程度上简化了译码逻辑,节约了组合逻辑资源,速度更快

  • 缺点:需要较多的寄存器资源,且编码效率低,适合用于状态数较少的情况。

2、格雷码

每次只有一位发生变化的二进制编码方法

  • 优点:每次只改变1bit,低功耗,发送亚稳态概率降低
  • 缺点:无权码,不能直接进行计算

3、二进制码

编码简单,可以进行运算,但是翻转较多,容易产生亚稳态

在这里插入图片描述

相关文章:

Verilog学习笔记3——数据位宽、阻塞/非阻塞赋值、二进制码、独热码、格雷码比较、编写原则、三态门、

文章目录前言一、数据位宽1、有符号定点数2、Nbit和Mbit相加或相乘二、阻塞赋值和非阻塞赋值三、timescale四、三态门的设计五、verilog模块编程原则六、二进制码、独热码、格雷码比较1、独热码2、格雷码3、二进制码前言 2023.4.5 清明节 一、数据位宽 N位有符号数&#xff1…...

C++ Qt智能指针使用教程

C++ Qt智能指针使用教程 contents 一、 QSharedPointer用法二、 QWeakPointer三、QScopedPointer四、QPointer五、Qt智能指针需要注意的坑Qt提供了类似C++11智能指针的实现,用于自动管理动态分配的内存,避免内存泄漏和悬挂指针等问题。使用智能指针可以使代码更加安全、简洁和…...

【题解】BZOJ4975 区间翻转

题目大意 两人博弈&#xff0c;有一个 nnn 的排列 a1,a2,…,ana_1,a_2,\dots,a_na1​,a2​,…,an​&#xff0c;每次操作为选择长度为 4x24x24x2 或 4x34x34x3 的区间&#xff0c;将其翻转&#xff0c;要求翻转后字典序大于翻转前。第一个不能操作的输。Q 先手&#xff0c;T 后…...

火箭参数相关知识

火箭参数相关 前言&#xff1a;学习笔记&#xff0c;很初级部分内容来之相关书籍&#xff0c;入门学习&#xff0c;欢迎指正 1 坐标系右手定则&#xff1a; 伸开手掌&#xff0c;大拇指指向X轴&#xff0c;四指指向Y轴&#xff0c;四指弯曲90后所指向的方向为Z轴。X 、Y、Z并…...

【JavaEE】死锁是什么?如何避免死锁(保姆级讲解)

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶本篇文章将介绍什么是死锁&#xff0c;死锁的四大必要条件&#xff0c;如何去避免死锁~~~ 目录 一、死锁是什么&#xff1f; 二、关于死锁的情况 2.1 一个线程的情况 2.2 两个线程的情况…...

JS 实现占位符截取字符串内容

//charnum占位长度&#xff0c; //str 字符串内容 //返回charnum占位长度 下的字符串长度; function getcharlength(charnum,str){ var len 0; for (var i 0; i < str.length; i) { var c str.charCodeAt(i); //单字节加1 …...

Prophet学习(四)趋势Changepoints

目录 趋势Changepoints&#xff08;Trend Changepoints&#xff09; Prophet中的自动更改点检测&#xff08;Automatic changepoint detection in Prophet&#xff09; 调整趋势灵活性&#xff08;Adjusting trend flexibility&#xff09; 指定变更点的位置&#xff08;Spe…...

超表面学习 初步印象

超表面学习中 第一章 初步认识 一.传统超表面 1.吸波 2.反射相位 3.透射相位 4.电磁带隙 引申出来的超表面基础应用&#xff1a; 1.透波透镜&#xff08;对应透射相位&#xff09; 分为近场和远场 近场&#xff1a;贝塞尔波束等等 远场&#xff1a;方向图控制&#xff08;对应…...

脂肪肝 肾结石 怎么得来的

脂肪肝怎么得来的1.脂肪肝2.肾结石是如何产生的&#xff1f;1.脂肪肝 是由于肝细胞内脂肪堆积过多引起的慢性疾病&#xff0c;引起脂肪肝的因素有多种&#xff0c;由于常常没有自觉症状&#xff0c;往往不易引起人们的重视。常见原因有以下几种&#xff1a; 第一、过量饮酒&a…...

Python 进阶指南(编程轻松进阶):一、处理错误和寻求帮助

原文&#xff1a;http://inventwithpython.com/beyond/chapter1.html 请您不要将计算机当成佣人&#xff0c;因为这样会让您常常感觉很烦躁。比如说当计算机向您显示错误消息时&#xff0c;并不是因为您冒犯了它。计算机是我们大多数人都会接触到的最复杂的工具&#xff0c;但归…...

windows服务器自带IIS搭建网站并发布公网访问【内网穿透】

文章目录1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试3. Cpolar内网穿透3.1 下载安装Cpolar3.2 Cpolar云端设置3.3 Cpolar本地设置4.公网访问测试5.结语转载自远程源码文章&#xff1a;【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透…...

IFPUG功能点度量4:度量事务功能

一、基本概念 1、事务功能 事务功能是处理数据功能的基本过程。 每个事务功能都是一个基本过程。 事务功能由多个逻辑处理来完成。 事务功能包含三种类型&#xff1a;EI、EO、EQ 2、基本过程 一个基本过程是由一个逻辑处理或者多个逻辑处理来完成的。 如何识别&#xf…...

未来公寓智能化设计平台项目(上)

目录 1. 项目背景 1.1 建设背景 1.2 建设依据 2. 未来公寓总体方案设计 2.1 建设目标 2.2 未来公寓服务平台总体架构 2.3 功能简介 2.4 方案优势 3. 社区基础数据中心建设 3.1 建设目标 3.1.1 统一数据资产技术架构 3.1.2 完善和规范数据相关标准 3.1.3 统一元数据…...

Java8新特性 Steam流

Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。 Stream API可以极大提高Java程序员的生产力&#xff0c;让程序员写出高效率、干净、简洁的代码。 这种风格将要处理的元素集合看作一种流&#xff0c; 流在管道中传输&…...

Unity 实现大世界地图的技术原理

在游戏开发中&#xff0c;大世界地图是一种非常重要的场景&#xff0c;它可以让玩家在游戏中自由探索和移动。但是&#xff0c;实现大世界地图也面临着一些技术挑战&#xff0c;比如如何处理大量的地图数据、如何优化地图的加载和渲染等问题。在本文中&#xff0c;我们将介绍Un…...

jQuery制作一个简单的打地鼠游戏(超详细讲解)

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;老茶icon &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;计…...

typora和C51开发环境

经过查阅&#xff0c;可以用wiz和typora联动的方式记录笔记&#xff0c;这样一个文件夹里既可以用typora也可以用内置编辑器&#xff08;一种富文本编辑器&#xff09;&#xff0c;注意同一个文件不能用不同的编辑器&#xff0c;否则会错乱。以下&#xff0c;我列举了用typora的…...

linux echo彩色打印

定义了三个颜色 把打印的内容加载头和尾巴之间即可 pt_head_green"\033[32;1m" pt_head_red"\033[31;1m" pt_head_yellow"\033[33;1m" pt_tail"\033[0m"echo "$pt_head_yellow | make clean |$pt_tail"...

2023年4月PMP®项目管理专业人士认证招生简章

PMP认证是Project Management Institute在全球范围内推出的针对评价个人项目管理知识能力的资格认证体系。国内众多企业已把PMP认证定为项目经理人必须取得的重要资质。 【PMP认证收益】 1、能力的提升&#xff08;领导力&#xff0c;执行力&#xff0c;创新能力&#xff0c;竞…...

Java每日一练(20230410)

目录 1. 二叉树的锯齿形层序遍历 &#x1f31f;&#x1f31f; 2. 从中序与后序遍历序列构造二叉树 &#x1f31f;&#x1f31f; 3. 平衡二叉树 &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专…...

3步实现专业级AI换脸:roop-unleashed创新方案指南

3步实现专业级AI换脸&#xff1a;roop-unleashed创新方案指南 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 在数字创意飞速发展的今天&#xff0c;AI换脸…...

Aurora框架解析:一体化高性能云原生开发平台的设计与实践

1. 项目概述与核心价值如果你在开源社区里混迹过一段时间&#xff0c;尤其是对现代化、高性能的Web开发框架感兴趣&#xff0c;那么“Aurora”这个名字你大概率不会陌生。它不是一个简单的库或者工具&#xff0c;而是一个由社区驱动的、旨在构建下一代企业级应用开发平台的雄心…...

Arm Morello平台模型与CHERI安全扩展开发指南

1. Arm Morello平台模型概述Morello是Arm公司推出的实验性处理器架构&#xff0c;基于CHERI&#xff08;Capability Hardware Enhanced RISC Instructions&#xff09;安全扩展技术。这个平台模型本质上是一个功能准确的虚拟硬件环境&#xff0c;允许开发者在物理芯片问世前18-…...

【Midjourney数字艺术风格终极指南】:20年AI视觉专家亲授7大核心风格参数调优法则(含V6.1新增Realism Mode实测数据)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney数字艺术风格演进与V6.1核心变革 Midjourney自V1发布以来&#xff0c;其图像生成范式经历了从纹理模拟到语义理解、从风格模仿到跨模态协同的深层跃迁。V6.1标志着模型首次在原生架构中集成…...

Arm Iris调试接口:架构设计与工程实践详解

1. Iris调试与追踪接口深度解析调试与追踪技术是嵌入式系统开发的核心支柱&#xff0c;而Arm的Iris接口代表了这一领域的最新进展。作为一名长期从事嵌入式调试工具开发的工程师&#xff0c;我将带您深入剖析这套接口的设计哲学与实战应用。1.1 接口架构设计理念Iris的架构设计…...

如何为深信服超融合平台上的应用快速接入大模型能力

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 如何为深信服超融合平台上的应用快速接入大模型能力 对于在深信服超融合平台上部署业务应用的企业开发团队而言&#xff0c;集成智…...

μSR技术中的双量子Rabi振荡优化与应用

1. 实验背景与核心原理 在量子物理和凝聚态物理研究中&#xff0c;μ子自旋共振&#xff08;μSR&#xff09;技术是一种独特的探测手段。这项技术利用正μ子&#xff08;μ&#xff09;作为微观探针&#xff0c;通过观测其自旋极化行为来研究材料的局部磁环境。当μ子注入样品…...

开源无人机任务控制系统:微服务架构与自主飞行开发实战

1. 项目概述&#xff1a;一个开源的无人机任务控制系统如果你和我一样&#xff0c;玩过一段时间无人机&#xff0c;从最初的“一键起飞”到后来想实现一些自动化的航线飞行&#xff0c;你可能会发现&#xff0c;市面上成熟的任务规划软件&#xff08;比如DJI的Pilot 2或一些地面…...

Mod Engine 2完全指南:告别游戏模组安装烦恼的终极解决方案

Mod Engine 2完全指南&#xff1a;告别游戏模组安装烦恼的终极解决方案 【免费下载链接】ModEngine2 Runtime injection library for modding Souls games. WIP 项目地址: https://gitcode.com/gh_mirrors/mo/ModEngine2 还在为传统游戏模组安装的繁琐流程而烦恼吗&…...

CursorTouch/Web-Use:用JavaScript在桌面端模拟移动端触摸交互

1. 项目概述&#xff1a;当光标变成你的手指你有没有想过&#xff0c;在电脑上浏览网页时&#xff0c;如果能像在手机上那样&#xff0c;直接用手指滑动、点击、缩放&#xff0c;体验会不会更流畅&#xff1f;尤其是在处理一些需要精细操作或快速浏览长文档的场景时&#xff0c…...