| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- java
- Recursion
- FND
- test bench
- KEYPAD
- verilog
- gpio
- Edge Detector
- half adder
- DHT11
- ring counter
- atmega 128a
- i2c 통신
- prescaling
- pwm
- Linked List
- Algorithm
- dataflow modeling
- structural modeling
- ATMEGA128A
- D Flip Flop
- vivado
- Pspice
- BASYS3
- soc 설계
- LED
- behavioral modeling
- hc-sr04
- stop watch
- uart 통신
- Today
- Total
목록전체 글 (318)
거북이처럼 천천히
1. 서로 다른 숫자들을 FND을 통해 동시 출력하기이번에는 4자리 16진수 데이터를 FND을 통해 한 번에 동시 출력 되도록 설계해보도록 하겠다.이번 구현 동작은 다음과 같이 동작한다.- 16개의 Switch를 활성화시켜 0 ~ 3번째 Switch는 첫 번째 FND, 4 ~ 7번째 Switch는 두 번째 FND, 8 ~ 11번째 Switch는 세 번째 FND, 12 ~ 15번째 Switch는 네 번째 FND를 컨트롤 한다.- 해당 FND의 스위치로 16진수 값을 표현하면 해당 16진수 값이 해당 FND에 출력된다 1.1. 한 번에 동시 출력하도록 만들기 위해서는 몇 초를 주기로 Shifting 시켜야 하는가?사람 눈을 속이기 위해서는 최대 10ms 정도 FND Shifting해야 사람의 눈으로 보았을..
1. 10sec 주기로 FND Left Shifting 하기이번에는 10sec 주기마다 왼쪽으로 Shifting하는 코드를 구현하도록 하겠다.다음과 같이 동작한다.- 12번째부터 15번째 Switch를 통해 16진값을 표현한다.- 가장 오른쪽 FND를 첫 번째 FND라고 하였을 때, 10sec를 주기로 왼쪽으로 Shifting한다.- 4번째 FND에 도달하게 되면 다시 첫 번째 FND으로 돌아와 무한 반복한다. 1.1. 주기가 10sec이기 위해서는 Counter는 얼마의 크기를 가져야 하는가?Basys3의 기본 클럭 주기는 10ns이다. 따라서 10sec 주기를 갖기 위해서는 10nsec을 1000000000 분주를 해야한다.따라서 Counter는 1000000000분주를 하기 위해서는 100000..
1. 4bit 데이터 변수에 담겨 있는 16진수 값을 FND에 출력하기4bit 크기를 갖는 변수에 16진수 값을 저장한 뒤, 이를 FND로 출력하도록 설계한다.동작은 다음과 같이 동작한다.- Common anode는 Switch 0번 ~ 3번를 통해 Control 한다.- Hex value는 Switch 12번 ~ 15번을 통해 표현 하게 된다.- 12번 ~ 15번까지의 Switch로 표현된 16진 값을 4개의 FND에 동시 출력되도록 한다. 1.1. Hex value를 모듈의 입력 값으로 전달하게 되면 이를 출력하기 위한 8개의 다이오드의 출력 정보를 출력한다.Hex value를 모듈의 입력 값으로 전달해야 하기 때문에 입력값은 4bit 크기를 갖는다.8개의 다이오드의 출력 정보를 출력하기 위해서는..
1. Basys3의 FND 다 켜보기Basys3의 FND를 다 켜보도록 하겠다.특별한 데이터를 FND를 통해 출력하지 않는다. 1.1. Basys3의 FND는 어떤 구조를 갖는가?Basys3의 FND의 회로도는 다음과 같은 구조를 갖는다.Basys3는 Common anode 구조로 설계되어 있다.7-Segment를 구성하는 Diode들의 cathode들은 GND로 연결되어 있는 상태이다.따라서 Diode들의 anode에 Vcc 값을 주게 되면 전위차에 의해 전류가 anode에서 cathode로 흐르게 되며, 이로인해 다이오드에 불이 들어오게 된다. 1.2. BJT는 어떻게 동작하는가?BJT의 전류의 방향을 나타내는 화살표가 emitter에서 Base로 향하고 있기 때문에 PNP형 BJT이다.따라서 Bas..
1. Counter의 비트 수 (크기)와 분주비의 상관 관계Counter의 크기는 N bit 를 갖는다면 Counter는 0 ~ 2^N-1 까지 Counting이 가능하다.ex) Counter가 21bit 크기를 갖는다면 0 ~ 2^21 -1까지 Counting이 가능하다.따라서 Basys3의 기본 클럭 펄스의 주기는 10ns를 갖기 때문에 10bit Counter으로 분주화하게 되면 10ns * 1024 = 10240ns = 10us 을 주기를 갖는 새로운 펄스파를 생성시킬 수 있다.=> Basys3의 기본 Clock Pulse의 주기는 10ns를 갖는다.=> 10bit Counter로 1024분주하면 10us 주기를 갖는 펄스파형을 생성시킬 수 있다,=> 21bit Counter로 2^21분주하면 1..
(수업 전) 나의 상태 값 : Verilog 할 만 한데? (수업 진행) 나의 상태 값 : 엄마....... (수업 끝) 나의 상태 값: 언제 복습 다하냐??????? 하... 힘들다.... 교수님 브레이크 부셔져서 진도 폭주 기관차됨....
1. Prescalerbasys3의 기본 Clock Pulse의 주기는 10ns를 갖는다.짧은 주기를 갖는 Clock pulse를 가지고 이보다 긴 펄스파형을 생성하거나 낮은 주파수를 갖는 파형을 생성하고 싶을 때, Prescaler 기법을 사용할 수 있다.Prescaler의 주요 기능에 대해서 요약하면 다음과 같다.▶ 고주파 클럭 신호를 낮은 주파수를 갖는 신호로 변환하고자 하는 경우▶ 짧은 주기를 갖는 클럭 신호를 상대적으로 더 긴 주기를 갖는 신호로 변환하고자 하는 경우▶ 입력 클럭 주파수를 일정한 비율로 나누고자 하는 경우 Q) Prescaler 기법은 어떻게 기본 Clock Pulse를 주기가 더 긴 파형으로 변환할 수 있는가?A) 여러 개의 펄스 파형을 하나의 묶음으로 묶은 뒤, 이를 하나의 ..
1. SRAM 8bit PIPO Register를 1024개 엮어서 8192bit = 8kbit 크기를 갖는 레지스터를 생성해보자.8bit PIPO Register 자료형을 갖는 배열을 생성하고, 배열의 사이즈를 1024개 갖도록 한다.1024개의 레지스터 중에서 하나의 레지스터를 선택하기 위해서 10bit 크기를 갖는 Selector가 필요하다.10bit Selector를 통해 해당 레지스터에 접근하여 Read / Write 작업을 수행 할 수 있다. module SRAM_implemented_with_D_Flip_Flop( input clk, enable, reset_p, input read_enable_p, write_enable_p, input [9:0] memory_address..