본문 바로가기
728x90
반응형

전체 글150

[SystemVerilog] generate-for loop와 for loop의 차이 [SystemVerilog] generate-for loop와 for loop의 차이 1. generate-for loop설명 컴파일 타임에 실행: generate 블록 안의 for문은 컴파일 시간에 반복적으로 실행되며, 그 결과로 고정된 하드웨어 구조를 생성한다.하드웨어 인스턴스 생성: generate 블록 내에서 반복된 코드는 물리적 하드웨어 리소스로 변환됩니다. 즉, 각 반복마다 새로운 하드웨어가 생긴다. 이 반복은 정적이기 때문에, 반복 횟수가 미리 정해져 있어야 한다.genvar 사용: generate 블록에서는 genvar를 사용하여 반복 변수를 정의하는데, 이 변수는 컴파일 타임 변수로, 하드웨어 구조를 생성할 때만 사용된다. 이 변수는 시뮬레이션 중에는 값을 가지고 있지 않고 사라진다.Ex.. 2024. 10. 18.
[VLSI] ASIC Flow [VLSI] ASIC Flow    1. Specification  고객 또는 시스템 요구 사항에 따라 설계할 Digital 회로의 기능, 성능, 전력 소비, 크기 등의 사양을 정의한다. 이 단계에서는 전체 시스템의 기능적 블록 다이어그램과 인터페이스를 구체화한다.주요 항목기능 요구 사항 (Functional Requirements) : 고객이 요구하는 기능 구현. ex) 각종 Algorithm, Logic성능 요구 사항 (Performance Requirements) : 고객이 요구하는 성능, Chip의 성능 등. ex) Clock Frequency, Latency전력 요구 사항 (Power Requirements)면적 요구 사항 (Area Requirements)프로세스 기술 (Process Tech.. 2024. 10. 16.
[C 언어] 3. Memory Structure(메모리 구조) 3. Memory Structure(메모리 구조) 메모리 구조프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드되어야 한다.운영체제는 프로그램의 실행을 위해 다양한 종류의 메모리 공간을 제공한다.코드 영역 (Code)이 영역은 실행 가능한 코드, 즉 프로그램의 명령어들이 저장된다.읽기 전용(Read Only)이며, 프로그램 실행 중에는 수정할 수 없다.컴파일된 코드가 이곳에 저장된다.데이터 영역 (Data)이 영역은 전역 변수와 static 변수들이 저장된다.초기화된 데이터와 초기화되지 않은 데이터로 나뉜다초기화된 데이터 영역 (Initialized Data Segment): 프로그램이 시작될 때 값이 할당된 전역 변수와 static 변수들이 저장된다.초기화되지 않은 데이터 영역 (BSS Segm.. 2024. 9. 1.
[C 언어] 2. Pre-process(전처리) 2. Pre-process(전처리) 전처리 지시자 #include지정한 파일을 읽어 와서 지시자가 있는 위치에 삽입한다.#include : 시스템 헤더파일 내용 복사. 컴파일러가 설정한 include 디렉터리에서 검색.#include “ ” : 사용자 정의 헤더파일 내용 복사. 소스 파일이 저장된 디렉터리에서 검색.단순히 해당 파일을 지시자가 있는 위치에 삽입하는 것이므로, 반드시 특정 코드의 맨 위에 넣을 필요는 없다.소스 파일(.c)도 포함할 수 있다.   #define매크로명을 정의하는 전처리 지시자모든 매크로는 전처리 과정에서 단순히 치환될 부분으로 바뀌는 것 뿐이다.단순 매크로#define 매크로명 치환될_부분(관례적으로 대문자 사용)매크로 상수 : 상수 대신에 쓰이는 매크로명함수 매크로#de.. 2024. 9. 1.
[C 언어] 1. Introduction 1. Introduction C 언어   유닉스 OS에 사용하기 위해 켄 톰슨이 만든 B 언어를 데니스 리치가 발전시켜 만든 언어이다.초기 유닉스는 대부분 어셈블리어로 작성되어 컴퓨터의 하드웨어가 바뀌면 다시 개발해야 하는 문제가 있었다.어셈블리어로 매번 다시 개발하는 일을 없애고자, 전 단계에서 사용할 공통된 언어인 C를 개발했다.주로 하드웨어를 제어하는 SW로 많이 사용된다.  C 언어 컴파일 과정 소스 코드를 기계어로 바꾸는 과정으로 전처리, 컴파일, 어셈블, 링크 4단계로 이루어진다.전처리, 컴파일, 어셈블 3단계를 모두 포함해서 컴파일이라고도 한다.3단계를 포함한 컴파일과 링크를 포함해서 빌드라고 한다. 빌드는 소스 코드를 실행할 수 있는 소프트웨어 로 가공하는 것을 의미한다.전처리(Pre-pr.. 2024. 8. 31.
사용자 변수 vs 시스템 변수 사용자 변수와 시스템 변수의 차이? 사용자 변수컴퓨터에 있는 각 계정에서 사용하는 변수. 해당 사용자의 계정으로 컴퓨터에 로그인 시에만 적용되는 변수. ex) 사용자1에 python 설정사용자1 로그인 → cmd에서 python 명령어 사용 가능사용자2 로그인 → cmd에서 python 명령어 사용 불가사용자3 로그인 → cmd에서  python 명령어 사용 불가 시스템 변수 시스템 전반에 걸쳐 적용되는 변수, 즉 전역변수와 같은 개념이다. ex) 시스템 변수에 python 설정사용자1 로그인 → cmd에서 python 명령어 사용 가능사용자2 로그인 → cmd에서 python 명령어 사용 가능 사용자3 로그인 → cmd에서 python 명령어 사용 가능   사용자 변수와 시스템 변수의 우선순위대부분의 .. 2024. 4. 28.
환경변수 PATH란? 환경변수 PATH란?PATH는 운영체제가 명령행 또는 터미널 창에서 필요한 실행 파일을 찾는 데 사용하는 시스템 변수이다. PATH는 실행 파일이나 명령어를 찾는 경로를 설정하는 데 사용된다. 일반적으로 사용자가 입력한 명령어가 어디에서 실행 파일을 찾아야 하는지를 정의하며, 이를 통해 터미널 창에서 해당 명령을 입력하여 직접 실행할 수 있다.  Window에서 환경변수 PATH 설정 [시스템] - [정보] - [고급 시스템 설정] - [고급] - [환경 변수] - [시스템 변수] - [Path]에 설정하고 싶은 경로를 입력하면 된다. 여기에 경로를 설정하면, 터미널 어디서든 해당 프로그램을 실행할 수 있게된다. 일반적으로 응용프로그램을 설치하면 환경변수를 설정하는 것이 좋다.  예를 들어, 파이썬 설치.. 2024. 4. 28.
Verilog Simulator 종류 - Commercial Verilog Simulator 종류 - Commercial ① Mentor Graphics – ModelSim, QuestaSim RTL Code 시뮬레이션용. ModelSim은 기본 시뮬레이터. QuestaSim은 UVM, power aware simulations, AMS 등 고급 기능 사용 가능. ModelSim은 학부 과정에서 수업 시에 많이 접해볼 수 있는 시뮬레이터이다. ② Intel/Altera – Quartus Intel/Altera 전용 FPGA 디자인 플랫폼 Intel/Altera FPGA를 구매했을 때, 시뮬레이션과 합성을 위해 사용. ③ AMD/Xilinx – Vivado AMD/Xilinx 전용 FPA 디자인 플랫폼 AMD/Xilinx FPGA를 구매했을 때, 시뮬레이션과 합성을.. 2024. 3. 22.
Verilog Simulator 종류 - Open Source Verilog Simulator 종류 - Open Source ① Icarus Verilog(iverilog) – Stephen Williams 사용하기 쉬움Verilog 지원, SystemVerilog 지원하지 않음Verilog만 컴파일 가능compile : iverilog simulation : vvp waveform : waveform을 보려면 GTKwave를 사용. 일반적으로 많이 사용하는 무료 Verilog Simulator이다. Stephen Williams이란 사람이 개발하였다고 한다. Verilog만 지원 가능하고 다른 추가적인 기능들이 많이 부족하지만 입문자들이 간단하게 Simulation하기에 적합한 Simulator인 것 같다. 위키피디아에는 SystemVerilog도 어느 정도 지원.. 2024. 3. 21.
[Tkinter] 파이썬으로 GUI 만들기 - Entry, Text 파이썬으로 GUI 만들기 - Entry, Text Entry 한 줄 기입창, 엔터가 불가능하다. ex) 로그인 창의 아이디 비밀번호 입력 칸 # Entry: 한 줄만 사용 ,엔터 불가능. 예시로 로그인 창 아이디 비밀번호 입력칸 e = Entry(root, width=30) e.pack() e.insert(0, "한 줄만 입력해요") def btncmd(): print(e.get()) # 내용 삭제 e.delete(0,END) btn = Button(root, text="클릭", command=btncmd) btn.pack() root.mainloop() # 윈도우가 종료될 때까지 실행시킴 insert(index, “문자열”) : index 위치에 문자열 추가 get() : entry에 입력된 문자열 가.. 2024. 1. 31.
[Tkinter] 파이썬으로 GUI 만들기 - Label, Button 파이썬으로 GUI 만들기 - Label, Button Label 텍스트, 이미지 등을 나타내는 라벨 객체를 생성 from tkinter import * # Label은 글자나, 이미지를 보여주고, 어떤 동작을 하지는 않는다. root = Tk() # 가장 상위 레벨의 윈도우 창 생성 root.title("Stone Forest") # 제목 설정 root.geometry("600x480") # 크기 설정 : 가로 * 세로 # root.geometry("600x480+300+100") # 크기 설정 : 가로 * 세로 + x좌표 + y좌표 root.resizable(False, False) # 창 크기(x 너비, y 너비) 변경 On/Off label1 = Label(root, text="안녕하세요") lab.. 2024. 1. 30.
[Tkinter] 파이썬으로 GUI 만들기 - Window 창 띄우기 파이썬으로 GUI 만들기 - Window 창 띄우기   Tkinter란?Python으로 GUI를 만들 수 있도록 여러 컨테이너를 제공하는 라이브러리이다. Tkinter를 사용하여 다양한 응용프로그램을 만들 수 있다.  Tkinter 설치pip install tkinter  Window 창 띄우기from tkinter import *root = Tk() # 가장 상위 레벨의 윈도우 창 생성root.title("Stone Forest") # 제목 설정root.geometry("600x480") # 크기 설정 : 가로 * 세로# root.geometry("600x480+300+100") # 크기 설정 : 가로 * 세로 + x좌표 + y좌표root.resizable(False.. 2024. 1. 30.
728x90
반응형