特定文件中的变量很少。我想阅读此文件并为每个变量创建一个BitVecExpr[]
。
例如:文件中有3个变量G5,G6和G7(从文件G5读取而所有其他变量都是string
)。我想创建一个名为G5,G6和G7的3 BitVecExpr
数组。
BitVecExpr[] G5 = new BitVecExpr[5];
目前,我正在尝试读取文件并将所有变量存储在Arraylist
中。然后使用数组列表,我试图声明BitVecExpr
。
for(int i =0; i < reg.size(); i++){
BitVecExpr[] reg.get(i) = new BitVecExpr[5];
}
答案 0 :(得分:0)
我试图编写一个可能符合您要求的程序:
我无法将位向量数组声明为数据类型,因此我使用int数组作为数据类型创建了示例。
希望这会对你有所帮助。
public class Ajit {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
ArrayList<String> temp = new ArrayList<>();
temp.add("G5");
temp.add("G6");
temp.add("G7");
for(int i = 0; i < temp.size(); i++){
System.out.println(temp.get(i));
}
Map<String, int[]> map = new HashMap<String, int[]>();
for(int i = 0; i < temp.size(); i++){
map.put(temp.get(i), new int[5]);
}
for(int i = 0; i < temp.size(); i++){
System.out.println(map.get(i));
}
}
}
答案 1 :(得分:0)
Map<String, Integer> map = new HashMap<String, Integer>();
for(int i = 0; i < reg_net.size(); i++){
BitVecExpr[] temp = new BitVecExpr[count];
reg_net1.add(temp);
map.put(reg_net.get(i), i);
}
for(int i=0; i < reg_net1.size(); i++){
for(int j=0; j < count; j++){
reg_net1.get(i)[j] = ctx.mkBVConst("temp"+ Integer.toString(i) +"["+ Integer.toString(j) + "]",1);
}
}
在第一个for循环中,我声明了BitVecExpr,在第二个for循环中,我正在初始化它..
以下verilog文件。 注册; reg b; reg c; c = a&amp; B;
解析会给我: Arraylist String reg_net ///将包含'a','b','c' 在1st for循环中,我将创建与reg_net大小相同的ArrayList BitVecExpr reg_net1。 在第二个for循环中,我将它们初始化为temp0,temp1,temp2
然后当我读到:c = a&amp; b; 我将使用reg_net1.get(reg_net.indexOf(“c”)); //哪个会给我c。 reg_net1.get(reg_net.indexOf(“c”))[0] = reg_net1.get(reg_net.indexOf(“a”))[0]&amp; reg_net1.get(reg_net.indexOf( “B”))[0];