verilog case语句_Verilog:笔试面试常考易错点整理

本文深入探讨了Verilog在硬件设计中的应用,讲解了阻塞赋值与非阻塞赋值的区别,以及如何避免在综合过程中产生Latch。此外,还讨论了Verilog中的for循环在综合时的注意事项,可综合与不可综合语句的区分,以及case语句的使用细节。文章进一步阐述了状态机设计的一段式、两段式和三段式区别,Mealy与Moore状态机的优缺点,并提供了状态机编码选择的指导。同时,涵盖了DFT技术的意义和常用方法,以及如何处理竞争冒险和Glitch。最后,文章介绍了跨时钟域同步方法和FPGA的基本结构,强调了同步设计的优缺点及设计规则。
摘要由CSDN通过智能技术生成

cc83ae59be69464e2f874e4f9d94d130.png

欢迎大家关注“数字IC剑指offer”公众号!

1.Verilog为什么适合描述硬件设计?

  • always块间是并行的,符合硬件中电路并行计算的特性
  • always时钟触发的特性,符合寄存器的行为
  • Verilog是一种自顶向下的层次化设计方法,能够将复杂的大型数字系统划分为规模较小且功能相对简单的单元电路,从而加速大型数字系统的设计、调试等工作
  • Verilog的行为级描述方法可以简化硬件电路的设计,可借助于高级语言的精巧结构
  • Verilog支持开关级、门级、RTL级、算法级、系统级设计

2.阻塞赋值和非阻塞赋值的区别?

  • 阻塞赋值的操作符为=,阻塞的概念是指在同一个always块中,其后面的赋值语句从概念上是在前一句赋值语句结束后在开始赋值的,阻塞赋值在语句结束后立即完成赋值操作,可以认为是顺序执行,用于组合逻辑的设计;
  • 非阻塞赋值的操作符为<=< span="">,非阻塞赋值的操作可以看作为两个步骤的过程:1)在赋值时刻开始时,计算非阻塞赋值RHS表达式,2)在赋值时刻结束时,更新非阻塞赋值LHS表达式。是一个同时赋值的操作,并行执行,用于时序逻辑的设计

3.为什么用于综合的verilog不建议使用for循环?

  • DC无法优化for循环的逻辑,只是单纯进行展开和复制,可能增大电路的面积,降低性能

4.如何防止综合出Latch?

  • 在if-else和case中判断所有条件分支
  • 在组合逻辑进程中,敏感向量列表要包含所有要读取的信号(包括RHS和判断语句中的信号)(注意:对仿真有影响,但是综合工具会自动补全敏感向量列表,所以在综合之后的电路中是不会有latch的)
  • 不要出现自己给自己赋值的情况
  • 不要出现组合逻辑环路

5.verilog可综合风格?

  • 时序逻辑用非阻塞赋值,组合逻辑用阻塞赋值,同一个always块中既有时序逻辑又有组合逻辑时用非阻塞赋值,不要在同一个always块中混合使用,不要在两个及以上always块中对同一个变量赋值
  • 所有内部寄存器都能复位,通过复位使信号初始状态可预测
  • 不混合使用上升下降沿(可以考虑使用倍频时钟来设计)
  • 不使用initial,不要使用延时,不使用循环次数不确定的循环语句
  • 防止出现Latch(除非目的性的Latch)

6.verilog可综合、不可综合语句汇总?

  • 所有综合工具都支持的结构
    always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,for,function,and,nand,or,nor,xor,xnor,buf,not,bufif0,bufif1,notif0,notif1,if,inout,input,instantitation,module,negedge,posedge,operators,output,parameter
  • 所有综合工具都不支持的结构
    time,defparam,$finish,fork,join,initial,delays,UDP,wait
  • 有些工具支持有些工具不支持的结构
    casex,casez,wand,triand,wor,trior,real,disable,forever,arrays,memories,repeat,task,while。
  • 注:while在某些情况下是可以综合的,例如while(posedge clk)这和always@(posedge clk)作用一样。

7.function和task区别?

  • 可综合的任务和函数都只能实现组合逻辑

8.一段式、两段式、三段式状态机?

  • 一段式(要避免):将整个状态机写在一个always块中,将状态转移判断的组合逻辑和状态寄存器转移的时序逻辑混写在一起,既描述状态转移,又描述转移状态的输入和输出。一段式不利于时序约束、功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值