Difference of SystemVerilog data types (reg, logic, bit)
There are different data types in systemverilog that can be used like the following: reg [31:0] data; logic [31:0] data; bit [31:0] data; How does the three of them differ? reg and wire were the original types. Wires are constantly assigned and regs are evaluated at particular points, the advantage here is for the simulator to make optimisations. wire w_data; assign w_data = y; // Same function as above using reg reg r_data; always @* r_data = y ; A common mistake when learning Verilog is to assume the a reg type implies a register in hardware. The earlier optimisation for the simulator can be