![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IC设计/验证、FPGA
文章平均质量分 73
目前备战秋招,尝试一个月拿下数电基础、Verilog、刷题、做个小项目
IC二舅
IC二舅致力于足不出户,也不用回村就可以把每一位ICer的精神内耗给治愈了!全平台认准“IC二舅”!
展开
-
【基础知识】~ 一举拿下 ”CRC“
数据拼接时先接收到的数据放到data_b的低位。第三步:原数据从左往右,与CRC除数进行按位异或(注意:如果原数据高位有0,那就省略掉从最高位为1开始异或运算,直到原数据最后一位异或运算完成,所得到的就是CRC校验和,其长度为CRC除数-1,如果不够,前边补零,但一定长度为CRC除数-1那么长)。最后舍掉前边的0,这里需要注意,因为最后我们需要满足 CRC校验和的长度为CRC除数-1,CRC除数长度是5位,减一之后为4位,所以我们可以省略掉前边的两个0,假如不够四位的话,前边就得补零补足四位才行。....原创 2022-08-11 08:49:49 · 2776 阅读 · 4 评论 -
【基础知识】~ 集成电路设计流程,以及各阶段所使用的EDA工具
首先做一款芯片需要有市场,一般公司会先做市场调研,比如最近市面上比较火的人工智能芯片,物联网芯片,5G 芯片,需求量都比较大。有了市场的需求我们就可以设计芯片的 spec了。先由架构工程师来设计架构,确定芯片的功能,然后用算法进行模拟仿真,最后得出一个可行的芯片设计方案。有了芯片的 spec,下一步就可以做 RTL coding 了。Office完成芯片中数字部分的高层次算法或架构的分析与建模,为硬件提供一个正确的软件功能模型,更为重要的是,通过大量的高层次仿真和调试,为 RTL 实现提供总体性的设计指导。原创 2022-07-27 09:28:42 · 6883 阅读 · 0 评论 -
【UVM实战 ===> Episode_3 】~ Assertion、Sequence、Property
Assertion,称作断言。主要是用来与设计功能和时序作比较的属性描述。原创 2022-06-26 21:44:11 · 691 阅读 · 0 评论 -
【UVM实战 ===> Episode_2 】~ VIP、VIP的开发、VIP的发布
这里的VIP指的是Verification Intelligent Property,叫做验证IP。原创 2022-06-25 15:37:33 · 874 阅读 · 0 评论 -
【UVM实战 ===> Episode_1 】~ MCDF设计更新、AMBA标准接口、UVM验证环境更新
随着学习的不断深入,对于各个部分逐渐开始了全新的替代,本节就是对于更新MCDF的相应部分,包括:结构更新、原创 2022-06-25 11:02:21 · 969 阅读 · 0 评论 -
【UVM入门 ===> Episode_9 】~ 寄存器模型、寄存器模型的集成、寄存器模型的常规方法、寄存器模型的应用场景
UVC的全称是UVM Component,往往是我们构建环境中所用到的最底层的组件,它虽然“小”,但却十分重要,原创 2022-06-24 21:33:21 · 945 阅读 · 2 评论 -
【基础知识】~ 半加器 & 全加器
半加器,就是不考虑进位的加法器,只有两个输入和两个输出:输入A和B,输出和数sum和进位cout,半加器真值表如下:原创 2022-06-23 23:11:52 · 37095 阅读 · 8 评论 -
【UVM入门 ===> Episode_8 】~ Sequence 和 Sequencer、Sequence 层次化
Sequence 和 Sequencer、Sequence 层次化原创 2022-06-23 21:45:28 · 187 阅读 · 0 评论 -
【UVM入门 ===> Episode_7 】~ sequence、sequence item、sequencer、driver
sequence、sequence item、sequencer、driver原创 2022-06-22 21:57:22 · 698 阅读 · 0 评论 -
【基础知识】~ 数据位宽转换器
数据位宽转换器,一般常用于模块接口处,比如一个电路模块的输出数据位宽大于另一个模块的输入数据位宽,此时就需要进行数据位宽转换。原创 2022-06-22 18:11:54 · 2447 阅读 · 2 评论 -
【UVM入门 ===> Episode_6 】~ 同步通信元件
同步通信元件原创 2022-06-20 15:24:54 · 147 阅读 · 0 评论 -
【UVM入门 ===> Episode_5 】~ TLM通信
TLM通信原创 2022-06-20 11:19:54 · 163 阅读 · 0 评论 -
【UVM入门 ===> Episode_4 】~ UVM结构回顾、MCDF顶层验证方案、构建环境
UVM结构回顾、MCDF顶层验证方案、构建环境原创 2022-06-19 19:24:43 · 439 阅读 · 0 评论 -
【UVM入门 ===> Episode_3 】~ 核心基类下的组件、uvm_{driver、monitor、sequencer、agent、scoreboard、env、test}
这里涉及到了从SV向UVM的过渡转换过程,我们可以先回顾一下之前的知识和结构===>原创 2022-06-18 15:38:35 · 288 阅读 · 0 评论 -
【UVM入门 ===> Episode_2 】~ 核心基类 uvm_object、phase机制、 config机制、 消息管理
核心基类 uvm_object、phase机制、 config机制、 消息管理原创 2022-06-17 21:12:10 · 342 阅读 · 0 评论 -
【UVM入门 ===> Episode_1 】~ 验证方法学的概述、UVM类库、工厂机制 、覆盖方法
针对 uvm_component类 创建工厂针对 uvm_object类 创建工厂原创 2022-06-17 10:52:09 · 422 阅读 · 0 评论 -
【SystemVerilog 之 进阶内容(向UVM过渡)】~ 类型转换、虚方法、对象拷贝、回调函数、参数化的类
答案:A,调用的是父类的方法解析:因为tr的类型是父类,所以就算是子类句柄赋值与它,那它能够访问的范围也只有父类本身。原创 2022-06-16 14:37:22 · 1129 阅读 · 2 评论 -
【SystemVerilog 之 进程评估:覆盖率】~ 覆盖率的类型、功能覆盖策略、覆盖组、数据采样、覆盖选项
答案:AB解析:C错误,不断提交覆盖率会达到一定水平(大概80%以下吧)不变了;D错误,定向测试会对覆盖率有提升。原创 2022-06-16 11:51:18 · 798 阅读 · 0 评论 -
【SystemVerilog 之 线程与通信】~ 线程的使用、线程的控制、线程间的通信
答案:ABCD如上图所示,fork并行线程语句块有2种方式,分别为fork…join, fork…join_any, fork…join_none。下面我们分别说一下各自的功能:原创 2022-06-14 11:51:23 · 377 阅读 · 0 评论 -
【SystemVerilog 之 激励发生的随机化】~ 随即约束和分布、约束块控制、随机函数、数组约束、随机控制
答案:AC解析:B错误,设计的结构它是静态的,形成于编译时,不可以随机化,而验证的结构发生在仿真时,可以随机化;D错误,输出不可随机化。原创 2022-06-13 11:50:32 · 1071 阅读 · 0 评论 -
【Verilog向SystemVerilog过渡遇到的问题】~ 信号变量类型的转变、 == 和 ===的区别、array[$]、奇偶校验位、repeat、数据选择语句、
很多刚开始学习SV的朋友不理解 为什么 Verilog 中的reg和wire直接可以改成logic运行原创 2022-06-12 22:17:56 · 1742 阅读 · 3 评论 -
【SystemVerilog 之 面向对象】~ 类和对象、类的成员、类的继承、句柄、包
我们之前提到测试平台,不同的组件要完成的使命是不一样的,每个组件都有它自己的特性,那么,这不就是OOP思想的体现嘛?原创 2022-06-11 21:38:42 · 502 阅读 · 0 评论 -
【SystemVerilog 之 验证】~ 测试平台、硬件设计描述、激励发生器、监测器、比较器
下列关于测试平台哪个是正确的?解析:ABC原创 2022-06-10 20:26:29 · 544 阅读 · 0 评论 -
【SystemVerilog 之 接口】~ Interface
答 : 接口 可以带来很多便利,就好像Java中的对象一样,只需要定义一次,需要的时候拿来做例化就可以了。原创 2022-06-10 19:23:10 · 781 阅读 · 0 评论 -
【SystemVerilog 之 过程块和方法】~ 域、always过程块、initial过程块、函数 function、任务 task、生命周期
在SV中,为了区分硬件设计和软件的世界,我们将定义的软件变量或者例化的硬件所在的空间称之为 “域”。原创 2022-06-09 17:47:21 · 897 阅读 · 0 评论 -
【SystemVerilog 之数据类型】~ 数据类型、Logic 类型、数组(定宽数组、动态数组、队列、关联数组、链表)
四值变量:(0、1、x、z)四种状态四值逻辑类型:integer、reg、logic、reg、net-type(如 wire、tri);SV 并不太常用变量类型原创 2022-06-08 22:24:12 · 9634 阅读 · 0 评论 -
【基础知识】~ 硬核/软核/固核、PWM/SPWM、斐波那契数列、大端模式存储、傅里叶变换、奈奎斯特采样定律、芯片选型、基尔霍夫定律、FIR/IIR 滤波器
硬核 (Hard IP Core) :硬核在 EDA 设计领域指经过验证的设计版图;具体在 FPGA 设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。原创 2022-06-07 23:12:05 · 1585 阅读 · 0 评论 -
【基础知识】~ 稳压二极管、三极管、放大电路、逻辑门晶体管数量、FPGA 器件结温范围、FPGA 加载方式、施密特触发器、C 语言结构化编程、中断向量地址、寄生效应、上拉电阻的作用
稳压二极管,英文名称 Zener diode,又叫齐纳二极管。原创 2022-06-07 22:50:07 · 1531 阅读 · 0 评论 -
【计算机系统结构】~ MCU、AXI、IIC、SPI、GPIO、JTAG 接口、指令执行步骤、晶体与晶振的区别
微控制单元 (Microcontroller Unit ; MCU) ,又称单片微型计算机 (Single Chip Microcomputer )或者单片机,原创 2022-06-07 10:40:29 · 1875 阅读 · 0 评论 -
【计算机系统结构】~ ROM/PROM/EPROM/E2PROM/FLASH、SOC 片上系统、总线、CPU 处理器、Cache、DDR、ARM 体系结构、虚拟内存、内核 kernel
ROM 指的是“只读存储器”,即 Read-Only Memory。这是一种线路最简单半导体电路,通过掩模工艺, 一次性制造,其中的代码与数据将永久保存(除非坏掉),不能进原创 2022-06-07 10:16:07 · 2534 阅读 · 0 评论 -
【计算机系统结构】~ CISC/RISC、冯诺依曼架构/哈佛架构、时间局部性/空间局部性、计算机存储结构、RAM/SRAM/DRAM/SDRAM/DDR
CISC 是复杂指令系统计算机(Complex Instruction Set Computer)的简称,微处理器是台式计算机系统的基本处理部件,每个微处理器的核心是运行指令的电路。指令由完成任务的多个步骤所组成,把数值传送进寄存器或进行相加运算。......原创 2022-06-06 22:56:44 · 2497 阅读 · 0 评论 -
【基础知识】 ~ 指针、链表、二叉树、堆栈、反馈电路、占空比、流水线、数字/模拟电路、数模转换、可编程逻辑器件、波特率、差分信号
一个含有 int 类型和指向 node 类型的指针的数据类型,其中每个指针都指向下一个数据储存的内存地址即可。对于数组,想要在一列数中插入一个或多个数,就需要使数据依次向后移到下一个下标的空间里,造成程序的运行时间也很大,用链表这种结构就可以很简单的插入和删除数据了。二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个结点最多只能有两棵子原创 2022-06-06 20:22:55 · 402 阅读 · 2 评论 -
【Verilog 语法】~ if-else、case、for、generate、函数 function、任务 task、过程块、位宽计算、阻塞/非阻塞、时间尺度、存储器设计、
如果 if 语句使用不当,没有 else,可能会综合出来意想不到的锁存器。在 always 块里面,如果在给定的条件下变量没有被赋值,这个变量将会保持原来的值,也就是说会生成一个锁存器。需要注意的是,这里说的是可能, 因此,不代表没有 else 就一定会出现锁存器,同时,不代表有 else 就一定不会出现锁存器。这个是根据具体设计来看的。case 语句检查给定的表达式是否与列表中的其他表达式之一相匹配,并据此进行分支。它通常用于实现一个多路复用器。如果要检查的条件很多,if-else 结构可能不合适,因原创 2022-06-05 16:00:04 · 3377 阅读 · 0 评论 -
【Verilog 语法】~ 关键字、运算符、数据类型、缩位运算、三态门设计、可综合、VHDL 的结构、VHDL:WAIT 语句格式、原语、编译预处理
clock = ~clock; // ~是一个单目取反运算符, clock 是操作数。c = a | b; // 是一个二目按位或运算符, a 和 b 是操作数。r = s ? t : u; // ?: 是一个三目条件运算符, s,t,u 是操作数。Verilog 中共有 19 种数据类型。.........原创 2022-06-04 22:45:51 · 1953 阅读 · 0 评论 -
【基础知识】~ 时序约束、静态/动态时序分析、DMA、逻辑电平、逻辑最小项、乒乓 buffer、门控时钟、BRAM/DRAM、功耗问题、设计描述方式、延迟设计、DDR 带宽计算
时序约束主要包括周期约束,偏移约束,静态时序路径约束三种。通过附加时序约束可以综合布线工具调整映射和布局布线,使设计达到时序要求。附加时序约束的一般策略是先附加全局约束,然后对快速和慢速例外路径附加专门约束。附加全局约束时,首先定义设计的所有时钟,对各时钟域内的同步元件进行分组,对分组附加周期约束,然后对 FPGA/CPLD 输入输出 PAD 附加偏移约束、对全组合逻辑的PAD TO PAD 路径附加约束。......原创 2022-06-04 15:54:18 · 2929 阅读 · 0 评论 -
【基础知识】~ LUT、CLB、面积/速度问题
查找表(look-up-table)简称为 LUT,LUT 本质上就是一个 RAM。目前 FPGA 中多使用 4 输入的 LUT,所以每一个 LUT 可以看成一个有 4 位地址线的 16x1 的RAM。 当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,FPGA 开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。CLB是指可编程逻辑功能块(Configurable Logic Blocks原创 2022-06-03 22:26:57 · 1887 阅读 · 0 评论 -
【基础知识】~ 序列检测
对于一个输入为x,输出为y的系统,我们想要检测某一个序列是否是我们想要的序列,如果是,输出y为1(或0);若不是,输出y为0(或1)。下边举个例子:这就叫做序列检测!!!直接举例说明即可===>此时我们的输出最后一位是1,因为输入序列的倒数第四位是上一个已经检测出来序列的末尾,也就是下一个序列的开头用的是上一个序列的结尾,这就是可重叠的。同样举例来说明===>此时我们的输出最后一位是0,因为输入序列的倒数第三位是一个新序列的开头,也就是下一个序列的开头用的不是上一个序列的结尾,这就是不可重叠的。序列检测目原创 2022-06-03 19:15:57 · 3239 阅读 · 2 评论 -
【基础知识】~ 竞争/冒险
信号经过逻辑门电路都需要一定的时间,由于不同路径上门的级数不同,信号经过不同路径传输的时间不同,或者门的级数相同但各个门延迟时间有差异,也会造成传输时间不同。竞争与冒险是逻辑门因输入端的竞争而导致输出产生不应有的尖峰干扰脉冲(又称过渡干扰脉冲)的现象。上图表示的是对于A信号取反,之后再与A相与得到的波形图。由于器件的延时导致的,最后出现尖峰干扰脉冲。在门电路中,两个输入信号同时向两个相反方向的逻辑状态转换,即一个从低电平变为高电平,一个从高电平变为低电平,或反之,称为竞争。由于竞争而在电路的输出端可能产生原创 2022-06-02 15:37:57 · 1873 阅读 · 0 评论 -
【基础知识】~ 组合逻辑/时序逻辑、阻塞/非阻塞
组合逻辑的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原本的状态无关,逻辑中不牵涉跳变沿信号的处理,组合逻辑的 verilog 描述方式有两种:always 模块的敏感列表为所有判断条件信号和输入信号,但一定要注意敏感列表的完整性。在 always 模块中可以使用 if、case 和 for 等各种 RTL 关键字结构。由于赋值语句有阻塞赋值和非阻塞赋值两类,建议读者使用阻塞赋值语句“=”。always 模块中的信号必须定义为 reg 型,不过最终的实现结果中并没有寄存器。这是由于在组合逻辑电路描述中原创 2022-06-02 15:21:51 · 3576 阅读 · 0 评论 -
【基础知识】~ 锁存器/触发器、寄存器
锁存器(latch) :是电平触发的存储单元, 数据存储的动作只取决于 输入信号 的电平值 ,只有当锁存器处于使能 状态, 输出才会随着 输入发生变化;触发器(Flip flops 或者FF): 当收到 输入脉冲时,又称为触发。触发器 输出会根据 规则 改变 状态,然后保持这种状态直到 收到 另一个 触发 ;(1)具有两个稳定的状态:1状态和0状态。(2)具有两个输出端:原码输出Q和反码输出 Q ‾。一般用Q的状态表明电路状态。(3)由一个稳态到另一稳态,必须有外界信号的触发,否则将长期稳定在某个状态原创 2022-06-02 14:37:58 · 9333 阅读 · 0 评论