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을 동기신호로 사용하는 것도 좋은 방법이라 생각합니다.
감사합니다~
[HDL 32장-2부] 참고 링크 관련
1
31
2
강의 만료일 연장 신청
0
29
2
기초예제 파일 불러오기 문의
0
21
2
Zybo 환경에서 PL RTL UART 보드 검증 방법
0
27
2
혹시 별도의 자료가 있나요?
0
28
2
queue assignment pattern 문의 건
0
28
1
Mission 5 문의 건
0
42
2
Zynq z7 FPGA single-ended 관련
0
35
1
강의자료 PDF 어떻게받나요?
0
40
2
Differential Amp의 4가지 종류
0
38
1
[HDL 22장] F/F CE 관련 질문
1
42
2
UART0, 1 중 선택
1
45
2
fpga 개발보드
0
25
2
vivado 2022.1 version memory IP 구조
0
34
1
강의 ppt 자료 요청건
0
54
2
datamoverbram모듈질문
1
59
2
latency 개념 구현
1
80
3
미션tree
0
39
3
강의7 질문
0
46
2
mission1 질문
0
57
3
Verilog Testbench DB 원본
0
49
1
13강에 언급된 강의 내용 질문
1
60
2
Text Editor에 관한 질문입니다.
0
296
1
SPI Master Waveform 질문입니다.
1
371
1





