自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Verilator 仿真环境搭建和查看波形图

Verilator 仿真环境搭建和查看波形图

2022-11-21 15:47:00 1391 1

原创 数字前端设计 综合

综合的过程是将行为描述的电路、RTL级的电路转换到门级的过程Design Compiler可以方便的将HDL语言描述的电路转换到基于工艺库的门级网表逻辑综合的目的: 决定电路门级结构 寻求时序和面积的平衡 寻求功耗与时序的平衡 增强电路的测试性综合的三个阶段: 综合= 转译+优化+映射转译: HLD--->> GTECH 这个数据库跟工艺库是独立无关的优化: 工作频率  面积   功耗   (根据约束对代码进行优化)...

2021-12-24 14:26:17 2406

原创 数字电路复位设计

复位的用途:ASIC做仿真时,需要强制ASIC进入一个可知态。通常ASIC中的每一个寄存器,不管系统是否需要复位,都应该时可复位的。在某些情况下,对于高速应用中的流水线(串行移位)寄存器,可以去掉复位,从而获得更高的性能。寄存器的编码风格 每个Verilog过程块应该只模型一种寄存器// 一个寄存器用于捕获数据,输出传送到一个跟随寄存器// 第一部分使用了同步复位,第二部分包含了一个没有使用复位的跟随寄存器// 因为一个过程块推导出两种寄存器,导致rst_n也被用到了跟随...

2021-12-20 10:32:56 1202

原创 跨时钟域电路设计

同一个时钟域是根据同一个时钟原点一个锁相环PLL产生多个时钟,相位倍数都是可控的,他们之间为同步时钟不同锁相环PLL产生的时钟,即使频率相同,也是异步时钟,他们之间的相位关系是不可控的双锁存器同步法一个信号进入另一个时钟域之前,将该信号用两个触发器所存两次,最后得到的结果就可以避免亚稳态问题。(降低亚稳态出现的概率)优点:结构简单,易于实现,面积占用很小缺点:增加了两级触发器延迟。 快时钟域转到慢时钟域时,易造成慢时钟域采样丢失(还未来得及采样,数...

2021-12-17 14:07:29 1189

原创 同步电路与异步电路

同步电路在一个理想的电路时钟的控制下,只要电路的各个功能环节都市现了时序收敛,整个电路就可以可靠工作。但在一个功能复杂的SoC系统中,难免会有异步信号与同步信号交互的问题。因此。在多核SoC系统中,通常采用 全局异步局部同步(GALS) 的设计。同步电路设计同步电路即 电路中所有受时钟控制的单元全部由一个统一的全局时钟进行控制。触发器的时期收敛保证了触发器输入端的数据在时钟信号有效沿来临之前就达到稳定状态,即满足了触发器的建立时间(Setup Time)...

2021-12-16 10:43:43 1927

原创 CRC校验原理及Verilog实现

CRC全称循环冗余校验(Cyclic Redundancy Check, CRC)CRC校验的基本思路是数据发送方发送数据之前,先生成一个CRC校验码,可以是单bit也可以是多bit,并附在有效数据末尾,以串行方式发送到接收方。接收方接收到数据后,进行CRC校验,根据校验结果就可以知道数据是否有误。CRC校验码的生成:将有效数据扩展后作为被除数,使用一个指定的多项式作为除数,进行模二除法,得到的余数就是校验码。数据接收方的CRC校验:将接受的数据(有效数据+CRC校验码)扩展后作为被除数,用指.

2021-12-15 16:16:39 1784 1

原创 二进制码与格雷码转换

二进制码在一些转换时变换位数多,数字电路会产生很大的尖峰电流格雷码所有相邻整数在他们的数字表示中仅有余个数字不同,因此在任意相邻的数之间转换时,只有一位发生变化。大大地减少了由一个状态到下一个状态时逻辑的混淆。 十进制 二进制 格雷码 0 000 ...

2021-12-14 17:57:06 749

原创 Verilog编程之道 - 调度和赋值

分层事件队列 1 活动事件队列(Active event queue) 是调度大多数Verilog事件的地方,包括: 阻塞赋值 非阻塞赋值的RHS 连续赋值 显示命令($display) 计算原语和实例的输入信号,更改输出信号。 2 非活动事件队列(Inactive event queue) , 用于#0-delayed赋值的调度。 3 非阻塞赋值更改队列(Nonblocking event) ...

2021-12-14 11:02:43 925

原创 Verilog编程之道-- task 和 function

注意:task和function 都是可以综合的,但是有诸多的要求和限制,所以要谨慎使用不同点 1function 不能包含时序控制语句,只能在一个时间单位执行,而task就可以包含时序控制语句 2 function 不能调用task,而task 可以调用function 3 function至少要有一个input参数,不能有output 和 inout 类型参数,而task既可以没有参数,也可以有各种类型参数 4 function...

2021-12-13 16:22:22 2892

原创 Verilog编程之道——行为模型

1 过程赋值 过程赋值的RHS可以是任何能够计算出值的表达式。LHS必须是一个能够接受RHS赋值的变量。过程赋值分两种:阻塞赋值 非阻塞赋值 1.1 阻塞赋值 在顺序块中,阻塞赋值语句必须在它的后续语句执行之前执行,但在并行块中,阻塞语句不能阻止它的后续语句执行。这里的并行块指fork/join语句。 1.2 非阻塞赋值 非阻塞赋值能够在不阻塞过程流的情况下允许赋值调度。非阻塞赋值不能阻塞过程流,在非阻塞赋值计算R...

2021-12-13 15:02:38 1767

原创 Verilog编程之道 - case语句

case语句,是包含在case和endcase之间的代码,逻辑上等价于if-else语句,使用方法如下:case (case_expression) case_item1 : case_item_statement1; case_item2 : case_item_statement2; case_item3 : case_item_statement3; case_item4 : case_item_statement4; default : case

2021-12-09 22:25:16 12433 1

原创 Verilog编程之道 - Verilog语言特性

1.抽象级别:(行为级、RTL级、门级) 行为级模型:1主要用于testbench;2着重于系统行为和算法描述,不在于电路实现;3、不可综合;4主要采用高级语言 RTL级模型:1主要用于ASIC和FPGA设计;2着重于描述功能块内部与功能块之间的数据流与控制信号,着重于电路实现,在于如何在timing、area、power中作出平衡。3可综合出门级模型;4采用可综合的语言结构 门级模型:1主要用于后端的物理实现;2实际电路的逻辑实现;3主要采用逻辑门、用...

2021-12-09 14:29:57 1394

原创 数字电路基础--IC设计之门电路(二极管、CMOS)

1:二极管门电路1.1:与门AB都为1时,Y为1;AB中任意一个不为1,对应二极管导通,Y为0。1.2:或门AB都为0时,Y为0;AB中任意一个不为0,对应二极管导通,Y为1。1.3:二极管门电路缺点1:电平有偏移:输出的高低电压与输入的高低电平数值相差一个二极管的压降。后级的二极管门电路电平偏移,甚至使得高电平下降到门限值以下。2:带负载能力差:由于这种二极管门电路的输出电阻比较低,故带负载能力比较差,输出电平会随着负载的变化而变化。..

2021-10-28 21:54:11 860

原创 数字电路基础--IC设计之存储器件 (锁存器、触发器、寄存器)

1:R-S锁存器通过两个或非门(NOR)或者与非门(NAND)组成反馈电路组成。R和S分别为置位端和复位端,使输出Q达到稳定的状态0或1但NOR锁存器应避免11,NAND锁存器应避免00,在这两种状态下会导致下一个状态不确定的情况发生。在任何时刻,输入的改变会立刻导致输出的改变,即电平敏感型锁存器。因此其抗燥性能较差。2:电平触发的锁存器在基本的R-S锁存器的基础上添加输入控制门和CLK时钟输...

2021-10-26 19:43:37 2077

空空如也

空空如也

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

TA关注的人

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