BLOG

Record, summarize, and improve.

Verilog

硬件描述语言

语言 / 类型 文件后缀 说明
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 语句块、时钟边沿敏感、事件、并行进程、原语定义