SPI MASTER 모듈에 관한 질문입니다.
현재 SPI MASTER 부분을 공부하고 있습니다. 제가 인터넷에 찾아보며 공부한 바로는 SPI 통신은 동기적 통신을 사용한다고 하는데, 해당 코드 전체적으로 always @(posedge clock or negedge reset)을 사용하는 것을 보면 이는 비동기 방식을 사용하여서 이에 대해 궁금해서 여쭤보고 싶습니다!
답변 1
0
안녕하세요.
동기, 비동기의 기준은 데이터가 Clock에 맞게 동작하느냐, clock 없이 Data만 동작하는냐 입니다.
예를 들어, RS-232 (UART)는 Clock 없이 RX, TX 신호만 전달되기 때문에 비동기 방식이라고 합니다.
이에 반해서, I2C나 SPI 통신은 Clock에 동기되어 데이터가 전송되기 때문에 동기 방식입니다.
강의에 구현된 SPI 통신은 Clock에 맞추어 데이터를 전송하는 방식으로 구현되었기 때문에 동기 방식입니다.
질문하신 always @(posedge clock or negedge reset)은 reset 신호가 동기, 비동기 중에 어떻게 동작하는지에 대한 내용입니다. always @(posedge clock or negedge reset)은 reset 신호가 clock에 무관하게 동작하기 때문에 비동기로 동작합니다.
reset을 동기로 구동하려면, 아래와 같이 구현하면 됩니다.
always @(posedge clock) begin
if(~reset)
xilinx의 문서를 보면 reset을 동기신호로 구현하는 것을 추천한다고 되어 있습니다만, 저의 경험상 reset은 동기, 비동기가 크게 차이가 나지는 않습니다. 저는 오래전부터 습관적으로 reset을 비동기로 사용하였습니다. xilinx 문서대로 reset을 동기신호로 사용하는 것도 좋은 방법이라 생각합니다.
감사합니다~
L2_P12_priority_data_controller 코드 리뷰 부탁드립니다.
1
42
2
메모리 리셋 관련 질문 드립니다.
1
42
2
RTL_ROM이 무엇인지 알고 싶습니다.
1
46
2
인터럽트 컨트롤러 요청 처리와 처리 완료 구문 중 이해가 안되는 내용이 있습니다.
1
50
2
enable_latch가 F/F이 아니라 래치인 이유가 궁금합니다.
1
52
2
카페 등업신청
0
48
1
fpga
1
67
2
test class의 constructor 부분을 보다가 궁금한 점이 있어 질문드립니다.
0
45
1
FPGA 연결 확인 방법
0
58
1
Arty z7 -20 보드의 경우
1
68
2
RVALID/RREADY 핸드셰이크 발생 시 RDATA 전이가 발생해도 문제가 없는 이유?
1
95
4
강의노트는 어디서 받을 수 있나요?
0
75
2
lwip 실험중 오류 상황
0
69
2
uvm config db에 대해 궁금한 점이 있습니다.
0
68
1
이 강의 zboz7보드에서도 실행 가능한가요?
1
73
1
강의자료 기한 연장 + 로드맵 문의
0
68
2
Chapter 16 FSM 관련 질문
1
96
2
강의 환경(linux) 관련 질문
1
110
2
강의자료 업로드 될까요
0
71
2
output.txt가 이상하게 나옵니다.
1
86
2
L2_P08 SRAM 코드 리뷰 부탁드립니다.
1
87
2
Arty Z10 관련 문의
1
86
2
Text Editor에 관한 질문입니다.
0
337
1
SPI Master Waveform 질문입니다.
1
413
1





