Engineers write the chip's behavior as code that describes hardware: storage elements and the logic between them.
Register-transfer level (RTL) code in SystemVerilog or VHDL describes registers and the logic between them on every clock edge. Lint and clock-domain-crossing checks catch problems early.
Synthesizable coding style, reset strategy, CDC and RDC structures, parameterization, lint sign-off, UPF power intent alongside the RTL, and early PPA estimation. Generators like Chisel and high-level synthesis produce RTL for some blocks.