HLS로 설정 레지스터 만들기
PS에서 PL 모듈로 값을 읽고 쓰고 싶을 때, AXI 경유로 읽고 쓰는 것이 보통이라고 생각한다.
모듈이 AXI를 지원하지 않으면 AXI와의 변환 모듈을 만듭니다.
이 경우,
라고 하는 수단이 있지만, GPIO에서는 어느 레지스터의 몇 비트째가 무엇이었는지가 코드에 나타나지 않기 때문에 괴롭고,
RTL 쓰는 것은 고리를 걸고 귀찮다.
그래서 HLS로 쓴다. 이미지로서는 이런 느낌.
typedef struct{
int32_t A;
bool B;
} Config_write;
typedef struct{
uint16_t C;
bool D;
uint8_t E;
} Config_read;
void HogeConfigurator(
Config_write wcfg_axi,
Config_read& rcfg_axi,
Config_write& wcfg_pl,
Config_read rcfg_pl
){
wcfg_pl = wcfg_axi;
rcfg_axi = rcfg_pl;
}
PL에 기입하는 설정치는
Config_write
, PL로부터 읽어들일 설정치는 Config_read
구조체에 정리한다.인수의
~_axi
는 AXI 측, _pl
는 모듈 측이다._axi
와 함수 본체의 인터페이스를 s_axilite
_pl
의 인터페이스를 ap_none
로 하면 AXI 경유로 조작할 수 있어 덤으로 드라이버를 HLS 가 생성해 준다.(정말 ap_none으로 에엔인가?valid이란 것인가?라고 경고가 나오지만 무시한다.)
레지스터 지정을 붙이면,
XHogeConfigurator_Start()
를 부르면 정리해 변경이 반영되는 동작이 되고,붙이지 않으면 즉시 변경이 반영되는 동작이 된다.
Reference
이 문제에 관하여(HLS로 설정 레지스터 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ozwk/items/83481cb41a971590d14f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)