- 博客(61)
- 收藏
- 关注
转载 流水线设计
流水线设计前言:本文从四部分对流水线设计进行分析,具体如下:第一部分什么是流水线第二部分什么时候用流水线设计第三部分使用流水线的优缺点第四部分流水线加法器举例第一 什么是流水线流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步小操作的时间较小,所以能提高频率,各小操作能并行执行,所以能提高数据吞吐率(提高处理速度)。第二 什么时候用流水线设计使用流水线一般是时序比较紧张,对电路工作频率较高的时候。
2020-08-04 10:21:36 2115
原创 setup&hold time概念及违约修复
setup&hold time概念及违约修复从D触发器的构成来认识setup&hold time众所周知,setup和hold作为timing分析与验证中最重要的概念之一,是时序电路正常工作必须满足的条件。但是很多初学者甚至某些工作数年的工程师,对时序电路需要验证setup和hold背后的原理可能并不清楚。下图是上升沿触发的D触发器的一种典型的基于传输门的设计原理:上升沿D触发器原理图首先我们先把注意力集中在电路的前半部分。假设CLK的初始状态为0,此时第一个传输门导通,信号走向为:D
2020-08-04 10:18:48 13115 5
原创 总线,仲裁
总线,仲裁总线,英文叫作“BUS”,即我们中文的“公共车”,这是非常形象的比喻。公共车走的路线是一定的,我们任何人都可以坐公共车去该条公共车路线的任意一个站点。如果把我们人比作是电子信号,这就是为什么英文叫它为“BUS”而不是“CAR”的真正用意。当然,从专业上来说,总线是一种描述电子信号传输线路的结构形式,是一类信号线的集合,是子系统间传输信息的公共通道。通过总线能使整个系统内各部件之间的信息进行传输、交换、共享和逻辑控制等功能。如在计算机系统中,它是CPU、内存、输入、输出设备传递信息的公用通道,
2020-08-04 10:17:43 857
原创 Design Ware IP
Design Ware IP先在网上找了些对design ware解释的资料,下面的都是很久以前就有的,比较少,最新的也没能找到,先将就着看吧。DesignWare是SoC/ASIC设计者最钟爱的设计IP库和验证IP库。它包括一个独立于工艺的、经验证的、可综合的虚拟微架构的元件集合,包括逻辑、算术、存储和专用元件系列,超过140个模块。DesignWare和 Design Compiler的结合可以极大地改进综合的结果,并缩短设计周期。Synopsys在DesignWare中还融合了更复杂的商业IP(无
2020-07-05 22:10:24 4417
原创 工艺升级的意义
工艺升级的意义概括现在(2020年),市场上用的手机等高端设备大部分都是采用的已经成熟的7nm工艺,5nm工艺还在走向成熟的路上。为什么现在的手机厂商都在迫不及待地采用最新的工艺,已经到了不计较流片成本的地步,工艺升级有那些吸引人的地方?沟道长度越短速度越快电容更小 功耗更低体积更小 集成度可以做到更高缺点就是工艺复杂了 难度更大 工艺参数波动也会更大,漏电流变大,稳定性变差升级的影响集成电路和其他产业一样,追求的是两种东西: 高性能、低功耗和低成本。高性能当然涵盖很多方面,但是最主要的是
2020-06-30 23:29:07 1026
原创 仿真与综合需要注意的地方
仿真与综合需要注意的地方1.always@()里面的敏感列表不全的时候,会影响到仿真,但不会影响到综合,因为DC综合工具会自动补全为正确的敏感列表,多退少补,为什么自动补全,那是因为敏感列表的作用便是指定相关语句的驱动,而综合工具在compile的时候生成相应的电路,被驱动信号端自动由输入驱动端驱动,就是这样子。2.延时语句一般使用在仿真过程中,帮助设计者按照特定的方式产生激励或复位,但如果在设计RTL代码中出现了延时,仿真会识别,但DC综合工具不能识别,自动忽略不能综合的延时相关语句。后续想到什么就
2020-06-30 21:34:03 405
原创 既生‘组合逻辑’,何生‘时序逻辑’
既生‘组合逻辑’,何生‘时序逻辑’主要从下面三个方面来解答:1.纯组合逻辑电路有哪些缺点;2.纯组合逻辑电路完成不了什么功能;3.为什么需要时钟和寄存器;最近在写文章,详细内容后续补充上来。哈姆雷特,请保持前行!...
2020-06-29 23:30:46 275
原创 switch和if else对比
switch和if else对比switch…case写法:switch (表达式){ case 值1 : 语句1 break; case 值2 : 语句2 break; ... default : 语句n break; }if…else写法:if(boolean){ ...}else if(boolean){ ...}else if(boolean){ ...}else{ ...}由此看来,switch有点以空间换时间的意思,而事实上也的确如此。1.当分支较多时,
2020-06-29 23:26:22 568
原创 wire/reg之间的驱动关系
wire/reg之间的驱动关系在Verilog中,wire永远是wire,就是相当于一条连线,用来连接电路,不能存储数据,无驱动能力,是组合逻辑,只能在assign左侧赋值,不能在always @ 中赋值;但reg可以综合成register,latch,甚至wire(当其只是中间变量的时候),可以用于组合逻辑或者时序逻辑,能存储数据,有驱动能力,在always @模块表达式左侧被赋值。两个共同具有性质:都能用于assign与always @模块表达式的右侧。这是一个历史遗留问题。在 Verilog
2020-06-27 17:43:53 2081
原创 正负Tskew对setup/hold time的影响
正负Tskew对setup/hold time的影响正Tskew对保持时间是不利的负Tskew对建立时间是不利的最近课题任务较忙,分析后续补上。哈姆雷特,请保持前行!
2020-06-22 21:29:51 1963
原创 传输门为什么是P/N双MOS结构
传输门为什么是P/N双MOS结构为什么不是直接单独的PMOS或者NMOS组成?P/N双MOS可以保证输出端OUT跟输入端IN端保持一致(IN理想高低电平是Vdd和0),就算有级联也不会出现信号失真的情况如果是单PMOS,在栅极电压为0时,输出高电平Vout就会变成Vin-Vt,级联情况下,输出高电平会逐渐降低Vt,直至高电平失效;当然,在栅极电压为1时,级联对输出的影响就会失效,因为不导通的缘故如果是单NMOS,在栅极电压为1时,输出低电平Vout就会变成Vin+Vt,级联情况下,输出高电平会逐渐增
2020-06-22 20:21:00 2621
原创 Vdd降下来怎么这么难
Vdd降下来怎么这么难Vdd降低后,负载电容充放电速度变慢,直接会使得整个电路速度变慢,从而限制了最高频率的上限;Vdd降低后,Vol和Voh回随之降低,相应的噪声容限也会降低,电路稳定性下降...
2020-06-22 19:53:03 567
原创 AXI4总线协议好文
AXI4总线协议好文基础深入 AXI4 总线(一)握手机制深入 AXI4 总线(二)架构深入 AXI4 总线(三)传输事务结构深入 AXI4总线 (四):RAM 读取实战深入 AXI4总线 (五):AXI4 的兄弟协议深入 AXI4总线 (六):制作一个 AXI 接口 IP扩展深入 AXI4 总线(A)附录·术语表深入 AXI4 总线(B)附录·一次从〇开始的 AXI 总线入门研讨深入 AXI4 总线(C0)旧版存档:突发传输机制深入 AXI4 总线(E0)实战:平台搭建深入 AX
2020-06-13 20:53:45 1992
原创 AXI4总线协议总结
AXI4总线协议总结0.绪论AXI是高级扩展接口,在AMBA3.0中提出,AMBA4.0将其修改升级为AXI4.0。AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-streamAXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输应用。1.简介1.1 关于AXI协议AMBA AXI协议支持支持高性能、高频率系统设计。
2020-06-13 20:35:03 1881
转载 UDP和TCP
UDP和TCP1、TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。4.
2020-06-12 23:09:22 300
原创 TCP/IP框架总结
TCP/IP框架总结TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,其实链路层后面还有一层叫物理层,不过通常称之为物理介质,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不用我们操心;其次网络协议体系本身就很复杂庞大,入门门槛高,因此很难搞清楚TCP/IP的工作原理,通俗一点讲就是,一个主机的数据要经过
2020-06-12 22:22:10 1752
转载 python中struct库
struct --- 将字节串解读为打包的二进制数据源代码: Lib/struct.py此模块可以执行 Python 值和以 Python bytes 对象表示的 C 结构之间的转换。 这可以被用来处理存储在文件中或是从网络连接等其他来源获取的二进制数据。 它使用 格式字符串 作为 C 结构布局的精简描述以及与 Python 值的双向转换。注解默认情况下,打包给定 C 结构的结果会包含填充字节以使得所涉及的 C 类型保持正确的对齐;类似地,对齐在解包时也会被纳入考虑...
2020-06-07 19:30:52 1776
转载 Python 中 random 库速查表
Python 中 random 库速查表点击阅读原文工作中,时不时需要产生一些随机数或者用到和随机数相关的操作。Python 标准库 random 自带了一些很实用的功能。这里对常用的几个函数(方法)做一个小结,加强记忆,也作为速查表使用。名字和引入Python 中的随机库,名字就叫做 random,取的是英文中「随机的」之单词。和大多数 Python 库一样,可以用 import 关键字引入。import random产生一个简单的随机数random 库中有几个函数可以产生随机数。ran
2020-06-07 14:34:43 543
转载 Python之Numpy库
Python之Numpy库点击阅读原文trick: 我将函数分好类别并设置好了目录,点击上方目录,可快速查找前言:最近学习Python,才发现原来python里的各种库才是大头! 于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释。在这里分享给大家,对于库的学习,还是用到时候再查,没必要死记硬背。 PS:本博文摘抄自中国慕课大学上的课程《Python数据分析与展示》,推荐刚入门的同学去学习,这是非常好的入门视频。 Numpy是科学计算库,是一个强大的N维数组对象ndarray,是广播
2020-06-07 13:54:54 285
转载 Python Socket 编程详细介绍
Python Socket 编程详细介绍原文看这里Python 提供了两个基本的 socket 模块:Socket 它提供了标准的BSD Socket API。SocketServer 它提供了服务器重心,可以简化网络服务器的开发。下面讲解下 Socket模块功能。Socket 类型套接字格式:socket(family, type[,protocal]) 使用给定的套接族,套接字类型,协议编号(默认为0)来创建套接字socket 类型描述socket.AF_UNIX
2020-06-07 00:00:10 313
原创 实际设计中基本电路单元
实际设计中基本电路单元思维导图:相关基本电路的介绍请看我的博文:LFSR扰码器/解扰器检错与纠错格雷编码/解码译码器编码/解码数据转换器同步技术移位寄存器定时器波形整形电路...
2020-06-06 09:56:37 407
原创 异步FIFO
异步FIFO深入理解FIFOFIFOFirst In First Out是一种先进先出的数据缓存器,与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。用途1:异步FIFO读写分别采用相互异步的不同时钟。在现代集成电路芯片中,随着设计规模的不断扩大,一个系统中往往含有数个时钟,多时钟域带来的一个问题就是,如何设计异步时钟之间的接口电路。异步FI
2020-06-06 09:55:56 572
原创 乘法器,也不过如此!
乘法器,也不过如此!写在前面:在微处理器芯片中,乘法器是进行数字信号处理的核心,同时也是微处理器中进行数据处理的关键部件。乘法器完成一次操作的周期基本上决定了微处理器的主频。乘法器的速度和面积优化对于整个CPU的性能来说是非常重要的。为了加快乘法器的执行速度,减少乘法器的面积,有必要对乘法器的算法、结构及电路的具体实现做深入的研究。逐位进位并行乘法器:设两个 n 位二进制正数 X 和 Y:X : X n-1···X1 X0Y : Y n-1··· Y1Y0则 X和 Y的乘积 Z有 2
2020-06-06 09:54:43 6188 1
原创 无毛刺的时钟切换
无毛刺的时钟切换前言:在设计多时钟系统中,需要切换时钟源,这两个时钟可能是没有关联的(相位、频率),或者他们为倍数关系。这两种情况都有可能在开关时产生毛刺(glitch),而系统上的毛刺对系统来说是危险的,他可能能够被一些寄存器捕获为触发边沿,而其他寄存器忽略此毛刺。无毛刺的时钟切:Glitch-free clock switching circuit,不要混淆了Clock Domain Conversion为跨时钟域传输问题,就是最常考也是经常听到的CDC问题。参考文章:李锐博恩正确的无毛刺时钟
2020-06-06 09:54:26 2855 1
原创 CDC
CDCCDC(clock domain crossing)思维导图:跨时钟域处理方法总结如下:1、有关系的时钟之间传单bit数据,理论上只需要源数据保持足够长的时间(clk2的两个周期)即可;2、无关系的时钟之间传单bit数据,必须要使用同步器;3、不管有无关系的时钟进行单bit传输,脉冲同步器都可以解决这个问题;4、多bit传输只能使用握手机制或者异步fifo;跨时钟域传输多bit数据,采用握手协议或者异步FIFO,握手信号的缺点在于传输单次数据的延迟比FIFO要大很多。双口RAM搭配格
2020-06-06 09:54:04 5752 2
原创 FIFO深度计算
FIFO深度计算,参考了时间的诗的博文:参考文章数据突发长度(burst length)在讲解如何去计算FIFO深度之前,我们来理解一个术语burst length。要理解数据的突发长度,首先我们来考虑一种场景,假如模块A不间断的往FIFO中写数据,模块B同样不间断的从FIFO中读数据,不同的是模块A写数据的时钟频率要大于模块B读数据的时钟频率,那么在一段时间内总是有一些数据没来得及被读走,如果系统一直在工作,那么那些没有被读走的数据会越累积越多,那么FIFO的深度需要是无穷大的,因此只有在突发数据
2020-06-06 09:53:15 2775 2
原创 时钟与复位,是块儿硬骨头
时钟与复位,是块儿硬骨头思维导图:做的比较简陋,让您见笑了。时钟:时钟,即clock信号,是由晶体经过激发产生的振荡电路。时钟参与着系统的启动、休眠,数据的读取、写入,信号的调制、解调,微波的发射、接收等一系列的工作。如果说电源是系统的血液,那么时钟就是经脉,把整个身体打通,让所有组织联系在一起。分类时钟可以分为有源时钟和无源时钟两类。所谓有源,就是在外供电源情况下,生成震荡信号,可以作为一个独立的模块。而无源的则是只有单独一个晶体,需要什么电路来产生震荡,是需要外部搭出来的。通常
2020-06-06 09:52:41 6461 1
原创 同步器
同步器我们先来认识同步与异步1:同步电路与异步电路同步时序电路:用各种触发器实现,主要信号与OUT都是一个时钟沿经过各种触发器触发的。所以只有时钟脉冲到来才能改变电路的状态,所以不论IN如何变化,状态表中的每个状态都是稳定的。异步时序电路:用组合逻辑电路(与非门)实现,电路中没有统一的时钟,典型的有FIFO/RAM读写信号、地址译码器等。主要信号与OUT 不是某个时钟信号驱动FF产生的。核心区别在于是否所有触发器都与唯一时钟脉冲同步。always后面是变量还是沿。比如一个触发器的输出连接到另一个
2020-06-06 09:51:48 2645 3
原创 亚稳态清除计划
亚稳态简单介绍:有建立和保持时间要求的所有寄存器允许在输入端口捕获数据。最后传送到寄存器输出端口的捕获数据是高或者低电平信号取决于输入端口信号的捕获。然而,如果数据违反了建立保持时间要求,将会导致寄存器的输出值出现亚稳态。在这个状态下,寄存器的输出数据值将会盘旋在高低电平之间。当这个值传播到电路中,寄存器将锁存错误值,最终导致系统运行失败。只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。亚稳态问题通常发生在信号传输于两个不相关时钟
2020-06-06 09:51:07 509
原创 序列求非0序号,你学会了吗?
序列求非0序号题目:解法,如果说位宽比较小,比如8位,那么其实这就是一个8-3优先级编码!如果这么说:有一个8bit位,求从最低位开始的第一个非零bit的序号,其实就是a0是最高优先级的8-3编码器,输出对应的最高优先级的编码就是地址序号。xxxx_xxx1 000xxxx_xx10 001xxxx_x100 010xxxx_1000 011xxx1_0000 100xx10_0000 101x100_0000 11010
2020-06-06 09:50:01 723
原创 分频,搞定只需分分钟
分频,搞定只需分分钟通常我们说对原时钟进行N分频,即分频后的时钟的一个周期是原时钟周期的N倍。N可以为偶数、奇数、分数(小数)。思维导图:偶数分频Verilog实现:N为偶数,使用一个计数器循环0-(N-1)进行计数,在N/2-1与N-1分别将输出取反,即完成了N分频,注意,当计数到N-1时,需要对计数器复位,如果需要得到占空比不是50%的分频时钟,则需要修改输出时钟信号发送翻转时候的计数值,此时就不是在N/2-1处翻转了。若采用D触发器画出分频器,单个D触发器的反向输出到输入就构成了一个简单的
2020-05-27 16:58:43 924
转载 计数器也有三姑六婆
计数器也有三姑六婆六种常用计数器的verilog实现(binary、gray、one-hot、LFSR、环形、扭环形)看着这位老哥总结的挺好的,就转载了,原文在这里binary(二进制)计数器很简单,可根据需要完成同步或异步复位、置数、使能的功能。在ISE的language template中有各种计数器,可进行参考。下面给出一个带有同步复位、使能、置数端的计数器。8bit二进制计数器的代码: 1 module binary_counter( 2
2020-05-27 11:41:10 640
原创 能加offer的加法器你会吗?
能加offer的加法器你会吗?一位加法器半加器如果不考虑来自低位的进位将两个1二进制数相加,称为半加。实现半加运算的逻辑电路称为半加器。逻辑表达式:s=ab′+a′bco=ab全加器在将两位多位二进制数相加时,除了最低位以外,每位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位3个数相加。这种运算称为全加,所用的电路称为全加器。逻辑表达式s=(a′b′ci′+ab′ci+a′bci+abci′)′co=(a′b′+b′ci′+a′ci′)′全加器可以用两个半
2020-05-26 22:48:07 583 1
原创 编码与解码,存在即合理
编码与解码,存在即合理首先我们先来科普一下计算机领域里的编码与解码:人类先有了自己的语言,然后才出现了计算机。可惜计算机只认0和1,人类只能认文字,双方都不能妥协,那就必须要有一个从文字到0、1的映射了。从文字到0、1的映射称为编码,反过来从0、1到文字叫解码。 具体什么 是编码?先来咬文嚼字一下吧。编就是将某样东西按照一定的规则放到一起,码在这里是数字的意思。编码就是将某东西编成数字。比如邮政编码,就是将不同范围 内的邮局编成不同的数字。计算机里只有0和1,编码就是将文本字符编成一系列的0和1,
2020-05-26 19:21:39 1009
原创 检错码与纠错码,一码归一码
检错码与纠错码,一码归一码写在前面:为什么需要差错处理任何信道,即使是光纤,也会出错。差错的类型单个错误:分散在各块中突发错误:集中在某个块中注:突发错误比单个错误更加难于处理,通常利用处理单个处理的方法来应对突发错误。差错的处理纠错码:发现错误,从错误中恢复出正确的来。因其需要太多的冗余位,纠错开销太大,在有线网络中极少使用,主要用于无线网络中。检错码:只能发现错误,不能从错误中恢复,但可采用重传两种不同的处理方法适用于不同的环境检错码为什么要用检错码?纠错需要较多的冗余位
2020-05-25 22:37:04 7637
原创 LFSR(斐波那契大战伽罗瓦)
LFSR线性反馈移位寄存器线性反馈移位寄存器(LFSR):通常由移位寄存器和异或门逻辑组成。其主要应用在:伪随机数,伪噪声序列,计数器,BIST,数据的加密和CRC校验等。Part.1线性反馈移位寄存器(LFSR)主要包括两大类:斐波那契(外部LFSR),又称many-to-one;伽罗瓦(内部LFSR),又称one-to-many。如下图(模2的多项式:x8+x6+x4+1):Part.2抽头(tap):影响线性反馈寄存器下一个状态的比特位叫做抽头,抽头的设定会决定线性反馈寄存器最大的输出序
2020-05-25 20:51:54 9438 4
原创 集成电路设计,入学通行证
集成电路设计基础篇思维导图:这里简单介绍一下德摩根定律:数学方式:(A || B)’ = (A’) && (B’)(A && B)’ = (A’) || (B’)或者(我喜欢你或者你喜欢我)都不成立=(我不喜欢你)而且(你不喜欢我)(我喜欢你而且你喜欢我)都不成立=(我不喜欢你)或(你不喜欢我)这真是一个悲伤的故事其它知识或许会出现在其它博文里的某个角落哈姆雷特,请保持前行!...
2020-05-24 21:42:13 356
原创 Verilog可综合与不可综合之disable(纠结)
Verilog综合与不可综合思维导图:可综合与不可综合语句汇总:(1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,bufif0,bufif1,notif0,notif1,if,inout,input,instantitation,module,negedge,posedge,
2020-05-24 21:41:24 2284
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人