数字IC设计
AmoreMc
这个作者很懒,什么都没留下…
展开
-
Verilog- $stop $finish的区别
$finish exits the simulation and gives control back to the operating system.$stop suspends the simulation and puts a simulator in an interactive mode.原创 2021-10-28 16:50:28 · 573 阅读 · 0 评论 -
Verilog -sbit
sbit是定义特殊功能寄存器的位变量。bit和sbit都是C51扩展的变量类型。典型应用是:sbit P0_0=P0^0;//即定义P0_0为P0口的第1位,以便进行位操作。bit和int char之类的差不多,只不过char=8位, bit=1位而已。都是变量,编译器在编译过程中分配地址...原创 2021-09-28 10:15:36 · 205 阅读 · 0 评论 -
文档标题中的缩写字母代表的意思
文档标题中DS:data sheetRN: release note原创 2021-09-27 11:35:19 · 716 阅读 · 0 评论 -
2021-09-27 周会总结
资深工程师和junior工程师的区别就是在于能不能发现仿真看不出来的问题。比如:CDCRDC - 这就牵扯到 Recovery & remove 的问题输入输出的处理比如clock的去抖动处理原创 2021-09-27 11:20:25 · 84 阅读 · 0 评论 -
Asserted Deasserted
Asserted(Asserting、Assert),Deasserted (Deassert、deasserting、de-asserted)asserted的意思就是把信号变为active(可以理解为有效),根据系统有求不同,该有效电平可以是高电平(即高有效)也可以是低电平(即低有效)。deasserted的意思就是解除active状态,就是信号变为非active状态,可以是高也可以是低。...原创 2021-09-24 11:34:30 · 512 阅读 · 0 评论 -
CAN总线笔记
CANFD有两种标准,分别为ISO CANFD和非ISO CANFD,非ISO CANFD就是BOSCH制定的规范,目前主流推ISO CANFD。经过查找手册,发现CANFD寄存器默认是ISO CANFD原创 2021-09-23 14:51:53 · 87 阅读 · 0 评论 -
数字后端 - 一些名词总结(未解决)
close timingdrclvs独立开发后端flowICC - floorplanePT - timing analysislinux - cmdlinux - ecodc/fm/ic/pt/star/icvdrc/lvs/tmax/redhawk/calibretiming fix的ecoicc跑完自动做star pt,然后自动跑dmsa eco timing fix, 自动回去icc ecodrc fixicc里面用tcl script是比较慢的,比如他不能忍受一个tcl原创 2021-09-17 15:32:12 · 887 阅读 · 0 评论 -
SoC 与 MCU
1、CPU(Central Processing Unit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。2、MPU (Micro Processor Unit),叫微处理原创 2021-09-17 15:01:31 · 821 阅读 · 0 评论 -
数字IC后端中的各种仿真简介
数字电路设计中一般有源代码输入、综合、布局布线等三个比较大的阶段,而电路仿真的切入点也基本与这些阶段相吻合,根据适用的设计阶段的不同仿真可以分为RTL行为级仿真、综合后门级功能仿真和时序仿真。这种仿真轮廓的模型不仅适合FPGA/CPLD设计,同样适合IC设计。一、RTL行为级仿真在大部分设计中执行的第一个仿真将是RTL行为级仿真。这个阶段的仿真可以用来检查代码中的语法错误以及代码行为的正确性,其中不包括延时信息。如果没有实例化一些与器件相关的特殊底层元件的话,这个阶段的仿真也可以做到与器件无关。因此在设原创 2021-09-17 15:01:08 · 2032 阅读 · 0 评论 -
Chisel 入门
each creation of a component adds hardware;each assignment statement generates gates and/or flip flops.When Chisel executes your code it runs as a Scala program, and by executing the Chisel statements, it collects the hardware components and connects th原创 2021-09-16 17:27:36 · 207 阅读 · 0 评论 -
UVM-小结
uvm_driver会从uvm_sequencer中获取transaction,经过转化进而在接口中对DUT进行时序激励uvm_monitor通常执行的 功能包括:观测DUT的interface,并且收集总线信息永远不会驱动DUT,即永远保持passive模式在总线协议或者内部信号协议观察时,可以做一些功能和时序的检查对于更加复杂的检查需求,它们可以将数据发送至其他验证组件,例如scoreboard, reference model 或者coverage collector.uvm_se.原创 2021-09-16 09:04:57 · 113 阅读 · 0 评论 -
TCL_括号总结
{……}:它在外面谁都不好使,锁死,不许替换,包括转义字符。“……“: 它在外面,内部的东西一切皆字符,该替换就替换。[……]:内部是可执行指令命令输出{[......]}[......]"[......]"Value of ......[{.....}]Error"{......}"{.....}["....."]...原创 2021-09-13 16:48:30 · 306 阅读 · 0 评论 -
VHDL语法总结
VHDL语法总结##VHDL数据类型转换STD_LOGIC_1164包集合TO_STD_LOGIC_VECTOR(A)----由BIT_VECTOR转换为STD_LOGIC_VECTORTO_BIT_VECTOR(A) -----------由STD_LOGIC_VECTOR转换为BIT_VECTORTO_STD_LOGIC(A)-------------由BIT转换成STD_LOGICTO_BIT(A) --------------------由STD_LOGIC转换成BITSTD_原创 2021-09-13 07:55:23 · 1003 阅读 · 0 评论 -
数字后端 - STA
Timing arc,中文名时序弧。这是timing计算最基本的组成元素,如果两个pin之间在timing上存在因果关系,我们就把这种时序关系称为Timing arc,主要分为定义时序延迟,和定义时序检查两种。为啥叫它时序弧?因为时序图中经常用一条弧形线段来表示它。如下图所示:cell的timing arc定义在lib中,non-unate clock 意思是输出与输入无函数关系,即不相关的non-unate path的意思就是单个输入固定时,输出也是不确定的,没有确定的函数关系,即不相关路径根据s原创 2021-09-10 15:57:57 · 3141 阅读 · 0 评论 -
floorplan 和 place的区别
floorplan放macro,就是大的cell(人工为主),place放std cell(自动为主)当然floorplan还有其他的一些工作,比如放 IO,创建power,放physical cell等physical cell 就是 endcap, tap cell之类,就是没有逻辑意义的单元,没有任何功能性质,功能比filler多点,filler主要是连接rail,N阱等endcap放在row两端,tap cell 防闩锁效应Tap cell, 也被称为welltap cell。这也是一种特殊原创 2021-09-08 10:57:48 · 2280 阅读 · 0 评论 -
IC设计- 浅谈各种验证 - 功能验证,形式验证,原型验证
浅谈逻辑仿真,形式验证及硬件仿真随着硬件设计复杂性的不断增加,为了能够最大程度的使得验证收敛,验证方法也越来越多,今天我们针对常见的几种验证方法做一些简单的分析,指出它们的常用应用环境以及一些优缺点,主要包含:逻辑仿真,形式验证,硬件仿真。一、逻辑仿真(功能验证)- UVM相关从我们整个芯片的验证过程来讲,基于软件的逻辑仿真在验证中仍然起着举足轻重的作用,整个项目中的功能验证都是通过逻辑仿真来进行验证,下面我们就逻辑仿真的优缺点进行一个简单的阐述:优点:逻辑仿真的工具可以在标准的服务器上运原创 2021-09-08 09:35:16 · 8994 阅读 · 1 评论 -
数字IC设计 - 后端DC 概述
1、逻辑综合的概述synthesis = translation + logic optimization + gate mapping .DC工作流程主要分为这三步Translation : 翻译,主要把描述RTL级的HDL语言,在约束下转换成DC内部的统一用门级描述的电路(Generic Boolean Gates)(DC自己的库表现),以GTECH或者没有映射的ddc形式展现。Logic optimization :逻辑优化, 就是把统一用门级描述的电路进行优化,就是把路径调整一下,门给改一下原创 2021-09-06 14:24:11 · 1983 阅读 · 0 评论 -
2021-09-06 周会小结
DC检查比Verdi更为全面,因为DC有是否可综合的检查SpyGlass的检查又称为静态检查,所需时间长,报出的信息多,需要一条条过滤或者waveLint:类似于Coding style check输出无接口可以,但是输入无驱动不行!...原创 2021-09-06 14:22:26 · 157 阅读 · 0 评论 -
数字IC设计-SpyGlass
用spyglass -tcl ./scr/your_chip_edition_lint.tcl 跑lintspyglass -tcl ./scr/your_chip_edition_constraint.tcl 跑constraintspyglass -tcl ./scr/your_chip_edition_cdc.tcl 跑cdc, rdc原创 2021-09-03 14:53:54 · 1206 阅读 · 0 评论 -
数字IC验证浅谈
什么是验证?我所认为的验证就是指为确保芯片在流片之前,所有既定功能已被正确设计而所做一系列工程活动,站在全流程的角度,它是一种防范于未然的措施。我们知道芯片一旦被制造出来,就没有办法进行更改,即使在流片过程中容许一定程度的EC,其代价也非常昂贵,所以把问题拦截在流片环节之前异常重要,这正是验证存在的意义。不要把验证与测试等同起来,测试的所有结果都基于既成事实,即使发现了功能问题,也无力回天了。什么是验证方法学?验证工程师绕不开的一个基本概念。芯片规模越大功能越复杂,潜在的问题也就越多,验证的难度也就越大,原创 2021-08-30 13:46:42 · 2494 阅读 · 0 评论 -
Emacs - Verilog mode 自动实例化
打开emacs,敲入下面代码:module fanout (/*AUTOARG*/) input i; output [31:0] o; wire [31:0] o = {32{i}};endmodule保存,(快捷键CTRL+x CTRL+s,为了便于说明,用C-x C-s来表示),命名文件为fanout.v。然后,用户C-c C-a,代码就变成了如下:module fanout (/*AUTOARG*/ // Outputs o, // Inputs原创 2021-08-27 14:29:20 · 2237 阅读 · 0 评论 -
数字IC验证 - UVM - sequence
每个sequence都有一个body任务。当一个sequence启动后,会自动执行sequence的body任务,所以在sequence的class中,一定要有一个名为body的task。此外,如果一个sequence中,还有pre_body与post_body,则这两个task,会分别在body的task前面与后面执行。sequence的源码中,没有build_phase,所以,不要在sequence中使用build_phase。但是记得,sequencer中可以有build_phase。.原创 2021-08-27 11:17:55 · 593 阅读 · 0 评论 -
数字IC设计 - SODS - 低功耗设计
掉电用例一般跟低功耗相关,主要包含三个概念:isolation,retention和level shifter。根据电源的作用效果,可以分为常开区和掉电区。 当一个芯片中的电源数目不止一个的时候,就需要小心谨慎的描述各个电源之间的关系。这种设计类型被称为Multi-Voltage(MV)。 其中又包含一些小的概念,比如level shifter,isolation cell,等等。isolation从字面意思可以理解,是隔离的意思。如果当前区域或者外部区域中的一个电源被关闭了,则相应的信号线上的被原创 2021-08-27 11:04:52 · 769 阅读 · 0 评论