
数字设计
文章平均质量分 78
经典IP原理及功能介绍、以及提供软件配置流程、软件使用注意事项
love混世_魔王
SOC数字设计、验证工程师,码龄10年
展开
-
芯片中顶层金属(top metal)的选择及厚度
1.电阻率:铝的电阻率比铜大,但是由于铝比铜轻,所以铝线的比电阻(电阻率乘以线长)比铜低。1.导电性能:金属互联的厚度对电阻的影响非常明显,厚度越小,电阻就越大。另一方面,厚度越大,互联线的承载能力就越强。综上所述,芯片中选择铝组成顶层金属互联以及选择较厚的厚度,是考虑到多个方面的因素。2.机械性能:芯片加工过程中,会涉及到许多高温高压的操作,同时还需要进行晶圆切割等步骤,这就需要顶层金属互联具有足够的机械强度。2.价格:铝的价格比铜便宜,而顶层金属互联的材料需要大量使用,因此选择铝线可以降低生产成本。原创 2023-12-14 17:57:20 · 4940 阅读 · 1 评论 -
利用工具自动生成 IPs
当我们项目中需要使用一些经典的IP时,比如timer、wdt、uart、i2c、apb、ahb、arbitary、axi bus等等IPs时,可以利用工具自动生成,大大节省项目开发时间,而且工具自动生成的代码几乎没有什么bug,功能也很丰富。缺点是,相对人工写的RTL,这些自动生成的代码面积相关大一些,不同的项目可以根据项目需求进行取舍。提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文详细介绍了生成DW相关IPs的使用。原创 2023-12-14 17:44:26 · 1308 阅读 · 1 评论 -
异步时钟域处理的七种方法
本文介绍了异步处理的7种常用的解决方法以及对应的使用场景介绍,每种方法各有优势,具体的选择可以根据实际需求进行平衡。原创 2023-12-22 09:48:46 · 1450 阅读 · 0 评论 -
关于时钟动态切换分频控制字设计的一种通用写法
else if(clk_div_cnt == (clk_div_num_smp - 1'b1)) //在即将归0的前一拍更新新的分频控制字。input wire[NUM_WD-1:0] clk_div_num, //时钟分频控制字,这里举例2bit,最多进行3分频。input wire clk_div_en, //时钟分频模块使能,主要用于低功耗设计。原创 2023-12-13 10:26:56 · 517 阅读 · 0 评论 -
SOC系统经典IP介绍以及使用方法说明之dw_i2c
本文详细介绍了i2c的相关协议、硬件的工作原理,以及软件的使用方法。并且根据实例讲解了相关的技术细节,供大家参考。当然,本文只针对i2c的某一种应用场景进行举例,实际工作过程中,大家还需要根据需求对此做简单调整。原创 2023-12-22 10:39:23 · 1652 阅读 · 0 评论 -
2.5分频电路及其扩展
该电路实现的技术难点是:如果用数字方式实现的话,每次综合都需要对模块中的异或逻辑进行timing修正,我们可以看到clk_src_tmp的窄脉冲其实是靠clk_div3_div2进行delay得到的,在中后端由于有max pulse以及min pulse的要求,所以这个窄脉冲的宽度不宜太大,也不宜太小,因此这种电路最好用模拟电路搭,将其做成hardmarco,这样方便后续项目继承。同时,该电路也可以扩展到其他的点5分频,只需要将前级的三分频修改为所需的整数分频即可。电路结构相对简单,易实现,可继承性强。原创 2023-09-12 21:14:10 · 1338 阅读 · 0 评论 -
关于两个时钟进行无毛刺切换的一种实现方法
在时钟设计方案中,通常要求硬件支持多个时钟源之间进行切换,可分为有毛刺切换和无毛刺切换,有毛刺切换对硬件设计要求不高,但是需要软件配合,即软件需要按照指定的flow来保证最终实现的时钟电路不能出现毛刺,常用的方法比如关停时钟,配置切换信号,然后再打开时钟。这种方式在有些系统中要求切换过程中不能关停时钟时,就不太使用。所谓无毛刺切换是硬件上支持软件可以任意时刻进行时钟源之间的切换。output wire sel_clk_st, //当前时钟源指示信号。原创 2023-12-13 10:48:19 · 275 阅读 · 0 评论 -
SOC系统经典IP介绍以及使用方法说明之dw_timer
dw_timer即定时器,在SOC系统中属于常用的模块,目前synopsis工具可以根据需求自动生成RTL代码,具有很强的通用性和移植性。本文主要针对dw_timer进行简单的介绍,包括寄存器配置flow以及使用过程中的一些注意事项。原创 2023-12-20 09:17:51 · 822 阅读 · 1 评论 -
SOC系统经典IP介绍以及使用方法说明之dw_wdt
WDT即我们常说的看门狗,一般带CPU的系统都会配上WDT,主要原因也是因为在实际软件运行过程中,无论是硬件存在缺陷还是软件存在bug,还是随着芯片运行环境变化导致timing问题、甚至说遇到了概率性的异步问题等原因,莫名导致CPU跑飞了,也就是说CPU无法正常取指执行,进而导致一些模块无法正常运行,而这些应用场景有时候无法人为干预,所以即使CPU跑飞了,我们也想通过某个技术手段,让CPU能够回归正常,也就是我们说的重启。原创 2023-12-21 09:33:27 · 730 阅读 · 1 评论 -
RST_GEN设计规范系列之同步释放原则
在SOC系统中,rst_gen是专门为系统各个模块产生复位逻辑,用于接DFF的复位端口。为了保证系统复位正常,rst_gen模块设计有严格的要求,一般会跟clk_gen匹配产生,好的rst_gen设计不但可以保证系统复位的鲁棒性,还有利于中后端recovery/removal的timing收敛。提示:以下是本篇文章正文内容,下面案例可供参考beignif(!rst_n)elseend如上例子定义一个寄存器 example_name,该寄存器的CK端为clk,复位端为rst_n。原创 2023-12-15 13:52:37 · 243 阅读 · 0 评论 -
ECO for SOC
按照芯片研发flow,一旦需要做ECO,说明项目周期基本进行到了末尾阶段。通常情况下,一旦项目进行到了后仿阶段,再发现设计上的bug之后,首先需要进行评估,看是否能进行ECO,如果可以进行ECO,优先选择ECO方案,因为一旦重新走中后端流程,意味着项目周期要delay,除非后期发现的bug无法通过ECO解决。毕竟ECO也只能进行简单的改动,一旦需要进行复杂逻辑的改动,很可能无法进行ECO。本文我们介绍一下简单的ECO,比如修改寄存器默认值的改动,这是一个简单的ECO改动,也是经常会遇到的问题。原创 2023-12-15 10:20:53 · 309 阅读 · 0 评论