
디지털 회로 설계 업계를 이해하기 위하여 기본적인 용어에 대한 이해가 부족함을 느꼈다. 논리회로, 논리회로설계, 마이크로프로세서, 컴퓨터구조 수업에서 배웠지만 기억이 잘 나지않는 용어에 대해서도 다시한 번 정리하려한다. 그래서 오늘은 관련 용어를 정리해볼 것이다.

모듈 > 모듈은 Verilog의 기본 설계 단위이다. 모듈의 구조 모듈의 구조는 아래와 같다. 예시 예를들어 AND Gate의 경우 아래와 같이 개념도를 그릴 수 있다. 위의 개념도를 기반으로 아래와 같이 모듈을 설계할 수 있다. 포트 > 포트란 모듈을 외

데이터 타입 > 신호가 어떤 성질을 가지는지 나타냄 wire > 값을 저장하지 않는 연결선으로, Net type이다. 특징 값을 저장하지 않음 연결된 소스의 값을 그대로 전달 소스가 없으면 고임피던스(High-Z) 상태 동작 wire 타입의 동작은 위와 같이

변하지않는 고정된 값Verilog에서 상수는 코드 내에서 사용하는 고정된 숫자 값이다.회로의 비트폭, 초기값, 설정값등을 지정할 때 사용한다.코드에 직접 쓰는 숫자 표현Verilog에는 숫자를 표현하는 고유한 문법이 존재한다.위와 같은 문법으로 숫자를 표현한다Veril

연산자 > 연산자 = 데이터를 연산하는 기호 Verilog 연산자는 실제 하드웨어 회로로 합성된다. 연산자를 쓰면 해당 기능을 수행하는 회로가 생성된다. 비트 연산 > 각 비트 위치별로 독립적으로 수행하는 연산 (1) 종류 (2) 예시 논리 연산 > 전체

오직 현재의 입력에 의해서 출력이 결정되는 논리입력이 바뀌면 즉시 출력이 바뀐다 -> 클럭 필요 X오직 현재의 입력에 의해서만 출력이 결정 -> 메모리 필요 Xwire 자료형에 값을 연석적으로 할당하는 키워드연속 할당 이므로 우변이 바뀌면 좌변도 자동으로 바뀐다.ass

현재의 입력 + 현재의 상태(과거의 입출력 정보가 반영된 현재의 상태)가 현재의 출력을 결정하는 논리메모리가 존재해서 이전 상태를 기억한다.클럭 엣지에서 동작한다.조합 논리회로는 입력 변화하면 출력이 즉시 변화하지만, 순차 논리회로는 클럭 엣지가 들어왔을때만 출력이 변

값을 할당하는 방식Verilog 에는 2가지 할당 방식 (Blocking, Non Blocking)이 있고, 용도가 완전히 다르다.순차적으로 실행되는 할당코드가 위에서부터 아래로 순서대로 실행되고, 할당 즉시 값이 반영된다.다음 문장의 실행을 막고(block) 현재 문

조건에따라 다른 동작을 수행하는 구문HW 적으로는 MUX로 합성된다.if 문은 위와 같은 문법으로 코드를 짜면된다.만약 각 if,else if, else 문 내부에 한 줄이 아니라 여러 줄의 코드를 적고 싶은 경우 begin-end 블록을 사용하면된다.여러 문장을 묶을

설계한 부품을 배치하고 연결하는 것아래는 상위 모듈에서 하위 모듈을 사용하는 문법에 대한 설명이다.하위 모듈을 설계하고, 상위 모듈에서 하위 모듈의 객체(인스턴스)를 생성하여 사용한다.위에서 adder는 앞서 설계한 하위 모듈이고, u_adder은 adder의 객체이다

모듈의 설정값을 외부에서 변경 가능하게 만드는 상수하나의 모듈 설계로 다양한 비트폭, 크기, 동작을 가진 회로를 생성할 수 있다.Parameter는 모듈 외부에서 변경이 가능한 반면, localparam은 외부에서 변경이 불가하다.위와 같이 포트 선언부쪽에 Parame

메모리 > 2차원으로 표현되는 저장 공간 RAM, ROM, 레지스터 파일을 설계할때 주로 메모리가 사용된다. 1 차원 배열 VS 2차원 배열 Verilog에서 단일 레지스터는 1차원 배열, 메모리는 2차원 배열로 구현한다. 메모리 선언 방식 메모리(=2차원 배
데이터를 비트 단위로 조작하는 것위와 같이 벡터에서 원하는 비트의 데이터만 추출할 수 있다.위와 같이 +: 와 -:를 이용하여 가변적인 인덱스로 슬라이싱할 수 있다.\+: -> base부터 위로 width 비트\-: -> base부터 아래로 width 비트Concate
컴파일 타임에 하드웨어를 반복/조건 생성소프트웨어의 for문과 다르게, 실제로 하드웨어가 복제된다.위의 코드는 begin-end block을 gen_block 이라는 이름으로 4번 복제한다.generate 내부의 begin-end block이 복제되어 4개 생기는 것이
함수/태스크 > 반복 코드를 재사용 가능한 단위로 묶는 것 함수 (Function) (1) 문법 함수는 값 반환이 가능하고, 함수명에 할당하면 그 값이 반환된다. (2) 예시 a,b,c중 가장 큰 값을 반환하는 함수이다. 함수 호출은 로 수행한다.
유한 상태 기계로, 디지털 시스템의 제어 로직을 설계하는 핵심 기법상태 (State): 시스템이 있을 수 있는 조건들입력 (Input): 상태 전이를 결정하는 신호출력 (Output): 현재 상태에 따른 결과전이 (Transition): 상태 간 이동 규칙FSM 에는
설계한 모듈을 검증하기 위한 시뮬레이션 환경DUT(Design Under Test) : 검증 대상 모듈클럭 생성기 : 주기적인 클럭 신호리셋 생성기 : 초기화 신호자극 생서기 : 입력 패턴모니터/체커 : 출력 검증형식은 아래와 같다.reg rst;initial begi

시스템 태스크 > $로 시작하며, 시뮬레이션 제어와 디버깅에 사용된다

스펙 Direct mapped cache -> cache set 1개당 cache entry 1개 Block size = 4B Memory Size = 256B Word(4B) Addressing -> Block Size가 4B이니 B.O 필요 X Cache Size

이번에 Cache 설계할때 시뮬레이션 분석해보며 Verilog 스케줄링에 대해 부족했던 공부를 했다.delay에 따른 event 혹은 순차논리의 sensitivity list에 포함된 신호가 들어왔을때 회로에 변화가 생긴다2-1. non blocking assignme