自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 时钟与约束

当不是来自同一个时钟源时,只要CLOCK的周期有倍数关系并且相互之间的相位关系是固定的就可以算是同步电路,比如, 电路中用了10ns, 5ns, 2.5ns 三个时钟,这三个时钟不是由同一个时钟源分频来的,但是这三个时钟的周期有倍数关系并且相位关系固定:10ns是5ns的2倍,是2.5ns的两倍,之间是整数倍关系;对于系统要求非常严格的,比如时钟切换很频繁,有不能够在复位的时候切换,而且也不允许有短暂的错误,那么时钟就不能这样子进行切换了,就要使用其他的时钟切换方案或者进行时钟同步了。

2023-08-23 22:51:09 182

原创 亚稳态的建立

当反相器的输入从1过渡到1.5V的时候,反相器对这段的电压没有定义,比如输入为1.25V的时候,曲线对应的输出大概为1.25V,这是反相器就会迅速进行电平切换:可能进行高电平切换,认为这个输入是低电平于是对应的输出高电平;处于阈值电压附近,就可能会使主D锁存器不能正确输出,之后的从锁存器也不能正确输出,即输出Q处于亚稳态:输出电压可能处于阈值电压附近,也可能处于高电平,也可能处于低电平,也可能是在高低电平之间震荡(因为反相器具有电平切换功能),总之我们无法预测输出具体是哪一种稳定的电平状态。

2023-08-23 22:41:16 184

原创 建立SETUP

前面说了CMOS器件,现在就接着来聊聊锁存器跟触发器吧,下面是这次博文要介绍的主要内容:    ·双稳态器件    ·锁存器常见结构    ·锁存器的应用    ·触发器    ·触发器的建立时间和保持时间1、双稳态器件  双稳态器件是指稳定状态有两种,一种是0,一种是1的器件;双稳态器件是存储器件的基本模块,双稳器件的的一种电路结构是:交叉耦合反相器结构,如下图所示:                    连个反相器连在一起,这就构成了一个双稳态器件,为

2023-08-23 22:39:42 126

原创 时序路径约束

在进行约束之前,DC是不知道的,因此我们通过约束这条路径,也就是告诉DC外部的延时(包括寄存器翻转延时和组合逻辑、线网的传输延时)是多少,比如说是Tclk-q+Tm,在约束了时钟之后,DC就会计算这条路径留给电路N的延时是多少,也就是Tclk-q+Tm。如果延时还是太大,DC就会报错。现在的节拍(0ns这一时刻)到来后,数据(比如说是一个高电平)从FF1的D端传来,经过组合逻辑,在下一个节拍(20ns这一时刻)的时候传到FF2的D端,更新FF2的数据(0ns时,FF2保存的是低电平),如红色箭头所示;

2023-08-22 21:40:54 242 1

原创 秋招手撕代码

用verilog实现一个异步双端口ram,深度16,位宽8bit。A口读出,B口写入。支持,要求代码可综合。

2023-08-20 22:02:22 90 1

原创 DC文件结构的建立

VMware Workstation 16 Pro中的Ubuntu 22.04DC版本为2016.03。

2023-08-20 20:45:59 489 1

原创 秋招投递~f

数字设计工程师-传感器 base上海2.深圳市国微电子有限公司数字电路设计/验证工程师(2024届)base 深圳3.得一微电子数字IC设计工程师 base 深圳。

2023-08-14 21:14:56 450

转载 异步FIFO最小深度计算方法及原理分析

注:将 fifo_depth = burst_length - burst_length * (X/Y) * (r_clk/w_clk) 作个变形,得到 fifo_depth = burst_length -[(burst_length *(1/w_clk))]/[(Y*(1/r_clk))/X] 其中[(burst_length *(1/w_clk))] 表示这个burst的持续时间,[(Y*(1/r_clk))/X] 表示读出每个数据所需的时间(即:读的实际速度)。深度是设计FIFO中常遇到的问题。

2023-08-13 23:06:38 473 1

原创 牛客网刷题错题总结(四)

generate-for语句必须要注意三点: 1.使用genvar 定义变量,作为generate中的循环变量 2.generate中定义的for语句,必须要有begin,这为后续增加标签做准备 3.begin必须要有名称,也就是标签,即begin:标签,因为标签会作为generate循环的实际名称。在UDP的真值表项中,只允许出现0,1,X的三种逻辑值,高阻值状态Z是不允许出现的。所以C选项是错误的。最后的小数大于0.5,根据四舍五入,最后应该取1,因为取七位,所以从第八位开始取,10011101,

2023-08-13 22:57:45 354 1

原创 牛客网刷题错题总结(三)

6.关于同步FIFO设计中,data_in是输入数据,data_out是输出数据,wr_en是写使能,rd_en是读使能,full是写满标志,empty是读空标志,fifo_data_cnt为内部的计数器,Deepth_fifo为FIFO的深度,下列描述错误的是()B.fifo_data_cnt,当复位的时候,为 0,当未读未写的时候,维持不变;输出高电平-Voh:逻辑电平1的输出电压,保证逻辑门的输出为高电平时的输出电平的最小值,逻辑门的输出为高电平时的电平值都必须大于此Voh。

2023-08-13 22:08:44 282 1

原创 面试问答题准备

1.什么是同步复位什么是异步复位,他们的区别是什么?同步复位原理:同步复位只有在时钟沿到来时复位信号才起作用,则复位信号持续的时间应该超过一个时钟周期才能保证系统复位。异步复位原理:异步复位只要有复位信号系统马上复位,因此异步复位抗干扰能力差,有些噪声也能使系统复位,因此有时候显得不够稳定,要想设计一个好的复位最好使用异步复位同步释放。同步复位与异步复位的区别主要看是否有时钟信号参与。异步复位不需要时钟参与,一旦信号有效立即执行复位操作;同步信号需要时钟参与,只有有效的时钟信号出现,复位信号才有效。

2023-05-24 10:44:22 87

原创 牛客网刷题错题总结(二)

使用较多的触发器,状态译码简单,可减少组合逻辑且速度较快,这种编码方式还易于修改,因为任何状态只有1bit,所以在增加状态或改变状态转换条件都可以在不影响状态机的其它部分的情况下很方便地实现。C.移位相加乘法器是从被乘数的最低位开始判断,若为1,则乘数左移i(i=0,1(width-1))位后,与上一次和进行相加,若为0,则乘数左移i位后,以0相加。移位相加法实现乘法的优点是占用的资源较少;5.乘法器通常有四种实现方法,并行乘法器,移位相加乘法器,查找表乘法器,加法树乘法器,下列关于乘法器描述错误的是()

2023-04-06 20:04:22 719

原创 牛客网刷题错题总结(一)

所以发送一个字符需要10比特,带来的一个好的效果是使全部的传输速率,发送信号的速率以10分划。所以B选项和C选项都是错误的。input、inout 类型不能声明为 reg 数据类型,因为 reg 类型是用于保存数值的,而输入端口只能反映与其相连的外部信号的变化,不能保存这些信号的值。4.流水线设计是verilog设计中基本功之一,是对组合逻辑系统的分割,并在各个部分之间插入寄存器,并暂存中间数据的方法,下列关于流水线说法错误的是()D.在移位相加的乘法器中,使用流水线的方法可以获得更快的速度,更小的面积。

2023-04-04 20:30:36 909

转载 Verilog中display和write任务以及格式化输出

https://www.cnblogs.com/Alfred-HOO/articles/16388640.html

2023-04-04 20:04:37 315

原创 vmware克隆虚拟机移植后如何重启lmgrd

之前移植我的虚拟机之后想使用vmware的共享虚拟机功能,从而可以远程编译仿真。因此将虚拟机安装到了我的c盘中,结果发现共享的方案并不好用,并且把我可怜的300GC盘占满了,于是重新克隆移植到了D盘之中。但是发现license服务启动失败,从而无法使用vcs,verdi等工具,折腾了一下午找到了解决办法,因此分享一下。

2023-03-17 16:39:05 487

原创 VCS编译时报错Register ‘*‘ is illegally connected to output port “**“ of module

解决VCS编译时报错Register '*' is illegally connected to output port "**" of module的问题

2022-12-18 18:50:38 576

原创 systemverilog中并发线程的介绍和实操

在fork-join之中各个线程均为并行执行的,并发线程没有固定的先后执行顺序,哪个线程进入ready状态就执行哪个线程,其余的线程会wait,直至所有的线程都转为wait。在fork-join语句中封装在begin-end中的语句会形成单一的子线程,并且子线程会从上往下依次串行执行,此外,所有的子线程共享父线程的变量。下面会进行实操来直观的掌握fork-join。

2022-12-13 12:14:10 702 1

原创 解决VCS编译过程中Failed to obtain license...报错的问题

在VMware workstation中克隆了我的Ubuntu虚拟机到另一台电脑中,克隆完成后再次使用vcs进行编译就开始报错,最终成功解决

2022-11-25 01:02:50 2557

空空如也

空空如也

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

TA关注的人

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