728x90

반도체 Study 73

Verilog - n비트 양방향 시프트 레지스터

시프트 레지스터는 한 플롭의 출력 핀 q가 다음 플롭의 데이터 입력핀(d)에 연결되는 일련의 플립플롭이다. 모든 플롭은 동일한 클럭에서 작동하기 때문에 시프트 레지스터에 저장된 비트 배열은 한 위치만큼 이동한다. ex) 5bit 오른쪽 시프트 레지스터의 초기 값이 10110이고 시프트 레지스터에 대한 입력이 0에 묶여 있으면 다음 패턴은 01011이 되고 다음 패턴은 00101이 된다. 설계 시프트 레지스터 설계에는 5개의 입력과 1개의 n비트 출력이 있다. parameter MSB를 사용하여 매개변수화를 통해 시프트 레지스터의 폭을 나타낸다. 주요 기능 1. input d(design) 핀을 통해 활성화, 비활성화 할 수 있다. 2. input dir을 통해 왼쪽, 오른쪽으로 이동할 수 있다. 3. i..

Verilog - 기본 문법 정리

- 자료형과 연산자 - Verilog 연산자 - 게이트 수준 모델링 - 할당문 - 행위수준 모델링 - 구조적 모델링 자료형과 연산자 Verilog 자료형 논리값 0 : 거짓, 1 : 참, x : unknown, z : high-impedance (구동자가 없는 상태) net 자료형 wire, tri, wand, wor, triand, trior, supply0, supply1, tri0, tri1, trireg net는 값을 저장하지 않으며(단, trireg net는 예외임), 연속 할당문, 게이트 프리미티브 등과 같은 구동자의 값에 의해 net의 값이 연속적으로 유지된다. net에 구동자가 연결되어 있지 않으면, default 값인 high-impedance(z)가 된다. net 자료형을 선언하는 문법..

C - 포인터, 이중포인터 Call-by-Value, Call-by-Reference

#define _CRT_SECURE_NO_WARNINGS #include int SquareByValue(int); int SquareByReference(int*); int main() { int num = 0; printf("정수를 입력하시오 : "); scanf("%d", &num); SquareByValue(num); printf("%d \n", num); SquareByReference(&num); printf("%d \n", num); return 0; } int SquareByValue(int num) { return num * num; } int SquareByReference(int *ptr) { int num = *ptr; *ptr = num * num; } - SquareByRefer..

반도체 Study/C 2023.03.28
728x90