У меня длинный список defines defining with numerous properties for these registers. I'd like to have a function that takes the string of the register name and concatenates the big
определение имени и вычисление значения `define int при обработке.
Простая функция под названием понравилась следующим образом:
PrintRegInfor (REGA);
Вот код класса, который не работает:
`define CHIP_REGA_ADDR 16'h0000
`define CHIP_REGA_RESET_VAL 0
`define CHIP_REGB_ADDR 16'h0100
`define CHIP_REGB_RESET_VAL 1
.
.
`define CHIP_REGZ_ADDR 16'h1000
`define CHIP_REGZ_RESET_VAL 0
clase module;
function PrintRegInfo(string reg_name)
string reg_reset_string;
string reg_addr_string;
int reg_reset_int;
int reg_addr_int;
reg_reset_string = {"`CHIP_",reg_name,"_RESET_VAL"};
reg_addr_string = {"`CHIP_",reg_name,"_ADDR"};
reg_reset_int = reg_reset_string;
reg_add_int = reg_add_string;
$display("Reg %s at address 0x%x has a reset value of 0x%x\n",reg_name, reg_add_int,reg_reset_int);
endfunction
endclass
Похоже, преобразование строки в int преобразовывает фактическую строку из значения ascii в int.Я хотел бы, чтобы он оценил `определение созданной строки.Возможно ли это?
Я хотел бы получить:
Reg Rega по адресу 0x0000 имеет значение сброса 0x0
Я получаю что-то вроде: Reg Rega по адресу 0x3478 имеетзначение сброса 0x8373
Спасибо!