IC知识
文章平均质量分 62
Brad.Ji
这个作者很懒,什么都没留下…
展开
-
深度为1的异步FIFO设计
深度为1的异步FIFO设计原创 2022-07-02 11:57:13 · 1550 阅读 · 3 评论 -
流水线除法器verilog实现
除法器思路都是一样的,都是根据下述这个图实现如果全用组合逻辑实现,那么时序肯定很差,另外一方面如果用时序逻辑实现就要考虑到实际使用时候出发的除数和被除数是流水进来的,所以结果上肯定是要一个周期输出一个数据。所以我的思路就很简单,就是加寄存器,一拍走一个,如果是N位的我这里用到了N+1个寄存器,当然还可缩减一个。我分别对除数被除数还有有效信号做了寄存器,然后一拍一拍往下传,用时序逻辑实现除法器移位后的判断,用组合逻辑实现移位操作。代码如下`timescale 1ns / 1ps//原创 2022-05-12 21:33:39 · 2188 阅读 · 3 评论 -
FIFO专题之单口RAM实现FIFO(同步)
使用单口RAM实现FIFO,其实很简单,其中的重点就是区分出读写,读写如果同时启动,你肯定会思考单口RAM肯定会出问题,毕竟单口RAM只有一个口,肯定不能实现同时读写,那么怎么解决这个问题呢。有两种办法:第一种办法就是采用两个单口RAM,这样就可以了,两个单口RAM分开奇偶,相当于乒乓的意思,然后再加一个REG,这就相当于把读写分开了那么就可能分为以下几种情况:①同时读写:读写同时为奇,这种情况就是在当前一拍,将写数据存入REG中,并将REG_VALID拉高告诉FIFO我下一拍要写数据,原创 2022-05-11 21:51:07 · 5617 阅读 · 11 评论 -
握手信号出现时序违例怎么办
如果你参加过IC校招面试,自然会被问到“setup/hold的概念,以及setup/hold违例怎么办?”这时候,你肯定会立马在脑海中从打拍或者插buffer两个答案中选一个。但是在实际项目中,往往没有这么简单。举一个实际的场景:AXI master和AXI slave这一簇信号出现setup时序违例怎么办?1、从AXI master 到AXI slave 出现setup违例;2、从AXI slave 到AXI master出现setup违例;3、两者都出现setup时序违例。.转载 2022-05-10 14:55:03 · 749 阅读 · 0 评论 -
Serdes数据流
图中蓝色背景子模块为PCS层,是标准的可综合CMOS数字逻辑,可以硬逻辑实现,也可以使用FPGA软逻辑实现,相对比较容易被理解。褐色背景的子模块是PMA层,是数模混合CML/CMOS电路,是理解SerDes去别于并行接口的关键。发送方向(Tx)信号的流向: FPGA软逻辑(fabric)送过来的并行信号,通过接口FIFO(Interface FIFO), 送给8B/10B编码器(8B/10B encoder)或扰码器(scambler),以避免数据含有过长连零或者连1。之后送给串行器(Serial...原创 2022-03-17 16:26:07 · 296 阅读 · 0 评论 -
低功耗设计(三)
晶体管级的功率降低优化 工艺进步会引起功耗降低这是必然的1.布局优化直连的模块,或者说数据输入输出比较复杂的模块应该处于硅上非常接近的位置,因为走线的长度会引起不必要的功耗,甚至是时序上的不可靠性,走线延时会明显影响时序性能,甚至出书Slack。2.衬底偏压泄露电流是Vth的函数,适当的提高反向偏置电压或者提高晶体管的阈值就会减少泄漏电流,从而降低静态功耗。设计Vth动态变换的电压模式,在比较活跃的状态下,反向偏置较小,而在待机状态下反向偏置较高,这就涉及到低功耗一...原创 2021-12-19 22:34:51 · 292 阅读 · 0 评论 -
低功耗设计(二)
实际上对ASIC设计而言,在架构和RTL基本上完成的时候,功耗已经决定了80%,后端或者EDA工具对功耗的影响也只是在上述预留的功耗中修修补补,但是最终占大头的也是那80%,而且对于现在的IC设计工程师而言,必须学会一些低功耗的编码技术。 1.状态机的编码与分解 就是使用格雷码编码状态机,减少翻转率。而且状态机的状态大部分也是先使用组合逻辑实现N_state的变换,然后再到时钟有效沿进行state的转变,而使用格雷码编码会减小使用组合逻...原创 2021-12-19 22:00:16 · 852 阅读 · 0 评论 -
低功耗设计(一)
要进行低功耗设计,首先就要清楚设备的低功耗出现在哪里,都有什么形式的低功耗,这方面看过一些论文或者一些博文的已经非常清楚了,首次启动的驱动电流,静态功耗,动态功耗三种。 首次启动的驱动电流就是大型设备第一次上电时那股巨大的浪涌电流,这会造成很大的功耗,但是对于数字的IC设计而言,这部分我们是难以解决的,一般是这个做这个设备的底层解决的。 静态功耗就是因为MOS管由于泄露电流造成的功耗,这方面的功耗随着工艺的进步越来越大。动态功耗或者开关功率是门输出切换时由...原创 2021-12-18 11:09:06 · 1869 阅读 · 0 评论 -
ASIC设计中的分频时钟
通常在一个SOC设计当中,或者任何一个工程项目当中,一般是很少用到单频时钟的,经常会用到分频时钟处理,经典的面试题中也有占比50%的三分频时钟设计;奇数分频时钟,50%占空比时钟处理方法:对使用奇数分频整除得到50%占空比的波形图如下图所示:其步骤就是:1.创建一个计数器,计数器从0到N-1,并且时钟在时钟的上升沿计时。2.采用两个切换触发器,按如下方式启动:tff_1en:使能在当计数器为0时;tff_2en:使能在当计数器为(N+1)/2,比如在3的时候就是...原创 2021-12-17 15:25:41 · 860 阅读 · 0 评论 -
七层协议OSI
OSI并不是一个协议,也不是一项技术,是一个参考模型。OSI(Open SystemInterconnect),即开放式系统互联。一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。它把我们使用的网络架构划分成了7个层次。图8‑1 OSI参考模型所以对于OSI参考模型只需要理解即可,不需要进行很深的研究。至于为什么选择这个模型进行网络互连,下面举一个简单例子:假设甲公司经理要寄一份文件给乙公司的经理。A.甲公司经理老板喊他秘书过来,说把这...转载 2021-11-17 16:23:43 · 323 阅读 · 0 评论 -
信号调制与解调
zai 在信号传输过程中,不同的传输介质对信号的频率等要求不同,也就是说不能直接将原始信号放到传输介质上进行传输,需要先将信号频率调制到固定的范围上适应于信号传输,而等信号传输到目标后,需要将调制后的信号进行解调,也就是将信号从载波上恢复到原始信号,然后进行信号处理,信号处理后再通过将处理的信号搬移到载波上,进行下一次传输; 一般信号调制也叫上变频,将信号变为中频信号,直接将原始信号与载波信号作频域卷积或者在时域进行乘积,将原始信号搬移到特定载波上。而在信...原创 2021-11-13 21:53:00 · 7430 阅读 · 0 评论 -
IC之无毛刺时钟切换
最近看秋招面试题,这玩意儿考了很多次,所以单独拿出来写一下: 题目的含义很简单就是一个时钟切换电路,但是在时钟切换时容易出现以下几种情况:第一种:切换前的时钟为高电平,切换后为低电平,切换后过一段时间切换后电平拉高,就造成了时钟输出电路上一个凸起的毛刺;如下图:第二种:切换前的时钟为低电平,切换后为高电平,过一段时间后高电平拉低,这也造成了在时钟输出的波形上,电路有一个凹下的毛刺;如下图所示:这看起来很简单但是在时钟切换时存在的毛刺很可能会引...原创 2021-11-13 21:21:07 · 1205 阅读 · 1 评论 -
边沿检测电路的多种实现
在数字IC设计中经常需要用到边沿检测电路,比如在雷达的信息处理流程中,数据进入时通常会跟着进入一路包络信号,包络信号可以看成时数据的有效位,即包络为高电平时,数据有效才会进行下面的信息处理流程,当包络无效即为低电平时,数据无效不会进入下面的信息处理流程。也就是非连续脉冲处理的机制中,这种边沿检测思想用到了,但是不止脉冲处理机制,基本上IC或者FPGA大一点的工程中都会用到边缘检测思想,下面针对边缘检测电路提供几版的verilog实现: 思路就是直接加一个寄存器,对有效信号打一拍处...原创 2021-11-13 10:56:02 · 780 阅读 · 0 评论 -
Serdes 高速串行接口
一、SERDES的作用1.1并行总线接口 在SerDes流行之前,芯片之间的互联通过系统同步或者源同步的并行接口传输数据,图1.1演示了系统和源同步并行接口。 随着接口频率的提高,在系统同步接口方式中,有几个因素限制了有效数据窗口宽度的继续增加。a)、时钟到达两个芯片的传播延时不相等(clock skew)b)、并行数据各个bit的传播延时不相等(data skew)c)、时钟的传播延时和数据的传播延时不一致(skew between data and clock) ...转载 2021-11-08 15:49:27 · 8903 阅读 · 1 评论 -
高速Serdes串行接口
在以往的IC之间的源同步当中,发送的信号包括数据流信号,以及随着数据流信号同步的时钟信号,时钟信号在低速传输的情况下:1G以下传输,外部的扰动以及时钟抖动不会太影响数据流的恢复,但是如果时钟信号突破了1G甚至更高的情况下,外界环境中比如EMI的各种影响会引起时钟发生抖动,在高速采样恢复的过程中,这就没办法使用该时钟信号恢复数据,这里就用到了高速Serdes串行接口的恢复办法,将数据和时钟都通过高速线上传输,然后接受端通过PLL从数据流中恢复时钟,即使在传输的线上有轻微抖动,但是时钟和数据同时...原创 2021-11-08 15:44:43 · 2964 阅读 · 0 评论 -
多个IC之间的同步问题及串并转换问题
系统同步两个IC之间的通信,但是两个IC之间通信的时钟由同一个时钟源发出,要考虑的信号的建立时间与保持时间延迟,时钟上也要考虑到两个时钟的时钟抖动和时钟偏斜。源同步两个IC之间的通信,前一个IC不仅给后一个IC数据信号也给后一个IC时钟信号,后一个IC的接受数据就是以接受到的时钟信号为同步进行接受,要调整转发时钟的输出时间,数据线长度一定要和走线长度相匹配,两者走线延迟相同时序模型如下:自同步两个IC之间通信,数据和时钟信息都在一个信息流中发出,后一个IC要根据接受到的数据流对数原创 2021-11-07 21:39:11 · 759 阅读 · 0 评论 -
FPGA,ASIC中的port,net,pin
从这幅图中看,FPGA或这ASIC中和外部连接的端口叫做Port,在SDC中或者在ASIC的设计例化端口中加入的是port的例化,port分GPIO和LVDS差分,而硬件电路内部的cell中间的连接时net,cell的输入输出引脚叫pin,换句话说,port永远是指在顶层的端口向外部连接的输入输出port,而pin相对指的都是cell而言,只有模块上才会有pin,模块的输入输出端口都叫pin,pin之间都是通过net连接。 具体可以看大佬的写的非常详细。TCL中P...原创 2021-11-07 17:23:51 · 2016 阅读 · 0 评论 -
异步复位问题
复位中的同步复位和异步复位问题:恢复时间是指异步复位信号释放和时钟上升沿的最小距离,在“下个时钟沿”来临之前变无效的最小时间长度。这个时间的意义是,如果保证不了这个最小恢复时间,也就是说这个异步控制信号的解除与“下个时钟沿”离得太近(但在这个时钟沿之前),没有给寄存器留有足够时间来恢复至正常状态,那么就不能保证“下个时钟沿”能正常作用,也就是说这个“时钟沿”可能会失效。消除时间是指时钟上升沿之后变无效的最小时间长度。这个时间的意义是,如果保证不了这个去除时间,也就是说这个异步控制信号的解除与“有效时原创 2021-11-07 16:47:30 · 908 阅读 · 0 评论