일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- AXI3
- SoC
- Low-power Interface
- Multiple transaction
- ordering model
- out-of-order
- FGPA #반도체설계 #verilog #시프트레지스터 #uart
- 카운터
- ABMA
- Verilog
- cacheable
- AMBA
- 펌웨어
- 임베디드시스템
- stepmotor
- STM32
- AXI4
- atomic access
- T flip flop
- 레지스터슬라이스
- 스텝모터
- APB3
- tff
- FPGA
- Interoperability
- single copy atomic size
- 구조적모델링
- Multiple outstanding
- QoS
- ERROR RESPONSE
Archives
- Today
- Total
CHIP KIDD
[FPGA] I2C RTC module Design (verilog Code) 본문
이번시간에는 FPGA를 이용하여 I2C 통신 모듈이 탑재된 RTC 모듈을 설계해 보았습니다.
DS3231 또는 DS1307은 I2C 통신 RTC 모듈로 잘 알려져 있습니다.
저는 DS1307을 기반으로 하여 제작했습니다.
따라서 블록다이어그램을 보면 다음과 같은데, 여기서 I2C , RTC 그리고 오실레이터 역할을 해주는 Prescaler를 설계했습니다.
I2C 통신 특성
Datasheet를 보면 위의 순서로 데이터가 송수신이 되는데 , 위 State Machine을 설계해야합니다.
Clock 특성은 SCL 이 High 일떄는 SDA의 값은 변하면 안됩니다. 하지만 예외가 있는데 Start 신호는 SCL이 High일떄 SDA가 LOW로 떨어지면 START 신호를 나타내며, SCL이 LOW일때 SDA가 HIGH로 올라가면 STOP신호가 됩니다.
I2C 모듈을 코딩하고 TB를 돌려본 결과 입니다. CLK 특성과 START 신호를 볼수 있습니다.
RTC Module Block Diagram
제 RTC 모듈의 Block Diagram 입니다.
H/W 구성
Master : ARM (STM32 - M4Cortex) + Uart COMPORT Master (결과값확인)
Slave : FPGA (ZYBO Z7-20) + Vivado(Verilog Editor Tool)
Code
Schematic (Synthesis 이후)
'반도체 > FPGA - Verilog' 카테고리의 다른 글
[FPGA-Verilog : encoder / decoder/ 디코더를 이용한 7seg 출력] (0) | 2021.04.02 |
---|---|
[FPGA] Verilog Code - multiplexer/ demultiplexer (0) | 2021.04.02 |
[FPGA-Verilog : 2bit comparator (동작점 모델링)] (0) | 2021.04.02 |
[FPGA] Verilog : 4bit Full adder (구조적 모델링, 데이터 flow 모델링) (0) | 2021.04.02 |
[FPGA] ADC ADC-Mux 설계 (Verilog Code) , 가변저항 10진수 출력 (0) | 2021.04.01 |