알지오 평생교육원

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

VHDL [입문 + 실무]

VHDL [입문 + 실무]
20회차 속성과정
전체 : 17시간 12분|회차당 평균 : 51분36초

이용기간 2개월

전문강사 : 정준회

270,000165,000



VHDL [입문 + 실무] 사용법 강좌
디지털 회로를 표현하는 하드웨어 기술언어로 시뮬레이션을 통해 검증된 코드를 그대로 합성하여 하드웨어 설계를 원하는 분들이 이용하면 좋습니다. 디지털회로의 동작원리와 설계의 실전 예를 다루고 있으며 기본이념은 c언어와 구성이 다르지만 프로그래밍을 한번도 해보지 않은 기초 입문자에게는 이해도가 낮기때문에 권장하지는 않습니다.
  • 01.47분 VHDL 개념 및 기본 Gate 설계

    VHDL의 개념과 기본 논리 Gate의 설계 방식 및 시뮬레이션 방식에 대해서 설명합니다.

    책갈피 : [00:00] VHDL이란/[01:31] New Project/[02:31] VHDL-200X변경/[03:04] VHDL Module/[04:04] library/[04:28] 예약어/[05:58] VHDL문법/[07:15] 세미콜론/[07:34] architecture/[08:58] port Name/[09:24] Summary/[10:40] process 사용/[13:03] if 조건/[13:37] 결과/[15:33] 값 변동/[16:28] Check syntax/[16:59] synthesize -XST/[18:31] Set as Top Module/[19:50] port/[20:45] 합성/[23:29] 규칙/[24:38] end component/[25:53] component 끝/[28:11] signal/[30:19] port map/[34:33] and_gate or_gate xor_gate/[36:22] set as Top Module/[36:58] 분석 확인/[37:28] 동작/[38:23] VHDL Test Bench/[39:01] Associate Source /[44:48] Behavioral Check Syntax/[44:55] Simulate Behavioral Model/[45:07] ns/[46:42] 반복

  • 02.47분 3 input gate 및 드모르간 법칙 설계

    3개의 입력신호에 대한 and, or 설계방법을 설명하고, 드모르간의 법칙을 and, or, not 연산자를 이용하여 설계합니다.

    책갈피 : [00:24] 새로운 프로젝트/[01:43] 코딩 입력/[03:00] Data flow와 Behavioral 차이/[04:36] Signal이 필요한경우/[06:24] Process 코딩/[07:31] AND gate/[09:20] 간격띄기나 줄 바꿈/[11:41] OR gate/[12:50] Behavioral gate의 OR gate/[13:48] VHDL Test Bench 시뮬레이션 확인/[17:22] wait for clock period/[18:27] 코코드 확인/[22:23] 코딩 수정/[24:00] 코드 확인/[25:11] NOT gate/[25:45] 새 프로젝트 생성/[26:39] NOT get 활용/[28:17] NAND gate-코딩/[30:23] Process 코딩/[33:40] Process 안에서의 변수, 밖의 변수 순서/[36:44] 드모르간의 법칙/[37:46] 드모르간의 법칙을 VHDL로 옮기기/[40:33] NOR gate/[43:02] 코드 확인/[44:55] 시뮬레이션 확인

  • 03.52분 Bus 입·출력 선언과 변수 선언

    Bus 입·출력 선언과 변수 선언 대해 설명하고 시뮬레이션을 통하여 결과를 분석하는 방법을 설명합니다.

    책갈피 : [00:00] 백터선언, 변수선언/[00:36] 새로운 소스생성(port name 설정)/[01:47] 코딩 입력 (Vector 값)/[04:13] 코딩 입력 (변수)/[05:25] Variable 추가/[06:54] 산술연산을 위한 Library 추가/[07:53] Constant 선언/[09:51] Variable 작성/[11:42] J_EN 작성/[15:45] ELSE/[17:22] STD LOGIC 의 종류/[22:57] Integer range 작성/[25:42] Integer range 추가/[27:20] 광역변수, 지역변수/[28:26] Variable, Integer range 추가/[32:23] 벡터 프로세스, 인티저 프로세스 구분/[33:13] Variable 변수 추가/[36:33] 다중 if 절/[38:08] 에러확인/[39:33] 코드확인 수정/[44:34] 시뮬레이션 확인/[45:53] 코드 확인/[46:42] 시뮬레이션 확인/[46:53] 코드 확인/[48:50] 시뮬레이션 확인/[50:32] 코드 확인, 시뮬레이션 확인

  • 04.52분 Latch 및 D-FlipFlop 설계

    Latch와 D-FlipFlop을 여러 설계방법으로 코딩, Clock 코딩의 주의사항을 설명, 시뮬레이션을 통해 동작을 검증합니다.

    책갈피 : [00:00] Latch 프로젝트/[00:39] 새로운 소스 생성/[01:53] 시그널 두개의 변수 선언/[04:27] RS Latch의 단점/[05:33] 두개의 in 하나의 out/[07:34] Buffer 사용/[08:45] 경고확인/[10:33] 코드확인 수정/[12:54] 시뮬레이션 확인/[15:08] 시뮬레이션에서의 실수 정보/[16:39] Buffer 없이 작성/[18:13] 시그널 없이 Variable 변수 사용/[20:43] Latch의 다른 코딩 확인/[21:36] 시뮬레이션 확인/[22:26] 코드 확인/[23:07] 새로운 소스 생성/[23:14] D_Flip-Flop 코드 작성/[24:19] 새로운 클럭에 대한 정의/[27:09] Reset이 정의/[30:31] 클럭에 대한 부연설명/[35:16] Rising Edge/[37:13] 코드 확인 수정/[41:07] 시뮬레이션 확인/[45:27] 코드 확인 ,시뮬레이션 확인/[46:29] 코드 수정/[47:46] 시뮬레이션 확인/[49:41] 코드 확인 Time Interval 수정/[50:37] 시뮬레이션 확인

  • 05.1시간 3분 Generate문 및 카운터를 이용한 Serial to Parallel 회로 설계

    플립플롭의 배열을 Sturcture 기법으로 간단하게 설계하는 방법, 카운터 회로를 설계하고 코딩하는 방법, 이 두 회로를 이용하여 Serial to Parallel 회로를 설계하고 각각의 동작에 대해 시뮬레이션을 통해 검증합니다.

    책갈피 : [00:00] D_Flip-Flop/[00:39] 소스 D_Flip-Flop Shift 만들기/[00:57] Generic 코드 작성/[04:14] D_Flip-Flop 선언 코드 작성/[04:38] Process 작성/[05:51] Component 선언/[09:10] structure 설계 (블럭이름 : dfx)/[10:46] dfx 다중생성/[11:30] Generate 구문/[13:25] Generate에 시그널 연결/[17:48] 초기값 입력/[20:17] 결과 확인 수정/[23:09] 시뮬레이션 확인/[25:52] 코드 확인/[27:00] 새로운 소스 만들기 (counter)/[27:19] Counter 코드 작성/[29:46] 동기식 Counter와, 비동기식 Counter의 차이/[32:16] Elsif/[34:46] Output/[35:57] 결과 확인 수정/[38:00] 시뮬레이션 확인/[40:25] 코드 확인/[41:36] 새로운 소스 만들기 (Serial to Parallel)/[41:48] 새로운 소스 만들기 (D_Flip-Flop)/[41:59] 코드 작성/[43:32] Component작성/[46:46] Signal 작성/[48:01] 코딩 시작/[51:21] Serial to Paralle 선언/[55:05] 결과 확인 수정/[01:00:06] 시뮬레이션 확인

  • 06.59분 Parallel to Serial 회로 및 패리티 비트 생성기 설계

    Parallel to Serial 회로를 설계하고 코딩 설명 후 시뮬레이션을 통해 검증, 패리티 비트 생성기를 설계하고 통신에 있어서 오류를 검출하는 개념을 이해하고 시뮬레이션을 통해 검증합니다.

    책갈피 : [00:00] Paralle to Serial/[00:21] 새로운 소스 Paralle to Serial 만들기/[00:30] 코드 작성 준비/[04:25] Paralle to Serial 코딩 작성/[05:57] rising edge/[06:39] Output 위치/[09:08] 코딩확인/[09:32] Output 변수 연결 /[12:28] 결과 확인/[16:04] 두가지 Paralle 작성/[18:25] 시뮬레이션 확인/[18:42] 결과 확인/[18:49] 시뮬레이션 확인/[21:44] Paralle to Serial과 Serial to Paralle 사용목적/[25:32] 새 프로젝트 만들기 Parity det/[25:59] Parity det/[27:13] 코드 작성 준비 generic으로 bit 만들기/[29:45] Paryty det 회로/[31:04] 논리 gate/[32:51] X OR gate 만들기/[34:20] signal 수 계산/[37:41] in put 작성/[40:10] Generate 작성/[43:30] signal 최소화 설명/[44:14] integer 선언 주의사항/[44:58] 홀수 paryty/[45:44] paryty det 오류 검출/[47:40] 결과 확인 수정/[50:08] det 작성/[53:12] 시뮬레이션 확인/[54:25] 테스트 확인 및 수정/[55:55] 홀수 paryty det 시뮬레이션 확인/[56:39] 테스트 수정/[57:01] 시뮬레이션 확인/[57:45] run/

  • 07.52분 Schmatic 설계

    VHDL로 설계한 회로를 Symbol로 생성 후 Schmatic을 이용하여 회로를 설계는 방법에 대해 설명하고 시뮬레이션을 통해 동작을 검증합니다.

    책갈피 : [00:00] 도면 설계(parity bit 검출기/[00:31] Schematic 파일 만들기/[01:10] Symbol 만들기/[02:09] xor 코딩 작성/[03:45] Schematic 도면확인/[04:19] xor_gate 확인/[04:47] 코딩 확인/[04:55] not 코딩 작성/[06:11] xnor 코딩 작성/[07:19] 도면확인 및 xor_gate, 입력 삽입/[09:29] 출력 삽입 및 gate배치/[11:16] xor_gate 일렬 배치/[12:39] Schematic Editor-sheet size 설정/[12:52] 도면확인/[14:33] Buffer 코딩 작성/[15:10] 도면확인 Buffer 추가/[16:39] 와이어 겹침 오류/[19:09] Rename Net/[19:41] 입력 Object Properties - Nets/[21:00] 출력 Object Properties - Nets/[22:50] Synthesize check 오류확인/[24:22] Test Bench 코딩 확인, 코딩 입력/[27:40] Synthesize check 오류확인/[28:08] 시뮬레이션 확인/[30:03] 홀수 parity bit 도면 작성/[31:16] Test Bench 코드, 시뮬레이션 확인/[32:48] 신호의 이동 확인/[33:01] Schematic 파일 만들기/[34:27] Symbol의 D_Flip-Flop 사용/[35:09] D_Flip-Flop 코딩 작성/[37:10] 도면확인 만든 D_Flip-Flop 추가/[38:12] Edit Symbol 수정/[40:08] 도면 작성/[43:10] 출력 추가/[44:07] Test Bench 코딩 수정/[47:18] 도면 확인/[47:43] Test Bench 코딩 확인/[49:15] 시뮬레이션 확인/[51:36] 신호 이동 출력 삭제 도면 확인

  • 08.39분 Mux/Demux 회로 설계

    Mux/Demux 회로를 다양한 방법을 통해 설계하고, 각각을 시뮬레이션을 통해 동작을 검증합니다.

    책갈피 : [00:00] mux회로/[00:17] 새로운 소스 만들기/[01:03] mux 코딩 작성/[03:06] if 조건 /[04:23] Test Bench 코딩 확인, clk 입력/[06:37] 시뮬레이션 확인/[07:55] Test Bench 코딩 수정/[09:13] with sel select/[12:34] 시뮬레이션 확인/[13:51] Test Bench 코딩 clk 수정/[14:31] 시뮬레이션 확인/[15:31] generic n 참조/[17:35] output 추가/[20:19] Test Bench 코딩 수정/[21:15] 시뮬레이션 확인/[23:44] demux 코딩 작성/[25:52] Test Bench 코딩 수정/[26:52] 시뮬레이션 확인/[28:33] Test Bench 코딩 수정/[29:08] 시뮬레이션 확인/[30:12] TB 코딩 (입력-출력 구간외 구간 수정)/[32:33] 시뮬레이션 확인/[33:47] 코딩 (변칙)수정/[35:35] Synthesize check 오류확인/[36:06] TB 코딩 수정/[37:27] 시뮬레이션 확인

  • 09.39분 Case문을 이용한 인코더 및 디코더 설계

    인코더와 디코더 회로를 다양한 방법을 통해 설계, demux를 case문으로 설계하면서 간단해지는 코딩에 대해 살펴보고 각각을 시뮬레이션을 통해 동작을 검증합니다.

    책갈피 : [00:00] Encoder, Decoder/[00:26] 새로운 소스 만들기/[01:45] Encoder코딩 작성/[02:41] process enc-in/enc_out 작성/[06:22] Test Bench enc-in/enc_out 작성/[07:55] 시뮬레이션 확인/[09:12] Test Bench 코딩 확인/[09:54] 다중 주석처리/[10:11] encoder의 다른 코딩 방법(case 사용)/[13:49] Synthesize check 오류확인/[14:32] 시뮬레이션 확인/[15:36] Decoder 코딩 작성/[16:45] case문 작성/[18:41] Test Bench dec_in 작성/[19:14] 시뮬레이션 확인/[20:21] 새로운 형태의 Decoder/[24:04] 10진수를 2진수로 변환하는 코딩/[27:06] case 이용한 process 작성/[31:03] case문을 사용한 demux 코딩 작성/[35:54] Synthesize check 오류확인/[36:18] Test Bench dmx_in 작성/[37:26] 시뮬레이션 확인

  • 10.50분 Barrel Shifter 회로 설계

    입력 데이터를 합성하여 사용하는 방법, sensitivity list 선정의 중요성에 대해 설명하고, barrel shifter 설계와 시뮬레이션을 통해 동작을 검증합니다.

    책갈피 : [00:00] Barrel Shifter 만들기/[00:22] test 소스 만들기/[00:49] 서로다른 벡터 데이터를 반대로 설계/[03:08] case 문으로 단순동작 만들기/[04:55] ISE 프로그램에서의 case문 완성/[06:13] 에러확인/[06:56] Test Bench 작성/[08:09] 시뮬레이션 확인(타이밍 오류확인)/[09:40] Test Bench 오류 찾기/[11:31] t1과 t2의 Signal 할당으로 시간차/[14:27] Synthesize check/[15:18] 시뮬레이션 확인/[16:05] Test Bench 확인/[17:55] Barrel Shifter 2개 만들기/[19:59] sf0의 Shifter 작성/[22:13] sf0의 왼쪽 이동에 i4작성/[24:41] Test Bench 1 만들기/[25:38] 시뮬레이션 확인/[27:14] Barrel Shifte Test Bench input/output 추가/[29:27] dr과 sf의 합성/[32:13] case 문으로 3개의 bite를 한번에 코딩/[35:22] dr '0' left // dr '1' right 작성/[41:31] Test Bench 2 만들기/[43:31] input 작성/[45:54] 시뮬레이션 확인/[48:33] high impedance 추가/[49:07] 시뮬레이션 확인

  • 11.46분 Frequency Divider 회로 설계

    주파수 분주기에 대한 원리를 설계 코딩을 통해 설명, 아주 다양한 파형의 분주기를 여러 코딩 기법으로 설계해보고, 많은 양의 출력을 갖는 분주기를 매우 간단한 방법으로 설계하는 방법을 설명, 각 분주된 주파수 결과를 시뮬레이션을 통해 확인합니다.

    책갈피 : [01:44] 1/2 분주기/[03:05] signal 선언/[05:40] clk_in 설정/[07:42] out put 할당/[08:13] test bench 오류 찾기/[09:54] 시뮬레이션 확인/[11:43] 1/3 분주기/[13:07] integer signal 선언/[14:45] out put 선언/[15:07] 구문 정리/[17:26] 동작 설명/[22:21] test bench 오류 찾기/[24:10] 시뮬레이션 확인/[24:56] 8개의 코딩 배열/[29:21] 8개 이상의 clk 시스템 설계/[31:56] signal 선언/[33:49] if 코딩 작성/[36:45] 6줄의 간단한 코딩/[40:30] test bench 확인/[41:30] 시뮬레이션 확인/[43:50] 주파수 분주

  • 12.44분 Mealy 및 Moore 머신 회로 설계

    상태 천이도를 구현하기 위해, 밀리 루프와 무어 루프를 각각 설계하고 각각의 동작에 대해 시뮬레이션을 통해 검증합니다.

    책갈피 : [00:00] mealy m 변수 선언/[01:53] type 선언/[03:53] port 선언/[06:05] Mealy와 Moore/[07:20] Mealy 설계/[08:50] reset 코딩/[10:45] 상태 천이도 코딩/[13:35] Mealy 설계 i가 '1'일때/[19:30] test bench 점검/[21:30] 시뮬레이션 확인/[23:04] 코드 수정 및 시뮬레이션 동작 재검증/[24:44] reset 코드 수정/[25:22] 시뮬레이션 확인/[26:22] Moore 머신/[28:38] 두개의 프로세스 설계/[32:17] 조건 추가/[36:20] Moore 루프 설계/[37:21] Mealy 루프 Moore 루프 비교/[39:20] test bench 점검/[40:40] 시뮬레이션 확인

  • 13.50분 Moore 머신을 이용한 Signal Generator 회로 설계

    임의로 Serial 신호를 발생시키는 로직을 Moore 머신을 이용하여 설계합니다. 상태천이도 설계 과정과 문법 에러 및 단계별 시뮬레이션 검증 과정을 함께 진행하며 주의할 점과 문제를 찾아 해결하는 과정에 대해 상세히 설명합니다.

    책갈피 : [00:00] signal generator 설계/[01:31] port 선언/[03:40] type 선언/[08:05] out count 작성/[10:30] 프로세스 제어 설명/[12:10] process 작성/[16:03] 조건 선언/[17:56] state order/[21:00] 상태 서술/[22:50] pre_a/[28:18] 'H' 'L'의 사용/[31:07] test bench 확인/[32:00] 시뮬레이션 점검/[34:05] bit값 변경/[35:05] 시뮬레이션 재점검/[36:28] 길이값 부여/[39:12] output 할당/[40:04] 시뮬레이션 점검/[41:06] 코딩 오류 분석 및 수정/[48:09] 시뮬레이션 점검

  • 14.1시간 5분 RAM 회로 설계

    enable port의 입력값에 따라 read 또는 write mode로 동작하는 RAM 회로 설계, 일반적인 방법과 상태천이도 설계 방법에 대해 각각 설명하고 동작에 대해 시뮬레이션을 통해 검증합니다.

    책갈피 : [00:00] port 선언 /[02:17] 컨버터 기능의 사용/[07:55] RAM 변수 선언/[17:56] Moore 머신을 통한 메모리 설계/[18:48] port 선언/[21:55] type 선언/[23:45] read와 write 프로세스 작성/[28:26] 코딩 오류 점검/[32:55] test bench 확인/[37:40] 시뮬레이션 점검/[42:22] 상태 천이도를 통한 메모리 작성/[45:37] port 선언/[46:38] type 선언/[48:20] 프로세스 작성/[51:32] 상태 이동 조건 작성/[54:25] 코딩 오류 점검/[54:40] test bench 점검/[56:15] 시뮬레이션 확인/[57:31] 코딩 오류 수정/[59:55] 시뮬레이션 확인2/[01:01:38] 코딩 수정/[01:02:30] 시뮬레이션 확인3

  • 15.56분 ROM 회로 설계

    Read만 가능한 일반적인 ROM 회로 설계, 사용자가 직접 데이터를 최초 1회만 저장하여 사용하는 ROM 회로도 Moore 머신을 이용해 설계하고 각각의 동작에 대해 시뮬레이션을 통해 검증합니다.

    책갈피 : [00:22] ROM 일반설계/[01:11] port 작성/[04:23] subtype 작성/[05:26] generate/[08:20] process (동작) 기술/[09:55] 오류 점검/[10:11] test bench 확인 및 수정/[13:39] 시뮬레이션 확인/[17:00] port 작성 (inout)/[21:07] inout의 구현 (process 작성)/[23:55] 오류 점검 (check syntax)/[24:07] test bench 확인/[27:27] 시뮬레이션 점검/[34:04] Moore를 통한 ROM 설계/[35:02] port 작성/[38:15] process 기술/[50:15] check syntax/[50:30] test bench 점검/[52:34] 시뮬레이션 확인

  • 16.49분 부프로그램과 패키지 선언

    Function과 Procedure를 정의하고 이를 활용하는 방법, 카운터 회로를 예를 들어 설계하면서 각각의 특징을 설명하고Package로 만들어 활용하는 방법에 대해 간략히 설명합니다.

    책갈피 : [00:31] package란/[07:10] simple function 설계/[07:27] port 선언/[07:55] function & proccedure 선언/[16:11] test bench 동작 확인/[17:22] 시뮬레이션 점검/[18:00] sub_cnt/[19:11] port 선언/[19:55] function & proccedure 선언/[25:00] check syntax 에러 설명/[30:00] 카운터 에러 수정/[36:00] test bench 점검/[36:30] 시뮬레이션 확인/[37:31] 코딩 수정/[44:46] 시뮬레이션 확인/[45:25] 동작 설명

  • 17.60분 디지털 도어락 설계(1/4)

    일상생활에서 사용하는 디지털 도어락 설계 첫번째 과정으로 가장 기본적인 구조부터 파악, 조금씩 기능을 추가하는 과정을 코딩하고 시뮬레이션을 통해 동작을 검증합니다.

    책갈피 : [00:00] 새 프로젝트/[00:45] 도어락 컨트롤러 설계 개요/[03:01] port 선언 (기본 기능)/[06:09] type 선언 (state 다이어그램)/[08:56] signal 선언/[09:56] process 선언/[13:48] test bench 점검/[15:22] 시뮬레이션 확인/[20:45] 새 프로젝트2/[21:45] port 선언 /[24:00] type 선언/[26:12] process 1 선언/[30:56] process 2 선언/[34:17] test bench 점검/[37:06] 시뮬레이션 확인 & 수정/[43:47] 코딩 수정/[55:10] 시뮬레이션 확인/[56:14] 에러 테스트

  • 18.49분 디지털 도어락 설계(2/4)

    디지털 도어락 설계를 위한 사전 정의와 상태 천이도를 설명, 이에 따른 블록도를 설계, clock회로와 reset회로를 설계하고 검증합니다.

    책갈피 : [00:00] 디지털 도어락 기능 정의/[05:14] 상태 천이도/[07:58] 블록 다이어그램/[19:40] 새 프로젝트(clock설계)/[21:18] port 선언/[21:48] signal 선언/[24:26] port 선언/[25:23] component 선언/[28:34] check syntax/[29:15] reset설계/[30:37] port 선언/[32:20] type 선언/[33:13] process 선언/[35:45] variable 선언/[41:30] test bench 점검/[47:21] 시뮬레이션 확인

  • 19.52분 디지털 도어락 설계(3/4)

    디지털 도어락의 구성 블록중에서 door_state, comparator, pw_memory 블록을 설계하고 내용을 설명, 각각의 블록을 시뮬레이션을 통해 동작 검증을 합니다.

    책갈피 : [00:00] door_state 설계/[01:10] port 선언/[02:46] type 변수 선언/[04:40] process 선언/[05:50] wait state reset 작성/[18:41] button start/[20:00] check syntax/[20:11] test bench 점검/[22:15] 시뮬레이션 확인/[23:22] comparator 설계/[24:21] port 선언/[28:37] type state 변수 선언/[30:04] 상태 천이도 설계/[31:37] 비교 state 설계 요령/[34:44] check syntax/[36:53] test bench 점검/[40:07] 시뮬레이션 확인/[40:52] pw_memory 설계/[43:35] process 작성/[47:40] test bench 점검/[50:52] 시뮬레이션 확인

  • 20.1시간 1분 디지털 도어락 설계(4/4)

    디지털 도어락 구성 블록의 나머지 블록인 pw_input과 open_timer 블록을 설계하고 코딩, 최종적으로 모든 블록의 심볼을 생성하고 sch파일로 설계, 시뮬레이션을 통해 문열림, 패스워드 오류, 비밀번호 적절성, 알람경보 기능을 확인합니다.

    책갈피 : [00:00] dff clk 설계/[01:17] pw_input 클락 설계/[06:05] signal 변수 선언/[12:54] generation/[15:20] incorder process/[17:55] iclk process/[21:30] 상태 천이 process/[31:33] open_timer 설계/[33:30] signal 선언/[35:21] process 작성/[40:42] process2 작성/[47:15] symbols 배치/[49:29] test bench 점검/[54:55] 시뮬레이션 확인 & 코딩 수정