상세 컨텐츠

본문 제목

SoC - NiosⅡ(DE1-SoC) - 6 RTL 설계

설계공부/SoC

by 썽심 2023. 10. 11. 09:19

본문

728x90

1010

TOOL : Quartus Prime Lite Edition(Ver.18.1)

Board : DE1-SoC

FPGA : ALTERA CycloneV SoC (5CSEMA5F31C6N)

LANGUAGE : Verilog(Ver.2001)

 

 

메일 작성

내용

 

mail box 동작순서

1.contants

2.write

3.flag setting

 

Reciver

1.flag check

2.read

3.flag clear

 

 

 

 

 

 

원래는 채터링이 발생이 되어서,

123,4

2134 이런식으로 한번에 데이터가 한번에 받는 경우가 생긴다.

 

그러나 해당 코드에서는 발생하지 않았다.

 

 

 

 

Interrupt는 주어진 값만 해결하고 주어진 환경에서 나와야 한다.

UART통신, printf 등 활동을 하면 안된다.

 

Interrupt 발생시

ISR(Interrupt Service Routien)에서는 관련 data 저장 or 처리 후 interrupt clear를 해줘야 함.

속도가 굉장히 느리기 때문에

 

또한 interrupt enable

Enable할 때 printf가 없으면 cpu가 데이터를 이상하게 잡아 엉뚱한 곳의 주소에 가게 된다.

Interrupt enable은 모든 setting이 끝난 후 그 뒤에 켜야 한다.

 

 

INTERRUPT ENABLE 버그 고치는법

Resister 끝난 이후 INTERRUPT ENABLE을 써주면 된다.

이렇게 하면

printf("BV %d\n", button_v); 이곳에서 break가 걸릴 수 있다.

728x90

'설계공부 > SoC' 카테고리의 다른 글

SoC - NiosⅡ(DE1-SoC) - 5 PWM 설계  (0) 2023.10.06
SoC - NiosⅡ(DE1-SoC) -4 RTL 설계  (0) 2023.10.05
SoC - NiosⅡ(DE1-SoC) -3 RTL 설계  (0) 2023.10.04
SoC - NiosⅡ(DE1-SoC) -2 crc / pwm  (0) 2023.09.08
SoC - NiosⅡ(DE1-SoC) -1  (0) 2023.09.07

관련글 더보기