2장: 출력, puts
·
코딩 지식/TCL
2장: 출력, puts | Chase TCLLast updated 7 months agovlsi-korea.gitbook.io 1. puts 명령어puts 옵션 문자열 puts 명령은 TCL에서 텍스트를 출력하는 기본 명령어이다.% puts "Hello, World!"% set name "Jang Tae Young"% puts "Hello, $name!"% puts {MultiLine} % set file [open "output.txt" w]% puts $file "Hi I'm Taeyoung"% close $file% set file [open "output.txt" r]% read $fileHi I'm Taeyoung% close $file "output.txt" 파일을 쓰기 ..
1장: 변수, set
·
코딩 지식/TCL
Intro | Chase TCL지금 우리는 인류 역사상 가장 혁신적인 순간에 서 있습니다. ChatGPT, Claude, Gemini, Copilot으로 시작해서 모든 AI 도구들이 우리 업계를 뒤흔들고 있죠. 멋집니다, 정말로. 하지만 잠깐, 이걸 아셨나vlsi-korea.gitbook.io 리눅스 환경에서 TCL 스크립트를 실행하는데에는 보통 tclsh를 사용한다. tclsh는 TCL 인터프리터로, TCL 코드를 실행하거나 대화형으로 테스트할 때 사용된다. 따라서 TCL 스크립트를 작성할 때에는 #! (Shebang)을 먼저 선언하여 tclsh 인터프리터를 선택하도록 작성한다.#!/usr/bin/tclshputs "Hello, World!" 1. set 명령어  set 명령은 TCL에서 변수를 생성하..
System Verilog Basics - Control Flow
·
코딩 지식/SYSTEM VERILOG
본 시리즈는 "chipverify.com" 내용을 바탕으로 작성됨.  반복문 (repeat, while, for) C언어와 마찬가지로. while(do ~ while), for 문을 지원하며, repeat은 조건 없이 반복 횟수만큼 실행되며, 반복 횟수가 정해져 있을 때 사용된다.Task, Function Function은 단일 값을 반환하는 순수한 계산 로직에 사용되며, Task는 시간 지연, forever, @(event) 처리가 가능해 복잡한 프로시저 처리 및 다중 출력 처리에 적합하다. 호출 방식 또한 차이가 있다.// Function은 표현식 내 호출int result = calculate_sum(a, b); // Task는 독립적 문장으로 호출generate_packet(pkt, delay);..
System Verilog Basics - 변수
·
코딩 지식/SYSTEM VERILOG
본 시리즈는 "chipverify.com" 내용을 바탕으로 작성됨. 0, 1, x, z SystemVerilog의 자료형은 Verilog와 동일하게 0, 1, x, z로 이루어져있다.   모든 BIT 초기화 (') 여러 Bit 수를 가지는 변수를 초기화 하고 싶을 때, ` Literal을 사용하면 쉽게 초기화가 가능하다.    실수 자료형 (real)  "real" 자료형을 통해 실수 값을 나타낼 수 있으며, C언어의 atoi, itoa와 같은 역할을 하는 "$itor", "$rtoi"가 있다.     logic, bit 자료형 기존 Verilog에서는 wire, reg 자료형만 사용되었지만, "logic"을 사용하면 두 자료형의 역할을 모두 수행할 수 있다. 또한, "bit" 자료형은 0,1,x,z 가..
SystemVerilog - Task
·
코딩 지식/SYSTEM VERILOG
SystemVerilog에서 Task를 어떻게 활용할 수 있는지에 대해 살펴보겠다. Task는 반복적으로 실행될 수 있는 코드 블록을 정의하는 데 유용하며, 설계나 시뮬레이션에서 중요한 역할을 한다. 주로 하드웨어 설계나 테스트벤치에서 재사용 가능한 기능을 구현할 때 자주 사용된다.1. Task란 무엇인가?Task는 일종의 함수와 비슷하지만, 함수와 다른 점은 값을 반환하지 않는다는 것이다. Task를 사용하면 중복되는 코드를 줄이고, 코드의 가독성 및 유지보수성을 향상시킬 수 있다.SystemVerilog에서 task는 다음과 같은 형식으로 정의된다:task task_name(input [7:0] i_data, output [7:0] o_data); begin // 작업 내용: 입력 ..