Menu
CoddyTech

设计抽象层次

本课属于 Coddy Verilog 学习旅程的“基础知识”单元。第 5 课,共 90 课。

在数字设计中,我们可以用不同的细节层次来描述同一个电路。Verilog 是一种可以在这些抽象层次中的任意层次描述电路的语言。这正是它强大的原因!

这些是各个级别:

级别 1:行为级

这个级别描述电路做什么,而不是它如何实现。它关注功能或行为,例如“向上计数”或“将两个数字相加”。

计数或相加的内部细节不会显示出来。这个层次最接近人类的思维方式,也更容易编写。

第 2 级:RTL

本级将展示数据如何在寄存器之间移动,以及这些数据会进行哪些操作。你可以看到数据路径:数据从寄存器进入加法器,然后再返回寄存器。

这是大多数数字设计人员工作的层次,因为它在易于理解和足够详细以创建硬件之间取得了很好的平衡。

第 3 级:门级

这个级别使用 AND、OR 和 XOR 等基本逻辑门来描述电路。每个连接都会明确显示。

这一层级非常详细,手动编写很困难。它通常由工具根据更高级别的描述生成,而不是手动编写。
 

为什么这很重要

- **更高层次** = 更容易编写,控制力更弱
- **更低层次** = 更难编写,控制力更强
- **RTL** 是大多数设计工作的理想选择

challenge icon

挑战

要做什么:

  1. 运行这段代码,看看同一操作如何在三个不同层次上进行描述:

亲手试试

module abstraction_demo;
  
  initial begin
    $display("=== Design Abstraction Levels ===");
    $display("");
    
    $display("Level 1 (Behavioral):");
    $display("  'Add a and b' - no details how");
    $display("");
    
    $display("Level 2 (RTL):");
    $display("  'On clock edge, result <= a + b' - shows data flow");
    $display("");
    
    $display("Level 3 (Gate Level):");
    $display("  'XOR gates for sum, AND gates for carry' - actual gates");
    $display("");
    
    $finish;
  end
  
endmodule
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Verilog 在线编译器