알지오 평생교육원

로그인|회원가입|고객센터
HOME>IT전문가>디지털 회로 시스템설계>verilog [입문+고급]

verilog [입문+고급]

verilog [입문+고급]
20회차 속성과정
전체 : 18시간 10분|회차당 평균 : 54분30초

이용기간 2개월

전문강사 : 황우진

300,000185,000



verilog 사용법 강좌
현재 현장에서 많이 활용되는 HDL 언어로 하드웨어 언어를 시작하거나 코드 이해와 문법에 대해서 심층적으로 다루길 원하는 분들에게 권장합니다. 현장에서 필요한 논리합성이 가능한 코딩스타일로 구성되어 회로 설계, 검증, 구현 등 여러 용도로 사용할 수 있습니다. 시뮬레이션을 통해 검증된 코드를 그대로 합성하여 하드웨어 설계를 원하는 분들이 이용하면 좋습니다.
  • 01.33분 디지털 시스템 설계를 위한 Verilog - Chapter 1

    베릴로그를 작성하는 베릴로그모듈의 전체구조를 살펴보고 프로젝트를 생성하는 방법에 대해서 알아봅니다.

    책갈피 : [00:14] 베릴로그 HDL/[00:52] 베릴로그가 있기 전 회로도 사용/[01:42] VHDL/[03:21] FDGA 프로그램/[05:11] ISE 프로젝트 네비게이터/[05:40] ISE 웹팩 살펴보기/[06:15] NEW 프로젝트 생성하기/[07:45] 프로젝트 셋팅/[09:07] 작성되는 언어 설정하기/[09:50] 프로젝트 summary/[10:46] 프로젝트 생성 수정하기/[11:58] 홈화면 수정하기/[12:20] 디자인 창 살펴보기/[13:31] 로그플레인 살펴보기/[14:46] 실행할 소스 파일 만들기/[15:16] 미리 작성된 파일 가져오기/[15:37] 여러종류의 파일 불러오기/[16:52] 파일설정창 살펴보기/[17:41] 테스트 파일의 위치/[18:56] 디자인 SUMMARY/[19:45] 작성된 코드 적용하기/[20:18] 구성된 모듈 살펴보기/[21:11] 문법 검사 하기/[23:14] 시뮬레이션으로 넘어가기/[24:30] ISim Simulator/[25:22] 시뮬레이터 결과 확인하기/[27:11] 보드 연결 구성하기/[27:30] 파일 구성하기/[28:03] UCF 파일 생성하기/[28:30] User Document 타입/[29:26] UCF 파일 구성 확인하기/[29:48] UCF 뷰탭에서 확인하기/[30:22] 물리적인 정보 기입하기/[31:11] UCF파일 지정하기/[31:22] 비트 스트림 파일 생성하기/[32:09] Generate Programming File 실행하기

  • 02.57분 디지털 시스템 설계를 위한 Verilog - Chapter 2

    베릴로그를 구성하는 데이터요소들에 대해서 알아보고 데이터타입에는 어떤것들이 있는지 알아봅니다.

    책갈피 : [00:08] 베릴로그의 기본/[00:25] 기본단위 module/[01:19] 모듈이나 함수에 대한 구성 살펴보기/[03:19] 모듈의 전체 구조/[04:41] 모듈 헤더 양식/[05:57] 포트리스트 작성 방식/[06:15] 포트신호의 방향/[07:15] 포트 신호의 타입/[07:46] reg/[08:22] wire/[09:03] MSB와 LSB/[11:11] 포트신호의 이름 리스트/[11:43] 포트리스트 구성의 예/[13:20] 파라미터 리스트/[14:13] 파라미터 리스트 구성의 예/[14:58] 모듈헤더 구성의 예/[15:56] 모듈헤더 선언시 주의점/[16:45] 모듈헤더 적용 선언/[17:47] 간단하게 모듈헤더에 포트 선언하기/[19:15] 베릴로그 모듈 몸체/[21:52] 모듈에서 동시 실행될수 있는 작업/[22:37] continuous assignment문/[23:56] 이니셜 블록과 올웨이즈 블록/[24:56] 프로시져 문장/[26:33] 지연시간 추가/[27:29] 작성된 문자 보기/[29:52] 베릴로그에서의 데이터 구성/[31:15] 숫자 상수값/[32:45] h로 선언될 경우/[33:07] s가 붙었을 경우/[33:22] 숫자 상수값 표현의 예/[33:37] 선언된 값 찾아보기/[34:19] 2진법으로 나타낼 경우/[35:19] 2,8,16진수의 경우/[36:05] 값의 길이가 길어질 경우/[37:52] 잘못된 부분 보기/[39:22] 언더바 사용할 경우/[40:37] 베릴로그와 VHDL 상수값 표기 비교/[40:51] 베릴로그 보기/[41:07] VHDL/[41:52] 문자열 상수 입력할 경우/[42:12] string 상수값/[43:37] 변수의 길이가 다를경우/[43:50] ISE 네비게이터 실행/[44:00] 새 프로젝트 열기/[44:49] 프로젝트 설정/[45:36] 베릴로그 모듈파일 구성/[46:22] 소스 파일 이름 입력/[47:27] 디파인 모듈/[48:14] 요약부분 보기/[48:36] 모듈파일 생성 확인/[49:07] 모듈파일 수정/[49:52] 문자 상수 선언/[50:12] 변수 선언/[50:44] 블록 지정/[51:22] 문자열 입력/[53:07] 표현되는 부분 정의/[54:07] 코드컴파일/[54:29] 시뮬레이션 실행/[55:00] 결과값 확인/[55:15] 출력 부분 같게 만들기/[55:35] 결과값 확인/[55:53] 변수의 길이보다 출력된 크기가 작을 경우/[56:27] 결과값 확인

  • 03.54분 디지털 시스템 설계를 위한 Verilog - Chapter 3

    회로를 기술하는 기술방식의 문법사항을 살펴보고 예제를 가지고 그 기능에 대해서 이해합니다.

    책갈피 : [00:06] 베릴로그 코멘트/[01:11] VHDL에서 비교/[01:42] 코드 보기/[02:36] 베릴로그 식별자/[04:30] 베릴로그 데이터타입/[06:08] net형 타입/[06:30] wire/[06:44] tri/[06:55] wand/wor/[07:30] trior/triand/[08:28] variable형 타입/[10:05] reg/[11:09] time/[12:37] vectors/[13:20] 싱글비트로 선언될 경우/[14:56] 벡터 값으로 선언된 또다른 형식/[16:00] 이니셜 블록을 이용한 할당문 구성/[16:56] 배열 데이터 타입/[17:44] integer a/[18:03] reg bool/[18:18] time chk_poit/[19:14] k=a/[20:07] 선언되는 부분 확인/[21:03] 메모리 데이터 타입/[21:40] 메모리 값이 표현된 코드 보기/[22:33] 베릴로그 할당문/[23:48] continuous assignment/[26:07] procedural assignment/[29:07] blocking assignment/[29:56] blocking assignment의 예/[32:06] 긴 코드로 구성하기/[32:22] 이니셜 블록에 구성된 코드 살펴보기/[32:59] 시간에 대한 키워드 언급이 없을경우/[33:43] 지연시간/[34:05] 코드 실행/[36:07] non-block assignment/[37:07] 문장 부호 보기/[39:00] non-block assignment를 사용한 코드 보기/[41:59] 베릴로그 코드를 이용한 회로 구성/[42:22] structural description/[42:37] dataflow description/[42:50] behavioral description/[43:22] structural description 구성 방법/[43:50] gate-level modeling/[44:22] 기본 게이트 종류/[44:52] 논리 연산/[45:21] or 연산/[46:58] 연산 값에 대한 부분 보기/[47:58] 입력값이 세개일 경우/[48:30] 인버터의 값 나타내기/[49:43] 계층적 설계/[50:27] 베릴로그 관점에서 보기/[51:00] 인스턴스네이션/[52:22] 커넥션 바이 오더/[52:50] 두번째 포트 연결 방식

  • 04.48분 디지털 시스템 설계를 위한 Verilog - Chapter 4

    회로를 설계하기 전에 알고리즘을 검증하는 방식에 대해서 알아보고 각각의 실행문장들에는 어떤것들이 있는지 알아봅니다.

    책갈피 : [00:07] dataflow description/[01:02] dataflow description 코드의 예/[02:13] continuous assignments/[04:15] 신호의 세기/[05:45] 여러개의 할당문 열거의 예/[07:09] implicit continuous assignments/[07:42] continuous assignments 문으로 나눠 쓰는 방법/[08:13] 지연시간/[08:18] regular delay/[08:48] net delay/[09:28] implicit continuous assignment delay/[10:01] 산술 연산자/[11:13] 관계연산자/[12:35] 적용되는 비교연산자/[13:13] 논리 연산자/[14:33] 예시 보기/[16:21] 논리 연산자에서 짚고 넘어가야 할 점/[16:52] 비트 연산자/[17:30] binary/[19:03] 쉬프트 연산에서 꺽쇠 갯수의 차이/[19:30] unary reduction/[20:44] 기타연산자/[21:18] 예시 보기/[23:22] 연산자 우선순위/[23:52] behavioral description/[25:26] initial 블록/[28:26] 시뮬레이션 프로젝트 실행/[28:41] 프로젝트 파일 구성/[29:02] 모듈 파일 구성/[30:11] 변수 타입 만들기/[30:48] 변수값 입력/[31:14] 이니셜 블록 구성/[32:20] 시뮬레이션 종료 키워드 입력/[32:59] 컴파일/[33:37] 디스플레이 문 구성/[34:37] 문자 입력/[35:30] 컴파일/[35:52] 시뮬레이션 소스코드 선택/[36:06] 결과 확인/[36:50] 출력문 구성/[38:05] 결과 확인/[39:52] always 블록/[40:59] 프로젝트 구성/[41:52] 출력값 구성/[42:50] clk 값에 처음값 지정/[43:49] always 문 입력/[44:07] 구성 부분 검사/[44:28] 시뮬레이션 소스코드 선택/[44:43] 결과값 확인/[45:20] 변화되는 값 보기/[46:27] 시뮬레이션을 짧거나 길게 구성할 경우/[46:57] always 문의 사용

  • 05.60분 디지털 시스템 설계를 위한 Verilog - Chapter 5

    베릴로그의 회로를 검증하기위한 시뮬레이션 방식에 대해서 알아보고 시뮬레이션 task/function 을 예제를 통해 확인 합니다.

    책갈피 : [00:33] procedural statement/[01:11] if 문/[02:06] 코드 보기/[03:43] if 를 중첩시킬때 주의해야 할 점/[04:26] case문/[05:55] 코드 보기/[07:41] casez/[07:59] casex/[08:30] while 문/[08:43] 코드 보기/[10:41] for 문/[11:52] repeat문/[13:00] forever문/[13:41] 문장 살펴보기/[14:26] task/function call/[15:39] task와 function 호출하는 법/[16:11] task와 function 차이점/[19:00] task와 function 공통점/[20:44] task 코드 구성 보기/[21:30] 호출문 보기/[26:11] 시뮬레이션/[26:44] task 문이 실행되기 전까지의 코드 삽입/[27:03] task 문 선언/[27:22] 컴파일/[27:40] 시뮬레이션 실행/[27:51] 결과값 확인/[28:32] 코드 보기/[31:56] 테스크 호출시 테스크의 변수를 새로운 기억 장소에 할당시키기/[34:30] function 코드 보기/[36:07] 함수의 정의 부분 자세히 보기/[38:45] 시뮬레이션/[39:00] 새 function 구성/[39:13] 출력문 구성/[40:00] 함수 호출문에 대한 함수 function 구성/[40:35] 컴파일/[40:49] 시뮬레이션 실행/[41:00] 결과값 확인/[42:07] 키워드를 사용하는 템플릿 살펴보기/[43:44] verilog simulation/[44:07] 모듈 검증/[45:28] verilog test fixture/[45:49] verilog test fixture 를 구성하는 모듈에 대한 부분 보기/[46:34] verilog test fixture 파일의 특징/[47:30] 주요 task 또는 함수/[47:45] $stop/[47:52] $finish/[48:00] $display/[48:27] $monitor/[50:07] 출력 format의 형태/[51:00] 코드 적용/[52:00] 프로젝트 구성/[52:28] 값 할당 받을 변수 선언/[52:59] 컴파일/[53:27] 시뮬레이션을 위한 테스트 파일 구성/[55:37] 테스트 파일 살펴보기/[56:34] 시뮬레이션 실행/[57:00] 결과 확인/[58:04] 출력문 보기/[59:51] display값 적용/[60:07] 결과 확인

  • 06.1시간 7분 Verilog를 활용한 최적의 설계 가이드 - Chapter 1

    시뮬레이션 키워드와 compiler directive, conditional compilation에 대해 알아봅니다

    책갈피 : [00:20] 덧셈기 구성/[00:34] 변수 선언/[01:59] sum 입력/[02:15] 변수 값 받아 계산하기 위한 모듈 구성/[02:59] 연산 부분 구성/[03:46] output 값 구성/[04:40] 할당문 구성/[05:13] 테스트 모듈에서 사용 될수 있게 구성하기/[05:29] 모듈 가져오기/[06:15] 시뮬레이션 코드 보기/[07:08] 컴파일/[08:11] 지정된 부분 확인/[09:09] 시뮬레이션 실행/[09:16] 결과 확인/[10:35] 테스크 키워드/[11:11] 디스플레이 키워드만 이용해 모듈 구성 시 출력 되는 형태 알아보기/[11:43] 구성 확인/[13:52] 프로젝트 파일 실행/[14:07] 모듈 구성/[14:20] 변수 값 선언/[14:58] 파일 구성/[15:24] 모듈파일 생성 확인/[15:39] 컴파일/[16:03] 시뮬레이션 실행/[16:22] 결과 확인/[17:37] 모니터 키워드를 이용한 실행 문장 구성/[19:18] 프로젝트 구성/[20:18] 이니셜 블록 구성/[21:15] 컴파일/[21:33] 파일 구성/[22:26] 시뮬레이션 실행/[22:37] 결과 확인/[24:52] 키워드 종류에 대해 알아보기/[25:11] monitoroff/[25:45] monitoron/[26:22] strobe/[27:18] strobe 와 display 비교/[30:44] 새 프로젝트 생성/[31:11] 변수 지정/[31:52] 블록문 구성/[32:28] always문 할당/[34:27] a 값 변형/[35:07] display 적용/[35:37] strobe값 적용/[36:51] 초기값 바꿔주는 구문 작성/[37:37] 테스트 파일 구성/[38:15] 시뮬레이션 실행/[38:37] 결과 확인/[41:22] 코드 위치 변경/[42:00] 결과 확인/[42:45] strobe 문장 위쪽으로 적용/[43:20] 랜덤 키워드를 사용 했을때 실행 되는 문장 살펴보기/[44:15] 새 프로젝트 생성/[44:42] random 함수 입력/[45:22] seed 값 입력/[46:45] always 문 입력/[47:12] 컴파일/[47:27] 테스트 파일 구성/[48:06] 결과 확인/[49:00] readmem 키워드/[51:57] 프로젝트 생성/[52:22] 메모리 저장 공간 구성/[53:27] readmemb 입력/[53:52] 저장된 값 출력 될수 있게 구성/[54:45] 테스트 파일 생성/[55:12] 결과 확인/[56:52] compiler directive/[57:45] define/[58:52] 예시 보기/[60:30] include/[61:37] timescale/[64:00] 예시 보기/[64:48] conditional compilation/[65:39] 예시 보기

  • 07.58분 Verilog를 활용한 최적의 설계 가이드 - Chapter 2

    조합회로를 구성하는 procedural assignment문에 대해서 예제와 함께 알아봅니다.

    책갈피 : [00:07] verilog 합성 표현/[00:59] 합성 가능한 코딩 스타일 보기/[01:34] 반복문에 대한 종류/[02:13] mux 설계/[04:15] 2:1 mux gate/[05:30] 예시 보기/[06:15] 연결선/[08:11] 변경 되는 부분 확인/[11:37] 시뮬레이션을 통해 확인하기/[11:46] 프로젝트 파일 생성/[12:18] 인풋값 선언/[12:37] 출력값 선언/[12:52] 연결선에 대한 타입 지정/[13:13] 컴파일/[13:28] 테스트 파일 구성/[14:01] 결과 확인/[15:13] 값 변경/[15:43] 컴파일/[16:03] 결과값 확인/[17:55] s 값 구성/[18:51] 결과값 확인/[19:26] 중복되는 연산 지우기/[20:03] assign-continuous assignment/[20:59] 새 모듈파일 구성/[21:51] 할당문 키워드 입력/[23:37] 시뮬레이션 테스트 파일 구성/[24:40] 결과 확인/[25:30] 탑 모듈로 변경/[25:47] 컴파일/[26:07] 테스트 파일 선택 후 실행/[26:37] conditional-continuous assignment/[27:07] 프로젝트에 적용하기/[28:00] 시뮬레이션 실행/[28:51] procedural assignment문-if문/[29:26] if문을 이용한 설계/[30:03] 달라진 점/[30:41] 모듈 내부 부분 보기/[32:52] 프로젝트 구성/[33:22] always 블록 구성/[34:13] 시뮬레이션 파일 구성/[34:45] 결과 확인/[35:28] 시간에 따른 y에 대한 값의 변화 알아보기/[36:19] 컴파일/[36:37] 결과 확인/[39:05] 센시티비티 리스트 사용법/[41:15] if문 조건 다른 방식으로 사용하기/[42:07] 조건 선언/[43:30] 중요한 점/[45:36] else if 문/[46:07] 포트리스트 보기/[47:00] 처음에 나타나는 if 조건 확인/[48:07] 프로젝트 생성 후 코드 구현/[48:37] else if문 구성/[48:52] 컴파일/[49:04] 테스트 파일 구성/[49:36] 결과 확인/[50:37] 값 수정/[53:15] 컴파일/[53:45] 시뮬레이션 실행/[54:00] 결과 확인/[57:07] 기호값 사용할 경우/[57:37] 결과 확인

  • 08.48분 Verilog를 활용한 최적의 설계 가이드 - Chapter 3

    베릴로그로 포현하는 입력과 출력의 Don't care표현을 구성하고 그 결과값이 어떻게 나타나는지 확인해봅니다.

    책갈피 : [00:09] 조건문을 활용한 조합회로 표현/[00:20] case 문 사용 예제/[04:25] case문에서 확인/[06:00] 시뮬레이션 적용할 case문 확인/[06:15] 프로젝트 생성/[06:45] case문 실행할수 있는 문장 입력/[07:00] 컴파일/[07:15] 시뮬레이션을 위한 파일 생성/[07:46] 확인/[08:22] sel값 입력/[09:31] 시뮬레이션 결과값 적용/[09:35] 결과 확인/[10:48] case 문과 else if 문의 구조적 차이/[12:56] case 문과 else if 문의 장단점/[13:03] worst case delay/[13:41] 조건문 표현력/[14:05] 우선순위 표현력/[14:56] 출력 don't care 표현/[16:44] 진행되는 코드 살펴보기/[19:26] 공통적인 부분 표현/[20:00] 새 프로젝트 구현/[20:40] case문 구성/[21:07] 테스트 파일 생성/[21:41] 모듈 파일 생성 확인/[22:45] 컴파일/[23:07] 결과 확인/[25:07] 불완전한 케이스문 완전한 케이스문으로 만들기/[25:56] 컴파일/[26:37] 입력 don't care 표현 (casex,casez)/[26:56] 구현 예시/[28:17] don't care 조건으로 표현하기/[32:06] 우선순위 반영되는지 확인하기/[33:22] a에 대한 값이 0으로 입력됐을 경우 조건/[33:52] 출력문 바꿔 선언하기/[35:20] vhdl 에서의 case 문과 베릴로그 에서의 casex,casez의 차이점/[36:22] full case / parallel case/[38:45] full case / parallel case 문 예시/[39:57] don't care 조건을 명시적으로 나타낸 하드웨어 코드/[41:44] module mux3to1/[42:15] 경우의 수 네가지/[44:21] full dase 문 적용/[44:35] synopsys full_case/[45:12] 주의할점/[45:45] parallel case문 예시/[46:51] 추가적으로 비교하게될 로직 부분 보기/[47:54] synopsys parallel_case

  • 09.1시간 4분 Verilog를 활용한 최적의 설계 가이드 - Chapter 4

    latch가 생성되는 발생조건에 대해서 시뮬레이션을 통해 결과를 확인합니다.

    책갈피 : [00:22] Decoder/[03:07] case 문을 이용한 모듈 구성/[05:56] default 문 구성/[06:15] 새 프로젝트 구성/[07:11] 모듈 내부 구성/[07:30] if 조건 입력/[07:46] else 조건 입력/[09:01] 참 이었을 경우 case 문 구성/[09:46] 경우의 수 적용 부분 입력/[10:15] 컴파일/[10:46] 테스트 파일 생성/[11:16] 생성 확인/[12:37] y에 대한 출력 값 확인/[14:00] 시뮬레이션 결과 확인/[16:25] en 값 0값으로 변경/[16:48] 결과 확인/[18:29] 간략하게 표현한 코드 살펴보기/[20:11] if 조건을 이용한 디코드 회로 만들기/[20:48] 컴파일/[21:22] 결과값 확인/[22:33] encoder 회로/[23:26] encoder 코드 예시/[26:22] module encoder_case/[28:03] encoder를 이용한 시뮬레이션 결과/[28:15] 포트리스트 구성/[29:11] always 블록 설정/[29:33] if 조건 입력/[30:03] 컴파일/[30:17] 시뮬레이션 파일 구성/[31:15] 결과값 확인 부분 구성/[32:15] 지연시간에 따라 변경되는 부분 입력/[32:37] 컴파일/[33:00] 결과 확인/[34:21] latch/[36:12] latch가 발생되는 상황/[36:22] else가 빠진 if문/[39:22] 새 프로젝트 생성/[39:50] 입력값, 출력값 입력/[40:19] latch 발생을 위한 코드 구성/[41:15] 컴파일/[41:50] 테스트 파일 생성/[42:34] 파일 생성 확인/[43:07] 시뮬레이션 동작시 연산 실행을 위한 값 설정/[43:22] 지연시간 설정/[45:29] 컴파일/[45:42] 시뮬레이터 실행/[46:04] 결과 확인/[48:49] latch 발생의 예/[49:06] reset이 있는 latch/[51:00] else 문으로 구성/[51:37] if 문으로 구성/[52:58] latch가 발생되는 게이트와 발생되지 않는 게이트/[54:37] default 값 이용/[56:22] 기본값 지정해서 latch 방지하기/[57:22] 중첩된 if문/[58:52] 중첩된 if문에서 latch 발생/[59:45] default가 빠진 case문

  • 10.55분 Verilog를 활용한 최적의 설계 가이드 - Chapter 5

    FlipFlop의 기본형을 가지고 FlipFlop이 생성되는조건의경우는 예제와 함께 시뮬레이션하여 결과를 확인합니다.

    책갈피 : [00:06] flip flop/[02:52] 모듈 구성 부분 보기/[03:15] 두 모듈의 차이점/[04:00] 리스트에 나열될수 있는 신호 보기/[05:00] 기본형으로 사용되는 부분/[05:30] 블록 형태로 보기/[06:54] 기본 형태에서의 flip flop 확인/[07:15] 연산자/[09:31] 비동기 리셋신호를 가진 플립플롭/[11:31] if문일 경우/[12:09] 블록 구조도 보기/[13:16] 프리셋 신호가 필요할 경우/[13:39] 프로젝트 생성/[13:52] 포트리스트 구성/[14:16] always 블록 생성/[14:58] 테스트 파일 생성/[15:50] 시뮬레이션 할수 있는 작업 실행/[16:22] always 문 작성/[16:41] 지연시간 부분 지정/[18:40] 컴파일/[18:52] 시뮬레이터 실행/[19:00] 결과 확인/[20:48] 변화되는 입력값 확인/[22:37] 리셋값이 0 이 아닌데도 바로 출력이 나타나지 않는 이유/[23:30] 리셋값 제거/[24:21] 컴파일/[24:30] 결과 확인/[25:25] d 값 변경/[25:37] 결과 확인/[26:03] 처음상태로 유지되는 부분 보기/[26:29] 결과 확인/[28:52] 동기식 리셋 신호를 가진 플립플롭/[29:02] 비동기식과 동기식의 차이점/[30:26] 모듈 파일 생성/[32:07] 컴파일/[33:07] 테스트 파일 생성/[34:52] always 문 작성/[35:58] 컴파일/[36:13] 결과 확인/[38:00] d 값 변경/[39:37] 결과확인/[41:22] 리셋 값이 1일 경우/[42:22] 비동기식과 동기식의 차이점 확인/[44:45] 컴파일/[45:14] latch 발생 확인/[46:06] view text report 선택/[46:22] 확인/[49:52] final report 부분 살펴보기/[50:27] FDR/[51:27] 컴파일 결과 확인/[52:19] FDC/[52:45] 표 확인/[54:39] latch 추출 유무 확인

  • 11.43분 Verilog 마스터를 위한 실전 실무 강좌 - Chapter 1

    FlipFlop이 생성되는 일반적인 규칙에 대해서 알아보고 buffer를 이용한 데이터전송 모듈방법에 대해서 학습합니다.

    책갈피 : [00:07] D 플립플롭/[01:48] 우선순위 지정/[02:38] 주의할점/[03:00] rst 값의 우선순위를 높게 정한 이유/[04:00] 비동기 리셋과 동기식 세트가 혼합된 경우/[05:10] load 신호가 있는 플립플롭/[05:57] enable 신호가 있는 d 플립플롭 만들기/[06:44] 프로젝트 생성/[07:12] d의 값 적용 구성/[07:15] 컴파일/[08:05] 테스트 파일 생성/[08:54] clk 값에 대한 변화 적용/[09:37] 시뮬레이터 실행/[09:46] 결과 확인/[10:39] 시간에 따라 구분하기/[11:05] 결과 확인/[12:45] 모듈 자체에서 보기/[13:24] view text report 선택/[13:50] final report 보기/[14:26] 수정사항 적용/[16:11] rst 값 초기화 부분 적용/[17:02] 컴파일/[17:26] 추가된 부분 입력/[18:18] rst 값 0값으로 초기화/[19:47] d의 값 변경/[20:29] 시뮬레이션 실행/[20:37] 결과 확인/[22:32] 입력값에 복잡한 논리식이 있는 경우/[23:00] 모듈 예시 보기/[25:56] 입력 받은값 적용해서 순차적인 부분 만들기/[28:00] 프로젝트 생성/[28:18] 모듈 헤더 구성/[29:06] 테스트 파일 생성/[29:55] 이니셜 블록에 신호값 적용/[30:45] 만들어진 부분 지연시간에 따라 조정하기/[31:26] 시뮬레이션 실행/[31:45] 결과확인/[32:37] 입력값에 대한 부분 적용/[33:37] 결과확인/[34:57] 입력이 복잡한 플립플롭 블록도 보기/[35:57] 모듈 생성 예시/[37:28] 새 프로젝트 생성/[37:57] awlays 블록 입력/[38:15] 결과값 확인/[39:05] final report 부분 확인/[39:43] 테스트 파일 추가/[40:07] 지연시간 부분 정의/[41:53] 시뮬레이션 실행/[42:14] 결과확인

  • 12.51분 Verilog 마스터를 위한 실전 실무 강좌 - Chapter 2

    parameter값을 사용한 레지스터를 구성하고 그 결과를 통해 시뮬레이션은 어떤 결과가 나타나는지 확인합니다.

    책갈피 : [00:08] buffer inference/[01:07] continuous assignment 문으로 구성하기/[02:21] procedural 문으로 구성하기/[03:19] 양방향 버퍼/[04:42] 모듈의 구성 부분 살펴보기/[05:46] 생성된 포트리스트 보기/[08:26] 프로젝트 생성/[09:28] assign 키워드 입력/[09:46] 테스트 모듈 생성/[10:09] 생성 확인/[10:50] 지연 시간 부분 적용/[12:24] 시뮬레이터 실행/[12:31] 결과 확인/[14:13] 양방향 버퍼의 입출력 데이터가 레지스터를 거치는 경우/[14:31] 구성 예 보기/[16:56] buffer_reg 프로젝트 선언/[17:25] 레지스터 값 선언/[18:07] always 블록 입력/[18:33] 컴파일/[18:45] 테스트 파일 생성/[19:17] 생성 확인/[19:56] 지연시간에 따른 이동 시간 입력/[21:37] 시뮬레이터 실행/[21:48] 결과 확인/[23:25] rst 값 입력/[23:37] 결과 확인/[25:11] register/[26:11] register 구성 모듈 보기/[27:03] 일반적인 비트수를 표현한 레지스터 파라미터 형태로 구성하기/[28:07] 모듈 헤더 구성 방법 비교/[30:52] register 프로젝트 생성/[31:48] always 블록 입력/[32:28] 컴파일/[32:45] 테스트 파일 생성/[33:22] 생성확인/[33:58] 지연 시간 부분 입력/[34:52] 시뮬레이터 실행/[35:05] 결과 확인/[36:45] value 값 변환해서 확인하기/[37:52] 파라미터값 변경을 통한 레지스터 만들기/[40:07] 결과 확인/[41:00] shift register/[42:22] 모듈 구성 확인/[44:27] shift register 프로젝트 생성/[44:57] 컴파일/[45:12] 테스트 파일 생성/[45:22] 모듈 생성 확인/[46:20] 결과 확인/[46:57] Q 값 초기화/[47:37] 결과 확인/[49:19] assign 할당문 부분 새롭게 입력/[50:19] 결과 확인

  • 13.1시간 2분 Verilog 마스터를 위한 실전 실무 강좌 - Chapter 3

    단순이진카운터부터 BCD카운터까지 베릴로그에서 합성가능한 카운터를 표현해보고 모듈생성을 통해 결과값을 확인합니다.

    책갈피 : [00:32] 산술 shift register/[02:46] shift 신호 만으로도 값 이동되는지 확인/[03:14] a_shift 프로젝트 생성/[03:53] 컴파일/[04:00] 테스트 파일 구성/[04:27] 모듈 파일 생성 확인/[05:00] 입력값 초기화 시키기/[05:27] clk 신호값 입력/[06:25] d에 대한 초기값 입력/[08:03] 시뮬레이터 실행/[08:13] 결과 확인/[10:01] 연산 일어날수 있게 적용/[10:41] 결과 확인/[12:11] counter/[15:20] 2진 counter/[15:31] 프로젝트 생성/[16:00] 컴파일/[16:26] 테스트 파일 생성/[16:47] 생성된 모듈 파일 보기/[17:30] clk 신호값 선언/[18:25] 지연시간 부분 입력/[19:32] 시뮬레이터 실행/[19:56] 결과 확인/[21:52] 십진법 형태로 신호값 부분 보기/[22:33] 카운터 길게 적용하기/[23:41] run time 수정/[24:03] 결과 확인/[24:33] counter 증가 감소/[26:26] updown_counter 모듈 생성/[27:26] 컴파일/[27:44] 테스트 파일 생성/[28:07] 파일 생성 확인/[28:52] clk 신호값 지정/[30:00] updown 신호값 증가/[31:15] updown 신호값 감소/[31:48] 시뮬레이터 실행/[32:07] 결과 확인/[34:05] rst 값 입력/[34:30] 결과 확인/[35:43] 10진법 부분으로 확인/[36:43] 증가, 감소 부분 간단하게 적용하기/[38:45] 결과 확인/[39:37] radix 부분으로 바꿔서 적용/[40:30] 병렬 로딩 counter/[42:59] 프로젝트 구성/[43:27] view text report 확인/[45:30] BCD counter/[48:06] BCD counter 프로젝트 생성/[49:14] 비동기식 선언/[50:20] 조건이 참일경우 cnt 값 초기화/[51:22] cnt 증가값 입력/[53:27] 컴파일/[53:52] 테스트 파일 생성/[54:15] clk 신호값 적용/[54:42] rst 값 입력/[55:37] 결과 확인/[56:37] run time 변경/[57:00] en 값이 0 값일때와 1 값일때의 차이/[58:37] 결과 확인/[60:15] 값에 대한 정의 유지시키기/[60:29] 결과 확인

  • 14.55분 Verilog 마스터를 위한 실전 실무 강좌 - Chapter 4

    여러개의 카운터 연결을 통해 자리수표현에 대한 카운터 방법에 대해서 알아보고 Embedded memory가 어떤식으로 표현되고 구성이 되는지를 알아봅니다.

    책갈피 : [00:07] counter 연결/[01:42] 추가 사항 확인/[02:07] 입력값 과정 보기/[03:46] 카운터 모듈 구성하기/[04:00] 카운터에 대한 부분 선언/[04:28] always 블록 구성/[04:54] 신호값 입력/[05:15] 컴파일/[05:30] 테스트 파일 생성/[06:15] clk 신호 값 입력/[08:11] 자릿수에 대한 부분 만들기/[10:18] 10의 자리 부분 만들기/[12:26] 시뮬레이션 적용/[12:41] 결과 확인/[14:03] radix 부분으로 확인하기/[15:28] 런타임 조정/[15:46] 결과 확인/[16:00] radix 부분으로 확인하기/[17:03] embedded memory/[17:11] ROM/[17:55] 선언문 구성 보기/[20:17] 이니셜 블록/[21:26] 이니셜 블록과 always 블록의 차이점/[22:45] rom을 구성하는 모듈/[25:22] 모듈 생성/[25:45] 메모리 공간에 적용되는 값 입력/[26:00] 할당문 지정/[26:10] 컴파일/[27:30] 메모리 생성 확인/[28:56] RAM/[31:18] 동작 방법에 대한 모듈 구성/[32:13] wirte-first mode 구성/[36:36] 표현 방법 다르게 나타내기/[39:29] 모듈 생성/[40:13] 메모리 선언/[40:52] 컴파일/[41:07] 테스트 파일 생성/[41:29] 완성된 모듈 확인/[42:52] 간격 조절/[43:07] 값 저장할수 있는 공간 지정/[45:00] 결과 확인/[46:49] 순차적으로 진행됐을때 메모리 구성/[47:12] 새 프로젝트 생성/[47:37] 소스 추가/[48:22] always 블록 지정/[48:52] 컴파일/[49:27] 소스 파일 생성/[50:00] clk 신호값 지정/[52:30] 결과 확인/[54:06] 메모리 부분 구성 확인

  • 15.59분 Verilog 마스터를 위한 실전 실무 강좌 - Chapter 5

    FSM Design에 대해서 알아보고 mealy FSM을 구성하는 합성방법에 대해서 알아봅니다.

    책갈피 : [00:05] read-first mode/[03:00] no-change mode/[05:42] FSM Design/[07:00] Mealy type과 moore type 비교/[08:24] Mealy type 상태머신 구성하기/[08:43] fsm state 블럭도 보기/[09:58] always 블럭 이용하기/[13:39] 모듈로 나타내기/[15:46] s0 상태일 경우/[16:56] s1 상태일 경우/[17:30] s2 상태일 경우/[17:47] s3 상태일 경우/[19:21] 리셋 신호에 따른 조건 만들기/[20:03] 상태 머신 구성하기/[20:15] 인풋, 아웃풋 신호 부분 입력/[20:33] 상태값들의 초기값 지정/[21:06] 케이스문으로 구성하기/[21:48] always 블럭 입력/[22:22] 컴파일/[22:56] 결과창 확인/[24:33] 옵션 값 변경/[26:03] 인코딩값 확인/[26:41] 테스트 파일 구성/[27:30] x값이 1일 경우 살펴보기/[27:52] 시뮬레이터 실행/[28:15] always 블럭 선언/[29:17] 입력값 변경/[29:33] 지연시간 입력/[29:59] 시뮬레이션 진행/[30:15] 결과 확인/[30:41] 인스턴스 부분 보기/[31:22] uut 부분 오브젝트 구성 보기/[32:22] 오브젝트 값 웨이브로 확인하기/[33:28] 실행 정지/[35:45] x값이 1일 경우 살펴보기/[36:50] 시뮬레이션 결과 확인/[37:37] 신호값 추가 후 확인/[38:59] 간단하게 표현하기/[39:45] 구성된 코드 보기/[40:52] 모듈에서 구성하기/[42:00] 한개의 always문으로 mealy fsm 구성하기/[43:07] 모듈 부분 살펴보기/[47:37] 모듈 구성/[48:04] 상태값에 대한 초기값 지정/[48:51] 연산 출력 부분 입력/[49:12] 테스트 파일 생성/[49:45] 신호값 동일하게 적용하기/[50:37] 지연 시간 부분 적용/[51:22] 시뮬레이터 실행/[51:37] 결과 확인/[52:42] 웨이브 윈도우에서 적용한 후 결과 확인/[53:52] 싱글 모듈에서 할당문 적용하기/[55:35] 컴파일/[56:12] 시뮬레이터 실행/[56:30] 결과 확인/[57:00] 상태에 대한 부분 적용/[57:27] 결과 확인

  • 16.59분 베릴로그의 마지막 FINAL 특강! - Chapter 1

    FSM의 mealy FSM을 구성하는 합성방법에 대해서 알아보고 디지털 시스템을 디자인하는 데이터경로와 FSM에 대해서 알아봅니다.

    책갈피 : [00:06] 무어 타입으로 구성하는 상태 머신/[00:31] 결과 비교하기/[01:11] 입력 패턴 찾는 과정 적용하기/[04:11] 입력값을 상태도에 입력해 원하는 패턴 찾기/[05:12] 0값 입력된 경우/[08:48] 밀리타입에서 구성하기/[09:24] 무어타입 구성 모듈 보기/[10:39] 상태에 대한 부분 확인/[11:15] 결과 저장 상태 부분/[11:39] 무어타입 상태 머신 적용하기/[11:50] 포트 부분 구성/[12:11] 초기값 정하기/[12:41] y값 지정/[13:18] 현재 상태 부분 나타내기/[13:41] 변수에 대한 부분 생성/[14:13] 레지스터 구성/[15:03] 이벤트 리스트 구성/[16:18] 테스트 파일 생성/[17:56] clk 신호에 대한 부분 지정/[18:22] 지연시간 부분 적용/[20:14] 패턴 변화값 입력/[20:52] 컴파일/[21:07] 결과 확인/[22:14] 런타임 적용/[24:51] pipeline/[26:45] pipeline 모듈 구성 보기/[28:25] 카운터 연결/[29:00] 디지털 시스템 설계/[30:33] 데이터 경로 보기/[32:42] w 목적지/[34:20] i 목적지/[35:30] y 목적지/[35:58] 기타연산/[36:36] 개별적 데이터 경로 합치기/[38:37] 가산기/[40:07] register/[41:37] 멀티플렉스 연산/[43:04] comp_LT/[43:45] datapath/[47:12] 비교 연산 구성 전 지정해야할 부분/[49:07] 디지털 시스템 설계 방법/[49:36] 제어부 설계/[52:07] 상태도 확인/[52:21] 상태머신에 적용되는 신호 보기/[53:37] 블록도 보기/[56:46] 연산이나 상태 합쳐서 나타내기

  • 17.1시간 2분 베릴로그의 마지막 FINAL 특강! - Chapter 2

    데이터시스템을 만들기 위한 경로모듈을 구성하고 제어할수 있는 컨트롤 모듈을 통해 시스템을 구성해봅니다.

    책갈피 : [00:09] 모듈화 시킨 코드 살펴보기/[01:57] always 블록을 이용한 케이스문 연산/[02:53] 신호 값에 대한 초기화값 지정/[03:42] 전체시스템 통합/[04:46] 시스템 모듈 부분 보기/[06:25] 프로젝트 생성/[06:46] 가산기 모듈 지정/[08:15] DSD 모듈에 모듈 저장/[08:33] 레지스터 구성/[09:48] 저장/[10:11] 멀티플랙스 구성/[11:09] 비교연산 구성/[12:01] 데이터 경로 지정/[12:56] 계층 구조 확인/[14:01] 제어부 구성/[14:26] 저장/[15:20] 시스템 모듈 구성/[15:35] 저장/[16:03] 컴파일/[16:26] 테스트 파일 생성/[17:15] 확인/[17:56] 디지털 시스템 설계/[18:30] 입력 받은 값 적용 부분 구현/[19:26] W에 대한 결과값 받기/[20:00] 코드 보기/[21:07] Y값에 20을 적용할 경우/[22:07] 테스트 파일에 적용하기/[22:25] Y에 대한 초기값 지정/[23:03] 결과값 기다리는 부분 지정/[24:30] Y값 다르게 입력/[25:26] 결과값 입력/[26:03] 결과값 확인/[26:56] 시뮬레이터 실행/[27:10] 결과 확인/[27:30] 음수값 표현해서 적용하기/[27:52] 결과 확인/[28:22] 신호값을 이용한 외부 폼 차트 적용 확인/[30:47] radix 부분으로 확인/[33:06] 값에 대한 신호값 변화 확인/[36:22] 베릴로그 코드 진행 알아보기/[37:15] verilog timing control/[38:30] event/[40:15] event 블록도 보기/[41:21] 우선순위 살펴보기/[42:45] 우선순위 알고리즘/[47:22] 예시 보기/[49:04] 타이밍 제어 부분 보기/[49:19] delay based timing/[49:43] blocking assignment 와 non blocking assignment 차이/[52:50] timing 프로젝트 구성/[53:35] 연산 부분 정의/[54:52] 연산 적용/[56:15] 디스플레이 키워드 추가/[57:15] 컴파일/[57:50] 시뮬레이터 실행/[58:06] 결과 확인/[58:37] 연산식 보기/[59:38] non blocking 연산식 보기

  • 18.55분 베릴로그의 마지막 FINAL 특강! - Chapter 3

    구성한 시스템 디자인을 통합하여 결과를 확인해보고 베릴로그에서 사용되는 타이밍 컨트롤에 대해서 학습합니다.

    책갈피 : [00:19] timing 프로젝트 구성/[00:43] input과 output 대신하는 값 지정/[01:23] integer로 연산 부분 지정/[02:20] blocking 연산 지정/[03:22] non blocking 연산 지정/[03:52] 디스플레이 키워드 추가/[04:40] 컴파일/[05:13] 결과 확인/[08:54] regular delay control/[09:52] 이니셜 블록에 구성된 문장 보기/[10:46] 모듈 구성/[11:13] 이니셜 블록 선언/[12:24] 치환되는 값 선언/[13:22] 컴파일/[13:43] 테스트 파일 생성/[14:26] a 값 부분 확인/[15:28] 결과 확인/[17:11] 코드에서 살펴보기/[18:33] zero delay control/[19:26] 예시 보기/[19:59] 이니셜 블록 구성/[21:52] integer에 c값 추가/[22:07] 디스플레이 구성/[23:47] 이니셜블록 추가/[24:36] 컴파일/[24:56] 시뮬레이션 파일 생성/[25:48] 결과 확인/[26:59] c 값 보기/[28:33] intra assignment delay/[30:30] regular delay 와 intra assignment delay 보기/[31:33] 실습/[32:06] 세개에 대한 변수값 선언/[32:37] 지연시간에 대한 차이 살펴보기/[32:49] 문장 선언/[33:30] a 값을 다른값으로 할당하기/[34:52] b값 할당/[35:22] 지연시간 입력/[36:13] 디스플레이 구성/[37:05] 컴파일/[37:52] 테스트 파일 추가/[38:22] 결과 확인/[38:44] 코드에서 보기/[42:59] event-based timing/[43:14] regular event control/[44:07] posedge event/[44:15] negedge event/[45:28] 코드 구성 예시/[47:04] named event control/[47:52] 이벤트 변수를 사용한 코드 살펴보기/[49:37] event based timing/[50:19] event or control/[51:15] 코드 구성 예시/[52:36] wait문 과 while문/[54:01] 코드 구성 예시

  • 19.55분 베릴로그의 마지막 FINAL 특강! - Chapter 4

    내부 상수를 표현하는 방법과 인스턴스를 생성하는 방법, 여러개의 문장을 사용하는 블록문에 대해서 정리 및 학습합니다.

    책갈피 : [00:03] scalable design/[00:55] parameters/[03:07] 파라미터 선언 예/[04:30] 파라미터가 2개인 경우/[05:10] 파라미터를 이용한 레지스터 구성의 예/[06:42] localparam/[08:05] 코드 구성 예시/[10:00] arrays of instances/[11:15] 구성된 모듈 살펴보기/[12:24] generate block/[13:01] generate loops/[14:01] loops에 구성된 문장 보기/[16:37] primitive gate instance/[17:48] always block/[18:36] for문, if-else문, case문/[19:15] conditional generate/[20:32] sequential/[20:47] parallel/[22:40] 코드 구성 예시/[24:41] parallel 블럭 사용시 주의점/[25:41] 가장 중요한 적용 부분/[27:07] 중첩된 모듈 살펴보기/[28:03] 첫번째 구간 이니셜 블록 부분 보기/[29:22] 두번째 이니셜 블록 부분 보기/[31:25] named block/[31:52] 이름 붙이는 방법/[33:07] disabling named block/[34:44] time unit/[34:52] timescale/[35:28] 시간 단위 보기/[37:15] 다른 방법으로 모듈 구성하기/[37:22] 새 프로젝트 구성/[39:00] 모듈 구성 소스 추가/[39:52] 결과 확인/[41:00] 카테고리 살펴보기/[41:27] 심볼 아이콘 생성/[41:52] 로직 선택해서 구성하기/[42:30] 확대, 축소/[43:07] 인풋, 아웃풋 값 추가/[44:19] 확인/[44:51] object properties/[45:30] 이름 변경/[46:15] 디자인탭 살펴보기/[46:50] ucf 파일 생성/[47:42] 모듈 생성 확인/[48:12] 결과 보기/[49:22] lock pin 확인/[50:29] 저장/[50:45] lock pin 재실행/[51:34] 테스트 파일 생성/[53:07] 구문 입력/[53:37] 인풋 값 변경/[54:29] 시뮬레이터 실행/[55:07] 결과 확인

  • 20.45분 베릴로그의 마지막 FINAL 특강! - Chapter 5

    전체시스템 설계를 통한 방법을 이용하여 실질적인 모델을 구성하는 주요 모듈 설계에 대해서 학습합니다.

    책갈피 : [01:07] 모듈화 시킨 자판기 구성하기/[03:12] 표현 내용/[04:24] 주요 구성 모듈/[05:09] 모듈 헤더 정의/[06:00] 모듈 내부 정의/[06:57] begin값 구성/[08:20] case문 확인/[08:56] 저장/[09:20] 상품 선택 신호값 적용/[10:05] 상품 부분 모듈 구성/[10:33] 상품 정보 출력값 입력/[11:22] 모듈 내부 정의/[12:30] 처음 상태에 대한 경우 만들기/[12:52] 7가지 상품 부분 정의/[13:46] always 블록 생성/[15:56] 가산기 구현/[16:48] 모듈 헤더 구성/[17:11] 연산 될수 있는 값 선언/[18:41] cout 부분 입력/[21:56] 멀티플렉서 부분 구성/[22:37] 모듈 내부 구현/[23:00] 반복문 부분 구현/[24:37] case문 구성/[25:48] cant 부분 구현/[26:07] 블럭화/[27:22] 변화 과정 모듈화 시켜 구성/[29:11] 값 저장 공간 만들기/[30:26] for문 구성/[30:51] begin 값 만들기/[32:07] 잔돈 반환 모듈 생성/[33:37] 초기화 값 선언/[35:59] begin 코드 구성/[36:35] 카운트 값 반복문 지정/[38:28] 저장/[39:30] 부수적인 모듈 보기/[40:22] 상품에 대한 모듈 구성해서 보기/[41:37] 멀티플렉스 부분 구성/[42:30] 출력값에 대한 부분 구성