전체 글 100

2024.6.23 [혼자 공부하는 C언어] - c프로그램의 구조와 데이터 출력방법

2024.6.23학부 시절, 교양 과목으로 C언어 프로그래밍 이라는 수업을 들은 적이 있다.하지만, 프로그래밍 언어를 배운 것을 교양 수업이 전부이기에, 거의 드문드문 기억나는 수준이 되어버렸다.​때문에 Harman 세미콘 아카데미 수업에서 받은 라는 교재를 가지고 ATmega 128a와 관련된 C언어에 대해 공부하려 한다.혼자 공부하는 C언어는 비주얼 스튜디오 2022 커뮤니티 컴파일러를 사용한다. - 교재53p ~main 함수는 head, body로 구성된다.머리는 함수 원형이라고 하며, 함수의 이름과 필요한 데이터 등을 표시한다.함수에서 실행할 일은 몸통의 중괄호{} 안에 작성하며몸통의 마지막에는 return 0;을 넣어 프로그램을 종료한다. 몸통 부분에는 함수에서 실행할 일을 적으며, 아래와 같은..

2024.6.22 [Verilog 언어] (수정중)

2024.6.22업계에서 자주 쓰이는 베릴로그는 처음 배우기도 하고 C언어와도 다른 부분이 많다고 해서 개인적으로 공부의 필요성을 느꼈다.때문에 Verilog HDL 설계 교재를 보면서 베릴로그 언어에 대해 알아본다. // : 단일 라인용 주석문이며, //가 시작되는 위치에서부터 그 라인의 끝까지 주석문으로 처리된다./ * ~ */ : 블록용 주석문이며, 이 사이에 있는 내용은 전부 주석처리된다. 블록 주석문 단축키는 ctrl + 윈도우 + / 이다. 베릴로그에서 정수형 상수는 10진수, 16진수, 8진수, 2진수로 표현될 수 있다.3개의 어휘 토큰을 사용하여 [size_constant]'base_format 의 형식으로 수를 표현한다.size_constant : 상수 값의 비트 수를 나타내는 상수로서..

2024.6.21 [Verilog]⑥ - 링카운터 활용 + basys3 보드 연결, 레지스터

2024.6.21 수업날오늘은 어제 이어서 배운 링카운터를 활용해보고 basys3보드에 연결해서 결과를 관찰해본다.그리고 직렬출력 레지스터 직렬입력 병렬출력 레지스터, 병렬입력 직렬출력 레지스터를 알아본다.1. Basys3 보드에서 FND 링카운터 실행하기먼저 Basys3에 있는 fnd에 어제 배운 링카운터를 활용하여 4자리의 숫자가 각각 따로 작동되는것을 확인한다.아래 사진에서 4번의 fnd, 5번의 스위치를 사용한다. Fnd용 링카운터 소스코드//////////////////////////////////////////////////////////////// 2024.6.21/////////////////////////fnd용 링카운터module ring_counter_fnd( input cl..

2024.6.20 [Verilog]⑤ - 비동기 카운터, 동기카운터, BCD 카운터, 업다운 카운터, 링카운터, 주종형 D플립플롭

2024.6.20 수업날오늘은 카운터의 종류에 대해 알아보고, 주종형 D플립플롭에 대해 알아본다. 카운터에 대해 알아보기 전에 기본 단어에 대해 알아보자.먼저 카운터란, 클록 펄스를 계수하는 디지털 회로이다.카운터는 플립플롭으로 구성하며, 업카운트와 다운 카운터로 구분한다. 업 카운터는 계수가 계속 증가하는 카운터이다. 초기 상태를 00으로 설정하면, 클록 펄스가 주어질 대마다 증가하고, 클록 펄스가 계속 주어지면 00으로 돌아가 동작을 반복한다.다운 카운터는 계수가 감소하는 카운터이다. 초기 상태를 11로 설정하면 클록 펄스가 계속 주어지면 11로 돌아가 계수 동작을 반복한다.   비동기 카운터란 클록 펄스를 첫 번째 플립플롭에만 연결한다.나머지 플립플롭들은 앞단의 출력이 클록 펄스로 작용하며, 각각 ..

2024.6.19 [Verilog]④ - 7세그먼트 디코더, 인코더, 멀티플렉서+디멀티플렉서, 플립플롭

2024.6.19 수업날오늘은 어제 코드만 작성했던 7세그먼트 디코더를 실행시켜보고조합 논리회로인 인코더, 멀티플렉서, 디멀테플렉서를 알아보고순서 논리회로인 플립플롭의 종류에 대해 알아본다.어제 마지막 시간에 Basys3 보드에 있는 FND를 사용하여 숫자를 표현하기 위해 4개의 스위치를 누름에 따라 각각 다른 기능을 할 수 있도록 코딩했다. 보드에 나타나는 결과를 관찰하기 위해 vivado에서 몇 가지 설정해주어야 하는 것이 있다.먼저 어제 작성했던 코드의 구조를 가볍게 살펴보자7세그먼트 디코더 소스코드////////////////////////////////////////// 7세그먼트 디코더module decoder_7seg( input [3:0] hex_value, //0~15까지의 ..