All hardware description languages and RTLs contain some sort of generate statement.
A generate statement is an itereative construct that is executed at compile time to generate multiple instances of a component. In Bluespec this is a complete, higher-order functional language, but in SystemVerilog we use the following:
reg[3:0] values[0:4] = {5, 6, 7, 8, 9}; generate genvar i; for (i=0; i < 5; i++) begin: M1 MUT mut( .out, .in(values[i]), .clk ); end endgenerate
11: (C) 2008-15, DJ Greaves, University of Cambridge, Computer Laboratory. | ![]() |