문자열 대기열을 기반으로 변수 이름을 선언하려면 다음과 같은 구조가 필요합니다. 아래는 컴파일되지 않습니다. 그래서 비슷한 접근법이 Systemverilog에서 가능한지 알고 싶습니다.문자열을 변수 이름으로 변환하는 방법은 무엇입니까?
다음은 실제로 구현하고자하는 단순화 된 버전입니다.
`define declare_int(NAME) int ``NAME`` = 1;
string str_q[$] = {"a", "b", "c"};
foreach (str_q[i]) begin
`declare_int(str_q[i])
end
참고 : 나는 `declare_int(a)
이 int a = 1;
로 번역하는 것을 알고 있습니다. 그러나 위의 예제에서와 같이이 매크로를 여러 번 호출하려면 foreach 루프가 필요하므로 매크로의 입력은이 경우 string
과 같은 일부 데이터 유형이어야합니다. 그 목적은 시간에 따라 대기열이 변경 될 때 자동 선언하는 것입니다.
다른 말로 표현하면 이 int a = 1;
으로 변환되도록 `declare_int
매크로를 어떻게 정의 할 수 있습니까?