본문 바로가기
반응형

개발 Tools92

Verilog HDL module ( 모듈, 연결, 합성, 인스턴스, instance, 여러개, 탑모듈, named mapping, ordered mapping ) module 합성을 하기 전에 먼저 module이란 뭔지 알아야 한다. module이란, verilog에서 기본적인 블록 단위로 c언어의 함수와 비슷하다. 아래 그림처럼 도식화할 수 있다. module_name = module의 이름을 적어준다. port_list = 입출력을 말한다. 어떤 입출력이 들어가는지 쭉 적으면 된다. port 선언 = 뭐가 입력, 출력인지 정의한다. 파란색 박스 = 아래 사용할 변수를 선언한다. 빨간색 박스 = 실제로 동작할 코드를 작성한다. module 연결 아래 그림에서 stage 1과 stage 2 모듈을 만들고 top 모듈을 만들어보자. 즉, stage 1과 stage 2를 연결시켜보자. stage 1은 입력이 a, b, c, clk 출력이 ff1으로 이루어져 있다. 이.. 2022. 2. 15.
Verilog HDL DUT, Test Bench ( 8bit adder, 8비트 덧셈기, vivado ) DUT는 실제로 구현되어 사용할 회로이다. 그런데 우리가 짠 코드가 잘 동작하는지는 확인할 수 없다. 그래서 test bench라는 모듈을 이용하여 잘 작동하는지 확인해야 한다. 그렇다면 test bench에서 잘 작동할 수 있게 DUT를 잘 합성해야 한다. 그렇게 때문에 합성 가능한 구문으로 만들어야 한다. 대표적으로 assign, always 구문을 이용하여 설계해야 한다는 말이다. 느낌이 오지 않는다면 적절한 예시 일진 모르겠지만, 우리가 살았나 죽었나 확인할 땐, 보통 쿡쿡 찔러보고 움직이면, 살아있다고 판단하고 움직이지 않다면 죽었다고 판단한다. 이처럼 DUT가 잘 동작하는지 에러가 있는지를 확인해보기 위해, test bench에서 어떤 입력을 가해서 그에 따른 반응을 확인해야 한다. 가하는 입.. 2022. 2. 11.
머신러닝 Spectral Clustering Clustering(클러스트링)이란, 번역하면 군집, 집단, 무리라는 뜻을 가진다. 데이터의 관점에선 주어진 데이터들의 특성을 고려해 집단을 정의하고 집단의 대표할 수 있는 대표점을 찾는 것으로 데이터 마이닝의 한 방법이다. 클러스트링에는 여러 방법이 존재한다. 1. 평균 기반 2. 계층 기반 3. 밀도 기반 4. 연결 기반 이중에 이번에는 Spectral Clustering을 알아볼까한다. 많은 경우에서 기존의 클러스트링 알고리즘보다 더 나은 성능을 보인다. Spectral Clustering는 거리가 가까이 있더라도 연결이 없다면 군집화하지 않는다. 크게 3가지 절차를 거쳐 클러스트링을 진행한다. 첫 번째로, 각각의 데이터 포인트를 유사도에 따라 행렬(그래프)로 변환시킨다. - 좀 더 쉽게 생각하면,.. 2022. 2. 11.
Verilog HDL 연산자 ( 산술 연산자, 비트 연산자, 논리 연산자, 축약 연산자, 등가 연산자, 시프트 연산자, 결합 연산자, 반복 연산자 ) 산술 연산자 예를 보는 게 더 이해가 쉽다. // a = 4'b0011; (== 3) // b = 4'b0100; (== 4) // d = 6; // e = 4; a * b // 4'b1100 (== 12), 10진수 값으로 곱한다 d / e // 1, 소수점 이하는 버림 a + b // 4'b0111, 비트 연산 b - a // 4'b0001 13 % 3 // 1, 나머지 연산 값 16 % 4 // 0, 나머지 연산 값 -7 % 2 // -1, 첫번째 값의 부호와 일치해야 한다 7 % -2 // 1, 첫번째 값의 부호와 일치해야 한다 더하기 ( + )와 빼기 ( - )는 비트로 더하든 10진수로 더하든 똑같다. 나누기 ( / )와 나머지 ( % ) 연산자는 두 번째 피연산자가 0인 경우 결괏값은 x인 .. 2022. 2. 9.
Verilog HDL 자료형 (주석, 수의 표현, 상수 표현, 논리값 종류, 문자열, reg, wire, 식별자, vector, 메모리, 파라미터) 논리 값 종류 논리 값으로는 0, 1, z, x가 존재한다. 0과 1은 기본적으로 알 테니 z와 x에 대해 알아보자 Tri-state - 제3의 상태라고 하며 z라고 표시한다. high-impedance ( disconnected ) 즉. 아무것도 연결된 것이 없는 걸 말한다. en이 0이면 다 끊어져서 z가 출력된다. Unknown (또는 Don't care) - x라고 표시하며 뭐가 출력될지 모르는 상태를 말한다. 예로는 아래와 같은 경우가 있다. 주석 // : 한 줄 주석 /* */ : 부분 주석 수의 표현 표현방법으로는 아래와 같다. ' 예를 들면, "16'b0000_1000_1000_0000"의 의미는 을 의미한다. ( '_'는 표현의 편리성을 위해 사용 가능하다 ) 조금 더 자세히 보면 비트수.. 2022. 2. 9.