Verilog 面试真题及详细答案(实战版).docxVIP

  • 1
  • 0
  • 约5.24千字
  • 约 8页
  • 2026-08-24 发布于河北
  • 举报

Verilog 面试真题及详细答案(实战版).docx

Verilog面试真题及详细答案(实战版)

一、基础语法与数据类型(高频基础题)

1、wire和reg的区别?各自使用场景是什么?

参考答案:

wire是连线型变量,默认值为高阻态z,本身不存储数据,只能用于组合逻辑,必须持续被驱动。模块端口默认类型为wire。

reg是寄存器型变量,默认值为未知态x,具备数据保持能力,在时钟触发时锁存数据,主要用于时序逻辑电路。

使用场景:

wire:模块输入端口、模块内部连线、assign连续赋值语句、组合逻辑输出。

reg:always块内部赋值的信号、时序逻辑寄存器、状态机状态变量。

补充:Verilog-2001之后支持端口直接定义reg类型,不用再单独声明内部变量。

2、阻塞赋值(=)和非阻塞赋值(=)的区别与使用规范?

参考答案:

阻塞赋值:执行顺序串行,当前语句执行完才会执行下一句,会阻塞后续代码执行,无时间延迟。

非阻塞赋值:执行顺序并行,块内所有语句同时计算、同时赋值,赋值动作发生在时序块结束后,模拟硬件寄存器同步更新特性。

工业标准写法:

1)组合逻辑always@(*)、assign中,统一使用阻塞赋值=;

2)时序逻辑always@(posedgeclk)中,统一使用非阻塞赋值=;

3)严禁混用,否则会出现仿真和综合结果不一致、寄存器多拍延迟、逻辑错乱问题。

3、integer、

文档评论(0)

1亿VIP精品文档

相关文档