这种东西,AI不是更擅长么:class my_array; rand bit [2:0] arr[]; int length; function new(int len); length = len; arr = new[length]; endfunction constraint value_range { foreach(arr[i]) arr[i] inside {[0:5]}; } // 不加复杂约束,后处理 function bit check_constraint(); int zero_idx[$]; foreach(arr[i]) if (arr[i] == 0) zero_idx.push_back(i); for (int k = 2; k < zero_idx.size(); k++) begin bit found = 0; for (int j = zero_idx[k-1]+1; j < zero_idx[k]; j++) if (arr[j] == 1) found = 1; if (!found) return 0; end return 1; endfunction function void post_randomize(); while (!check_constraint()) void'(randomize()); endfunction endclass