自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (1)
  • 收藏
  • 关注

原创 文档参考888

vivado文档参考

2022-08-20 17:10:29 822

原创 AMBA总线笔记

ARM研发的AMBA(Advanced Microcontroller Bus Architecture)提供一种特殊的机制,可将RISC处理器集成在其它IP芯核和外设中,2.0版AMBA标准定义了三组总线:AHB(AMBA高性能总线)、ASB(AMBA系统总线)、和APB(AMBA外设总线)。AMBA开放规范AMBA 协议是用于连接和管理片上系统 (SoC) 中功能模块的开放标准和片上互连规范。它有助于首次开发带有大量控制器和外设的多处理器设计。AMBA 通过使用 AXI、AHB、APB 和 ATB

2020-08-25 00:06:28 917

原创 数字ic笔试杂散知识点

1.二进制编和格雷码利弊二进制编码、格雷码编码使用最少的触发器,消耗较多的组合逻辑,而独热码编码反之。独热码编码的最大优势在于状态比较时仅仅需要比较一个位,从而一定程度上简化了译码逻辑。虽然在需要表示同样的状态数时,独热编码占用较多的位,也就是消耗较多的触发器,但这些额外触发器占用的面积可与译码电路省下来的面积相抵消。Binary(二进制编码)、gray-code(格雷码)编码使用最少的触发器,较多的组合逻辑,而one-hot(独热码)编码反之。one-hot 编码的最大优势在于状态比较时仅仅需要比较一

2020-08-18 14:49:22 736

转载 形式验证Formality

形式验证Formality以下内容来自百度百科https://baike.baidu.com/item/%E5%BD%A2%E5%BC%8F%E9%AA%8C%E8%AF%81/10075710?fr=aladdin定义所谓形式验证,是指从数学上完备地证明或验证电路的实现方案是否确实实现了电路设计所描述的功能。形式验证方法分为等价性验证、模型检验和定理证明等。原理1.组合逻辑电路的逻辑验证对组合逻辑来说,不存在状态寄存器,其输出值Z不依赖于前面的输入值X。这时只要对每个输入向量证明其输出向量相同

2020-08-17 16:56:57 3391

原创 FPGA中浮点数的定点化笔记

FPGA中浮点数的定点化笔记关于基本相关知识参考该博客本文只针对FPGA中相关类型题目的做法思考整理,方便查看和复习,以后有时间再深入研究。浮点数的定点化 FPGA1.基础概念浮点数:简单来说,就是小数点的位置不是固定的定点数:简单来说,小数点的位置是固定的,也就是整数位宽与小数的位宽是固定的以下部分内容摘自该博文因为在普通的fpga芯片里面,寄存器只可以表示无符号型,不可以表示小数,所以在计算比较精确的数值时,就需要做一些处理,不过在altera在Arria 10中增加了硬核浮点DS

2020-08-10 19:25:55 3156 1

转载 跨时钟域笔记(四)

跨时钟域笔记(四)原文链接跨时钟域处理–最终详尽版目录跨时钟域处理--最终详尽版1. 异步时序定义2. 亚稳态3. 单比特同步策略方法一:双锁存器注意问题1注意问题2注意问题3扩展*4.多比特同步策略控制信号多比特同步同步变化的控制信号控制信号多比特之间有一定时钟相位差数据多比特同步方法一:脉冲同步法(开环的结绳法)方法二:闭环结绳法方法三:异步双口RAM+格雷码(异步FIFO)格雷码简介异步FIFO方法四:二深度FIFO同步器方法五:DMUX同步器为了彻底理解跨时钟域问题,多方搜集资料,做个简单

2020-08-08 10:39:43 2420

转载 跨时钟域笔记(三)

跨时钟域笔记(三)https://mp.weixin.qq.com/s/396trM4O6mgh5WqilW_vPA这次咱先不废话,直接上一个结论:在绝大多数情况下,我们不能直接利用2flop synchronizer来同步一个多bit信号。(为什么说绝大多数情况,在这篇文章最后我们会讲用2flop synchronizer来同步的例子)。注意我们说多bit信号,是说这个信号是由多于1个bit来表示的。比如说一个couter的值,或者是一个address,再或者本身就是一个多bit的data bus,

2020-08-08 10:35:14 1118 1

转载 跨时钟域笔记(二)

跨时钟域笔记(二)原文链接,在此稍加整合了一下。上一篇中我们回顾了一些基础知识,其中最重要的概念就是亚稳态。我们接下来所要看到的各种CDC的设计方法,本质上都是围绕在如何解决亚稳态带来的问题。我们首先来看最基本的问题,single bit level 信号的跨时钟域。single bit 直接被destination domain的flop去sample产生的问题我们在上一篇已经讨论过,那么解决的办法呢?看起来很简单 – 之后再加一个flop,也就是说用两级的flop来同步source domain的

2020-08-08 10:06:05 2407

原创 跨时钟域笔记(一)

跨时钟域笔记(一)内容摘自公众号ic加油站,在此做一个整理。了解亚稳态也可以移步该内容https://blog.csdn.net/qq_38318540/article/details/107506539我们接下来的跨时钟域分析,当然都是基于同步电路的。同步电路的核心就是触发器,触发器的种类有很多种,最常用的就是D触发器。在这里我们还是首先复习一下基本概念: 建立时间setup time和保持时间hold time, 以及亚稳态metastability。setup time: 时钟沿到来之前输入信

2020-08-08 09:40:16 811

原创 基于TimeQuest Timing Analyzer的时序分析笔记(五)

基于TimeQuest Timing Analyzer的时序分析笔记(五)在高速系统中 FPGA 时序约束不止包括内部时钟约束,还应包括完整的 IO 时序约束和时序例外约束才能实现 PCB 板级的时序收敛。因此, FPGA 时序约束中 IO 口时序约束也是一个重点。只有约束正确才能在高速情况下保证 FPGA 和外部器件通信正确。本文对io约束进行简单介绍。一、整体时序路径认识TimeQuest 静态时序分析的对象包括:寄存器和寄存器之间的路径、I/O 之间、I/O 和寄存器之间的路径、异步复位和寄存器

2020-08-01 21:45:49 3193

原创 基于TimeQuest Timing Analyzer的时序分析笔记(四)

基于TimeQuest Timing Analyzer的时序分析笔记(四)在(一)里面介绍了建立时间分析,本文对保持时间进行简单介绍以及TimeQuest Timing Analyzer使用中间的一些窗口解释。以下部分内容来自小梅哥时序分析。1.那么什么是保持时间余量呢?先说物理意义。对于 D 触发器来说,不是说时钟上升沿过了,D 端的数据就马上可以变化了,为了保证 D 触发器能够准确的将 D 端数据寄存,必须在时钟上升沿之后的一段时间内,D 触发器的 D 端继续保持稳定,否则就可能导致数据寄存失败。这

2020-08-01 10:04:57 462

原创 同步时序设计原则

同步时序设计原则同步设计是 PLD ASIC 设计的最重要原则。首先阐释为什么在 PLD 设计中要采用同步时序设计,然后重点论述同步时序设计的要点。本文内容为阅读一些书籍的摘录内容,仅供参考。一、异步时序设计与同步时序设计简单比较 异步电路和同步电路的异同。1.异步电路(1)电路的核心逻辑用组合电路实现,比如异步的FIFO/RAM读写信号、地址译码等电路.(2)电路的主要信号、输出信号等并不依赖于任何一个时钟性信号,不是由时钟信号驱动触发器(FF)产生的.(3)异步时序电路的最大缺点是容易产

2020-07-31 23:40:24 4097

原创 同步复位、异步复位、异步复位同步释放笔记

同步复位、异步复位、异步复位同步释放笔记一般来说,竞争-冒险是由于组合电路竞争冒险产生毛刺,从而影响整个逻辑电路。其实时序电路中也是存在竞争-冒险的,而这一特性主要是由D触发器输入端信号之间的竟争产生的。存在以下两种竞争-冒险。1)clk上升沿与rstn下降沿同时到达实际上对于D触发器而言,rstn信号的优先级高于clk信号,这样在rstn到来时,实现的是复位操作。因此,D触发器属于异步复位器件。2)clk上升沿与rst n上升沿同时到达当 rstn上升沿达到时,D触发器在理论上完成复位了,但是此

2020-07-31 22:15:45 1987

原创 基于TimeQuest Timing Analyzer的时序分析笔记(三)

基于TimeQuest Timing Analyzer的时序分析笔记(三)本篇内容在前篇基础上介绍优化,并介绍基于chip planner查看更实际的逻辑连接。上一篇是对时钟进行了设置,在时序优化时通常采用加约束或者修改代码插入寄存器方法,改为流水线结构;优化代码最主要方法就是优化关键路径。首先声明:内容只是简单介绍时序优化中的方法流程,工具使用及查看时序报告,介绍层面没有深入,需要更多学习的还需多搜集资料加以研究。也可以观看小梅哥时序视频学习下面来简单介绍(一)优化介绍对代码进行全编译,查看时

2020-07-27 14:48:03 852

原创 基于TimeQuest Timing Analyzer的时序分析笔记(二)

基于TimeQuest Timing Analyzer的时序分析笔记(二)本文介绍TimeQuest Timing Analyzer工具一般使用及建立时间相关知识实际分析首先我们应该知道时序分析离不开时钟,那么设计代码所描述的逻辑电路在相关器件上能最高运行在多少频率的时钟?通过TimeQuest软件进行分析,并给出报告,时序分析一定是基于特定器件(要具体到特定速度等级)时序分析一定是基于某个逻辑设计在该特定器件上经过布局布线之后的网表(该网表包含设计中每一个逻辑在该器件的什么资源上实现,而且还包括资

2020-07-24 14:39:24 1852

原创 基于TimeQuest Timing Analyzer的时序分析笔记(一)

基于TimeQuest Timing Analyzer的时序分析笔记(一)首先声明英文来自ug-qpp-timing-analyzer(Intel® Quartus® Prime Pro Edition User Guide–Timing Analyzer)文档,非专业翻译,如有错误,自行解决。一.简单介绍时序分析Comprehensive timing analysis of your design allows you to validate circuit performance, identi

2020-07-24 10:53:52 1096

转载 SV之覆盖率

SV之覆盖率Coverage 覆盖率 Functional Coverage 功能覆盖率Cross Coverage 交叉覆盖Coverage Options 覆盖率选项Coverage methods 覆盖率方法Coverage system task 覆盖率系统任务 Coverage 覆盖率覆盖率用来衡量设计中已经被测部分和未测部分的比例,通常被定义为已达到所需验证部分的百分比.目标覆盖率目标覆盖率是指在验证计划中规定的需要验证点的目标值。 在验证计划中, 当验证

2020-07-23 15:31:08 1361

原创 低功耗入门笔记

低功耗入门笔记本篇内容是对上一篇内容的一个简要总结,制作思维导图简单说明,详细请看上一篇内容及原文链接。功耗思维导图功耗相关例题1、下列功耗措施哪个可以降低峰值功耗A 静态模块级Clock GatingB Memory Shut DownC Power GatingD 大幅度提高HVT比例解析:首先峰值功耗是属于动态功耗中的短路功耗,即NMOS和PMOS同时导通所引起的峰值电流,最终带来的功耗。这个功耗和电源电压,时钟翻转率,以及峰值电流有关。(1)从动、静态功耗的角度分析选择AA

2020-07-23 13:58:53 5326 1

转载 低功耗设计入门

功耗的构成/类型本小节主要一方面介绍一下功耗的构成,一方面介绍一下工艺库中的功耗模型。功耗的构成可以从两个角度来描述,一个是从功耗种类方面,另一个是从系统结构方面。我们在设计过程中,讨论比较多的往往是从功耗角度方面;工艺库中的功耗模型主要是结合工艺库来对功耗种类进行一些具体的、补充式的讲解。下面我们就来看看功耗的工程吧。1.功耗的构成——按类型分  低功耗按照类型分类呢,其构成主要有动态功耗、静态功耗、浪涌功耗这三种。在这第一小点我主要做一些简要的介绍,在后面的第三小点我将结合工艺库进行介绍。  (

2020-07-23 11:03:09 3402

原创 组合电路中的竞争与冒险

组合电路中的竞争与冒险1.竞争与冒险由于逻辑门存在延迟时间以及信号的传输路径不同,当输人信号电平发生瞬间变化时,电路可能产生与稳态时逻辑功能不一致的错误输出,这种现象就是电路中的竞争与冒险。例如,一个简单组合电路如下图所示,若不考虑门的延迟时间,则有F=A・(~A)=0,稳态时F应恒为0。若考虑门的延迟(设每个门的延迟均为t),则输入信号A需经非门延退t后オ得到A非。当A変量发生跳变(0→1)时,由于A和A非到达与门输入端有时间差,出现了A和A非同时为1的情况,所以在输出端产生了正向尖峰脉冲,或称正向

2020-07-22 15:17:12 3753

原创 亚稳态总结笔记

亚稳态总结笔记本文是查看过几篇博主写的相关内容后进行一个简单的总结,中间会给出相关链接。一、亚稳态定义(百科)亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。二、亚稳态产生的原因以下部分内容来自该篇文章在FPGA系统中,如果数据传输中不满足触发器的Tsu和Th

2020-07-22 11:41:40 924

原创 边沿检测、按键消抖的Verilog实现

边沿检测、按键消抖的Verilog实现边沿检测和按键消抖是FPGA设计中比较经常用到的小模块,本篇介绍一下这两个部分的简单实现。1.边沿检测边沿检测技术在项目应用中,非常广泛。如要有效捕获信号跳变沿,边沿检测技术的应用是必不可少的。其中有如下几个方面(1)将时钟边沿使能转换为边沿检测使能,使时钟同步化。(2)捕获信号的突变(UART,SPI 等信号使能突变)(3)逻辑分析仪中信号的边沿检测。(4)按键消抖中也可以使用就如上图所示,边沿检测就是清楚边沿0和1的变化顺序,时间一般都是从左往右进

2020-07-19 16:39:27 2749 2

原创 基于Verilog的DDS波形发生器的分析与实现(三角波、正弦波)

基于Verilog的DDS波形发生器的分析与实现(三角波、正弦波)最近学习了一下关于DDS的相关知识,本篇概要记录一下自己的理解与实现。DDS信号发生器采用直接数字频率合成(Direct Digital Synthesis,简称DDS)技术,把信号发生器的频率稳定度、准确度提高到与基准频率相同的水平,并且可以在很宽的频率范围内进行精细的频率调节。采用这种方法设计的信号源可工作于调制状态,可对输出电平进行调节,也可输出各种波形。下图为DDS 的基本结构图由上图 可以看出,DDS 主要由相位累加器、相

2020-07-18 15:54:08 9816 3

原创 交通信号灯控制系统的Verilog实现

交通信号灯控制系统的Verilog实现作为数字系统设计入门案例,下面简单介绍最简单的交通控制系统,说明设计思路。首先给出要求:设计一个主干道和支干道十字路口的交通信号灯控制电路(1)一般情况下保持主干道通畅,主干道绿灯亮、支干道红灯亮,并且主干道绿灯亮时间不少于60秒。(2)主干道绿灯亮超过60秒,且支干道有车时,主干道红灯亮,支干道绿灯亮,但支干道亮灯时间不超过30秒。(3)每次主干道或支干道绿灯变红灯时,黄灯先亮5秒。1.逻辑抽象,明确输入输出。主干道和支干道的十字路口交通灯系统求优先保证

2020-07-17 11:29:44 11570 5

原创 移位寄存器(左移、右移、双向)的Verilog实现

移位寄存器(左移、右移、双向)的Verilog实现移位寄存器的功能和电路形式较多,按移位方向分有左移、右移、和双向移位寄存器;按接收数据方式分为串行输入和并行输入;按输出方向分为串行输出和并行输出。如果将若干个触发器级联成如下图所示电路,则构成基本的移位寄存器。图中是一个4位移位寄存器,串行二进制数据从输入端Dsi输入,左边触发器的输出作为右邻触发器的数据输入。若将串行数码D3D2D1D0从高位(D3)至低位(D0)按时钟脉冲间隔依次送到Dsi端,经过第一个时钟脉冲后,Q0=D3。由于跟随D3后面的是D

2020-07-16 16:18:52 33317

原创 格雷码、奇偶校验码的Verilog描述

格雷码、奇偶校验码的Verilog描述格雷码( Gray Code)也是一种常见的无权码。它也具有相邻性,即两个相邻代码之间仅有1位取值不同,并且0和最大数(2^n -1)之间也只有1位不同、因此它是一种循环码。格雷码的这个特点使它在代码形成和传输时引起的误差较小。因而常用于将模拟量转换成用连续二进制数序列表示数字量的系统中。当模拟量发生微小变化而引起数字量从一位变化到相邻位时,例如从十进制数的3到4,格雷码变化是从0010到0110,只有b2位从0变成1,其余3位保持不变。如果对于自然二进制码,其变化是

2020-07-15 21:18:25 1874

原创 二进制数转换成BCD码的Verilog实现

二进制数转换成BCD编码的Verilog实现通常在显示温度、数码管、电压等数据时,通常需要将二进制数据转成十进制进行显示。最常用的方法是将二进制码转换成BCD码(8421)。 8421码:它只选用了四位二进制码中前10组代码,即用0000~1001(0-9)分别代表它所对应的十进制数,余下的六组代码不用。 二进制转BCD 用除法或者取余对于计算机来说耗时耗力占用资源多。其余方法有移位后加6或加3再移位,二进制转成BCD码,就是每一位用4位二进制表示即可。 4位二进制最高表示15,BCD码4位最高表示9

2020-07-15 16:30:19 7444

原创 例解阻塞赋值&非阻塞赋值

例解阻塞赋值&非阻塞赋值先简单介绍一下阻塞赋值与非阻塞赋值:1.非阻塞(Non_Blocking)赋值方式( 如 b <= a; )块结束后才完成赋值操作。b的值并不是立刻就改变的。这是一种比较常用的赋值方法。(特别在编写可综合模块时)2.阻塞(Blocking)赋值方式( 如 b = a; )赋值语句执行完后,块才结束。b的值在赋值语句执行完后立刻就改变的。可能会产生意想不到的结果。总结:时序电路建模时,用非阻塞赋值。锁存器电路建模时,用非阻塞赋值。用 alway

2020-07-13 23:13:21 1222

原创 分频器进阶形式的Verilog描述

分频器进阶形式的Verilog描述在Verilog设计中经常会遇到根据系统时钟频率产生一个其他大小的时钟频率,例如100MHZ产生一个500KHZ的或者产生一个1s的延时等等;对于这种情形我们需要清楚之间的关系。首先我们应该知道1M=10^6,T=1/f,1s=10的9次方ns;然后就可以换算之间的关系如:100MHZ产生500KHZ就是1/20分频,或者说100MHZ周期是100ns,500KHZ周期是2000ns,那么2000/100=20就是2000个之间有20个100,那就要通过计数器计数,但是要

2020-07-13 19:33:50 394

原创 三种类型自助售货机Verilog描述

三种类型自助售货机Verilog描述最近遇到该类题目一共三种形式,在解决过程中发现暂且在理想状态下设计,如果在实际情况下还需要再深入思考。1.两种面值5分、10分;货物价格10分;考虑有找零。此种情形在此使用2个状态,两段式描述(也可考虑3个状态)module zzshj1(input clk,input rst,input A, //投入5分input B, //投入10分output reg out,output reg change);parameter s0=1'b0

2020-07-11 01:08:41 1005

原创 BCD加法器

BCD加法器首先简单介绍一下8421BCD码:它是由4位二进制数0000(0)到1111(15)16种组合的前10种组合,即0000(0)~1001(9)构成,其余6种组合无效。其编码中每位的值都是固定数,称为位权。b3权为2^3=8,b2位权为2 ^2=4,b1位权为2,b0位权为1,因此称8421BCD码。对于两个4位BCD码相加所得的结果超过1001(9),则将所得数加0110(6),并产生一个进位。1.4位BCD加法module BCD_adder4(input [3:0] a,inpu

2020-07-09 18:17:12 9442 1

原创 不同功能D触发器的Verilog描述

不同功能D触发器的Verilog描述1.D触发器(本文都为上升沿触发、异步都为低复位、置数都为高)module flip_flop(input clk,input D,output reg Q);always@(posedge clk)Q<=D;endmodule2.异步复位D触发器module flip_flop(input clk,input rst_n,input D,output reg Q);always@(posedge clk or negedge r

2020-07-07 18:45:01 3194

原创 基本数字电路的Verilog实现

基本数字电路的Verilog实现1.半加器module halfadd(x,y,s,cout);input x;input y;output s;output cout;assign s = x^y;assign cout = x&y;endmodule半加器RTL视图2.全加器module fulladd(cin,x,y,s,cout);input cin;input x;input y;output s;output cout;assign s = xycin

2020-07-06 22:36:02 1693

原创 序列检测_1011(重叠&不重叠检测)Verilog实现

序列检测_1011(重叠&不重叠检测)序列检测也是数字ic笔试中经常遇到的一类题,本篇对序列1011进行检测,其中分为重叠与不重叠检测设计,在此先简要叙述两种区别如下:首先什么是不重叠检测?不重叠的意思是每次检测到的1011序列都是独立的组,不能够重复。例如:有一串序列1011011需要我们检测出1011的个数,而在这串序列中我们找到两个1011,但是第一个的1011和第二个的1011有一个共用的“1”,这就是重复检测了。反之当检测序列1011011中1011的个数时只会检测到有一个1011,而

2020-07-05 21:56:32 8698 4

原创 分频器的Verilog实现

分频器的Verilog实现写在前面的话:找工作过程中经常遇到的分频类型,在此简单整理,代码亲自验证过,如有问题,烦请告知。1.偶分频偶分频比较简单,假设为N分频,只需计数到N/2-1,然后时钟翻转、计数清零,如此循环就可以得到N(偶)分频。(二分频)module div_2 (q,clk,rst_n);input rst_n;input clk;output reg q;always @ (posedge clk or negedge rst_n)begin if(rst_n==1

2020-07-05 11:20:46 21400 2

ug-qpp-timing-analyzer.pdf

Intel® Quartus® Prime Pro Edition User Guide Timing Analyzer

2020-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除