목차
Chapter 01 Xilinx 툴과 ModelSim을 이용한 Verilog 설계 및 검증 따라하기
1.1 Verilog 시뮬레이션/합성 툴 설치하기 = 1
1.2 Verilog Design Entry = 2
Chapter 02 Verilog Fundamentals
2.1 Module Basics = 27
2.2 Lexical Elements = 34
2.2.1 Siganl Value and constant = 34
2.2.2 Verilog comments = 38
2.2.3 Identifier = 39
2.3 Verilog Data types = 40
2.3.1 Net형 타입 = 40
2.3.2 Variable(register)형 타입 = 41
2.3.3 Vectors = 44
2.3.4 Arrays = 45
2.3.5 Memories = 45
2.4 Signal Assignment의 종류 = 46
2.4.1 Continuous Assignments = 46
2.4.2 Procedual Assignments = 47
2.5 Three Types of Circuit Description = 52
2.5.1 Structural Description = 52
2.5.2 Dataflow Description = 57
2.5.3 Behavioral Description = 64
2.5.4 Description 방식의 선택 = 74
2.6 Tasks and Functions = 74
2.7 Verilog Simulation = 81
2.7.1 Verilog Test Fixture = 81
2.7.2 Basic System Task/function for Simulation = 83
2.8 Compiler Directives = 90
2.8.1 자주 사용하는 compiler directive = 90
2.8.2 Coonditional compilation = 99
Chapter 03 합성 가능한 Verilog 표현
3.1 Why Synthesizable coding Style? = 99
3.2 Primitive Gate를 이용하여 조합회로 기술하기 = 94
3.2.1 불린식을 primitive 게이트로 표현하기 = 94
3.3 Continuous Assignment문을 이용하여 조합회로 기술하기 = 97
3.3.1 불린식: continuous assignment statement로 표현하기 = 97
3.3.2 Conditional문: continuous assignment statement로 표현하기 = 98
3.4 조합회로 표현을 위해 Procedural Assignment 사용하기 = 99
3.4.1 if문으로 표현하기 = 99
3.4.2 if else if문 이용하기 = 101
3.4.3 case문 이용하기 = 103
3.4.4 case vs. else if = 105
3.4.5 출력 don't care의 표현 = 107
3.4.6 입력 don'care의 표현 : casex 또는 casez문 = 108
3.4.7 Decoder = 112
3.4.8 Priority Encoder = 114
3.5 Latch Inference = 115
3.6 Flip Flop inference = 123
3.6.1 기본형 = 123
3.6.2 비동기 리셋신호를 가진 Flip Flop = 125
3.6.3 동기식 리셋신호를 가진 Flip-Flop = 127
3.6.4 리셋과 세트(set)가 함께 있는 DFF의 표현 = 128
3.6.5 Load(Enable) 신호가 있는 Flip Flop = 129
3.6.6 입력에 복잡한 논리식이 있는 경우 = 132
3.6.7 Flip-Flop description을 위한 일반 규칙 = 134
3.7 Tri-state buffer inference = 135
3.7.1 기본 삼상버퍼 = 135
3.7.2 양방향 버퍼 = 136
3.8 Registers & Shift Registers = 138
3.8.1 Register = 138
3.8.2 Shift Register = 140
3.9 counters = 143
3.9.1 Binary Up/Down Counter = 143
3.9.2 BCD Counter = 147
3.9.3 여러 Counter를 서로 연결하기 = 149
3.10 Embedded Memory Inference = 152
3.10.1 ROM Inference = 152
3.10.2 Single Port Block RAM Inferrence = 154
3.10.3 Dual-port Block RAM Inferrence = 163
3.l1 FSM Design = 178
3.11.1 Mealy FSM Coding Style = 178
3.11.2 Moore type FSM 기술하기 = 187
3.11.3 Alternative Style for FSM representation = 193
3.12 Digital System Design = 195
3.12.1 데이터 경로의 설계 = 196
3.12.2 제어부의 설계 = 202
3.12.3 전체 시스템 통항 및 검증 = 207
Chapter 04 Verilog Advanced Topics
4.1 Verilog Timing Controls = 213
4.1.1 Delay-based Timing Control = 216
4.1.2 Event-based Timing Control = 224
4.1.3 Level-Sensitive Timing Control = 227
4.2 Scalable Design Representation = 231
4.2.1 Parameters = 231
4.2.2 Arrays of Instances = 236
4.2.3 Generate Blocks = 237
4.3 More on Concurrent Processes = 241
4.3.1 Sequential and Parallel Blocks = 241
4.3.2 블록들 간의 중첩 = 245
4.3.3 Named Blocks = 245
4.3.4 Disabling Named Blocks = 246
4.4 Delay Specification = 248
4.4.1 Specification Time Unit = 248
4.4.2 Gate and Net Delay = 249
4.4.3 Path Delay Specification = 254
4.4.4 Timing Checks = 259
4.5 More on Hierarchical Design = 264
4.5.1 Hierarchical Names = 264
Chapter 05 입출력 인터페이스 회로 설계
5.1 VGA 제어기설계 = 267
5.1.1 VGA에 대한 이해 = 267
5.1.2 설계 사양 = 271
5.1.3 설계 과정 = 274
5.1.4 설계 결과(Verilog 소스코드) = 284
5.1.5 설계의 검증 = 285
5.1.6 FPGA를 이용한 prototyping((MP3100) = 286
5.1.7 FPGA를 이용한 prototyping(HBE-COMBO XILIMX) = 287
5.2 텍스트LCD 인터페이스 설계 = 291
5.2.1 텍스트 LCD에 대한 이해 = 291
5.2.2 설계 사양 = 298
5.2.3 설계 과정 = 298
5.2.4 설계 결과(VERILOG 소스코드) = 311
5.2.5 설계의 검증(VERILOG testbench, LCD + Calculator) = 311
5.2.7 FPGA를 이용한 prototyping((MP3100) = 313
5.2.8 FPGA를 이용한 prototyping(HBE-COMBO XILINX FPGA) = 316
5.3 PS/2 키보드 인터페이스 = 319
5.3.1 PS/2 키보드 인터페이스 이해 = 319
5.3.2 설계 사양 = 322
5.3.3 설계 과정 = 323
5.3.4 설계 결과(VERILOG 소스코드) = 337
5.3.5 설계의 검증(VERILOG testbench) = 338
5.3.6 FPGA를 이용한 prototyping((MP3100 보드) = 341
5.3.7 FPCA를 이용한 prototyping(HBE-COMBO XILINX FPGA) = 344
부록 1 ModelSim XE 시뮬레이터를 이용한 Verilog 코딩 및 검증
1.1 모델심 프로그램 제작 = 348
1.2 프로젝트의 생성 = 349
1.3 D-type flip-flop 모듈 생성 = 350
1.4 1-bit full adder 모듈 추가하기 = 353
1.5 Top-level module 추가하기 = 355
1.6 시뮬레이션을 위한 테스트픽쳐 모듈 생성 = 357
1.7 시뮬레이션 시작하기 = 359
1.8 하위 모듈 신호 자세히 보기 = 362
1.9 소스파일 수정하여 다시 시뮬레이션하기 = 364
1.10 시뮬레이션 끝내기 = 366
부록 2 MP3100X 보드의 간단한 사용법
2.1 특징 = 367
2.2 기본환경 설정 = 368
2.3 전체 블록도 및 핀 배치도 = 370
2.4 입출력 기능 = 371
부록 3 한백전자 XILINX FPGA board : HBE-COMBO = 378
부록 4 ModelSim MXE License 받기 = 387
부록 5 CD-ROM 수록 내용 = 394
찾아보기 = 397