verilog
文章平均质量分 52
亓磊
牛逼的人生,不需要简述
展开
-
pregsim with sdf的保持时间违反,原因分析
无原创 2022-12-15 19:44:29 · 468 阅读 · 0 评论 -
pt check_timing PTE-074,找不到需要的上升沿。一种是时钟没定义好,周期值没有;一种是时钟被门控了;还有一种是D端口是常值,导致没有正常的时序路径可以分析。
题目就是摘要原创 2022-12-03 11:43:36 · 857 阅读 · 2 评论 -
dc综合报告wand,vc spyglass lint工具不报告W145多驱动。原因是什么?
解决方法:根据dc check_design,找到多驱动的点,比如LINK-67/LINT-4/LINT-54/LINT-31等,都是指定到了n1487常值信号线上。另外,dc工具,会在某层次,认为1’b0是n1487信号线;dc check_design报告里,会提醒多驱动,连接到了n1487信号线上。因为vc spyglass lint对unload的信号,会不报告W145多驱动。原创 2022-09-19 17:46:50 · 1031 阅读 · 0 评论 -
异步信号的set_max_delay设置
异步格雷码,设置set_max_delay原创 2022-07-28 09:39:41 · 5235 阅读 · 4 评论 -
什么是fail safe IO
普通IO cell,内置二极管用作ESD保护。考虑一种应用场景,当芯片只有部分上电的时候。芯片部分IO,是断开电源。如果芯片IO外接设备,输入给芯片高电平,会导致二极管导通,使得芯片内电源异常升压;即芯片内电源不是0v,而是3.3-0.7(二极管压降)=2.6v。这种情况,会导致芯片所在PCB板,发生异常情况概率加大,因为PCB板电源不符合期望。方法一:IO采用fail safe,解决此类芯片部分断电导致的IO电源倒灌问题。方法二:如果IO不带fail safe,需要考虑PCB板做好IO相连设备的一起原创 2022-07-06 09:13:09 · 3804 阅读 · 0 评论 -
gvim创建菜单、创建快捷键、实现emacs verilog-mode三种常见命令
gvim下实现emacs verilog-mode indent/auto操作。原创 2022-05-15 13:54:59 · 1170 阅读 · 0 评论 -
AHB接口总线仲裁1主多从细节。关于hready in和hready out信号的理解
所有slaver,只要有1个hready_out等于0,表示slaver没有准备好执行此拍操作;这时,所有slaver都不能执行此拍操作。以防止1主多从的AHB接口协议问题。所有slaver的hreadyout,需要与之后,提供给所有slaver。作为总线,会负责AHB的hready_out仲裁。这应该是ahb总线的一个bug。后续解决方案,就这么流传下来了。但是arm自己不承认是bug,所以协议文档里介绍的不清不楚。记得是知乎里看到的说法。参考:https://blog.csdn.net..原创 2022-01-28 09:10:39 · 2345 阅读 · 0 评论 -
upf模板,来自synopsys rm golden.upf
################################################################################################################################################################### Example 2: UPF using domain dependent supply nets.#######################################原创 2021-12-28 16:01:22 · 3522 阅读 · 1 评论 -
无毛刺时钟切换电路
参考文件:防止毛刺的时钟切换电路的设计思想https://mp.weixin.qq.com/s/jKrfWzFnM5NWUbzJhFU2wA转载 2021-12-02 16:50:29 · 2624 阅读 · 1 评论 -
芯片跨时钟域同步,即异步处理的理解
网上有一套资料Clifford E. Cummings论文合集,还不错。以下是临时想到的亚稳态就是时序违反的后果,异步信号肯定有时序违反可能。单bit 源时钟域打一拍,目的时钟域打两拍或者更多拍多bit fifo方法,原理是格雷码指针判断空满,深入了解,可以分析一下源目的时钟分别是快或慢的情况。架构简单,设计review快,质量可靠。所有异步处理机制,都多想一下。源目的时钟分别是快或慢的情况下,相应同步机制是否靠谱。别出现丢失和多采情况。握手实现同步,不是一拍完成的,所以很影响数据传输效率。原创 2021-11-27 07:34:15 · 5342 阅读 · 1 评论 -
时钟分频的几个细节理解
时钟分频原理简单。但需要注意几个细节。计数器分频,是基于源时钟div2/4/8/16/32/64。如果基于分频器串联,那么需要定义很多分频时钟,提升sdc时钟定义的复杂性。计数器分频,要注意所有div2/4/8/16/32/64,需要保证同相位。这样才能方便sdc,正确定义分频时钟和源时钟的相位关系。遇到一些设计,采用门控EN,实现时钟分频。这是FPGA设计经验,“在FPGA的设计中,分频时钟和源时钟的skew不容易控制,难以保证分频时钟和源时钟同相。故此推荐采用使用时钟使能的方法”。在asi原创 2021-11-27 20:57:14 · 2304 阅读 · 0 评论 -
jitter概念理解
一般,PLL等时钟产生模块,都会有RMS jitter的描述,根据这个参数,可以计算出相关时钟的clock jitter,方便设置综合sdc的时钟约束。jitter,即周期值发生左右随机性的变化。满足正态分布图。正态分布有两个参数期望值(平均值μ)。决定了正态分布图的位置。均方差(标准方差σ),反映了每个样本偏离期望值(一般是平均值)的程度。决定了正态分布图的形状。RMS jitter;正态分布的均方差,即标准方差。峰峰值抖动(peak-to-peak jitter,统计样本里,最大周原创 2021-11-22 09:26:19 · 14294 阅读 · 1 评论 -
upf基本概念学习
https://zhuanlan.zhihu.com/p/397526396转载 2021-10-16 17:09:00 · 3270 阅读 · 0 评论 -
antlr4 Verilog2001.g4
➜ verilog which antlr4 antlr4: aliased to java -Xmx500M -cp "/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH" org.antlr.v4.Tool➜ verilog which grungrun: aliased to java -Xmx500M -cp "/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH" org.antlr.v4.gui.原创 2021-10-07 22:37:11 · 444 阅读 · 2 评论 -
set_disable_timing和set_data_check,相关一条efuse时序违反路径的梳理。
set_disable_timing一般是要求一个lib cell,例如set_disable_timing -from cell.输入 -to cell.输出。datacheck,类似AEN当时钟,RDEN当数据,两个数据信号检查setup路径时序。如果report_timing这条时序路径的时候,应该是-from AEN -to RDEN,类似-from clk_xx -to dff_cell.Dset_disable_timing要求必须有-from和-to,成对出现。如果只set_disab..原创 2021-10-06 10:20:46 · 3487 阅读 · 4 评论 -
时序约束之 set_max_delay / set_min_delay
下文参考xilinx ug903文档。set_max_delay 用于覆盖默认的setup(recovery)约束。set_min_delay 用于覆盖默认的hold(removal)约束。语法格式:set_max_delay [-datapath_only] [-from <node_list>][-to <node_list>] [-through <node_list>]set_min_delay [-from <node_list>]转载 2021-10-06 09:30:34 · 4571 阅读 · 0 评论 -
logical exclusive 与 physical exclusive 的区别
数字电路中一般会有多个clock,这些clock 相互之间有些是同步的,需要做 timing check 的,有些是异步的,不需要做 timing check 的,还有些是互斥的,需要 exclude 掉的,这些关系就需要在 sdc 中声明出来,告诉工具哪些需要 check, 哪些不需要。sdc 中的命令 set_clock_group 就是用来声明 clock 之间的关系,具体用法如下:异步时钟,不做 timing check比如在下图这个电路中,如果 C1 和 C2 这两个 clock 是异步转载 2021-08-27 19:30:53 · 5611 阅读 · 2 评论 -
set_false_path 与 set_disable_timing 的区别
在静态时序分析中, set_false_path 和 set_disable_timing 都可以用来设置 timing exceptions,告诉工具忽略某些特定的path,但是在使用过程中,这两个命令又有些细微的区别。set_false_path 是用来设置 timing path,表示不用 check 这些 path 的 timing,但是依然会去计算这些 path 上的delayset_disable_timing 是用来设置 timing arc,表示打断这条时序弧,不去计算这段时序弧的 de转载 2021-08-27 19:28:30 · 8772 阅读 · 0 评论 -
芯片开发语言的简单区别介绍。Verilog、VHDL、System Verilog、SystemC、Matlab、C/C++等
芯片开发语言的简单区别介绍芯片设计前端的流程很长,和芯片前端相关的语言也很多,比如Verilog、VHDL、System Verilog、SystemC、Matlab、C/C++等等,但没有一个语言能够做到适合于整个前端流程;每种语言都有适合使用的领域,只有在整个前端流程的不同节点上选择最合适的语言工具,并加以整合,才能加速产品开发。注:本图引用自《SystemC: From the Groud Up》如上图所示,它显示了各种语言工具适合使用的场所,其中:Verilog、VHDL主要用于RTL建原创 2021-08-04 09:45:31 · 11141 阅读 · 0 评论 -
emmc,sd,tf,flash等各种存储卡的特点和区别
现在手机常用的,应该是emmc,即内部存储介质是nand flash。ufs比emmc,读写速度要快一倍;两者关系犹如固定硬盘相比机械硬盘。原创 2021-07-30 14:02:42 · 17418 阅读 · 0 评论 -
全数字锁相环的研究与设计
参考文档:http://www.doc88.com/p-4364928925689.html 一篇硕士学位论文《全数字锁相环的研究与设计》。https://www.docin.com/p-1390623327.html 《基于延迟锁定环的TDC的设计》注意点:数控振荡器,采用DCO方案。数字鉴相器,采用TDC结构。...转载 2021-07-02 18:02:18 · 943 阅读 · 1 评论 -
PLL电路原理
转载来自:https://blog.csdn.net/leoufung/article/details/50268031注意点:fr和fo频率比较,fr相对频率较高,则产生正脉冲;fo相对频率较高,则产生负脉冲。转载 2021-07-02 17:47:41 · 731 阅读 · 0 评论 -
DDR SDRAM的内部结构Cell Structure(预充电+刷新)
以上图Cell0为例子读过程1—首先关闭所有字线,W0,W1…Wn。让所有FET均不导通。2—然后将位线B0通过预充电开关Precharge(图中未画出)拉到Vcc/2,即VB0=Vcc/2。(这个操作就是预充电Precharge)3—再断开预充电开关Precharge Switch,停止充电。4—将W0置为高电平Vcc,此时Cell0的FET导通。如果原来存储的是1,Cbit电压大于VB0,那么Cbit会对字线B0充电,使得VB0>Vcc/2,此时VB0经过放大器Sense AMP...转载 2021-04-09 10:42:03 · 4957 阅读 · 0 评论 -
DDR基础知识点汇总
参考文章:土老冒谈硬件 深度解析DDR3内存新特性SDRAM最开始是时钟下降沿采样,数据传输速率和频率是1:1关系,即一个周期可传输1bit数据;DDR1,采用时钟双边沿采样,即上升沿、下降沿都采样。一个时钟周期可传输2bit数据,这个时候,就叫预取2bit技术了(因为一拍需要预取2bit数据)。可知预取2bit技术的基础,就是双边沿采样。DDR2,预取4bit。DDR3,预取8bit。举例,DDR3-800内存的存储核心频率其实仅有100MHz,其输入/输出时钟频率为400MHz,利用双边沿采原创 2021-03-30 15:40:28 · 14738 阅读 · 3 评论 -
图解RAM结构与原理,系统内存的Channel、Chip与Bank
文章目录标题挥发性内存分2种,SRAM和DRAM主内存子系统channel 和 DIMMrank 和 chipbank、row、column内存的读写方式越多越好,加速读写能力bank、rank、channel这些关于内存的名词是否已困绕许久,疑似了解却又说不出个所以然来。 就让我们一步步拆解内存的面纱,从架构到读写方式逐步揭开内存的秘密。标题挥发性内存分2种,SRAM和DRAMRAM(Ramdom Access Memory)随机存取内存,之所以称作「随机存取」,是因为相较于早期的线性储存媒体(磁带转载 2021-03-30 09:58:16 · 13623 阅读 · 1 评论 -
usb2.0 ehci host controller 简单数据传输实例的步骤分析
慎入!!!理解不成熟,目的是简单了解usb2.0 ehci主控,其数据传输的执行过程。原创 2021-03-18 16:49:08 · 989 阅读 · 0 评论 -
USB协通讯议--深入理解
转载来自:USB协通讯议–深入理解文章好,图片质量好。转载留档备份。0. 基本概念 一个【传输】(控制、批量、中断、等时):由多个【事务】组成; 一个【事务】(IN、OUT、SETUP):由一多个【Packet】组成。 USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。 1. 包(Packet) 包(Packet)是转载 2021-03-11 16:58:52 · 518 阅读 · 0 评论 -
CRC校验的原理、算法、电路结构和verilog代码实现
文章目录1. CRC校验的原理2. CRC算法3. 电路实现原理1. CRC校验的原理CRC,即循环冗余校验。能检错,能纠正。常用于:外设接口通讯的数据校验。主要原理就是二进制的取余过程。二进制数的取余,基础是二进制数的除法,二进制数的除法,基础是XOR,异或。以后,再遇到CRC问题, 按下述步骤操作即可。2. CRC算法举例,条件有,数据串:1101011011生成多项式:x6 + x4 + x2 + x + 1【最高次方是6,即此例题是CRC-6;常见CRC-16/CRC-32】原创 2021-02-25 14:54:16 · 10826 阅读 · 4 评论 -
异步复位,同步释放的理解
什么情况下复位信号需要做异步复位同步释放处理异步复位同步释放原理利用前面两级触发器实现特点问题1 如果没有前面两级触发器的处理异步信号直接驱动系统的触发器会出现什么情况问题2 复位信号存在亚稳态有危险吗问题3 如果只做一级触发器同步如何问题4 两级触发器同步就能消除亚稳态吗问题5 第一级触发器的数据端口为什么是1b1综上所述异步复位同步释放的电路结构是稳定可靠最省资源的是最优的方案请原创 2015-10-20 19:45:37 · 33424 阅读 · 6 评论 -
synplify
project文件名:.prj语法:tcl内容:包含 design filesconstraint filesoptions you have setimplementation就是project版本。project之间区别,是特定的parameter或者option settingsactive implementation可以一次综合出不同implementation的pro原创 2016-09-30 11:18:35 · 11838 阅读 · 2 评论 -
IC项目小任务(ncsim/tcl脚本实现)。提取SRAM实例层次结构、对应module名称、对应位宽深度
层次结构对应的例化名和spec sram里面的模块名一一对应。 ncsim终端命令里,可以使用脚本实现:set scope_list [find -scope tbench.U_GK6202S -recursive all -internals -wires LS_buf]regsub -all {.LS_buf} $scope_list {} instance_listset instanc原创 2016-09-23 15:39:52 · 2008 阅读 · 0 评论 -
perl:verilog dummy module
https://code.csdn.net/snippets/1903886.git原创 2016-09-27 21:51:30 · 2077 阅读 · 0 评论 -
create_generated_clock
create_generated_clock 介绍create_generated_clock有多个master_clock的情况create_generated_clock的时钟占空比不是50的情况1. create_generated_clock 介绍create_generated_clock 是用来说明generated clock与source clock的相位(边沿)关系, 同时根转载 2016-10-13 22:30:40 · 40528 阅读 · 4 评论 -
[开题]OCC(on-chip-clock)
90nm工艺以下,针对高速时钟和大规模电路,传统芯片test方法,已经不再精确有效;需要更深入的检测delay导致的不利影响。 at-speed scan test,可以测试transition-delay faults,并支持ATPG(synopsys公司提供的一套标准,全名automatic test pattern generation)。即检查传输延迟。 lanch clock和capt原创 2016-10-25 09:48:17 · 5048 阅读 · 0 评论 -
《systemverilog验证》阅读笔记 -- 数据类型
数据类型內建数据类型logic双状态四状态带符号无符号双精度浮点数多维数组循环嵌套的例子数据类型內建数据类型logic绝大多数,都可以用logic替换verilog的reg、wire变量声明。 唯一不适合的,就是inout双向的信号,比如传输门、PAD会出现;这种情况必须声明为wire型。logic默认值是X; wire默认值是Z;双状态、四状态四状态变量:0、1、x、z 双状态变原创 2016-11-04 18:00:12 · 11743 阅读 · 4 评论 -
《systemverilog验证》阅读笔记 -- 过程语句和子程序
过程语句条件ifcase循环forwhilecontinuebreak子程序参数return带返回值的子程序自动存储automatic过程语句条件ifcase循环forwhilecontinuebreak子程序function和task的使用,与verilog语法不太一样。主要区别: - function可以不带返回值 - function里可以调用task;线程章节会原创 2016-11-05 21:50:12 · 2410 阅读 · 0 评论 -
emacs脚本实现verilog代码的缩进
简介公司很多人用vim,不愿意尝试emacs。 而emacs的verilog-mode代码缩进,很经典。 如果不打开emacs编辑器,直接对某个verilog文件进行verilog-indent;可以利用emacs –script实现。emacs脚本名称verilog-indent.el#!/d/tools/emacs-24.5-bin-i686-mingw32/bin/emacs --scri原创 2016-09-29 22:46:12 · 3089 阅读 · 2 评论 -
spyglass CDC方法学
CDC issues亚稳态spyglass CDC方法学流程sdc2sgdc黑盒子的clock用assume_path约束该goal会产生clockreset的约束文件利用cdc_top_down也可以从soc顶层生成block-level的约束错误报告太多怎么看优先解决Ac_Sync_group属于结构性的错误ConvergenceGlitchesDataHoldData原创 2016-10-26 13:50:45 · 16438 阅读 · 1 评论 -
《systemverilog验证》阅读笔记 -- 连接设计和测试平台
测试平台和设计平台分开interface的引入测试平台和设计平台分开增加program block,代替testbench里的module block。 解决verilog模型的采样问题,就是testbench经常加小延迟(或者下降沿输入激励)的做法。interface的引入verilog,经常遇到底层设计模块的端口有改动,会牵连以上所有层次的端口做相应改动。 使用systemverilog的原创 2016-11-05 22:11:47 · 3527 阅读 · 0 评论 -
《基于spyglass同步设计分析和静态验证》阅读笔记
常见的CDC问题亚稳态data hold数据保持的时间问题常见的两级触发器同步多bit信号采用简单的两级触发器同步CDC中复杂的同步设计亚稳态总会有概率的存在单bit信号的CDC同步设计慢时钟域到快时钟域的同步情况快时钟域到慢时钟域的同步情况多bit信号的CDC同步设计握手协议同步设计异步fifo的同步设计异步复位信号的同步设计spyglass工具的引入组合逻辑的输出不原创 2016-10-26 23:12:38 · 11744 阅读 · 2 评论