IT/ASIC | FPGA 2024. 9. 12.
tcl - 리스트 확장 기능으로 리스트 요소 제거하기
{*}$elements_to_remove는 Tcl에서 리스트 확장(list expansion) 기능을 활용한 표현입니다. 이는 Tcl 8.5 이상에서 지원되며, 리스트의 요소들을 개별적인 인자로 분리해서 처리하고자 할 때 사용됩니다.구체적인 설명:$elements_to_remove: 이 변수는 리스트를 담고 있습니다. 예를 들어, 리스트 {clk2 clk3}가 들어 있습니다.{*}: 이 연산자는 리스트 확장(list expansion)을 의미합니다. 리스트 안에 있는 각 요소를 개별적인 인자로 확장하는 역할을 합니다.리스트 확장({*})의 역할:보통 Tcl에서 리스트는 하나의 단일 인자로 처리됩니다. 하지만 특정 상황에서는 리스트 내의 각각의 요소를 개별 인자로 넘기고 싶을 때가 있습니다. 그런 경우에 ..
IT/ASIC | FPGA 2024. 9. 4.
RTL 파일리스트 만들기 - find 활용
특정 디렉토리 아래에 있는 RTL 파일들의 리스트를 만들때, 아래 구문을 활용해 보세요.편리하게 쫙 나열됩니다. 일단 전체를 만든다음 이후에 필요없는 파일은 정리하면 되겠죠find RTL -type f -regex ".*\.\(v\|sv\|vh\)" > file_list.f 이 명령어는 최종적으로 .v, .sv, .vh 파일을 모두 한 번에 찾을 수 있는 간결한 방식입니다. -regex를 사용하여 파일 확장자들을 묶어서 처리하므로, 더욱 깔끔하고 효율적입니다. 결과는 이렇게 나오겠죠.RTL/module1/design.vRTL/module1/testbench.svRTL/module2/include.vhRTL/module3/submodule/design.svRTL/module3/submodule/defs.v..
IT/리눅스 2024. 8. 28.
vi - gf 로 파일열기시 환경변수 있어도 가능하게
vi에서 'gf'를 치면 cursor가 가리키고 있는 file로 jump를 하게된다.이 기능은 보통 debugging시 log 파일에서 error 또는 warning message가 떴을 때 사용하게 된다.https://sunshowers.tistory.com/80 문제점은 이러한 gf이 기능을 쓸 때, 대상 파일 경로 안에 ${project_name}과 같이환경 변수(environment variable)이 포함되어 있으면 사용할 수 없다는 점이다. 이런 메세지에서 gf를 쓰면vi는 '${project_name}/temp.txt' 라는 file을 찾을 수 없다고 message를 띄운다. 이러한 문제점은 .vimrc에서 file이름 구분법을 설정함으로써 해결할 수 있다. set isfname+=$,{,}..
IT/리눅스 2024. 8. 28.
윈도우에서 리눅스로 파일 이동시 ^M 문자 제거 방법
텍스트 파일에 포함된 도스 스타일의 줄 끝 문자(^M, 즉 carriage return, \r)를 제거하려면 여러 가지 방법을 사용할 수 있습니다. 주로 이 문제는 Windows에서 작성된 파일을 Unix/Linux 시스템에서 열 때 발생합니다. Unix/Linux는 줄 끝을 나타내는 데 개행 문자(\n)만 사용하지만, Windows는 carriage return과 개행(\r\n)을 함께 사용하기 때문입니다.다음은 ^M 문자를 제거하는 방법들입니다:1. dos2unix 명령어 사용가장 간단한 방법은 dos2unix 유틸리티를 사용하는 것입니다. 이 도구는 파일에서 Windows 스타일의 줄 끝을 Unix 스타일로 변환해줍니다.dos2unix filenamefilename: 변환할 파일의 이름입니다.이 명..
IT/Git, GitHub 2024. 8. 23.
.gitignore 작성시 패턴 입력 예제
.gitignore 파일에서 특정 패턴을 포함하는 여러 디렉토리와 파일을 간단하게 무시하려면 와일드카드(*)와 재귀 패턴(**)을 사용할 수 있습니다. 주어진 디렉토리 구조에서 공통된 패턴을 활용하여 다음과 같이 .gitignore 파일을 작성할 수 있습니다:SYN/**/reportsSYN/**/netlistSYN/**/work이렇게 하면 SYN 아래에 있는 모든 서브디렉토리에서 reports, netlist, work 디렉토리가 무시됩니다. 이 규칙은 SYN 디렉토리 내의 모든 하위 경로에 대해 적용되므로, 예를 들어 SYN/CPU/reports뿐만 아니라 SYN/SAFE/reports도 무시됩니다. 만약 특정 디렉토리에만 적용되도록 하려면 경로를 더 구체적으로 작성해야 합니다. 하지만 위의 방식으로 ..
IT/ASIC | FPGA 2024. 8. 19.
Verilog-mode - Lisp 함수 예약어 (vl-width, vl-dir, ...)
앞서 사용한 vl-width 같이 미리 지정된 함수 예약어 리스트만 따로 쭉 뽑아 봤다. 물론 홈페이지에 다 있지만, 찾을 때 편리하게 :) There are special variables defined that are useful in these Lisp functions: vl-name Name portion of the input/output port. vl-bits Bus bits portion of the input/output port (`[2:0]'). vl-mbits Multidimensional array bits for port (`[2:0][3:0]'). vl-width Width of ..
IT/ASIC | FPGA 2024. 8. 19.
Verilog-mode - 안쓰는 output port 처리
그냥 비워둬도 되지만, unused__module__시그널명 이런형태로 변수를 만들어 두고 싶다면, 아래와 같이 지정하면 된다. How do I use AUTOINST to tie off unused ports?Configure your lint program to ignore signals with a certain naming, such as those with unused in the name, then use AUTO_TEMPLATE to make a unique name for each port./* InstModule AUTO_TEMPLATE ( .out_signal (unused__@"vl-cell-name"__@"vl-name"[]), // [] is dropped for sin..
IT/ASIC | FPGA 2024. 8. 19.
Verilog-mode - input 시그널에 0 값 할당 방법
그냥 System verilog 에서 쓰이는 버스에 0 주는 방법 '0 를 활용하면 가장 편하다.그럼에도, 버스에 딱 맞춰서 주고 싶다면 {@"vl-width"{1'b0}}이런형태로 처리하는 것을 지원한다.How do I use AUTO_TEMPLATE to tie off inputs to zero?To tie off a single port:/* InstModule AUTO_TEMPLATE ( .\(.*\)_test ('0),); */If you don't want to use SystemVerilog's '0 you can use a Lisp format template, and the Lisp variable vl-width, which contains the width of the port:..
IT/리눅스 2024. 8. 19.
윈도우 WSL 에서 csh 사용하기
WSL(Windows Subsystem for Linux)에서 C shell(csh)을 실행하는 방법을 안내해드리겠습니다. 1. WSL 설치먼저 WSL이 설치되어 있어야 합니다. 아직 WSL을 설치하지 않았다면 다음 단계를 따르세요:WSL 설치관리자 권한으로 PowerShell을 실행합니다.다음 명령어를 입력하여 WSL을 설치합니다:wsl --installWSL 배포판 설치설치할 Linux 배포판(Ubuntu 등)을 선택하고, Microsoft Store에서 설치합니다.2. csh 설치이제 WSL 배포판(Ubuntu 등)에서 csh을 설치하고 실행할 수 있습니다.WSL에서 터미널 실행WSL을 설치하고 원하는 배포판(Ubuntu)을 설치한 후, 해당 배포판의 터미널을 실행합니다.Windows의 명령 프롬프..
IT/ASIC | FPGA 2024. 8. 13.
VCS 컴파일 이전에 synopsys_sim.setup 파일 확인
VCS 컴파일 이전에 synopsys_sim.setup 파일 확인이 무조건 중요하다. 라이브러리 위치나 기본 work 폴더를 지정하는 것이 필수적이다. Before you analyze your design using vhdlan or vlogan, ensure that the library mappings are defined in the synopsys_sim.setup file, and that the specified physical library for the logical library exists. If the physical directory does not exist, VCS exits with an error message. 매뉴얼에 나와 있다. 샘플 예제가 가장 중요하지. 주석 기능이..
IT/Git, GitHub 2024. 8. 12.
Git clean -fd : Stage 에 올리지 않고 취소하기
git clean -fd 명령어는 Git에서 작업 디렉토리를 정리하기 위해 사용되며, 추적되지 않은 파일과 디렉토리를 삭제합니다. 각 옵션에 대해 자세히 설명드리겠습니다.git cleangit clean은 Git이 추적하지 않는 파일을 작업 디렉토리에서 제거하는 명령어입니다. 여기서 추적되지 않는 파일이란 git add로 스테이징되지 않은, 즉 Git이 관리하지 않는 파일을 의미합니다.-f (force, 강제)-f 옵션은 "강제"의 의미로, 실제로 파일을 삭제할 것을 Git에 지시합니다. 이 옵션이 없다면, git clean은 아무 작업도 수행하지 않습니다. Git은 파일 삭제가 위험할 수 있기 때문에, 안전 장치로 이 옵션을 필요로 합니다.-d (directories, 디렉토리)-d 옵션은 추적되지 않..
IT/ASIC | FPGA 2024. 8. 9.
VCS delay zero 처리 - +delay_mode_zero +notimingcheck
여러 옵션을 주는 중에 Warning-[UNKWN_IGOPTS] Unknown option(s) ignored Unknown option(s) '+notimingcheck +notiming +nospecify ' passed to 'vlogan' command line is(are) ignored. Please make sure that there are no typos in the option(s) passed, or the options are only applicable to VCS at elaboration step. Also check 'vlogan -help' for supported options. Warning-[ENBL_OPTS] Enabling option(s) Enab..