
Verilog HDL를 주제로 한 여섯번째 포스팅에서 다룰내용은 Sec counter를 이용하여 시,분,초를 다 포함한 Digital_clock을 설계해 보겠습니다. 지난 포스팅에서는 1초마다 업카운팅 시켜주며 60카운팅시 캐리를 발생시키는 Sec counter(초 시계)를 다루어 보았습니다. Sec counter에서는 count_out의 값이 60이 될때 값을 0으로 초기화 하고 carry를 발생 시켰었는데요, 바로 이 60sec를 카운트시 발생하는 carry를 CLK(클럭) 값으로 취하고 또 다시 60카운트를 돌리면 Min counter(분 시계)가 됩니다. 똑같은 설계구조로 Min counter의 carry를 CLK(클럭) 값으로 취하고 24카운트를 돌리면 우리가 이번 포스팅에서 목표로 한 Hour..

Verilog HDL를 주제로 한 다섯번째 포스팅에서 다룰 내용은 1초마다 업카운팅 시켜주며 60카운팅시 캐리를 발생시키는 Sec counter(초 시계)입니다 지난 포스팅까지 보드에 있는 오실레이터에서 50MHz의 입력을 인풋으로 진동수 1Hz를 발생시키는 Clock generator와 MOD값의 이전값까지 카운팅을 해주고 MOD값이 되었을떄 carry를 발생시키는 counter를 설계했습니다. 이번 포스팅은 Binary코드를 7-segment로 표현 하게 해주는 Binary to 7-segment 모듈을 설계한후 앞서 설계한 Clock generator와 counter를 엮어서 sec counter를 설계하고 그 결과를 Binary to 7-segment 모듈을 이용하여 DE2보드에서 확인해 보겠습니..

Verilog HDL를 주제로 한 네번째 포스팅에서 다룰내용은 일정한 주기의 진동신호를 만들어주는 클럭 제너레이터 입니다. 원리는 DE2보드내에 있는 50MHz 오실레이터를 이용합니다 DE2보드 내의 해당소자 이름은 CLOCK_50이며 핀넘버는 PIN_N2입니다. 50MHz 오실레이터는 50MHz의 진동수를 발생시키고 이 신호를 프로그래밍을 통해 다른 신호로 이용할수 있습니다. 이번 포스팅은 이 50MHz의 진동수를 쪼개어 1헐쯔 짜리 듀티 사이클 신호로 만드는 Clock Generator를 설계 해보도록 하겠습니다. 모듈의 인풋과 아웃풋은 다음과 같습니다. 리셋 : RST 오실레이터에서 가져올 50헐쯔의 인풋 : CLK_50MHz 마지막에 배출될 아웃풋 1헐쯔 : CLK_1Hz 설계 과정도은 50MHz..

Verilog HDL를 주제로 한 세번째 포스팅에서 다룰내용은 진동수에 따라 카운팅을 시켜주는 Counter 입니다..! mod-60 카운터를 만들 계획 입니다. 60으로 나눈 나머지값들의 모임인셈이죠 1,2,3,4,5,6 ... ... 58, 59 순서로 카운팅됩니다. 카운터의 원리는 무엇일까요 진법의 원리 와 같습니다 N진법에서 N으로 카운팅될때 carry를 하나 올려주고 해당 자리수를 0으로 초기화하여 다시 N까지 카운팅해주는 것이죠 이러한 카운터의 특성을 살려 모듈의 구성을 먼저 해보겠습니다. 카운팅의 기준이 될 CLK 카운팅되고 있는 숫자를 표현할 count_out 자리수가 올라가면 발생될 carry_out 리셋 rst, 신호가 들어오면 전부 0으로 초기화 이정도 구성으로 카운터를 꾸려 보겠습니..

Verilog HDL를 주제로 한 두번째 포스팅에서 다룰내용은 BCD코드 입력을 디바이스의 SevenSegment에서 확인가능한 코드로 변환해주는 모듈의 구현입니다. 먼저 SevenSegment에 대한설명을 드리겠습니다. 세븐세그먼트는 우리 주변에서 흔히 볼수있는 숫자표현 디바이스입니다. 전자식 손목시계 또는 알람시계, 타이머 등등 여러 장비에서 확인이 가능한데요 사진을 보시면 아~ 이거~ 하시며 느낌이 오실것입니다. 위의 그림과 같이 생겼습니다. 오늘은 저번 포스팅에서 만든 BCD코드를 바로 이7-Segment를 통해 눈으로 확인해볼것입니다. 물론 코드는 BCD지만 눈에보이는 형식은 10진수처럼 보이게 말이죠 ㅎㅎ 거두절미하고 바로 설계과정 설명드리겠습니다. 회로도를 먼저 살펴보겠습니다. 복잡해보이는 ..

Verilog HDL를 주제로 한 첫번째 포스팅에서 다룰내용은 2진수된 입력을 BCD코드로 변환해주는 모듈의 구현입니다. 먼저 2진수와 BCD코드에 대하여 테이블과 함께 설명드리겠습니다. 2진수란 0과 1로 이루어진 수의 체제를 말합니다. 우리가 보통 사용하고 있는 10진수의 경우 자릿수의 올림인 carry가 진수를 표현하는 숫자가 될때 발생합니다. 즉 9에서 10으로 올라갈떄 다음자리수로 carry가 1생기고 해당 자리수는 0으로 초기화 되는것입니다. 이러한 원리로 9에서 10이 되고 19에서 20으로 카운팅 됩니다. 2진수의 경우도 마찬가지입니다. 진수를 표현하는 숫자가 될때 carry가 발생합니다. 즉, 0,1까지 카운팅후 2가될때 0으로 초기화 되고 carry를 1발생합니다. 카운팅의 순서가 00..

이번 포스팅에서 사용될 언어에 대한 툴과 디바이스에 대하여 간단히 소개해드리겠습니다. 먼저 개발툴은 알테라사의 쿼터스2입니다. 정확한 프로그램명은 Altera Quartus 2 Web Edition입니다. 다운로드는 인텔의 fpga 소프트워어 다운로드를 지원해주는 사이트를 통해 가능합니다. fpgasoftware.intel.com/discontinued/ Download Center for FPGAs Product Discontinuation Notice This version of software has been discontinued. See Product Advisory notice. Contact your Intel sales representative for more Information. fp..

안녕하세요 Shiny Ocean입니다. 이번 카테고리에서 다룰 내용은 Verilog HDL 입니다. Introduction) 주로 디지털시스템설계에 사용되며 전자 회로 및 시스템에 사용되는 하드웨어 기술 언어입니다. 개발을 다루는 Development 카테고리와는 다소 어울리지 않는 컨텐츠 일수 있지만 시스템의 디자인과정에서 상당수의 코딩이 사용되고 그언어의 구조가 지금까지 다룬 언어들과는 다르지만 비슷한 부분들도 분명히 존재하기때문에 이번에 다루어 보게되었습니다. 저는 대학교 2학년 2학기 디지털시스템설계과목 팀프로젝트를 통해 Verilog HDL언어 와 쿼터스사의 싸이클론2 디바이스를 이용하여 설계를 진행한경험이 있습니다. 비록 수준 높은 디바이스 제작과정은 아니었지만 경험을 살려서 이번카테고리는 조..