일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- i2c 통신
- LED
- D Flip Flop
- verilog
- ring counter
- BASYS3
- uart 통신
- Pspice
- hc-sr04
- ATMEGA128A
- gpio
- structural modeling
- atmega 128a
- java
- Edge Detector
- Recursion
- Linked List
- FND
- soc 설계
- prescaling
- KEYPAD
- Algorithm
- behavioral modeling
- pwm
- half adder
- stop watch
- DHT11
- dataflow modeling
- vivado
- test bench
- Today
- Total
목록verilog (66)
거북이처럼 천천히
1. Advanced Clock전체적인 코드에 대한 설명은 아래 게시글 참고하길 바란다. https://jbhdeve.tistory.com/269 Verilog RTL 설계(7월 18일 - 1, Advanced Clock Mode - 4)1. 초 값이 30초 이상일 때, btn_set 버튼을 누를 때마다 분 값이 1씩 증가한다. (또 다른 해결책)해당 문제에 대해서 이미 이전 게시글을 통해서 다루어 보았다.Verilog RTL 설계(7월 17일 - 5, Advanced Clockjbhdeve.tistory.com // Edge detector.module edge_detector ( input clk, reset_p, input cp, output n_edge, p_edge ); ..

1. Button을 짧은 시간동안 연속적으로 누를 경우, 이전 값이 잠깐 출력되는 문제점이 발생1.1. 문제 현상버튼을 짧은 시간동안 연속적으로 누르면 FND에서 이전 값이 잠깐 출력되는 문제점이 발생한다. 1.2. 문제 원인아래 코드와 함께 이해하고자 한다면 쉽게 이해할 수 있다.// state에서 next_state로 넘어가는 시점은 clk_10msec_n 일때, 넘어갔다.always @(posedge clk or posedge reset_p) begin if(reset_p) state = SCAN0; else if(clk_10msec_n) state = next_state;end''' (중간 생략) '''// Row값과 Col값을 비교하여 입력된 키 값을 찾아 Key_va..

1. Slack디지털 회로에서 신호가 목적지에 도달하는 데, 필요한 시간(PDT, Propagation delay time)과 실제로 허용된 시간 (Required Time)의 차이를 의미한다.아래 사진과 함께 설명을 이어가도록 하겠다. Clock edge에 데이터를 읽기 위해서는 그 이전에 이미 연산 및 전달이 끝 마치고, 도착한 상태여야 한다.Q) 왜 Clock edge 전후로 여유 시간을 갖고, 데이터를 준비 및 유지해야 하는가?A) Clock Pulse라 하더라도 항상 일정한 주기를 갖고 신호가 발생하지 않는다. 예를 들어 Basys3의 CP의 주기는 10ns이지만, 항상 10ns 주기를 갖고 나타나지 않고 약간의 오차를 갖고 클록 펄스가 나타날 수 있다. (예를 들어 9ns or 11ns에 C..

1. HC-SR04와 Basys3의 통신을 FSM (Finite State Machine)으로 구현해보자.이전 게시글에서 HC-SR04와 MCU 간의 통신과정을 State diagram으로 그린 것을 토대로 FSM (Finite State Machine)방식으로 구현하고자 한다.이를 통해 FSM(Finite State Machine)에 대해서 공부를 하는 동시에 Data Sheet에 대한 읽는 능력을 향상하는 것을 목적으로 하고 있다.HC-SR04의 동작 원리와 HC-SR04와 MCU 간의 통신 과정이 궁금하다면 이전 게시글을 참고하길 바란다.Verilog RTL 설계(7월 24일 - 2, HC-SR04 기초) (tistory.com) Verilog RTL 설계(7월 24일 - 2, HC-SR04 기초)..

1. HC-SR04 초음파를 이용해 거리를 측정하는 센서 모듈HC-SR04의 data sheet를 활용하여 basys3간에 연결하여 HC-SR04측에서 측정한 거리 값을 받도록 설계해 보겠다.이를 통해 FSM(Finite State Machine)에 대해서 공부를 하는 동시에 Data Sheet에 대한 읽는 능력을 향상하는 것을 목적으로 하고 있다.HC-SR04와 MCU 간에 회로 연결, 통신 과정 및 방법 등 차근차근 배워보도록 하겠다. 2. HC-SR04의 동작 원리HC-SR04의 동작 원리에 대해서 그림으로 표현하자면 다음과 표현 할 수 있다. HC-SR04 센서 모듈이 다음과 같은 과정을 거쳐 거리를 측정하게 된다.- TX (Transmitter) : 초음파를 발사하는 부분- RX (Receiv..

1. FSM 기법이란?Finite State Machine시스템의 동작을 상태, 이벤트, 전이로 모델링하는 수학적 모델을 의미.시스템은 한 번에 단 하나의 상태만 가질 수 있다. 1.1. FSM의 장점복잡한 시스템 동작에 대해서 유한 상태로 나눈 뒤, 각각의 상태에 대한 동작과 다른 상태로 전이를 위한 조건을 정의함으로서 복잡한 시스템을 단순화할 수 있다.시스템의 동작을 여러 상태로 나누었기 때문에 디버깅 과정에서 문제가 발생했을 때, 어느 부분에서 문제가 발생했는지를 쉽게 파악하여 빠르게 고칠 수 있다. 1.2. FSM와 상태도(State diagram)과의 관계FSM은 시스템의 동작을 여러 상태로 나누어 현재 상태의 작업을 수행한 뒤, 발생한 이벤트에 따라 다른 이벤트로 전이된다.FSM의 시스템의..

1. 4X4 Matrix Keyboard4X4 Matrix Keyboard는 다음과 같은 회로도를 같는다.Row와 Column간에 회로 연결은 16개의 Switch간에 연결되어 있다. 2. 어떻게 버튼이 눌렀는지를 확인하는가?Row 값(R1, R2, R3, R4)들이 High-level인 상태에서 특정 버튼을 누르게 된다면 해당하는 열(C1, C2, C3, C4)의 값이 Low-Level에서 High-Level 로 변한다.ex) R1, R2, R3, R4 = 0001인 상태에서 버튼 0을 누르면 C1, C2, C3, C4 = 0100이 출력된다.ex) R1, R2, R3, R4 = 0100인 상태에서 버튼 6을 누르면 C1, C2, C3, C4 = 0010이 출력된다. 3. 만약, C1값이 H..
1. 4초 때 리셋 버튼을 누른 뒤, 다시 Stop watch를 실행하니 56초때 분값이 증가한다. 1.1. 문제 현상4초 때 리셋 버튼을 누른 뒤, 다시 Stop Watch를 실행하니 56초때 분값이 증가하는 현상을 확인할 수 있다. 1.2. 문제 원인 BCD 60진 Counter를 통해 현재까지 Counter가 counting한 값을 초기화 시켜줌으로서 cur_time 값을 초기화시켜주었으며, lap_time도 btn_clear가 활성화되면 초기화시켜줌으로서 0분 0초로 만들어 주었다.그러나, BCD 60진 Counter가 Counting함에 있어 기준 펄스가 되는 clk_sec와 clk_min에 대해서 초기화를 시켜주지 않았다.따라서 clk_sec과 clk_min 펄스파는 clear 된 ..