硬件描述语言
| 语言 / 类型 | 文件后缀 | 说明 |
|---|---|---|
| Verilog | .v | 经典硬件描述语言,用于组合逻辑和时序逻辑设计 |
| Verilog Header / Include | .vh | 可包含在其他 Verilog 文件中 |
| SystemVerilog | .sv | Verilog 扩展,支持接口、类、随机化等高级功能 |
| SystemVerilog Assertion | .sva | 用于时序断言(Assertion)验证 |
| VHDL | .vhd / .vhdl | 强类型 HDL,广泛用于 FPGA/ASIC |
| VHDL Package / Testbench | .vhd | 包含类型、常量、子程序或测试平台 |
| SystemC | .cpp / .h | 基于 C++ 的硬件建模语言,支持事务级建模(TLM) |
| Chisel (Scala DSL) | .scala | 用 Scala 写的硬件生成器,可生成 FIRRTL 或 Verilog |
| FIRRTL | .fir | 中间表示语言,Chisel 生成 Verilog 前的 IR |
| Bluespec SystemVerilog | .bsv | 高级 HDL,支持规则驱动设计 |
| MyHDL (Python HDL) | .py | Python DSL,用于硬件建模,可生成 Verilog/VHDL |
| OpenCL for FPGA | .cl | 用于 FPGA 上的 OpenCL 加速硬件 |
| Verilog Testbench | .tb.v | 用于仿真测试平台文件 |
| Constraint / SDC | .sdc | 时序约束文件(Synopsys Design Constraints) |
Verilog 保留字分类表格,包括关键字、类别和典型用途,方便查阅和记忆。
| 类别 | 关键字 | 典型用途 / 说明 |
|---|---|---|
| 数据类型 | wire, reg, tri, triand, trior, tri0, tri1, wand, wor, supply0, supply1 | 定义信号类型、三态、总线或特殊驱动 |
| 模块 / 接口 | module, endmodule, macromodule, primitive, endprimitive, table, endtable, function, endfunction, task, endtask, specify, endspecify, generate, endgenerate, interface, endinterface, program, endprogram | 定义模块、原语、接口、函数、任务、生成块 |
| 过程控制 | initial, always, always_comb, always_latch, always_ff, if, else, case, casex, casez, for, while, repeat, forever, disable, wait, assign, deassign, force, release | 控制语句、循环、条件、阻塞/非阻塞赋值、事件控制 |
| 常量 / 参数 | parameter, localparam, integer, real, realtime, time, genvar, signed, unsigned | 参数定义、数据类型、生成变量、时序和数值类型 |
| 系统任务 / 系统函数 | $display, $write, $monitor, $time, $finish, $stop, $dumpvars, $fopen, $fclose, … | 仿真输出、时间查询、文件操作、仿真控制 |
| 生成 / 参数化 | parameter, localparam, defparam, generate, endgenerate, genvar | 模块参数化、生成循环 |
| 其他控制关键字 | begin, end, posedge, negedge, event, specparam, fork, join, disable, primitive | 语句块、时钟边沿敏感、事件、并行进程、原语定义 |