数字IC学习笔记(二)

数字IC学习笔记(二)


宏定义,异步FIFO, 时钟来源,复位信号


文章目录

  • 数字IC学习笔记(二)
  • 1. `define宏定义的使用
  • 2,异步FIFO原理
  • 3,时钟来源
  • 4,复位
  • 参考资料


1. `define宏定义的使用

  • 宏定义的使用:
`define AAA = 1assign a = b + `AAA
  • 宏定义的用法和parameter参数相同,但宏定义可以统一写到一个参数文件里,`include进行调用;
`include "abc.v"
  • 宏定义也可以通过判断编译时参数的选择,根据不同的配置来选择使用对应的宏定义;(例如VERSION1,VERSION2,VERSION3,VERSION4)
`ifdef VERSION1使用版本1的定义
`elsif VERSION2使用版本2的定义
`else VERSION3使用版本3的定义
`end`ifndef VERSION4如果编译时没有定义参数VERSION4·undef AAA    取消对AAA的宏定义

2,异步FIFO原理

代码的读写地址,可以理解为FIFO读写的次数

always(posedge clk_r or negedge rst_n_r)if(!rst_n_r)beginaddr_w_1d <= 'd0;addr_w_2d <= 'd0;        endelse beginaddr_w_1d <= addr_w;  //addr_w是由fifo写操作时钟域clk_w 产生addr_w_2d <= addr_w_1d ; //打2拍消除亚稳态     endassign fifo_empty = addr_w_2d == addr_r;
  • 由于写地址addr_w,要经过读操作时钟clk_r打2拍后才能传输到addr_w_2d,所以存在明明FIFO里当前还有数据,但addr_w_2d未及时更新,因此判断FIFO为空;这种情况成为虚空.
always(posedge clk_w or negedge rst_n_w)if(!rst_n_w)beginaddr_r_1d <= 'd0;addr_r_2d <= 'd0;        endelse beginaddr_r_1d <= addr_r;  //addr_r是由fifo读操作时钟域clk_r 产生addr_r_2d <= addr_r_1d ; //打2拍消除亚稳态     endassign fifo_full = (addr_w_2d - addr_r) == FIFO_DEEP; //FIFO_DEEP为FIFO深度
  • 同理,由于读地址addr_r,要经过写操作时钟clk_w打2拍后才能传输到addr_r_2d,所以存在明明FIFO里还没满,但addr_r_2d未及时更新,因此判断FIFO为满;这种情况成为虚满.

虚满和虚空会导致异步FIFO提前拉起empty或full信号,但却保证异步FIFO不会丢失数据

3,时钟来源

  • 3.1 振荡器(RC Osillator,RCO)
    • 由电阻和电容组成,通电后产生时钟信号;
    • 集成在芯片内部,成本较低,精度较差
  • 3.2 晶体/晶振
    • 元器件, 通电后产生时钟信号;
    • 集成在芯片外部,成本较高,误差较小
  • 3.3 锁相环(Phase Locked Loop,PLL)
    • 需要输出低频的参考时钟,生成输出高频时钟
    • 输入时钟一般由晶体/晶振或RCO电路提供

4,复位

  • 从通电到时钟信号逐步稳定,这段时间内芯片不合适工作,因此需要由复位信号将电路复位住;

  • 复位信号(Power On Reset,POR)通常上电时产生,逐渐拉高,升至高电平(1)后,表示时钟信号稳定,可以开始工作了;

  • 异步复位:随时可以拉低复位信号进行复位

  • 同步释放:拉高复位信号时,拉高的操作同步到当前时钟,防止出现亚稳态。

  • 类似于建立时间和保持时间,复位信号的拉高也有要求。 时钟clock上升沿后的时间 t 1 t_1 t1后拉高,复位信号的上升沿和下一个时钟上升沿的间隔为 t 2 t_2 t2;要求 t 1 t_1 t1必须大于recovery time(恢复时间); 要求 t 2 t_2 t2必须大于removal time(撤销时间);

recovery time:恢复时间。撤销复位时,恢复到非复位状态的电平必须在时钟有效沿到来之前的一段时间到来,才能保证时钟能有效恢复到非复位状态,此段时间为recovery time【1】。

removal time :撤销时间。撤销复位时,在时钟有效沿到来之后复位信号还需要保持的时间为撤销时间removal time【1】。

参考资料

【1】《数字IC设计入门》白栎旸
【2】静态时序分析之恢复时间recovery time和撤销时间removal time

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

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

相关文章

日志输出功能

当程序运行出现问题时&#xff0c;日志记录是一种非常有用的工具&#xff0c;它可以帮助我们追踪和定位问题。在 MicroPython 中&#xff0c;可以使用 log 模块来记录程序运行中的信息。本文将介绍 log 模块的使用方法和常见功能。 日志级别 log.DEBUG 常量&#xff0c;用来…

【JVM】- 类加载与字节码结构1

类文件结构 ClassFile {u4 magic;u2 minor_version;u2 major_version;u2 constant_pool_count;cp_info constant_pool[constant_pool_count-1];u2 access_flags;u2 this_class;u2 …

Android及Harmonyos实现图片进度显示效果

鸿蒙Harmonyos实现&#xff0c;使用ImageKnife自定义transform来实现图片进度效果 import { Context } from ohos.abilityAccessCtrl; import { image } from kit.ImageKit; import { drawing } from kit.ArkGraphics2D; import { GrayScaleTransformation, PixelMapTransform…

linux 中的自动化之systemd

linux | 自动化之systemd linux 中的自动化之systemd 学习总是循序渐进的。 linux 中程序的自动化&#xff0c;包括早期手动启动&#xff0c;查看启动后的日志、分析启动情况&#xff0c;再到后面封装脚本(大致要求启动后检查是否挂了&#xff0c;挂了拉起&#xff0c;没挂跳过…

【编译工具】CodeRider 2.0:驭码 CodeRider 2.0 全流程智能研发协作平台深度技术测评报告

目录 前言&#xff1a;CodeRider 2.0 简介 &#xff08;1&#xff09;核心功能 &#xff08;2&#xff09;适用场景 &#xff08;3&#xff09;优势 一、产品概述与技术架构 &#xff08;1&#xff09;产品定位与核心价值 &#xff08;2&#xff09;技术架构解析 &…

抓包 TCP 四次挥手报文

文章目录 抓包 TCP 三次握手报文一、第一次挥手二、第二次挥手三、第三次挥手四、第四次挥手 抓包 TCP 三次握手报文 抓包 TCP 三次握手报文 一、第一次挥手 二、第二次挥手 三、第三次挥手 四、第四次挥手

KMP(Kotlin Multiplatform)发布Web版本乱码

一、背景 最近用KMP尝试运行在Android、iOS、desktop都成功了&#xff0c;网络数据访问也正常。 可是当运行wasmJs的时候遇到了2个较大的问题。 中文字体出现乱码。 出现了跨域问题。 首先贴一下每个平台的运行截图&#xff1a; Android iOS Desktop 二、问题 当web跑起…

一个应用程序或移动网站项目提供最佳UI解决方案

一个应用程序或移动网站项目提供最佳UI解决方案 此套件是用大量的爱和辛勤工作制作的&#xff0c;为您的下一个应用程序或移动网站项目提供最佳解决方案。120个完全可编辑的界面&#xff0c;分为10个类别和2种文件格式&#xff0c;Photoshop和AI。简单易用的结构将允许您以所…

Android studio打包生成jar包文件

Android studio打包生成jar包文件 一 项目配置1.修改 app/build.gradle2.修改 AndroidManifest.xml 二 打 Jar 包1.修改 app/build.gradle2.编译生成 Jar 包 一 项目配置 1.修改 app/build.gradle 将com.android.application改成com.android.library注释掉applicationId 2.…

JAVA类加载机制(jdk8)

三句话总结JDK8的类加载机制&#xff1a; 类缓存&#xff1a;每个类加载器对他加载过的类都有一个缓存。双亲委派&#xff1a;向上委托查找&#xff0c;向下委托加载。沙箱保护机制&#xff1a;不允许应用程序加载JDK内部的系统类。 JDK8的类加载体系 类加载器的核心方法 //…

更进一步深入的研究ObRegisterCallBack

引入 我们如果想hook对象的回调,在上篇文章里我们已经知道了对象回调函数存在一个列表里面&#xff0c;我们通过dt可以看见&#xff0c;这里他是一个LIST_ENTRY结构&#xff0c;但是实际调用的时候&#xff0c;这样是行不通的&#xff0c;说明它结构不对 0: kd> dt _OBJEC…

Nginx-3 Nginx 的负载均衡策略

Nginx-3 Nginx 的负载均衡策略 Nginx 的负载均衡其实就是指将请求按照一定的策略转发给服务集群中的一台&#xff0c;提高了服务集群的可用性&#xff0c;解决数据流量过大、网络负荷过重的问题。 AKF 扩展立方体 分为 3 个方向负载&#xff1a; x 轴&#xff1a;增加实例数…

Wiiu平台RetroArch全能模拟器美化整合包v1.18

这款WiiU平台RetroArch全能模拟器美化整合包v1.18的亮点包括&#xff1a; 1. 18款平台完美兼容&#xff1a;无论你是喜欢NES时代的经典游戏&#xff0c;还是钟爱SNES、GBA等平台的大作&#xff0c;这款整合包都能满足你的需求&#xff0c;让你尽情畅玩游戏。 2. 三款自制主题&a…

MyBatis原理

Mybatis执行过程为&#xff1a;接口代理->sqlSession会话->executor执行器->JDBC操作 一、接口代理 Mybatis根据Mapper接口&#xff0c;动态生成相应实现类 二、SqlSession介绍 MyBatis核心对象SqlSession介绍 - MyBatis中文官网 三、Executor执行器介绍 精通My…

升级内核4.19-脚本

#bash cd /root yum remove -y kernel-tools-3.10.0-1160.el7.x86_64 yum remove -y kernel-tools-libs-3.10.0-1160.el7.x86_64tar -xvf rhel-7-amd64-rpms.tar.gz cd /root/rhel-7-amd64-rpms #安装依赖、包括socat&conntrack yum localinstall -y *.rpm --skip-broken#升…

全面理解 JVM 垃圾回收(GC)机制:原理、流程与实践

JVM 的 GC&#xff08;Garbage Collection&#xff09;机制是 Java 程序性能的关键支柱。本文将从堆内存布局、回收原理、GC 算法、流程细节、并发收集器机制等维度&#xff0c;系统讲清楚 GC 的底层运作原理和优化思路。 一、JVM 堆内存结构 Java 堆是 GC 管理的主要区域&am…

runas命令让其他用户以管理员权限运行程序

RUNAS 用法: RUNAS使用示例&#xff1a; runas /noprofile /user:mymachine\administrator cmd #本机Administrator管理员身份执行CMD&#xff0c;/noprofile为不加载该用户的配置信息。runas /profile /env /user:mydomain\admin “mmc %windir%\system32\dsa.msc” #本机上…

实战指南:部署MinerU多模态文档解析API与Dify深度集成(实现解析PDF/JPG/PNG)

MinerU web api部署 MinerU 能够将包含图片、公式、表格等元素的多模态 PDF、PPT、DOCX 等文档转化为易于分析的 Markdown 格式。 克隆 MinerU 的仓库 git clone https://github.com/opendatalab/MinerU.gitcd 到 projects/web-api cd projects/web-api在可以科学上网的情况下…

向量外积与秩1矩阵的关系

向量外积与秩1矩阵的关系 flyfish 向量外积是构造秩1矩阵的基本工具&#xff0c;其本质是用两组向量的线性组合刻画矩阵的行和列相关性&#xff1b;任意秩1矩阵必可表示为外积&#xff0c;而低秩矩阵&#xff08;秩 k k k&#xff09;可分解为 k k k 个外积矩阵的和&#x…