embeded/FPGA - ALTERA
tcl, tk, tcl/tk
구차니
2026. 10. 31. 18:09
vivado에만 있는 줄 알았는데, altera에서도 있다고 해서 일단은 호기심에 조사중
| 2. FPGA 프로젝트 관리 — 서로 다름 기능 Vivado Quartus 프로젝트 생성 create_project project_new 프로젝트 열기 open_project project_open 프로젝트 닫기 close_project project_close 프로젝트 저장 save_project_as 등 export_assignments 디바이스 선택 set_part set_global_assignment -name DEVICE 최상위 모듈 설정 set_property top set_global_assignment -name TOP_LEVEL_ENTITY Verilog 추가 add_files set_global_assignment -name VERILOG_FILE VHDL 추가 add_files set_global_assignment -name VHDL_FILE SystemVerilog 추가 add_files set_global_assignment -name SYSTEMVERILOG_FILE 제약 파일 등록 add_files -fileset constrs_1 set_global_assignment -name SDC_FILE 소스 목록 조회 get_files get_all_global_assignments 등 프로젝트 설정 조회 get_property get_global_assignment 프로젝트 설정 변경 set_property set_global_assignment 동일한 작업을 수행하는 대표 명령어이며, 반드시 1:1로 대응하는 것은 아닙니다. 3. FPGA 핀 및 속성 설정 — 서로 다름 기능 Vivado Quartus 외부 핀 위치 set_property PACKAGE_PIN set_location_assignment I/O 표준 set_property IOSTANDARD set_instance_assignment -name IO_STANDARD 풀업 설정 set_property PULLUP set_instance_assignment -name WEAK_PULL_UP_RESISTOR 구동 강도 set_property DRIVE set_instance_assignment -name CURRENT_STRENGTH_NEW 등 내부 셀 속성 set_property set_instance_assignment 등 최적화 보존 DONT_TOUCH, KEEP 속성 PRESERVE_REGISTER, KEEP 등 디바이스 정보 조회 get_parts, get_property get_part_info 등 4. 타이밍 제약 — 대부분 유사 SDC 기반 명령은 공통으로 사용할 수 있는 부분이 많습니다. 기능 Vivado Quartus 호환성 기본 클록 생성 create_clock create_clock 높음 파생 클록 create_generated_clock 동일 높음 입력 지연 set_input_delay 동일 높음 출력 지연 set_output_delay 동일 높음 False Path set_false_path 동일 높음 Multicycle Path set_multicycle_path 동일 높음 최대 지연 set_max_delay 동일 높음 최소 지연 set_min_delay 동일 높음 클록 그룹 set_clock_groups 동일 높음 클록 불확실성 set_clock_uncertainty 동일 높음 포트 검색 get_ports get_ports 높음 클록 검색 get_clocks get_clocks 높음 내부 핀 검색 get_pins get_pins 부분 호환 내부 셀 검색 get_cells get_cells 부분 호환 5. 합성 및 배치·배선 — 상당히 다름 기능 Vivado Quartus 합성 실행 launch_runs synth_1 또는 synth_design execute_module -tool map 배치·배선 place_design, route_design execute_module -tool fit 전체 컴파일 launch_runs impl_1 등 execute_flow -compile 비트스트림 생성 write_bitstream execute_module -tool asm 합성 결과 열기 open_run synth_1 도구별 데이터베이스/리포트 API 타이밍 분석 report_timing Timing Analyzer의 report_timing 자원 사용량 report_utilization Fitter/Analysis & Synthesis 리포트 소비 전력 report_power Power Analyzer 실행 완료 대기 wait_on_run execute_flow 등은 동기 실행 6. Tk GUI 명령어 — 기본 문법 동일, 실행 환경 차이 Tk는 Tcl GUI 툴킷이므로, Tk를 사용할 수 있는 인터프리터라면 위젯 명령 자체는 동일합니다. GUI 기능 Vivado의 Tk 환경 Quartus의 Tk 환경 창 제목 wm title 동일 창 크기 wm geometry 동일 버튼 button 동일 텍스트 label 동일 입력창 entry 동일 여러 줄 편집 text 동일 체크박스 checkbutton 동일 라디오 버튼 radiobutton 동일 프레임 frame 동일 자동 배치 pack 동일 격자 배치 grid 동일 좌표 배치 place 동일 이벤트 처리 bind 동일 주기적 실행 after 동일 파일 선택창 tk_getOpenFile 동일 메시지 박스 tk_messageBox 동일 7. IP 및 시스템 통합 명령 — 거의 별개 기능 Vivado Quartus IP 생성 create_ip qsys-script/IP 관련 Tcl API IP 파라미터 설정 set_property CONFIG.* set_instance_parameter_value 등 블록 디자인 생성 create_bd_design create_system IP 인스턴스 추가 create_bd_cell add_instance IP 연결 connect_bd_net, connect_bd_intf_net add_connection 주소 할당 assign_bd_address set_connection_parameter_value 등 시스템 검증 validate_bd_design validate_system 시스템 생성 generate_target save_system, qsys-generate 등 |
[링크 : https://chatgpt.com/share/6ae5b255-64bc-83e8-8e86-148906633033]
존 오스터하우트 라는 사람이 혼자서 북치고 장구치고 해버렸네 -ㅁ-
| 설계자 존 오스터하우트 개발자 Tcl 코어 팀 발표일 1988년(38년 전) 최근 버전 9.1.0[1] 위키데이터에서 편집하기 최근 버전 출시일 2026년 9월 29일(32일 전) |
[링크 : https://ko.wikipedia.org/wiki/Tcl]
| 원저자 John Ousterhout 개발자 Tcl Core Team[1] 발표일 1991년(35년 전) 안정화 버전 9.1.0[2] 위키데이터에서 편집하기 / 2026년 9월 29일 |
[링크 : https://en.wikipedia.org/wiki/Tk_(software)]
우분투에서 설치는 다음과 같고
| $ sudo apt install tcl tk |
실행 명령어는 아래와 같다.
| $ whereis tclsh tclsh: /usr/bin/tclsh /usr/share/man/man1/tclsh.1.gz $ whereis wish wish: /usr/bin/wish /usr/share/man/man1/wish.1.gz |
아무튼.. tcl이 엄청 오래된건줄 알았는데 python이 예상외로 오래 되었다는것에 놀라는 중
| $ tclsh % set a 20 20 % puts "$a" 20 % [expr $a+$a] invalid command name "40" |
리눅스에서는 아래처럼 실행하면 프롬프트가 뜨고 창이 뜨면서 바로 gui를 만들수 있다.
$ wish![]() % wm title . "Tk Example" ![]() |

