2014-06-05 2 views
1

EDA 도구의 기본 제공 tclsh와 상호 작용하는 tcl 스크립트를 작성 중입니다. 필요한 도구 별 명령이 있습니다. 이다 :16 진수 값을 얻기 위해 'for'루프를 작성하는 방법

set_property <property_of_object> <value_of_property> <object> 

그래서 전형적인 예 지금

set_property OUTPUT_VALUE 43 debug_probe 

이다, 내 생각은 '에 대한'루프를 사용하여이 여러 번 수행하는 것이었다. 이것이 내가 설정 한 방법이다.

for {set t 0} {$t < 2} {incr t} { 

set i [format %x $t] 
set vio_output $i 

# setting VIO output to the design 

set_property OUTPUT_VALUE $vio_output [get_hw_probes probe_debug_read_select -of_objects [get_hw_vios hw_vio_2]] 
} 

나는이 오류를 충분히 해석 할 수 없다. 그러나 나는 value_of_property 필드에 16 진수 값을 보내야한다고 말하고 있습니다. 여기

(가) 내가 잘못 해석하고 오류 또는 (b)는 내가 생성하고 있지 않다 HEX을 일이 될 수

ERROR: [Designutils 20-1474] The hw_probe VIO value [0] has [1] value characters. The required number of value characters for radix [HEX], is [2]. 

while executing 
"rdi::set_property OUTPUT_VALUE 0 probe_debug_read_select" 
invoked from within 
"set_property OUTPUT_VALUE $vio_output [get_hw_probes probe_debug_read_select -of_objects [get_hw_vios hw_vio_2]]" 

나는 둘 중 하나를 생각하는 오류 로그를하다 도구에서 요청한 값입니다.

누군가가이 문제에 관해 밝힐 수 있기를 바랍니다.

답변

4

면책 조항 : 사용중인 EDA 도구에 대해 아무것도 알지 못합니다.

set_property 명령을 처리하는 모든 것이 16 진수로 0xabcd와 같은 문자열을 필요로하는지 궁금합니다. format 명령을

set i [format 0x%x $t] 

으로 변경하여 선두 0x를 가져보십시오.

또 다른 생각은 오류 메시지가 그래서 당신은 두 자리 숫자를 생성하는 format을 강제로

set i [format %02x $t] 

같은 형식으로 문을 필요 더라면 아마 set_property은 두 자리 16 진수를 필요로한다는 제안이다 - 명령은 필요에 따라 숫자를 생성합니다. 0과 1을 전달할 때부터 항상 1 자리가됩니다.

EDA 도구의 tclsh가 명령 프롬프트를 제공합니까? 그렇다면 몇 가지 set_property 명령을 입력하여 구문을 올바르게 이해했는지 확인할 수 있습니다. 그 일을하는 동안 오류 메시지를 너무 많이 해석하는 연습을하게 될 가능성이 있습니다 :-)

행운을 빈다!

편집 : 나는 오류 메시지를 해석하는 방법 일 것 같아요 :

ERROR: [Designutils 20-1474] The hw_probe VIO value [0] has [1] value characters. 
     The required number of value characters for radix [HEX], is [2]. 

나는이 명령은 hw_probe의 VIO 값으로 0을 통과한다는 생각,이 값은 문자입니다. 현재 기수가 16 진수이므로 문자가 유효해야합니다. (이 일이 완전히 명백하게 들리면 유감입니다. 퍼즐을 풀려면 나이가 들었습니다.) 이것은 [format %02x $t] 솔루션을 가리키는 경향이 있습니다.

+0

'format % 02x'은 질문을 읽을 때 생각한 것입니다 ... –