Verilog
Verilog is the most widely used hardware description language (HDL) — a text language for describing digital circuits rather than writing step-by-step instructions. You declare a `module` with inputs and outputs and then say, in code, how the outputs depend on the inputs. A tool later turns that description into real gates.
The crucial mental shift is that Verilog is not a programming language. Lines do not run one after another; they describe hardware that all exists and reacts at the same time. An `assign` statement is a permanent wire, not a one-time calculation, and an `always @(posedge clk)` block describes flip-flops that all update together on each tick of the clock.
Most modern projects use SystemVerilog, a superset that adds richer types and verification features, but engineers still say "Verilog" for both.
module mux2(input a, b, sel, output y); assign y = sel ? b : a; // a 2-to-1 multiplexer in one line endmodule
A 2-to-1 multiplexer described in Verilog.