기술지원 > QnA

Xpedition Standard / PADS 제품에 대해서 자세히 알고 싶은가요? 사용 중에 궁금한 점이 있으신가요?
Support를 통해서 도움을 받으세요.
Xpedition Standard / PADS 제품에 대한 문의와 사용상의 질문에 대한 답변을 드리고, 사용 동영상 강좌 등의 유용한 정보들을 제공해 드립니다.


모델심에서 Monitors TCL 관련해서

페이지 정보

2012-10-07 16:17  |  Posted By 탁형옥

본문

Modelsim을 이용한 HDL simulation 교재에 있는 Tcl/Tk관련 자료를 읽으면서 코딩을 해보고 있는중입니다.
그 곳에서 Tk 예제에 있는 Monitors를 만들고 싶으데요.

아래의 소스에서 어디를 고쳐야 할지 모르겠습니다.
조언 좀 부탁드립니다. 참고로 wave 창에 있는 신호값의 변화를 Reg_DAR value1의 값에 지속적으로 반영하고 트리거 조건에서 멈춰지게 하고 싶읍니다.
도와 주세요.

destroy  .buttons
toplevel .buttons

wm geometry .buttons +1500+900
wm title .buttons "monitor buttons"
wm resizable .buttons 0 0

set count 0
proc add_frame title {
  global frame count
  set frame .buttons.frame$count
  frame $frame -border 2 -relief groove
  label $frame.label -text $title
  pack  $frame      -side left -padx 2 -pady 2 -anchor n -fill both
  pack  $frame.label -side top  -padx 2 -pady 2
  incr count
}
proc add_button {title command} {
  global frame count
  button $frame.$count -text $title -command $command
  pack  $frame.$count -side top -pady 1 -padx 1 -fill x
  incr count
}

 
 
proc m {} {  # build_window
    global test_lines line_number Reg_DARBreak Reg_DARBreakV Reg_PCBreak Reg_ALUBreak
    toplevel .monitor

    label .monitor.label1 -relief raised -bd 1 -width 10 -text "Reg_DAR"
    grid .monitor.label1 -row 1 -column 1
    label .monitor.value1 -font {"Tahoma" 16} -justify right -width 20 -text "XXXXXXXX"
    grid .monitor.value1 -row 1 -column 2
    label .monitor.label11 -relief sunken -bd 1 -width 20 -text ""
    grid .monitor.label11 -row 1 -column 3
    checkbutton .monitor.cb1 -text "Break On Value" -variable Reg_DARBreak
    grid .monitor.cb1 -row 1 -column 4

    label .monitor.label2 -relief raised -bd 1 -width 10 -text "Reg_PC"
    grid .monitor.label2 -row 2 -column 1
    label .monitor.value2 -font {"Tahoma" 16} -justify right -width 20 -text "00000022"
    grid .monitor.value2 -row 2 -column 2
    label .monitor.label21 -relief sunken -bd 1 -width 20 -text ""
    grid .monitor.label21 -row 2 -column 3
    checkbutton .monitor.cb2 -text "Break On Value" -variable Reg_PCBreak
    grid .monitor.cb2 -row 2 -column 4

    label .monitor.label3 -relief raised -bd 1 -width 10 -text "Reg_ALU"
    grid .monitor.label3 -row 3 -column 1
    label .monitor.value3 -font {"Tahoma" 16} -justify right -width 20 -text "XXXXXXXX"
    grid .monitor.value3 -row 3 -column 2
    label .monitor.label31 -relief sunken -bd 1 -width 20 -text ""
    grid .monitor.label31 -row 3 -column 3
    checkbutton .monitor.cb3 -text "Break On Value" -variable Reg_ALUBreak
    grid .monitor.cb3 -row 3 -column 4

    label .monitor.label4 -relief raised -bd 1 -width 10 -text "Opcode"
    grid .monitor.label4 -row 4 -column 1
    label .monitor.value4 -font {"Tahoma" 16} -justify right -width 20 -text "XXXXXXXX"
    grid .monitor.value4 -row 4 -column 2
    checkbutton .monitor.cb4 -text "Break On Value" -variable OpcodeBreak
    grid .monitor.cb4 -row 4 -column 4

    label .monitor.label5 -relief raised -bd 1 -width 10 -text "Micro Code : "
    grid .monitor.label5 -row 5 -column 1

# get wave window path: view wave
# bind .main_pane.wave.interior.cs.body.pw.wf <B1-Motion> +get_value_at_cursor
# bind .main_pane.wave.interior.cs.body.pw.wf <Button-1> +get_value_at_cursor

# bind .main_pane.wave.interior.cs.body.pw.wf <Reg_DAR>  +get_value_at_cursor
bind  .main_pane.wave.interior.cs.body.pw.wf .monitor.value1  +get_value_at_cursor


}

add_frame  "Control"
add_button "m.(m)Monitor" { m }

Comments

ModelSim님의 댓글

ModelSim  |

Tcl/Tk Commnad 에 대해서는 저도 자세히 아는 부분이 아니라서 딱히 뭐라고 말씀을 못 드리겠습니다.
보내주신 코드는 +get_value_at_cursor 함수를 이용해 Wave 윈도우에서 값을 발체하는 부분입니다.
따라서 커서를 움직일때마다 해당 값이 변경하도록 하는 함수입니다.
트리거 같은 경우엔 stop 이라는 함수를 이용해서 사용할 수 있습니다.


제품 문의
제품에 대한 견적이나 자료를 요청하고 기타 문의 사항을 주실 수 있습니다.
제품문의
기술지원